From ad486a401ad59d44bd4187f6406fe8c11b046a1f Mon Sep 17 00:00:00 2001
From: minhee <alsdldlfrl@gmail.com>
Date: 월, 21 2월 2022 16:05:09 +0900
Subject: [PATCH] - 파트너 정보 엑셀 임포트 시 연락처, 코드, 이메일 유효성 검사 - 특정 프로젝트로 설정된 상태에서 타 프로젝트의 이슈 클릭 시 대시보드로 이동되는 문제 해결

---
 src/main/java/kr/wisestone/owl/service/impl/IspFieldServiceImpl.java           |   62 +++++++++++++--
 src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java       |   52 ++++++++++--
 src/main/java/kr/wisestone/owl/service/impl/HostingFieldServiceImpl.java       |   61 +++++++++++++--
 src/main/webapp/scripts/app/hostingField/hostingFieldImportExcel.controller.js |    2 
 src/main/java/kr/wisestone/owl/constant/MsgConstants.java                      |    4 +
 src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties                         |    4 +
 src/main/webapp/scripts/app/issue/issueDetail.controller.js                    |    2 
 7 files changed, 157 insertions(+), 30 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
index 1960930..9a5bd12 100644
--- a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
+++ b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
@@ -285,6 +285,10 @@
     public static final String ISP_NAME_ALREADY_IN_USE = "ISP_NAME_ALREADY_IN_USE";   // �빐�떦 ISP紐낆� �씠誘� �벑濡앸릺�뼱 �엳�뒿�땲�떎.
     public static final String ISP_EXIST_COMPANY = "ISP_EXIST_COMPANY";   // �뾽泥댁뿉 �꽕�젙�릺�뼱�엳�뒗 ISP媛� 議댁옱�빀�땲�떎.
 
+    public static final String CODE_NOT_INVALID = "CODE_NOT_INVALID";   // 肄붾뱶紐낆뿉�뒗 �듅�닔臾몄옄瑜� �엯�젰 �븷 �닔 �뾾�뒿�땲�떎.
+    public static final String TEL_NOT_INVALID = "TEL_NOT_INVALID";   // �뿰�씫泥섏뿉�뒗 �닽�옄留� �삉�뒗 �닽�옄 + �븯�씠�뵂('-')留� �엯�젰 �븷 �닔 �엳�뒿�땲�떎.
+    public static final String EMAIL_NOT_INVALID = "EMAIL_NOT_INVALID";   //  �씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎.
+
     public static final String PROJECT_NOT_INCLUDE_DEPARTMENT = "PROJECT_NOT_INCLUDE_DEPARTMENT";   // �꽑�깮�븳 遺��꽌 以� �봽濡쒖젥�듃�뿉 李몄뿬�븯怨� �엳吏� �븡�� 遺��꽌媛� �엳�뒿�땲�떎.
     public static final String PROJECT_DEPARTMENT_NOT_EQUAL_WORKFLOW = "PROJECT_DEPARTMENT_NOT_EQUAL_WORKFLOW"; // �빐�떦 �봽濡쒖젥�듃�뿉 �냽�빐�엳�뒗 �썙�겕�뵆濡쒖슦�쓽 �떞�떦遺��꽌�뒗 �봽濡쒖젥�듃�쓽 �떞�떦遺��꽌�뿉�꽌 �젣�쇅�떆�궗 �닔 �뾾�뒿�땲�떎.
 
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 1b771bb..6f5da98 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java
@@ -9,7 +9,6 @@
 import kr.wisestone.owl.util.MapUtil;
 import kr.wisestone.owl.web.condition.CompanyFieldCondition;
 import kr.wisestone.owl.web.form.CompanyFieldForm;
-import kr.wisestone.owl.web.form.IssueForm;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.usermodel.*;
 import org.springframework.transaction.annotation.Transactional;
