package kr.wisestone.owl.service.impl; import kr.wisestone.owl.constant.Constants; import kr.wisestone.owl.constant.MngPermission; import kr.wisestone.owl.constant.MsgConstants; import kr.wisestone.owl.domain.User; import kr.wisestone.owl.domain.UserWorkspace; import kr.wisestone.owl.domain.Workspace; import kr.wisestone.owl.exception.OwlRuntimeException; import kr.wisestone.owl.mapper.UserWorkspaceMapper; import kr.wisestone.owl.repository.UserRepository; import kr.wisestone.owl.repository.UserWorkspaceRepository; import kr.wisestone.owl.service.UserService; import kr.wisestone.owl.service.ManageUserService; import kr.wisestone.owl.service.WorkspaceService; import kr.wisestone.owl.util.CommonUtil; import kr.wisestone.owl.util.ConvertUtil; import kr.wisestone.owl.util.SecurityUtils; import kr.wisestone.owl.vo.ResPage; import kr.wisestone.owl.vo.ManageUserVo; import kr.wisestone.owl.web.condition.UserWorkspaceCondition; import kr.wisestone.owl.web.form.ManageUserForm; import kr.wisestone.owl.web.form.UserWorkspaceForm; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.messaging.simp.SimpMessagingTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; import java.util.List; import java.util.Map; @Service public class ManageUserServiceImpl extends AbstractServiceImpl> implements ManageUserService { private static final Logger log = LoggerFactory.getLogger(ManageUserServiceImpl.class); @Autowired private UserRepository userRepository; @Autowired private UserWorkspaceRepository userWorkspaceRepository; @Autowired private UserService userService; @Autowired private UserWorkspaceMapper userWorkspaceMapper; @Autowired private WorkspaceService workspaceService; @Override protected JpaRepository getRepository() { return this.userWorkspaceRepository; } // 업무 공간에 참여/참여대기 하는 전체 사용자 목록을 조회한다. @Override @Transactional(readOnly = true) public List findUserPermission(Map resJsonData, UserWorkspaceCondition condition, Pageable pageable) { // 업무 공간를 가져온다. Workspace primaryWorkspace = this.workspaceService.getPrimaryWorkspace(); condition.setPage(pageable.getPageNumber() * pageable.getPageSize()); condition.setPageSize(pageable.getPageSize()); condition.setWorkspaceId(primaryWorkspace.getId()); condition.setAccount(CommonUtil.encryptAES128(condition.getAccount())); List> results = this.userWorkspaceMapper.find(condition); Long totalCount = this.userWorkspaceMapper.count(condition); int totalPage = (int) Math.ceil((totalCount - 1) / pageable.getPageSize()) + 1; List manageUserVos = ConvertUtil.convertListToListClass(results, ManageUserVo.class); for (ManageUserVo manageUserVo : manageUserVos) { manageUserVo.setAccount(CommonUtil.decryptAES128(manageUserVo.getAccount())); manageUserVo.setPermission(manageUserVo.getPermission()); } resJsonData.put(Constants.REQ_KEY_PAGE_VO, new ResPage(pageable.getPageNumber(), pageable.getPageSize(), totalPage, totalCount)); resJsonData.put(Constants.RES_KEY_CONTENTS, manageUserVos); return manageUserVos; } // 업무 공간에 연결된 사용자의 참여 상태를 변경한다. @Override @Transactional public void modifyUserPermission(ManageUserForm manageUserForm) { int newPermission = MngPermission.USER_PERMISSION_MNG_NONE; newPermission |= MngPermission.makePermission(manageUserForm.getPermPartnerSetting(), MngPermission.USER_PERMISSION_MNG_PARTNER); newPermission |= MngPermission.makePermission(manageUserForm.getPermWorkSpaceSetting(), MngPermission.USER_PERMISSION_MNG_WORKSPACE); newPermission |= MngPermission.makePermission(manageUserForm.getPermProjectSetting(), MngPermission.USER_PERMISSION_MNG_PROJECT); newPermission |= MngPermission.makePermission(manageUserForm.getPermIssueSetting(), MngPermission.USER_PERMISSION_MNG_ISSUE_SETTING); newPermission |= MngPermission.makePermission(manageUserForm.getPermApi(), MngPermission.USER_PERMISSION_MNG_API); newPermission |= MngPermission.makePermission(manageUserForm.getPermNotice(), MngPermission.USER_PERMISSION_MNG_NOTICE); newPermission |= MngPermission.makePermission(manageUserForm.getPermFAQ(), MngPermission.USER_PERMISSION_MNG_FAQ); newPermission |= MngPermission.makePermission(manageUserForm.getPermQnA(), MngPermission.USER_PERMISSION_MNG_QNA); newPermission |= MngPermission.makePermission(manageUserForm.getPermEvent(), MngPermission.USER_PERMISSION_MNG_EVENT); newPermission |= MngPermission.makePermission(manageUserForm.getPermGuide(), MngPermission.USER_PERMISSION_MNG_GUIDE); User user = userService.getUser(manageUserForm.getUserId()); /* user.setPermission(newPermission);*/ this.userRepository.saveAndFlush(user); } }