| | |
| | | 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.domain.*; |
| | | import kr.wisestone.owl.exception.OwlRuntimeException; |
| | | import kr.wisestone.owl.mapper.UserMapper; |
| | | import kr.wisestone.owl.repository.UserDepartmentRepository; |
| | | import kr.wisestone.owl.service.DepartmentService; |
| | | import kr.wisestone.owl.service.UserDepartmentService; |
| | | import kr.wisestone.owl.service.UserService; |
| | | import kr.wisestone.owl.util.ConvertUtil; |
| | | import kr.wisestone.owl.util.MapUtil; |
| | | 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.messaging.simp.SimpMessagingTemplate; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.AbstractList; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.*; |
| | | |
| | | @Service |
| | | public class UserDepartmentServiceImpl extends AbstractServiceImpl<UserDepartment, Long, JpaRepository<UserDepartment, Long>> implements UserDepartmentService { |
| | |
| | | |
| | | @Autowired |
| | | private DepartmentService departmentService; |
| | | |
| | | @Autowired |
| | | private UserService userService; |
| | | |
| | | @Autowired |
| | | private SimpMessagingTemplate simpMessagingTemplate; |
| | | |
| | | @Override |
| | | protected JpaRepository<UserDepartment, Long> getRepository() { |
| | |
| | | // departmentVos = ConvertUtil.convertObjectsToClasses(userDepartments, DepartmentVo.class); |
| | | } |
| | | } |
| | | |
| | | |
| | | private List<DepartmentVo> makeDepartmentVos(List<Map<String, Object>> results) { |
| | | List<DepartmentVo> departmentVos = Lists.newArrayList(); |
| | | |
| | |
| | | |
| | | @Override |
| | | public void userDepartmentModify(UserDepartmentForm userDepartmentForm) { |
| | | UserDepartment userDepartment = ConvertUtil.copyProperties(userDepartmentForm, UserDepartment.class); |
| | | userDepartmentRepository.saveAndFlush(userDepartment); |
| | | Long userId = userDepartmentForm.getUserId(); |
| | | User user = this.userService.getUser(userId); |
| | | |
| | | // 기존 데이터 삭제 |
| | | 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); |
| | | |
| | | // 부서 변경 된 유저 로그아웃 시키기 |
| | | this.simpMessagingTemplate.convertAndSendToUser(user.getAccount(), "/notification/changeUserDepartment", this.messageAccessor.getMessage(MsgConstants.USER_DEPARTMENT_CHANGE)); |
| | | // 세션 업데이트 |
| | | //SecurityUtils.setUserToSession(user); |
| | | } |
| | | |
| | | @Override |
| | | public List<UserDepartment> findByDepartmentId(Long id) { |
| | | return this.userDepartmentRepository.findByDepartmentId(id); |
| | | } |
| | | |
| | | @Override |
| | | public List<Department> findDepartment(Long userId) { |
| | | List<UserDepartment> userDepartments = this.userDepartmentRepository.findByUserId(userId); |
| | | if (userDepartments != null && userDepartments.size() > 0) { |
| | | |
| | | List<Department> departments = Lists.newArrayList(); |
| | | for (UserDepartment userDepartment : userDepartments) { |
| | | Department department = this.departmentService.getDepartment(userDepartment.getDepartmentId()); |
| | | departments.add(department); |
| | | } |
| | | return departments; |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | // 사용자 부서 ID로 조회한다. |