From d3d9848c0833a0835eb2fac8345c0e406e066535 Mon Sep 17 00:00:00 2001 From: 박지현 <jhpark@maprex.co.kr> Date: 금, 11 3월 2022 15:50:43 +0900 Subject: [PATCH] 이슈 상세페이지 - 하위이슈: 완료이슈 숨기기 기능 추가 --- src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java | 47 ++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 42 insertions(+), 5 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java index de46104..bdbb163 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java @@ -493,6 +493,7 @@ if (issueCustomFieldValueForms.size() > 0) { String concatUseValue = ""; + String customFieldType = ""; int useIdx = 0; int cntIp = 0; int cntSite = 0; @@ -519,6 +520,7 @@ if (customFieldApiOverlap.getCustomField().getCustomFieldType().equals(IP_ADDRESS)) { long ip = ConvertUtil.ipToLong(useValue); + customFieldType = IP_ADDRESS.toString(); if (cntIp == 0){ condition.setIp(ip); } @@ -560,8 +562,26 @@ issueCustomFieldValueCondition.setUseValue(concatUseValue); issueCustomFieldValueCondition.setUseValues(userValues); issueCustomFieldValueCondition.setIssueTypeId(issueApiform.getIssueTypeId()); + issueCustomFieldValueCondition.setCustomFieldType(customFieldType); // issueCustomFieldValueCondition.setIssueStatusType("CLOSE"); - List<Map<String, Object>> results = this.issueMapper.findByCustomFieldValue(issueCustomFieldValueCondition); + List<Map<String, Object>> results = Lists.newArrayList(); + if (customFieldType.equals(IP_ADDRESS.toString()) && issueForm.getIssueCompanyFields() != null && issueForm.getIssueCompanyFields().size() > 0) { + long ipValue = 0; + if (concatUseValue.contains(",")) { + String[] arr = concatUseValue.split(","); + for (String str : arr) { + ipValue = ConvertUtil.ipToLong(str); + } + } else { + ipValue = ConvertUtil.ipToLong(concatUseValue); + } + issueCustomFieldValueCondition.setUseValue(String.valueOf(ipValue)); + // �븯�쐞�씠�뒋議곌굔�쓽 ���엯�씠 IP�씪 寃쎌슦 媛숈� �뾽泥댁젙蹂댁씤 �씠�뒋 李얘린 + results = this.issueMapper.findByCustomFieldValueOfIp(issueCustomFieldValueCondition); + } else { + results = this.issueMapper.findByCustomFieldValue(issueCustomFieldValueCondition); + } + if (results != null && results.size() > 0) { for (Map<String, Object> result : results) { resultIssueVos.add(this.getIssue(MapUtil.getLong(result, "id"))); @@ -1641,6 +1661,7 @@ IssueVo issueVo = new IssueVo(); Pageable relPageable = issueCondition.getRelPageable(); Pageable downPageable = issueCondition.getDownPageable(); + boolean hideCompleteIssue = issueCondition.getHideCompleteIssue(); if (issueCondition.getId() != null) { Issue issue = this.getIssue(issueCondition.getId()); @@ -1672,11 +1693,11 @@ this.setAttachedFiles(issue, issueVo); // 泥⑤� �뙆�씪 �젙蹂� �뀑�똿 this.setIssueCustomFields(issue, issueVo); // �궗�슜�옄 �젙�쓽 �븘�뱶 媛� �젙蹂� �뀑�똿 this.setRelationIssue(issue, issueVo); //�뿰愿� �씪媛� �뀑�똿 - this.setDownIssues(issue, issueVo); //�븯�쐞 �씠�뒋 �꽭�똿 + this.setDownIssues(issue, issueVo, hideCompleteIssue); //�븯�쐞 �씠�뒋 �꽭�똿 break; case "02": // �봽濡쒖젥�듃, �씠�뒋 �쑀�삎, �씠�뒋 �긽�깭, �슦�꽑�닚�쐞, 以묒슂�룄, �떞�떦�옄, 泥⑤��뙆�씪, �궗�슜�옄 �젙�쓽 �븘�뱶 �젙蹂�, �뙎湲�, 湲곕줉�쓣 �뀑�똿�븳�떎. - this.setIssueDetail(issueVo, issue, user); // �씠�뒋 �긽�꽭 �젙蹂대�� �뀑�똿�븳�떎. + this.setIssueDetail(issueVo, issue, user, hideCompleteIssue); // �씠�뒋 �긽�꽭 �젙蹂대�� �뀑�똿�븳�떎. this.setIssueTableConfigs(issue, issueVo, issueCondition); issueVo.setProjectVo(ConvertUtil.copyProperties(issue.getProject(), ProjectVo.class)); break; @@ -1711,6 +1732,10 @@ // �븯�쐞 �씠�뒋 �젙蹂대�� �뀑�똿�븳�떎 private void setDownIssues(Issue issue, IssueVo issueVo) { + setDownIssues(issue, issueVo, false); + } + + private void setDownIssues(Issue issue, IssueVo issueVo, boolean hideCompleteIssue) { Page<Issue> downIssues = null; List<Issue> downIssueList = this.issueRepository.findByParentIssueId(issue.getId()); @@ -1720,7 +1745,13 @@ startPage = (int) Math.floor(issueVo.getDownPage()/issueVo.getDownPageSize()); } Pageable pageable = PageRequest.of(startPage, issueVo.getDownPageSize()); - downIssues = this.issueRepository.findByParentIssueId(issue.getId(), pageable); + + if(hideCompleteIssue){ + downIssues = this.issueRepository.findByParentIssueId(issue.getId(), IssueStatusType.CLOSE, pageable); + }else { + downIssues = this.issueRepository.findByParentIssueId(issue.getId(), pageable); + } + } if(downIssues != null){ issueVo.setDownTotalPage(downIssues.getTotalPages()); @@ -1758,6 +1789,12 @@ @Override @Transactional(readOnly = true) public void setIssueDetail(IssueVo issueVo, Issue issue, User user) { + setIssueDetail(issueVo, issue, user, false); + } + + @Override + @Transactional(readOnly = true) + public void setIssueDetail(IssueVo issueVo, Issue issue, User user, boolean hideCompleteIssue) { // �씠�뒋 �닔�젙 沅뚰븳�쓣 媛뽮퀬 �엳�뒗吏� �솗�씤 if (this.checkHasPermission(issueVo, issueVo.getUserVos(), user, issueVo.getDepartmentVos())) { issueVo.setModifyPermissionCheck(Boolean.TRUE); @@ -1776,7 +1813,7 @@ this.setAttachedFiles(issue, issueVo); // 泥⑤� �뙆�씪 �젙蹂� �뀑�똿 this.setIssueCustomFields(issue, issueVo); // �궗�슜�옄 �젙�쓽 �븘�뱶 媛� �젙蹂� �뀑�똿 this.setRelationIssue(issue, issueVo); //�뿰愿� �씪媛� �뀑�똿 - this.setDownIssues(issue, issueVo); //�븯�쐞 �씪媛� �꽭�똿 + this.setDownIssues(issue, issueVo, hideCompleteIssue); //�븯�쐞 �씪媛� �꽭�똿 this.setIssueComments(issue, issueVo); // �뙎湲� �젙蹂� �뀑�똿 this.setIssueHistory(issue, issueVo); // �씠�뒋 湲곕줉 �젙蹂� �뀑�똿 -- Gitblit v1.8.0