| | |
| | | package kr.wisestone.owl.service.impl; |
| | | |
| | | import kr.wisestone.owl.constant.Constants; |
| | | import kr.wisestone.owl.domain.Issue; |
| | | import kr.wisestone.owl.domain.IssueTableConfig; |
| | | import kr.wisestone.owl.domain.User; |
| | | import kr.wisestone.owl.domain.Workspace; |
| | | import kr.wisestone.owl.domain.*; |
| | | import kr.wisestone.owl.repository.IssueTableConfigRepository; |
| | | import kr.wisestone.owl.service.IssueService; |
| | | import kr.wisestone.owl.service.IssueTableConfigService; |
| | | import kr.wisestone.owl.service.UserService; |
| | | import kr.wisestone.owl.service.WorkspaceService; |
| | | import kr.wisestone.owl.util.ConvertUtil; |
| | | import kr.wisestone.owl.util.MapUtil; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @Service |
| | |
| | | @Autowired |
| | | private UserService userService; |
| | | |
| | | @Autowired |
| | | private IssueService issueService; |
| | | |
| | | @Override |
| | | protected JpaRepository<IssueTableConfig, Long> getRepository() { |
| | | return this.issueTableConfigRepository; |
| | | } |
| | | |
| | | @Override |
| | | public void multipleCode() { |
| | | |
| | | } |
| | | Long issueId; |
| | | Long issueTypeId; |
| | | int issueTableType = 0; //issueTableType 초기값 설정 |
| | | |
| | | // add 중복코드 제거 |
| | | public IssueTableConfig addIssueTableConfig(Map<String, Object> params, Long issueTypeId, int issueTableType) { |
| | | String issueTableConfigs = MapUtil.getString(params, "issueTableConfigs"); |
| | | IssueTableConfig issueTableConfig = this.findByUserIdAndWorkspaceIdAndIssueTypeIdAndIssueTableType(issueTypeId, issueTableType); |
| | | |
| | | // 아직 테이블 컬럼 설정을 하지 않았을 경우 |
| | | if (issueTableConfig == null) { |
| | | issueTableConfig = new IssueTableConfig(); |
| | | Workspace workspace = this.workspaceService.getWorkspace(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId()); |
| | | User user = this.userService.getUser(this.webAppUtil.getLoginId()); |
| | | issueTableConfig.setWorkspace(workspace); |
| | | issueTableConfig.setUser(user); |
| | | issueTableConfig.setIssueTypeId(issueTypeId); |
| | | issueTableConfig.setIssueTableType(issueTableType); |
| | | issueTableConfig.setIssueTableConfigs(issueTableConfigs); |
| | | }else { |
| | | issueTableConfig.setIssueTableConfigs(issueTableConfigs); |
| | | } |
| | | return this.issueTableConfigRepository.saveAndFlush(issueTableConfig); |
| | | } |
| | | |
| | | // 이슈 테이블 컬럼 설정 정보를 저장한다. |
| | | @Override |
| | | @Transactional |
| | | public IssueTableConfig addIssueTableConfig(Map<String, Object> params) { |
| | | String issueTableConfigs = MapUtil.getString(params, "issueTableConfigs"); |
| | | issueId = (long) -1; |
| | | issueTableType = 1; |
| | | |
| | | // 해당 업무 공간에서 사용자의 이슈 목록 테이블 컬럼 설정을 조회한다. |
| | | IssueTableConfig saveIssueTableConfig = this.findByUserIdAndWorkspaceId(); |
| | | IssueTableConfig saveIssueTableType = this.findByIssueIdAndIssueTableType(issueId,issueTableType); |
| | | // 아직 테이블 컬럼 설정을 하지 않았을 경우 |
| | | if (saveIssueTableConfig == null && saveIssueTableType == null) { |
| | | IssueTableConfig issueTableConfig = new IssueTableConfig(); |
| | | Workspace workspace = this.workspaceService.getWorkspace(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId()); |
| | | User user = this.userService.getUser(this.webAppUtil.getLoginId()); |
| | | Issue issue = this.issueService.getIssue(issueId); |
| | | issueTableConfig.setWorkspace(workspace); |
| | | issueTableConfig.setUser(user); |
| | | issueTableConfig.setIssue(issue); |
| | | issueTableConfig.setIssueTableType(issueTableType); |
| | | issueTableConfig.setIssueTableConfigs(issueTableConfigs); |
| | | return this.issueTableConfigRepository.saveAndFlush(issueTableConfig); |
| | | } |
| | | else { |
| | | saveIssueTableConfig.setIssueTableConfigs(issueTableConfigs); |
| | | return this.issueTableConfigRepository.saveAndFlush(saveIssueTableConfig); |
| | | } |
| | | issueTypeId = MapUtil.getLong(params, "issueTypeId"); |
| | | issueTableType = 1; //메인 |
| | | return this.addIssueTableConfig(params, issueTypeId, issueTableType); |
| | | } |
| | | |
| | | // 연관 이슈 테이블 설정 정보 저장 |
| | | @Override |
| | | public IssueTableConfig addRelationIssueTableConfig(Map<String, Object> params) { |
| | | String issueTableConfigs = MapUtil.getString(params, "issueTableConfigs"); |
| | | |
| | | issueId = MapUtil.getLong(params, "issueId"); |
| | | issueTableType = 2; |
| | | // 해당 업무 공간에서 사용자의 이슈 목록 테이블 컬럼 설정을 조회한다. |
| | | IssueTableConfig saveIssueTableConfig = this.findByUserIdAndWorkspaceId(); |
| | | IssueTableConfig saveIssueTableType = this.findByIssueIdAndIssueTableType(issueId,issueTableType); |
| | | |
| | | // 아직 테이블 컬럼 설정을 하지 않았을 경우 |
| | | if (saveIssueTableConfig == null && saveIssueTableType == null) { |
| | | IssueTableConfig issueTableConfig = new IssueTableConfig(); |
| | | Workspace workspace = this.workspaceService.getWorkspace(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId()); |
| | | User user = this.userService.getUser(this.webAppUtil.getLoginId()); |
| | | Issue issue = this.issueService.getIssue(issueId); |
| | | issueTableConfig.setWorkspace(workspace); |
| | | issueTableConfig.setUser(user); |
| | | issueTableConfig.setIssue(issue); |
| | | issueTableConfig.setIssueTableType(issueTableType); |
| | | issueTableConfig.setIssueTableConfigs(issueTableConfigs); |
| | | return this.issueTableConfigRepository.saveAndFlush(issueTableConfig); |
| | | }else { |
| | | saveIssueTableConfig.setIssueTableConfigs(issueTableConfigs); |
| | | return this.issueTableConfigRepository.saveAndFlush(saveIssueTableConfig); |
| | | } |
| | | issueTypeId = MapUtil.getLong(params, "issueTypeId"); |
| | | issueTableType = 2; //연관 |
| | | return this.addIssueTableConfig(params, issueTypeId, issueTableType); |
| | | } |
| | | |
| | | // 하위 이슈 테이블 설정 정보 저장 |
| | | @Override |
| | | public IssueTableConfig addDownIssueTableConfig(Map<String, Object> params) { |
| | | String issueTableConfigs = MapUtil.getString(params, "issueTableConfigs"); |
| | | |
| | | issueId = MapUtil.getLong(params, "issueId"); |
| | | issueTableType = 3; |
| | | // 해당 업무 공간에서 사용자의 이슈 목록 테이블 컬럼 설정을 조회한다. |
| | | IssueTableConfig saveIssueTableConfig = this.findByUserIdAndWorkspaceId(); |
| | | IssueTableConfig saveIssueTableType = this.findByIssueIdAndIssueTableType(issueId,issueTableType); |
| | | |
| | | // 아직 테이블 컬럼 설정을 하지 않았을 경우 |
| | | if (saveIssueTableConfig == null && saveIssueTableType == null) { |
| | | IssueTableConfig issueTableConfig = new IssueTableConfig(); |
| | | Workspace workspace = this.workspaceService.getWorkspace(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId()); |
| | | User user = this.userService.getUser(this.webAppUtil.getLoginId()); |
| | | Issue issue = this.issueService.getIssue(issueId); |
| | | issueTableConfig.setWorkspace(workspace); |
| | | issueTableConfig.setUser(user); |
| | | issueTableConfig.setIssue(issue); |
| | | issueTableConfig.setIssueTableType(issueTableType); |
| | | issueTableConfig.setIssueTableConfigs(issueTableConfigs); |
| | | return this.issueTableConfigRepository.saveAndFlush(issueTableConfig); |
| | | }else { |
| | | saveIssueTableConfig.setIssueTableConfigs(issueTableConfigs); |
| | | return this.issueTableConfigRepository.saveAndFlush(saveIssueTableConfig); |
| | | } |
| | | issueTypeId = MapUtil.getLong(params, "issueTypeId"); |
| | | issueTableType = 3; //하위 |
| | | return this.addIssueTableConfig(params, issueTypeId, issueTableType); |
| | | } |
| | | |
| | | |
| | | // 해당 업무 공간에서 사용자의 이슈 테이블 설정을 조회한다. |
| | | @Override |
| | | @Transactional(readOnly = true) |
| | | public IssueTableConfig findByUserIdAndWorkspaceId() { |
| | | return this.issueTableConfigRepository.findByUserIdAndWorkspaceId(this.webAppUtil.getLoginId(), |
| | | this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId()); |
| | | public IssueTableConfig findByUserIdAndWorkspaceIdAndIssueTypeIdAndIssueTableType(Long issueTypeId, int issueTableType) { |
| | | List<IssueTableConfig> issueTableConfigList = this.issueTableConfigRepository.findByUserIdAndWorkspaceIdAndIssueTypeIdAndIssueTableType(this.webAppUtil.getLoginId(), |
| | | this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId(), issueTypeId, issueTableType); |
| | | |
| | | if (issueTableConfigList != null && issueTableConfigList.size() > 0) { |
| | | return issueTableConfigList.get(0); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | //이슈타입 Id와 IssueTableType 조회 |
| | | @Override |
| | | @Transactional(readOnly = true) |
| | | public IssueTableConfig findByIssueIdAndIssueTableType(Long issueId, int issueTableType) { |
| | | return this.issueTableConfigRepository.findByIssueIdAndIssueTableType(issueId, issueTableType); |
| | | public IssueTableConfig findByIssueTypeIdAndIssueTableType(Long issueTypeId, int issueTableType) { |
| | | List<IssueTableConfig> issueTableConfigs = this.issueTableConfigRepository.findByIssueTypeIdAndIssueTableType(issueTypeId, issueTableType); |
| | | if (issueTableConfigs != null && issueTableConfigs.size() > 0){ |
| | | return issueTableConfigs.get(0); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | // 저장된 이슈 테이블 설정을 조회한다. |
| | | @Override |
| | | @Transactional(readOnly = true) |
| | | public void detailIssueTableConfig(Map<String, Object> resJsonData) { |
| | | issueId = (long) -1; |
| | | issueTableType = 1; |
| | | // 해당 업무 공간에서 사용자의 이슈 검색 조건을 조회한다. |
| | | IssueTableConfig issueTableConfig = this.findByUserIdAndWorkspaceId(); |
| | | IssueTableConfig saveIssueTableType = this.findByIssueIdAndIssueTableType(issueId,issueTableType); |
| | | public void detailIssueTableConfig(Map<String, Object> params, Map<String, Object> resJsonData) { |
| | | Long issueTypeId = MapUtil.getLong(params,"issueTypeId"); |
| | | int issueTableType = MapUtil.getInteger(params,"issueTableType"); |
| | | |
| | | if (issueTableConfig != null && saveIssueTableType != null) { |
| | | IssueTableConfig issueTableConfig = this.findByUserIdAndWorkspaceIdAndIssueTypeIdAndIssueTableType(issueTypeId, issueTableType); |
| | | |
| | | if (issueTableConfig != null) { |
| | | resJsonData.put(Constants.RES_KEY_CONTENTS, issueTableConfig.getIssueTableConfigs()); |
| | | } |
| | | else { |
| | | resJsonData.put(Constants.RES_KEY_CONTENTS, ""); |
| | | } |
| | | } |
| | | |
| | | // 저장된 연관 이슈 테이블 설정 조회 |
| | | @Override |
| | | public void detailRelationIssueTableConfig(Long issueId, Map<String, Object> resJsonData) { |
| | | issueTableType = 2; |
| | | // 해당 업무 공간에서 사용자의 이슈 검색 조건을 조회한다. |
| | | IssueTableConfig issueTableConfig = this.findByUserIdAndWorkspaceId(); |
| | | IssueTableConfig saveIssueTableType = this.findByIssueIdAndIssueTableType(issueId,issueTableType); |
| | | |
| | | if (issueTableConfig != null && saveIssueTableType != null) { |
| | | resJsonData.put(Constants.RES_KEY_CONTENTS, issueTableConfig.getIssueTableConfigs()); |
| | | } |
| | | else { |
| | | resJsonData.put(Constants.RES_KEY_CONTENTS, ""); |
| | | } |
| | | } |
| | | |
| | | // 저장된 하위 이슈 테이블 설정 조회 |
| | | @Override |
| | | public void detailDownIssueTableConfig(Long issueId, Map<String, Object> resJsonData) { |
| | | issueTableType = 3; |
| | | // 해당 업무 공간에서 사용자의 이슈 검색 조건을 조회한다. |
| | | IssueTableConfig issueTableConfig = this.findByUserIdAndWorkspaceId(); |
| | | IssueTableConfig saveIssueTableType = this.findByIssueIdAndIssueTableType(issueId,issueTableType); |
| | | |
| | | if (issueTableConfig != null && saveIssueTableType != null) { |
| | | resJsonData.put(Constants.RES_KEY_CONTENTS, issueTableConfig.getIssueTableConfigs()); |
| | | } |
| | | else { |
| | | resJsonData.put(Constants.RES_KEY_CONTENTS, ""); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |