From ec9c7e5582d4c20c35e7c3016d64a2213e9f6a50 Mon Sep 17 00:00:00 2001
From: minhee <alsdldlfrl@gmail.com>
Date: 화, 15 3월 2022 12:12:17 +0900
Subject: [PATCH] - 파트너 엑셀 임포트 시 이메일 정규식표현 검사하는 코드 제거 - 이슈 상세페이지 setHideCompleteIssue null 체크 - api로 이슈 추가 시 이슈유형에 업체가 설정되어있지 않는경우 메시지 추가

---
 src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java |  143 ++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 126 insertions(+), 17 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java
index 6f5da98..ec738f8 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java
@@ -84,6 +84,11 @@
         //  �뾽泥대챸 以묐났 泥댄겕
         this.verifyTitle(companyFieldForm.getName(), null);
 
+        if (companyFieldForm.getIpStart() != null && companyFieldForm.getIpEnd() != null) {
+            //  �븘�씠�뵾 �쑀�슚�꽦 泥댄겕
+            this.verifyIp(companyFieldForm.getIpStart(), companyFieldForm.getIpEnd(), null);
+        }
+
         if (companyFieldForm.getUrl() != null) {
             //  url �쑀�슚�꽦 泥댄겕
             this.verifyUrl(companyFieldForm.getUrl(), null);
@@ -110,6 +115,49 @@
         return companyField;
     }
 
