From 379c882fcbbcf96ebd1d5fabf6078ebe7a81308b Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 목, 10 2월 2022 10:48:47 +0900
Subject: [PATCH] - 호스팅 엑셀 임포트 시 오류 메시지 수정 - isp, 호스팅의 'code' KEY 부여 및 중복 입력 시 오류 메시지 추가

---
 src/main/java/kr/wisestone/owl/service/impl/IspFieldServiceImpl.java     |   32 ++++++++++++++--
 src/main/resources/migration/V1_5__alter_data.sql                        |    6 +++
 src/main/java/kr/wisestone/owl/service/impl/HostingFieldServiceImpl.java |   30 +++++++++++++-
 src/main/java/kr/wisestone/owl/constant/MsgConstants.java                |    2 +
 src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties                   |    4 +
 5 files changed, 66 insertions(+), 8 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
index bb2aed3..aae0232 100644
--- a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
+++ b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
@@ -266,6 +266,7 @@
 
     public static final String HOSTING_NO_TITLE = "HOSTING_NO_TITLE";   // �샇�뒪�똿紐낆씠 �엯�젰�릺吏� �븡�븯�뒿�땲�떎.
     public static final String HOSTING_CODE_NOT_ENTER = "HOSTING_CODE_NOT_ENTER";   // �샇�뒪�똿�쓽 肄붾뱶�뒗 �븘�닔 �엯�젰 媛믪엯�땲�떎.
+    public static final String HOSTING_CODE_USED_EXIST_VALUE = "HOSTING_CODE_USED_EXIST_VALUE"; // �엯�젰�븳 �샇�뒪�똿�쓽 肄붾뱶媛� �씠誘� 議댁옱�빀�땲�떎.
     public static final String HOSTING_REMOVE_NOT_SELECT = "HOSTING_REMOVE_NOT_SELECT";   // �궘�젣�븷 �샇�뒪�똿�씠 �꽑�깮�릺吏� �븡�븯�뒿�땲�떎.
     public static final String HOSTING_NOT_EXIST = "HOSTING_NOT_EXIST";   // �샇�뒪�똿�씠 議댁옱�븯吏� �븡�뒿�땲�떎.
     public static final String HOSTING_NAME_MAX_LENGTH_OUT = "HOSTING_NAME_MAX_LENGTH_OUT";  // �샇�뒪�똿紐낆� 理쒕� 300湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎.
@@ -274,6 +275,7 @@
 
     public static final String ISP_NO_TITLE = "ISP_NO_TITLE";   // ISP紐낆씠 �엯�젰�릺吏� �븡�븯�뒿�땲�떎.
     public static final String ISP_CODE_NOT_ENTER = "ISP_CODE_NOT_ENTER";   // ISP�쓽 肄붾뱶�뒗 �븘�닔 �엯�젰 媛믪엯�땲�떎.
+    public static final String ISP_CODE_USED_EXIST_VALUE = "ISP_CODE_USED_EXIST_VALUE";   // �엯�젰�븳 ISP�쓽 肄붾뱶媛� �씠誘� 議댁옱�빀�땲�떎.
     public static final String ISP_REMOVE_NOT_SELECT = "ISP_REMOVE_NOT_SELECT";   // �궘�젣�븷 ISP媛� �꽑�깮�릺吏� �븡�븯�뒿�땲�떎.
     public static final String ISP_NOT_EXIST = "ISP_NOT_EXIST";   // ISP媛� 議댁옱�븯吏� �븡�뒿�땲�떎.
     public static final String ISP_NAME_MAX_LENGTH_OUT = "ISP_NAME_MAX_LENGTH_OUT";  // ISP紐낆� 理쒕� 300湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎.
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 38ad53c..9235686 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/HostingFieldServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/HostingFieldServiceImpl.java
@@ -81,11 +81,17 @@
         }
 
         HostingField hostingField = ConvertUtil.copyProperties(HostingFieldForm, HostingField.class);
+
         if (hostingField.getCode() != null && !hostingField.getCode().equals("")) {
-            hostingFieldRepository.saveAndFlush(hostingField);
+            try {
+                hostingFieldRepository.saveAndFlush(hostingField);
+            } catch (Exception e) {
+                throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.HOSTING_CODE_USED_EXIST_VALUE));
+            }
         } else {
             throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.HOSTING_CODE_NOT_ENTER));
         }