@@ -33,6 +32,7 @@
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.*;
+import java.util.regex.Pattern;
 
 @Service
 public class CompanyFieldServiceImpl extends AbstractServiceImpl<CompanyField, Long, JpaRepository<CompanyField, Long>> implements CompanyFieldService {
@@ -664,25 +664,57 @@
 
     private void setCompanyFormEmail(String email, CompanyFieldForm companyFieldForm, boolean isNull) {
         if (!isNull) {
-            if (email.contains(" ")) {
-                email = email.replace(" ", "");
-            }
+            //  �씠硫붿씪 �쑀�슚�꽦 寃��궗
+            email = this.verifyEmail(email);
             companyFieldForm.setEmail(email);
         }
     }
 
+    /**
+     * �씠硫붿씪 �쑀�슚�꽦 寃��궗
+     * @param email String
+     * @return String
+     */
+    private String verifyEmail(String 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(" ", "");
+        }
+
+        return email;
+    }
+
     private void setCompanyFormTel(String tel, CompanyFieldForm companyFieldForm, boolean isNull) {
         if (!isNull) {
-            if (tel.contains("-")) {
-                tel = tel.replace("-", "");
-            }
-            if (tel.contains(" ")) {
-                tel = tel.replace(" ", "");
-            }
+            //  �뿰�씫泥� �쑀�슚�꽦 寃��궗
+            tel = this.verifyTel(tel);
             companyFieldForm.setTel(tel);
         }
     }
 