+    /**
+     * IP �쑀�슚�꽦 泥댄겕
+     * @param ip String
+     */
+    private void verifyIp(String ip, String ip2, Long id) {
+        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)) {
+                throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.IP_NOT_INVALID));
+            }
+        }
+        if (!StringUtils.isEmpty(ip2)) {
+            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]?)$", ip2)) {
+                throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.IP_NOT_INVALID));
+            }
+        }
+
+        if (!StringUtils.isEmpty(ip) && !StringUtils.isEmpty(ip2)) {
+            long ipStart = ConvertUtil.ipToLong(ip);
+            long ipEnd = ConvertUtil.ipToLong(ip2);
+            if (ipEnd < ipStart) {
+                throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.IP_START_NOT_LARGER_THAN_END));
+            }
+
+            List<CompanyField> companyFields = Lists.newArrayList();
+            CompanyFieldCondition condition = new CompanyFieldCondition();
+            condition.setIpStart(String.valueOf(ipStart));
+            condition.setIpEnd(String.valueOf(ipEnd));
+            if (id != null) {
+                condition.setId(id);
+                companyFields = this.companyFieldMapper.findByIpsAndIdNot(condition);
+            } else {
+                companyFields = this.companyFieldMapper.findByIps(condition);
+            }
+
+            //  IP���뿭�� 以묐났 泥댄겕
+            if (companyFields != null && companyFields.size() > 0) {
+                throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.COMPANY_EXIST_IP));
+            }
+        }
+    }
+
     //  url �쑀�슚�꽦 泥댄겕
     private void verifyUrl(String url, Long id) {
         /*if (StringUtils.isEmpty(url)) {
@@ -117,14 +165,33 @@
                     this.messageAccessor.getMessage(MsgConstants.COMPANY_NOT_URL));
         }*/
         if (!StringUtils.isEmpty(url)) {
-            CompanyField companyField;
-            if(id == null){
-                companyField = this.companyFieldRepository.findByUrl(url);
+            List<CompanyField> companyFieldList = Lists.newArrayList();
+            CompanyFieldCondition condition = new CompanyFieldCondition();
+            String[] urlArr = null;
+            List<String> urls = Lists.newArrayList();
+
+            if (url.contains(" ")) {
+                url = url.replace(" ","");
+            }
+            if (url.contains(",")) {
+                urlArr = url.split(",");
+                urls.addAll(Arrays.asList(urlArr));
             } else {
-                companyField = this.companyFieldRepository.findByUrlAndIdNot(url,id);
+                urls.add(url);
             }
 
-            if (companyField != null) {
+            if (urls.size() > 0) {
+                condition.setUrl(urls);
+
+                if(id == null){
+                    companyFieldList = this.companyFieldMapper.findByUrls(condition);
+                } else {
+                    condition.setId(id);
+                    companyFieldList = this.companyFieldMapper.findByUrlsAndIdNot(condition);
+                }
+            }
+
+            if (companyFieldList != null && companyFieldList.size() > 0) {
                 throw new OwlRuntimeException(
                         this.messageAccessor.getMessage(MsgConstants.COMPANY_USED_URL));
             }
@@ -230,6 +297,11 @@
         //  �뾽泥대챸 �쑀�슚�꽦 泥댄겕
         this.verifyTitle(companyFieldForm.getName(), companyFieldForm.getId());
 
+        if (companyFieldForm.getIpStart() != null && companyFieldForm.getIpEnd() != null) {
+            //  �븘�씠�뵾 �쑀�슚�꽦 泥댄겕
+            this.verifyIp(companyFieldForm.getIpStart(), companyFieldForm.getIpEnd(), companyFieldForm.getId());
+        }
+
         if (companyFieldForm.getUrl() != null) {
             //  url �쑀�슚�꽦 泥댄겕
             this.verifyUrl(companyFieldForm.getUrl(), companyFieldForm.getId());
@@ -286,6 +358,8 @@
         excelInfo.setFileName(this.messageAccessor.message("common.registerExcelCompanyField")); // �뿊��濡� �뾽泥� �벑濡앺븯湲�
         excelInfo.addAttrInfos(new ExportExcelAttrVo("id", this.messageAccessor.message("companyField.companyName"), 20, ExportExcelAttrVo.ALIGN_CENTER)); // �뾽泥대챸
         excelInfo.addAttrInfos(new ExportExcelAttrVo("id", this.messageAccessor.message("companyField.companyUrl"), 10, ExportExcelAttrVo.ALIGN_CENTER)); // url
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("id", this.messageAccessor.message("companyField.companyIpStart"), 10, ExportExcelAttrVo.ALIGN_CENTER)); // ip �떆�옉 二쇱냼
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("id", this.messageAccessor.message("companyField.companyIpEnd"), 10, ExportExcelAttrVo.ALIGN_CENTER)); // ip 醫낅즺 二쇱냼
         excelInfo.addAttrInfos(new ExportExcelAttrVo("id", this.messageAccessor.message("isp.ispName"), 20, ExportExcelAttrVo.ALIGN_CENTER)); // isp紐�
         excelInfo.addAttrInfos(new ExportExcelAttrVo("id", this.messageAccessor.message("Hosting.HostingName"), 20, ExportExcelAttrVo.ALIGN_CENTER)); // �샇�뒪�똿紐�
         excelInfo.addAttrInfos(new ExportExcelAttrVo("id", this.messageAccessor.message("companyField.companyTel"), 10, ExportExcelAttrVo.ALIGN_CENTER)); // �뿰�씫泥�
@@ -422,6 +496,8 @@
                 if (rowIndex > 1) {
                     //  �뾽泥대줈 �벑濡앺븯湲� �쐞�빐 CompanyFieldForm �뿉 �뜲�씠�꽣瑜� �뀑�똿�븳�떎.
                     CompanyFieldForm newCompanyFieldForm = this.setCompanyFieldFormToExcelField(row, (rowIndex + 1), ispFieldMaps, hostingFieldMaps, companyTypeMaps, parentSectorMaps, childSectorMaps, regionMaps, statusMaps, headers);
+                    //  ip �쑀�슚�꽦 泥댄겕
+                    this.verifyIp(newCompanyFieldForm.getIpStart(), newCompanyFieldForm.getIpEnd(), null);
 
                     companyFieldForms.add(newCompanyFieldForm);
                 }
@@ -526,63 +602,95 @@
                     break;
 
                 case 2:
+                    //  ip�떆�옉二쇱냼
+                    this.setCompanyFormIpStart(cellStr, companyFieldForm, isNull);
+                    break;
+
+                case 3:
+                    //  ip醫낅즺二쇱냼
+                    this.setCompanyFormIpEnd(cellStr, companyFieldForm, isNull);
+                    break;
+
+                case 4:
                     // isp紐�
                     this.setCompanyFormIspName(cellStr, ispFieldMaps, companyFieldForm, rowIndex, isNull);
                     break;
 
-                case 3:
+                case 5:
                     // �샇�뒪�똿紐�
                     this.setCompanyFormHostingName(cellStr, hostingFieldMaps, companyFieldForm, rowIndex, isNull);
                     break;
 
-                case 4:
+                case 6:
                     // �뿰�씫泥�
                     telTypeCheck(cell, rowIndex);
                     this.setCompanyFormTel(cellStr, companyFieldForm, isNull);
                     break;
 
-                case 5:
+                case 7:
                     // �씠硫붿씪
                     this.setCompanyFormEmail(cellStr, companyFieldForm, isNull);
                     break;
 
-                case 6:
+                case 8:
                     // �떞�떦�옄
                     this.setCompanyFormManager(cellStr, companyFieldForm, isNull);
                     break;
 
-                case 7:
+                case 9:
                     // 湲곗뾽援щ텇
                     this.setCompanyFormCompanyType(cellStr, companyTypeMaps, companyFieldForm, rowIndex, isNull);
                     break;
 
-                case 8:
+                case 10:
                     // �뾽醫�(��遺꾨쪟)
                     this.setCompanyFormParentSector(cellStr, parentSectorMaps, companyFieldForm, rowIndex, isNull);
                     break;
 
-                case 9:
+                case 11:
                     // �뾽醫�(以묐텇瑜�)
                     this.setCompanyFormChildSector(cellStr, childSectorMaps, companyFieldForm, rowIndex, isNull);
                     break;
 
-                case 10:
+                case 12:
                     // 吏��뿭
                     this.setCompanyFormRegion(cellStr, regionMaps, companyFieldForm, rowIndex, isNull);
                     break;
 
-                case 11:
+                case 13:
                     // �긽�깭
                     this.setCompanyFormStatus(cellStr, statusMaps, companyFieldForm, isNull);
                     break;
 
-                case 12:
+                case 14:
                     // 鍮꾧퀬
                     this.setCompanyFormMemo(cellStr, companyFieldForm, isNull);
             }
         }
 
         return companyFieldForm;
+    }
+
+    private void setCompanyFormIpEnd(String ipEnd, CompanyFieldForm companyFieldForm, boolean isNull) {
+        if (!isNull) {
+            if (ipEnd.contains(" ")) {
+                ipEnd = ipEnd.replace(" ", "");
+            }
+            this.verifyIp(ipEnd, null, null); //ip �쑀�슚�꽦 寃��궗
+
+            companyFieldForm.setIpEnd(ipEnd);
+        }
+    }
+
+    private void setCompanyFormIpStart(String ipStart, CompanyFieldForm companyFieldForm, boolean isNull) {
+        if (!isNull) {
+            if (ipStart.contains(" ")) {
+                ipStart = ipStart.replace(" ", "");
+            }
+            this.verifyIp(ipStart, null, null); //ip �쑀�슚�꽦 寃��궗
+
+            companyFieldForm.setIpStart(ipStart);
+        }
     }
 
     private void setCompanyFormMemo(String cellStr, CompanyFieldForm companyFieldForm, boolean isNull) {
@@ -676,9 +784,9 @@
      * @return String
      */
     private String verifyEmail(String email) {
-        if (!Pattern.matches("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$", email)) {
+        /*if (!Pattern.matches("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$", email)) {
             throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.EMAIL_NOT_INVALID));
-        }
+        }*/
 
         if (email.contains(" ")) {
             email = email.replace(" ", "");
@@ -823,6 +931,7 @@
         excelInfo.addAttrInfos(new ExportExcelAttrVo("tel", this.messageAccessor.message("companyField.companyTel"), 10, ExportExcelAttrVo.ALIGN_CENTER));
         excelInfo.addAttrInfos(new ExportExcelAttrVo("email", this.messageAccessor.message("companyField.companyEmail"), 10, ExportExcelAttrVo.ALIGN_CENTER));
         excelInfo.addAttrInfos(new ExportExcelAttrVo("url", this.messageAccessor.message("companyField.companyUrl"), 10, ExportExcelAttrVo.ALIGN_CENTER));
+        excelInfo.addAttrInfos(new ExportExcelAttrVo("ipRange", this.messageAccessor.message("companyField.companyIp"), 10, ExportExcelAttrVo.ALIGN_CENTER));
         excelInfo.addAttrInfos(new ExportExcelAttrVo("companyTypeName", this.messageAccessor.message("companyField.companyTypeName"), 10, ExportExcelAttrVo.ALIGN_CENTER));
         excelInfo.addAttrInfos(new ExportExcelAttrVo("parentSectorName", this.messageAccessor.message("companyField.parentSectorName"), 10, ExportExcelAttrVo.ALIGN_CENTER));
         excelInfo.addAttrInfos(new ExportExcelAttrVo("childSectorName", this.messageAccessor.message("companyField.childSectorName"), 10, ExportExcelAttrVo.ALIGN_CENTER));

--
Gitblit v1.8.0