From 3c54a4671cf489fd2c32e24685338bc3590e8d4b Mon Sep 17 00:00:00 2001
From: minhee <alsdldlfrl@gmail.com>
Date: 화, 15 3월 2022 17:34:41 +0900
Subject: [PATCH] - api로 이슈 추가 시 사용자정의필드 타입으로 체크 => 정규식표현검사로 체크로 변경

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java |   62 ++++++++++++++++++++++++++++--
 1 files changed, 57 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 e4eb244..0c6dee8 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -48,6 +48,7 @@
 import java.io.IOException;
 import java.text.ParseException;
 import java.util.*;
+import java.util.regex.Pattern;
 
 import static kr.wisestone.owl.domain.enumType.CustomFieldType.*;
 
@@ -364,7 +365,7 @@
                     } else {
                         urls.add(useValue);
                     }
-                    condition.setUrl(urls);
+                    condition.setUrls(urls);
                     companyFields = this.companyFieldService.find(condition);
 
                     if(companyFields != null && companyFields.size() > 0) {
@@ -485,6 +486,38 @@
         return null;
     }
 
+    /**
+     * url �젙洹쒖떇 �몴�쁽
+     * @param url String
+     */
+    private boolean verifyUrl(String url) {
+        boolean urlChk = false;
+        if (!StringUtils.isEmpty(url)) {
+            String reg = "^((http|https)://)?(www.)?([a-zA-Z0-9]+)\\.[a-z]+([a-zA-z0-9.?#]+)?";
+            if(Pattern.matches(reg, url)) {
+                urlChk = true;
+            }
+        }
+        return urlChk;
+    }
+
+    /**
+     * ip �젙洹쒖떇 �몴�쁽
+     * @param ip String
+     * @return boolean
+     */
+    private boolean verifyIp(String ip) {
+        boolean ipChk = false;
+        if (!StringUtils.isEmpty(ip)) {
+            if (Pattern.matches("^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\" +
+                    ".(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$", ip)) {
+                ipChk = true;
+            }
+        }
+
+        return ipChk;
+    }
+
     // 以묐났�맂 �긽�쐞 �씠�뒋 寃��깋
     private List<Issue> findIssue(IssueApiForm issueApiform, IssueForm issueForm, List<CustomFieldApiOverlap> customFieldApiOverlaps, Long userId) {
         List<IssueCustomFieldValueForm> issueCustomFieldValueForms = issueApiform.getIssueCustomFieldValues();
@@ -518,7 +551,7 @@
                             useValue = useValue.replace(" ","");
                         }
 
-                        if (customFieldApiOverlap.getCustomField().getCustomFieldType().equals(IP_ADDRESS)) {
+                        if (this.verifyIp(useValue)) {
                             long ip = ConvertUtil.ipToLong(useValue);
                             customFieldType = IP_ADDRESS.toString();
                             if (cntIp == 0){
@@ -527,7 +560,24 @@
                             cntIp ++;
                         }
 
-                        if(customFieldApiOverlap.getCustomField().getCustomFieldType().equals(SITE)) {
+                        if (this.verifyUrl(useValue)) {
+                            customFieldType = SITE.toString();
+                            if (cntSite == 0) {
+                                condition.setUrl(useValue);
+                            }
+                            cntSite ++;
+                        }
+
+                        /*if (customFieldApiOverlap.getCustomField().getCustomFieldType().equals(IP_ADDRESS)) {
+                            long ip = ConvertUtil.ipToLong(useValue);
+                            customFieldType = IP_ADDRESS.toString();
+                            if (cntIp == 0){
+                                condition.setIp(ip);
+                            }
+                            cntIp ++;
+                        }*/
+
+                        /*if(customFieldApiOverlap.getCustomField().getCustomFieldType().equals(SITE)) {
                             customFieldType = SITE.toString();
                             String[] urlArr = null;
                             List<String> urls = Lists.newArrayList();
@@ -541,7 +591,7 @@
                                 condition.setUrl(urls);
                             }
                             cntSite ++;
-                        }
+                        }*/
 
                         if (useIdx > 0) {
                             concatUseValue = concatUseValue.concat(comma);
@@ -553,7 +603,9 @@
             }
 
             // 異붽� �븷 url or ip�뿉 �룷�븿�릺�뼱�엳�뒗 �뙆�듃�꼫 李얘린
-            this.findPartner(condition, issueCompanyFields, issueIspFields, issueHostingFields);
+            if ((condition.getIp() > 0) || (condition.getUrl() != null && !condition.getUrl().equals(""))) {
+                this.findPartner(condition, issueCompanyFields, issueIspFields, issueHostingFields);
+            }
 
             issueForm.setIssueCompanyFields(issueCompanyFields);
             issueForm.setIssueIspFields(issueIspFields);

--
Gitblit v1.8.0