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<UserWorkspace, Long, JpaRepository<UserWorkspace, Long>> 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<UserWorkspace, Long> getRepository() {
|
return this.userWorkspaceRepository;
|
}
|
|
// 업무 공간에 참여/참여대기 하는 전체 사용자 목록을 조회한다.
|
@Override
|
@Transactional(readOnly = true)
|
public List<ManageUserVo> findUserPermission(Map<String, Object> 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<Map<String, Object>> results = this.userWorkspaceMapper.find(condition);
|
Long totalCount = this.userWorkspaceMapper.count(condition);
|
int totalPage = (int) Math.ceil((totalCount - 1) / pageable.getPageSize()) + 1;
|
List<ManageUserVo> 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.getPermAllIssueAndProjectSetting(), MngPermission.USER_PERMISSION_MNG_ISSUE_PROJECT_ALL);
|
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);
|
}
|
}
|