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