OWL ITS + 탐지시스템(인터넷 진흥원)
wyu
2021-11-11 9f7091d2bf6e1353e3e747f3db49a0b933c2bd1d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
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.*;
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.*;
 
@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) {
        Long userId = userDepartmentForm.getUserId();
 
        // 기존 데이터 삭제
        this.userDepartmentRepository.removeByUserId(userId);
 
        // 새로운 데이터 추가
        List<UserDepartment> list = Lists.newArrayList();
        for (Long departmentId : userDepartmentForm.getIds()){
            UserDepartment userDepartment = new UserDepartment();
            userDepartment.setUserId(userId);
            userDepartment.setDepartmentId(departmentId);
 
            list.add(userDepartment);
        }
 
        this.userDepartmentRepository.saveAll(list);
    }
 
 
    // 사용자 부서 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;
//    }
}