+    /**
+     * �뿰�씫泥� �쑀�슚�꽦 寃��궗
+     * @param tel String
+     * @return String
+     */
+    private String verifyTel(String tel) {
+        if (!Pattern.matches("^[0-9-]{2,20}$", tel)) {
+            throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.TEL_NOT_INVALID));
+        }
+
+        if (tel.contains("-")) {
+            tel = tel.replace("-", "");
+        }
+        if (tel.contains(" ")) {
+            tel = tel.replace(" ", "");
+        }
+
+        return tel;
+    }
+
     private void setCompanyFormHostingName(String cellStr, Map<String, HostingField> hostingFieldMaps, CompanyFieldForm companyFieldForm, int rowIndex, boolean isNull) {
         if (!isNull) {
             HostingField hostingField = hostingFieldMaps.get(cellStr);
diff --git a/src/main/java/kr/wisestone/owl/service/impl/HostingFieldServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/HostingFieldServiceImpl.java
index 9235686..90bb326 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/HostingFieldServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/HostingFieldServiceImpl.java
@@ -31,6 +31,7 @@
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.*;
+import java.util.regex.Pattern;
 
 @Service
 public class HostingFieldServiceImpl extends AbstractServiceImpl<HostingField, Long, JpaRepository<HostingField, Long>> implements HostingFieldService {
@@ -466,23 +467,54 @@
 
     private void setHostingFormEmail(String email, HostingFieldForm hostingFieldForm, boolean isNull) {
         if (!isNull) {
-            if (email.contains(" ")) {
-                email = email.replace(" ", "");
-            }
+            //  �씠硫붿씪 �쑀�슚�꽦 寃��궗
+            email = this.verifyEmail(email);
             hostingFieldForm.setEmail(email);
         }
     }
 
+    /**
+     * �씠硫붿씪 �쑀�슚�꽦 寃��궗
+     * @param email String
+     * @return String
+     */
+    private String verifyEmail(String 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(" ", "");
+        }
+
+        return email;
+    }
+
     private void setHostingFormTel(String tel, HostingFieldForm hostingFieldForm, boolean isNull) {
         if (!isNull) {
-            if (tel.contains("-")) {
-                tel = tel.replace("-", "");
-            }
-            if (tel.contains(" ")) {
-                tel = tel.replace(" ", "");
-            }
+            //  �뿰�씫泥� �쑀�슚�꽦 寃��궗
+            tel = this.verifyTel(tel);
             hostingFieldForm.setTel(tel);
         }
+    }
+
+    /**
+     * �뿰�씫泥� �쑀�슚�꽦 寃��궗
+     * @param tel String
+     */
+    private String verifyTel(String tel) {
+        if (!Pattern.matches("^[0-9-]{2,20}$", tel)) {
+            throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.TEL_NOT_INVALID));
+        }
+
+        if (tel.contains("-")) {
+            tel = tel.replace("-", "");
+        }
+        if (tel.contains(" ")) {
+            tel = tel.replace(" ", "");
+        }
+
+        return tel;
     }
 
     private void setHostingFormManager(String manager, HostingFieldForm hostingFieldForm, boolean isNull) {
@@ -493,9 +525,20 @@
 
     private void setHostingFormCode(String code, HostingFieldForm hostingFieldForm) {
         //肄붾뱶 �쑀�슚�꽦 泥댄겕
+        this.verifyCode(code);
         hostingFieldForm.setCode(code);
     }
 
+    /**
+     * 肄붾뱶 �쑀�슚�꽦 寃��궗
+     * @param code String
+     */
+    private void verifyCode(String code) {
+        if (!Pattern.matches("^[a-zA-Z0-9媛�-�옡�꽦-�뀕�뀖-�뀭\\u318D\\u119E\\u11A2\\u2022\\u2025a\\u00B7\\uFE55]+$", code)) {
+            throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.CODE_NOT_INVALID));
+        }
+    }
+
     private void setHostingFormName(String title, HostingFieldForm hostingFieldForm) {
         //  �샇�뒪�똿紐� �쑀�슚�꽦 泥댄겕
         //this.verifyTitle(title, null);
diff --git a/src/main/java/kr/wisestone/owl/service/impl/IspFieldServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IspFieldServiceImpl.java
index 501e770..23212c1 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IspFieldServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IspFieldServiceImpl.java
@@ -33,6 +33,7 @@
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.*;
+import java.util.regex.Pattern;
 
 @Service
 public class IspFieldServiceImpl extends AbstractServiceImpl<IspField, Long, JpaRepository<IspField, Long>> implements IspFieldService {
@@ -472,23 +473,55 @@
 
     private void setIspFormEmail(String email, IspFieldForm ispFieldForm, boolean isNull) {
         if (!isNull) {
-            if (email.contains(" ")) {
-                email = email.replace(" ", "");
-            }
+            //  �씠硫붿씪 �쑀�슚�꽦 寃��궗
+            email = this.verifyEmail(email);
             ispFieldForm.setEmail(email);
         }
     }
 
+    /**
+     * �씠硫붿씪 �쑀�슚�꽦 寃��궗
+     * @param email String
+     * @return String
+     */
+    private String verifyEmail(String 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(" ", "");
+        }
+
+        return email;
+    }
+
     private void setIspFormTel(String tel, IspFieldForm ispFieldForm, int rowIndex, boolean isNull) {
         if (!isNull) {
-            if (tel.contains("-")) {
-                tel = tel.replace("-", "");
-            }
-            if (tel.contains(" ")) {
-                tel = tel.replace(" ", "");
-            }
+            //  �뿰�씫泥� �쑀�슚�꽦 寃��궗
+            tel = this.verifyTel(tel);
             ispFieldForm.setTel(tel);
         }
+    }
+
+    /**
+     * �뿰�씫泥� �쑀�슚�꽦 寃��궗
+     * @param tel String
+     * @return String
+     */
+    private String verifyTel(String tel) {
+        if (!Pattern.matches("^[0-9-]{2,20}$", tel)) {
+            throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.TEL_NOT_INVALID));
+        }
+
+        if (tel.contains("-")) {
+            tel = tel.replace("-", "");
+        }
+        if (tel.contains(" ")) {
+            tel = tel.replace(" ", "");
+        }
+
+        return tel;
     }
 
     private void setIspFormManager(String manager, IspFieldForm ispFieldForm, boolean isNull) {
@@ -499,9 +532,20 @@
 
     private void setIspFormCode(String code, IspFieldForm ispFieldForm) {
         //肄붾뱶 �쑀�슚�꽦 泥댄겕
+        this.verifyCode(code);
         ispFieldForm.setCode(code);
     }
 
+    /**
+     * 肄붾뱶 �쑀�슚�꽦 寃��궗
+     * @param code String
+     */
+    private void verifyCode(String code) {
+        if (!Pattern.matches("^[a-zA-Z0-9媛�-�옡�꽦-�뀕�뀖-�뀭\\u318D\\u119E\\u11A2\\u2022\\u2025a\\u00B7\\uFE55]+$", code)) {
+            throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.CODE_NOT_INVALID));
+        }
+    }
+
     private void setIspFormName(String title, IspFieldForm ispFieldForm) {
         //  ISP紐� �쑀�슚�꽦 泥댄겕
         //this.verifyTitle(title, null);
diff --git a/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties b/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties
index 6d547d5..0b716ec 100644
--- a/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties
+++ b/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties
@@ -266,3 +266,7 @@
 ISP_NAME_MAX_LENGTH_OUT = ISP\uBA85\uC740 \uCD5C\uB300 300\uAE00\uC790\uAE4C\uC9C0 \uC785\uB825\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.
 ISP_NAME_ALREADY_IN_USE=\uD574\uB2F9 ISP\uBA85\uC740 \uC774\uBBF8 \uB4F1\uB85D\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4.
 ISP_EXIST_COMPANY = \uC5C5\uCCB4\uC5D0 \uC124\uC815\uB418\uC5B4\uC788\uB294 ISP\uAC00 \uC874\uC7AC\uD569\uB2C8\uB2E4.
+
+CODE_NOT_INVALID=\uCF54\uB4DC\uBA85\uC5D0\uB294 \uD2B9\uC218\uBB38\uC790\uB97C \uC785\uB825 \uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
+TEL_NOT_INVALID=\uC5F0\uB77D\uCC98\uC5D0\uB294 \uC22B\uC790\uB9CC \uB610\uB294 \uC22B\uC790 + \uD558\uC774\uD508('-')\uB9CC \uC785\uB825 \uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.
+EMAIL_NOT_INVALID=\uC774\uBA54\uC77C \uD615\uC2DD\uC774 \uB9DE\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
diff --git a/src/main/webapp/scripts/app/hostingField/hostingFieldImportExcel.controller.js b/src/main/webapp/scripts/app/hostingField/hostingFieldImportExcel.controller.js
index f949206..3090661 100644
--- a/src/main/webapp/scripts/app/hostingField/hostingFieldImportExcel.controller.js
+++ b/src/main/webapp/scripts/app/hostingField/hostingFieldImportExcel.controller.js
@@ -66,7 +66,7 @@
                             }, 1000);
                         }
                         else {
-                            SweetAlert.error($filter("translate")("hostingField.failedToSelectHostingFieldFullList"), result.data.message.message); // �벑濡� �떎�뙣
+                            SweetAlert.error($filter("translate")("hostingField.failedHostingFieldRegistration"), result.data.message.message); // �벑濡� �떎�뙣
                             $rootScope.spinner = false;
                         }
                     });
diff --git a/src/main/webapp/scripts/app/issue/issueDetail.controller.js b/src/main/webapp/scripts/app/issue/issueDetail.controller.js
index 82febdc..6cbd9ca 100644
--- a/src/main/webapp/scripts/app/issue/issueDetail.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueDetail.controller.js
@@ -1199,7 +1199,7 @@
                                 $scope.vm.viewer.issueDownVos = result.data.data.issueDownVos;
 
                                 if ($rootScope.workProject.id > -1 && result.data.data.projectVo !== null) {
-                                    $rootScope.changeLastProject(result.data.data.projectVo.id);
+                                    $rootScope.changeLastProject(result.data.data.projectVo.id, false, false);
                                 }
 
                                 $scope.vm.inheritPartners = result.data.data.issueTypeVo.inheritPartners;

--
Gitblit v1.8.0