From bdb1efdc604fce543e21152b4263a9362f64389f Mon Sep 17 00:00:00 2001
From: minhee <alsdldlfrl@gmail.com>
Date: 목, 10 3월 2022 15:35:19 +0900
Subject: [PATCH] - api 이슈 추가 시 입력한 ip에 속해있는 업체정보를 가진 이슈의 하위로 입력되도록 수정 - issue_company 테이블에 ip 컬럼 추가 및 이슈 추가/수정 시 ip 대역대 항목 추가

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java |   37 +++++++++++++++++++++++++++----------
 1 files changed, 27 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..11bdddd 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,18 @@
             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 = 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 +2708,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