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/CompanyFieldServiceImpl.java |   61 +++++++++++++++++++++---------
 1 files changed, 43 insertions(+), 18 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 9b50065..a261137 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java
@@ -86,7 +86,7 @@
 
         if (companyFieldForm.getIpStart() != null && companyFieldForm.getIpEnd() != null) {
             //  �븘�씠�뵾 �쑀�슚�꽦 泥댄겕
-            this.verifyIp(companyFieldForm.getIpStart(), companyFieldForm.getIpEnd());
+            this.verifyIp(companyFieldForm.getIpStart(), companyFieldForm.getIpEnd(), null);
         }
 
         if (companyFieldForm.getUrl() != null) {
@@ -119,21 +119,41 @@
      * IP �쑀�슚�꽦 泥댄겕
      * @param ip String
      */
-    private void verifyIp(String ip, String ip2) {
-        if (ip2 == null) {
-            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));
-                }
+    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));
             }
-        } else {
-            if (!StringUtils.isEmpty(ip)) {
-                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));
-                }
+        }
+        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));
             }
         }
     }
@@ -276,6 +296,11 @@
     public void modifyCompany(CompanyFieldForm companyFieldForm) {
         //  �뾽泥대챸 �쑀�슚�꽦 泥댄겕
         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 �쑀�슚�꽦 泥댄겕
@@ -472,7 +497,7 @@
                     //  �뾽泥대줈 �벑濡앺븯湲� �쐞�빐 CompanyFieldForm �뿉 �뜲�씠�꽣瑜� �뀑�똿�븳�떎.
                     CompanyFieldForm newCompanyFieldForm = this.setCompanyFieldFormToExcelField(row, (rowIndex + 1), ispFieldMaps, hostingFieldMaps, companyTypeMaps, parentSectorMaps, childSectorMaps, regionMaps, statusMaps, headers);
                     //  ip �쑀�슚�꽦 泥댄겕
-                    this.verifyIp(newCompanyFieldForm.getIpStart(), newCompanyFieldForm.getIpEnd());
+                    this.verifyIp(newCompanyFieldForm.getIpStart(), newCompanyFieldForm.getIpEnd(), null);
 
                     companyFieldForms.add(newCompanyFieldForm);
                 }
@@ -651,7 +676,7 @@
             if (ipEnd.contains(" ")) {
                 ipEnd = ipEnd.replace(" ", "");
             }
-            this.verifyIp(ipEnd, null); //ip �쑀�슚�꽦 寃��궗
+            this.verifyIp(ipEnd, null, null); //ip �쑀�슚�꽦 寃��궗
 
             companyFieldForm.setIpEnd(ipEnd);
         }
@@ -662,7 +687,7 @@
             if (ipStart.contains(" ")) {
                 ipStart = ipStart.replace(" ", "");
             }
-            this.verifyIp(ipStart, null); //ip �쑀�슚�꽦 寃��궗
+            this.verifyIp(ipStart, null, null); //ip �쑀�슚�꽦 寃��궗
 
             companyFieldForm.setIpStart(ipStart);
         }

--
Gitblit v1.8.0