From e78751f6a7a487f3c46196ac7060e0685883c93f Mon Sep 17 00:00:00 2001
From: wyu <kknd09321@nate.com>
Date: 목, 11 11월 2021 09:41:45 +0900
Subject: [PATCH] 사용자 관리 부서 상세 백앤드 수정

---
 src/main/java/kr/wisestone/owl/service/UserDepartmentService.java          |   17 +++++
 src/main/java/kr/wisestone/owl/web/condition/UserDepartmentCondition.java  |   51 +++++++++++++++++
 src/main/java/kr/wisestone/owl/repository/UserDepartmentRepository.java    |   10 +++
 src/main/java/kr/wisestone/owl/service/impl/UserDepartmentServiceImpl.java |   97 ++++++++++++++++++++++++++++++++
 4 files changed, 175 insertions(+), 0 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/repository/UserDepartmentRepository.java b/src/main/java/kr/wisestone/owl/repository/UserDepartmentRepository.java
new file mode 100644
index 0000000..24b6a6b
--- /dev/null
+++ b/src/main/java/kr/wisestone/owl/repository/UserDepartmentRepository.java
@@ -0,0 +1,10 @@
+package kr.wisestone.owl.repository;
+
+import kr.wisestone.owl.domain.UserDepartment;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import java.util.List;
+
+public interface UserDepartmentRepository extends JpaRepository<UserDepartment, Long> {
+    List<UserDepartment> findByUserId(Long userId);
+}
diff --git a/src/main/java/kr/wisestone/owl/service/UserDepartmentService.java b/src/main/java/kr/wisestone/owl/service/UserDepartmentService.java
new file mode 100644
index 0000000..92d2a52
--- /dev/null
+++ b/src/main/java/kr/wisestone/owl/service/UserDepartmentService.java
@@ -0,0 +1,17 @@
+package kr.wisestone.owl.service;
+
+import kr.wisestone.owl.domain.UserDepartment;
+import kr.wisestone.owl.web.condition.UserCondition;
+import kr.wisestone.owl.web.condition.UserDepartmentCondition;
+import kr.wisestone.owl.web.form.UserDepartmentForm;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import java.util.List;
+import java.util.Map;
+
+public interface UserDepartmentService extends AbstractService<UserDepartment, Long, JpaRepository<UserDepartment, Long>> {
+
+    void userDepartmentDetail(Map<String, Object> resJsonData, UserCondition make);
+
+    void userDepartmentModify(UserDepartmentForm userDepartmentForm);
+}
diff --git a/src/main/java/kr/wisestone/owl/service/impl/UserDepartmentServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/UserDepartmentServiceImpl.java
new file mode 100644
index 0000000..4cec1b7
--- /dev/null
+++ b/src/main/java/kr/wisestone/owl/service/impl/UserDepartmentServiceImpl.java
@@ -0,0 +1,97 @@
+package kr.wisestone.owl.service.impl;
+
+import com.google.common.collect.Lists;
+import kr.wisestone.owl.constant.Constants;
+import kr.wisestone.owl.constant.MsgConstants;
+import kr.wisestone.owl.domain.Department;
+import kr.wisestone.owl.domain.UserDepartment;
+import kr.wisestone.owl.exception.OwlRuntimeException;
+import kr.wisestone.owl.repository.UserDepartmentRepository;
+import kr.wisestone.owl.service.DepartmentService;
+import kr.wisestone.owl.service.UserDepartmentService;
+import kr.wisestone.owl.util.ConvertUtil;
+import kr.wisestone.owl.vo.*;
+import kr.wisestone.owl.web.condition.DepartmentCondition;
+import kr.wisestone.owl.web.condition.UserCondition;
+import kr.wisestone.owl.web.condition.UserDepartmentCondition;
+import kr.wisestone.owl.web.form.UserDepartmentForm;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Service;
+
+import java.util.AbstractList;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class UserDepartmentServiceImpl extends AbstractServiceImpl<UserDepartment, Long, JpaRepository<UserDepartment, Long>> implements UserDepartmentService {
+
+    @Autowired
+    private UserDepartmentRepository userDepartmentRepository;
+
+    @Autowired
+    private DepartmentService departmentService;
+
+    @Override
+    protected JpaRepository<UserDepartment, Long> getRepository() {
+        return this.userDepartmentRepository;
+    }
+
+    @Override
+    public void userDepartmentDetail(Map<String, Object> resJsonData, UserCondition userCondition) {
+        if (userCondition != null) {
+//            List<UserDepartment> userDepartments = this.userDepartmentService.getUserDepartments(userId);
+//            DepartmentCondition condition = new DepartmentCondition();
+//
+//            List<Long> list = Lists.newArrayList();
+//            for (UserDepartment userDepartment : userDepartments) {
+//                list.add(userDepartment.getDepartmentId());
+//            }
+//            condition.setDepartmentIds(list);
+            List<Map<String, Object>> results = this.departmentService.findByDepartmentIds(userCondition);
+            resJsonData.put(Constants.RES_KEY_CONTENTS, this.makeDepartmentVos(results));
+
+//            for (UserDepartment userDepartment : userDepartments) {
+//                Department department = this.departmentService.findOne(userDepartment.getDepartmentId());
+//                departmentVos.add(ConvertUtil.copyProperties(department, DepartmentVo.class));
+//            }
+//            departmentVos = ConvertUtil.convertObjectsToClasses(userDepartments, DepartmentVo.class);
+        }
+    }
+    private List<DepartmentVo> makeDepartmentVos(List<Map<String, Object>> results) {
+        List<DepartmentVo> departmentVos = Lists.newArrayList();
+
+        for (Map<String, Object> result : results) {
+            DepartmentVo departmentVo = ConvertUtil.convertMapToClass(result, DepartmentVo.class);
+            departmentVo.setByName(departmentVo.getDepartmentName());
+            departmentVos.add(departmentVo);
+        }
+
+        return departmentVos;
+    }
+
+    @Override
+    public void userDepartmentModify(UserDepartmentForm userDepartmentForm) {
+        UserDepartment userDepartment = ConvertUtil.copyProperties(userDepartmentForm, UserDepartment.class);
+        userDepartmentRepository.saveAndFlush(userDepartment);
+    }
+
+    // �궗�슜�옄 遺��꽌 ID濡� 議고쉶�븳�떎.
+//    @Override
+//    public List<DepartmentVo> getUserDepartments (Long id) {
+//        if (id == null) {
+//            throw new OwlRuntimeException(
+//                    this.messageAccessor.getMessage(MsgConstants.DEPARTMENT_NOT_EXIST));
+//        }
+//
+//        List<DepartmentVo> userDepartments = this.userDepartmentRepository.findByUserId(id);
+//
+//        if (userDepartments == null) {
+//            throw new OwlRuntimeException(
+//                    this.messageAccessor.getMessage(MsgConstants.DEPARTMENT_NOT_EXIST));
+//        }
+//
+//        return userDepartments;
+//    }
+}
diff --git a/src/main/java/kr/wisestone/owl/web/condition/UserDepartmentCondition.java b/src/main/java/kr/wisestone/owl/web/condition/UserDepartmentCondition.java
new file mode 100644
index 0000000..0c51ded
--- /dev/null
+++ b/src/main/java/kr/wisestone/owl/web/condition/UserDepartmentCondition.java
@@ -0,0 +1,51 @@
+package kr.wisestone.owl.web.condition;
+
+import kr.wisestone.owl.util.ConvertUtil;
+
+import java.util.Map;
+
+/**
+ * Created by jeong on 2018-01-01.
+ */
+public class UserDepartmentCondition {
+    private Long id;
+    private Long departmentId;
+    private Long userId;
+    private Long departmentCount;
+
+    public static UserDepartmentCondition make(Map<String, Object> userDepartmentConditions) {
+        return ConvertUtil.convertMapToClass(userDepartmentConditions, UserDepartmentCondition.class);
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getDepartmentId() {
+        return departmentId;
+    }
+
+    public void setDepartmentId(Long departmentId) {
+        this.departmentId = departmentId;
+    }
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public Long getDepartmentCount() {
+        return departmentCount;
+    }
+
+    public void setDepartmentCount(Long departmentCount) {
+        this.departmentCount = departmentCount;
+    }
+}

--
Gitblit v1.8.0