+
         return hostingField;
     }
 
@@ -139,7 +145,17 @@
             HostingFieldForm.setEmail(emails.trim());
         }
         HostingField HostingField = ConvertUtil.copyProperties(HostingFieldForm, HostingField.class);
-        hostingFieldRepository.saveAndFlush(HostingField);
+
+        if (HostingField.getCode() != null && !HostingField.getCode().equals("")) {
+            try {
+                hostingFieldRepository.saveAndFlush(HostingField);
+            } catch (Exception e) {
+                throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.HOSTING_CODE_USED_EXIST_VALUE));
+            }
+        } else {
+            throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.HOSTING_CODE_NOT_ENTER));
+        }
+
     }
 
     // Hosting瑜� �궘�젣�븳�떎.
@@ -304,7 +320,15 @@
                 HostingField hostingField = new HostingField();
                 ConvertUtil.copyProperties(saveHostingFieldForm, hostingField);
 
-                hostingField = this.hostingFieldRepository.saveAndFlush(hostingField);
+                if (hostingField.getCode() != null && !hostingField.getCode().equals("")) {
+                    try {
+                        hostingField = hostingFieldRepository.saveAndFlush(hostingField);
+                    } catch (Exception e) {
+                        throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.HOSTING_CODE_USED_EXIST_VALUE));
+                    }
+                } else {
+                    throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.HOSTING_CODE_NOT_ENTER));
+                }
 
                 saveHostingFieldForm.setId(hostingField.getId());
             }
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 073e233..501e770 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IspFieldServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IspFieldServiceImpl.java
@@ -84,11 +84,17 @@
         }
 
         IspField ispField = ConvertUtil.copyProperties(IspFieldForm, IspField.class);
+
         if (ispField.getCode() != null && !ispField.getCode().equals("")) {
-            ispFieldRepository.saveAndFlush(ispField);
+            try {
+                ispFieldRepository.saveAndFlush(ispField);
+            } catch (Exception e) {
+                throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.ISP_CODE_USED_EXIST_VALUE));
+            }
         } else {
             throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.ISP_CODE_NOT_ENTER));
         }
+
         return ispField;
     }
 
@@ -143,8 +149,18 @@
             IspFieldForm.setEmail(emails.trim());
         }
 
-        IspField IspField = ConvertUtil.copyProperties(IspFieldForm, IspField.class);
-        ispFieldRepository.saveAndFlush(IspField);
+        IspField ispField = ConvertUtil.copyProperties(IspFieldForm, IspField.class);
+
+        if (ispField.getCode() != null && !ispField.getCode().equals("")) {
+            try {
+                ispFieldRepository.saveAndFlush(ispField);
+            } catch (Exception e) {
+                throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.ISP_CODE_USED_EXIST_VALUE));
+            }
+        } else {
+            throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.ISP_CODE_NOT_ENTER));
+        }
+
     }
 
 
@@ -310,7 +326,15 @@
                 IspField ispField = new IspField();
                 ConvertUtil.copyProperties(saveIspFieldForm, ispField);
 
-                ispField = this.ispFieldRepository.saveAndFlush(ispField);
+                if (ispField.getCode() != null && !ispField.getCode().equals("")) {
+                    try {
+                        ispField = ispFieldRepository.saveAndFlush(ispField);
+                    } catch (Exception e) {
+                        throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.ISP_CODE_USED_EXIST_VALUE));
+                    }
+                } else {
+                    throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.ISP_CODE_NOT_ENTER));
+                }
 
                 saveIspFieldForm.setId(ispField.getId());
             }
