From c5ce099b314be4b296137415a146c610095ae92e Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 금, 11 3월 2022 13:54:09 +0900
Subject: [PATCH] - api로 이슈 추가 시 하위이슈기준이 2개 일 경우 코드 수정 - 업체 추가/수정 시 ip대역대 중복 체크 - 이슈 추가/수정 시 ip대역대 수정불가

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java |   45 +++++++++++++++++++++++++++++++++++----------
 1 files changed, 35 insertions(+), 10 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 058e7b7..6cd7ff7 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -459,10 +459,12 @@
             // 媛��긽 �긽�쐞 �씠�뒋 異붽�
             parentIssueForm.setUseIssueCustomFields(issueApiForm.getUseIssueCustomFieldIds());
             //  媛숈� �룄硫붿씤 �뾽泥� 李얘린
-            IssueForm partners = this.findCompanyField(parentIssueForm);
-            parentIssueForm.setIssueCompanyFields(partners.getIssueCompanyFields());
-            parentIssueForm.setIssueIspFields(partners.getIssueIspFields());
-            parentIssueForm.setIssueHostingFields(partners.getIssueHostingFields());
+            if (parentIssueForm.getIssueCompanyFields() == null) {
+                IssueForm partners = this.findCompanyField(parentIssueForm);
+                parentIssueForm.setIssueCompanyFields(partners.getIssueCompanyFields());
+                parentIssueForm.setIssueIspFields(partners.getIssueIspFields());
+                parentIssueForm.setIssueHostingFields(partners.getIssueHostingFields());
+            }
 
             Issue issue = addIssue(user, parentIssueForm, null);
             issues.add(issue);
@@ -491,6 +493,7 @@
 
         if (issueCustomFieldValueForms.size() > 0) {
             String concatUseValue = "";
+            String customFieldType = "";
             int useIdx = 0;
             int cntIp = 0;
             int cntSite = 0;
@@ -517,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);
                             }
@@ -558,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")));
@@ -2694,21 +2716,24 @@
                     this.messageAccessor.getMessage(MsgConstants.ISSUE_REMOVE_NOT_SELECT));
         }
 
-        List<Issue> removeIssues = Lists.newArrayList();
+        Set<Long> removeIds = new HashSet<>();
 
         for (Long issueId : issueForm.getRemoveIds()) {
+            removeIds.add(issueId);
             //�븯�쐞�씠�뒋 泥댄겕
             List<Issue> downIssues = this.issueRepository.findByParentIssueId(issueId);
             if(downIssues != null && downIssues.size() > 0){
                 for(Issue downIssue : downIssues){
                     Long downIssueId = downIssue.getId();
-                    downIssue = this.issueRemoves(downIssueId, user);
-                    removeIssues.add(downIssue);
+                    removeIds.add(downIssueId);
                 }
             }
-            Issue issue = this.issueRemoves(issueId, user);
-            removeIssues.add(issue);
         }
+
+        for (Long removeId : removeIds) {
+            this.issueRemoves(removeId, user);
+        }
+
         //  �궗�슜�옄 �떆�뒪�뀥 湲곕뒫 �궗�슜 �젙蹂� �닔吏�
         log.info(ElasticSearchUtil.makeUserActiveHistoryMessage(this.webAppUtil.getLoginUser(), ElasticSearchConstants.ISSUE_REMOVE));
     }

--
Gitblit v1.8.0