diff --git a/src/main/resources/migration/V1_5__alter_data.sql b/src/main/resources/migration/V1_5__alter_data.sql
new file mode 100644
index 0000000..96f5948
--- /dev/null
+++ b/src/main/resources/migration/V1_5__alter_data.sql
@@ -0,0 +1,6 @@
+
+/* ISP, �샇�뒪�똿�쓽 肄붾뱶 KEY 遺��뿬 */
+ALTER TABLE `isp_field` ADD UNIQUE INDEX `codeIndex` (`code`) USING BTREE;
+ALTER TABLE `hosting_field`	ADD UNIQUE INDEX `codeIndex` (`code`) USING BTREE;
+ALTER TABLE `issue_isp` ADD UNIQUE INDEX `codeIndex` (`code`) USING BTREE;
+ALTER TABLE `issue_hosting`	ADD UNIQUE INDEX `codeIndex` (`code`) USING BTREE;
\ No newline at end of file
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 d4fc072..81f1e0d 100644
--- a/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties
+++ b/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties
@@ -208,7 +208,7 @@
 EXCEL_IMPORT_ISP_NAME_IS_NULL=\uB2E4\uC74C \uC5D1\uC140 \uB77C\uC778\uC5D0\uC11C ISP\uBA85\uC774 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \n \uB77C\uC778 \uC815\uBCF4 : {0}
 EXCEL_IMPORT_ISP_CODE_IS_NULL=\uB2E4\uC74C \uC5D1\uC140 \uB77C\uC778\uC5D0\uC11C \uCF54\uB4DC\uAC00 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \n \uB77C\uC778 \uC815\uBCF4 : {0}
 
-EXCEL_IMPORT_HOSTING_NAME_IS_NULL=\uB2E4\uC74C \uC5D1\uC140 \uB77C\uC778\uC5D0\uC11C ISP\uBA85\uC774 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \n \uB77C\uC778 \uC815\uBCF4 : {0}
+EXCEL_IMPORT_HOSTING_NAME_IS_NULL=\uB2E4\uC74C \uC5D1\uC140 \uB77C\uC778\uC5D0\uC11C \uD638\uC2A4\uD305\uBA85\uC774 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \n \uB77C\uC778 \uC815\uBCF4 : {0}
 EXCEL_IMPORT_HOSTING_CODE_IS_NULL=\uB2E4\uC74C \uC5D1\uC140 \uB77C\uC778\uC5D0\uC11C \uCF54\uB4DC\uAC00 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \n \uB77C\uC778 \uC815\uBCF4 : {0}
 
 ISSUE_RESERVATION_VALUE_INVALID=\uC774\uC288 \uBC1C\uC0DD \uC608\uC57D\uC77C\uC774 \uC798\uBABB\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
@@ -247,6 +247,7 @@
 
 HOSTING_NO_TITLE = \uD638\uC2A4\uD305\uC774 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
 HOSTING_CODE_NOT_ENTER = \uD638\uC2A4\uD305\uC758 \uCF54\uB4DC\uB294 \uD544\uC218 \uC785\uB825 \uAC12\uC785\uB2C8\uB2E4.
+HOSTING_CODE_USED_EXIST_VALUE = \uC785\uB825\uD55C \uD638\uC2A4\uD305\uC758 \uCF54\uB4DC\uAC00 \uC774\uBBF8 \uC874\uC7AC\uD569\uB2C8\uB2E4.
 HOSTING_REMOVE_NOT_SELECT = \uC0AD\uC81C\uD560 \uD638\uC2A4\uD305\uC774 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
 HOSTING_NOT_EXIST = \uD638\uC2A4\uD305\uC774 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
 HOSTING_NAME_MAX_LENGTH_OUT = \uD638\uC2A4\uD305\uBA85\uC740 \uCD5C\uB300 300\uAE00\uC790\uAE4C\uC9C0 \uC785\uB825\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.
@@ -255,6 +256,7 @@
 
 ISP_NO_TITLE = ISP\uBA85\uC774 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
 ISP_CODE_NOT_ENTER = ISP\uC758 \uCF54\uB4DC\uB294 \uD544\uC218 \uC785\uB825 \uAC12\uC785\uB2C8\uB2E4.
+ISP_CODE_USED_EXIST_VALUE = \uC785\uB825\uD55C ISP\uC758 \uCF54\uB4DC\uAC00 \uC774\uBBF8 \uC874\uC7AC\uD569\uB2C8\uB2E4.
 ISP_REMOVE_NOT_SELECT = \uC0AD\uC81C\uD560 ISP\uAC00 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
 ISP_NOT_EXIST = ISP\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
 ISP_NAME_MAX_LENGTH_OUT = ISP\uBA85\uC740 \uCD5C\uB300 300\uAE00\uC790\uAE4C\uC9C0 \uC785\uB825\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.

--
Gitblit v1.8.0