From 4aff300135c65fbbfb2d55b01f4820cd6861a5da Mon Sep 17 00:00:00 2001
From: jhjang <jhjang@maprex.co.kr>
Date: 수, 08 12월 2021 20:20:07 +0900
Subject: [PATCH] Merge branch 'master' of http://192.168.0.25:9001/r/owl-kisa

---
 src/main/webapp/scripts/components/utils/autoComplete.controller.js      |   10 +++++++++-
 src/main/java/kr/wisestone/owl/repository/CompanyFieldRepository.java    |    3 +++
 src/main/resources/migration/V1_12__Alter_Table.sql                      |   10 +++++++---
 src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java |   22 ++++++++++++++++++++++
 src/main/webapp/i18n/ko/global.json                                      |    2 +-
 src/main/java/kr/wisestone/owl/constant/MsgConstants.java                |    2 ++
 src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties                   |    4 +++-
 src/main/webapp/views/companyField/companyFieldAdd.html                  |    2 ++
 8 files changed, 49 insertions(+), 6 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
index 47bd436..5793400 100644
--- a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
+++ b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
@@ -225,6 +225,8 @@
 
     public static final String COMPANY_REMOVE_NOT_SELECT = "COMPANY_REMOVE_NOT_SELECT";   // �궘�젣�븷 �뾽泥닿� �꽑�깮�릺吏� �븡�븯�뒿�땲�떎.
     public static final String COMPANYFIELD_NOT_EXIST = "COMPANYFIELD_NOT_EXIST";   // �뾽泥닿� 議댁옱�븯吏� �븡�뒿�땲�떎.
+    public static final String COMPANYFIELD_NOT_URL = "COMPANYFIELD_NOT_URL";   // URL�씠 �엯�젰�릺吏� �븡�븯�뒿�땲�떎.
+    public static final String COMPANYFIELD_USED_URL = "COMPANYFIELD_USED_URL";   // URL�씠 �씠誘� �궗�슜�릺怨� �엳�뒿�땲�떎.
 
     public static final String HOSTING_NOT_EXIST = "HOSTING_NOT_EXIST";   // �샇�뒪�똿�씠 議댁옱�븯吏� �븡�뒿�땲�떎.
     public static final String HOSTING_REMOVE_NOT_SELECT = "HOSTING_REMOVE_NOT_SELECT";   // �궘�젣�븷 �샇�뒪�똿�씠 �꽑�깮�릺吏� �븡�븯�뒿�땲�떎.
diff --git a/src/main/java/kr/wisestone/owl/repository/CompanyFieldRepository.java b/src/main/java/kr/wisestone/owl/repository/CompanyFieldRepository.java
index afc7954..d8fff79 100644
--- a/src/main/java/kr/wisestone/owl/repository/CompanyFieldRepository.java
+++ b/src/main/java/kr/wisestone/owl/repository/CompanyFieldRepository.java
@@ -2,7 +2,10 @@
 
 import kr.wisestone.owl.domain.CompanyField;
 import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.repository.query.Param;
 
 public interface CompanyFieldRepository extends JpaRepository<CompanyField, Long> {
 
+    CompanyField findByUrl(@Param("url") String url);
+
 }
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 21e6d45..06d7e86 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java
@@ -1,9 +1,11 @@
 package kr.wisestone.owl.service.impl;
 
 import kr.wisestone.owl.domain.CompanyField;
+import kr.wisestone.owl.domain.CustomField;
 import kr.wisestone.owl.service.UserService;
 import kr.wisestone.owl.web.condition.CompanyFieldCondition;
 import kr.wisestone.owl.web.form.CompanyFieldForm;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.ui.Model;
 import com.google.common.collect.Lists;
 import kr.wisestone.owl.common.ExcelConditionCheck;
@@ -57,9 +59,26 @@
     // �뾽泥� 異붽�
     @Override
     public CompanyField addCompany(CompanyFieldForm companyFieldForm) {
+        //  url �쑀�슚�꽦 泥댄겕
+        this.verifyUrl(companyFieldForm.getUrl());
+
         CompanyField companyField = ConvertUtil.copyProperties(companyFieldForm, CompanyField.class);
         companyFieldRepository.saveAndFlush(companyField);
         return companyField;
+    }
+
+    //  url �쑀�슚�꽦 泥댄겕
+    private void verifyUrl(String url) {
+        if (StringUtils.isEmpty(url)) {
+            throw new OwlRuntimeException(
+                    this.messageAccessor.getMessage(MsgConstants.COMPANYFIELD_NOT_URL));
+        }
+        CompanyField companyField = this.companyFieldRepository.findByUrl(url);
+
+        if (companyField != null) {
+            throw new OwlRuntimeException(
+                    this.messageAccessor.getMessage(MsgConstants.COMPANYFIELD_USED_URL));
+        }
     }
 
     // �뾽泥� 紐⑸줉�쓣 媛��졇�삩�떎.
@@ -92,6 +111,9 @@
     // �뾽泥� �젙濡쒕�� �닔�젙�븳�떎.
     @Override
     public void modifyCompany(CompanyFieldForm companyFieldForm) {
+        //  url �쑀�슚�꽦 泥댄겕
+        this.verifyUrl(companyFieldForm.getUrl());
+
         CompanyField companyField = ConvertUtil.copyProperties(companyFieldForm, CompanyField.class);
         companyFieldRepository.saveAndFlush(companyField);
     }
diff --git a/src/main/resources/migration/V1_12__Alter_Table.sql b/src/main/resources/migration/V1_12__Alter_Table.sql
index f5f99b7..36a476b 100644
--- a/src/main/resources/migration/V1_12__Alter_Table.sql
+++ b/src/main/resources/migration/V1_12__Alter_Table.sql
@@ -1,13 +1,17 @@
 -- �븘�닔 �뜲�씠�꽣 �뿬遺�
 ALTER TABLE `custom_field` ADD COLUMN  `required_data` VARCHAR(1) NOT NULL DEFAULT 'N';
 
--- �룄硫붿씤 �빆紐� 異붽�
+-- url �빆紐� 異붽�
 ALTER TABLE `company_field` ADD COLUMN  `url` VARCHAR(255) NULL;
 ALTER TABLE `isp_field` ADD COLUMN  `url` VARCHAR(255) NULL;
 ALTER TABLE `hosting_field` ADD COLUMN  `url` VARCHAR(255) NULL;
 
--- �옄�룞 �셿猷� �긽�깭 異붽�
-ALTER TABLE `issue_type` ADD COLUMN  `complete_issue_status_id` BIGINT(20) NULL;
 ALTER TABLE `issue_company` ADD COLUMN  `url` VARCHAR(255) NULL;
 ALTER TABLE `issue_isp` ADD COLUMN  `url` VARCHAR(255) NULL;
 ALTER TABLE `issue_hosting` ADD COLUMN  `url` VARCHAR(255) NULL;
+
+-- �옄�룞 �셿猷� �긽�깭 異붽�
+ALTER TABLE `issue_type` ADD COLUMN  `complete_issue_status_id` BIGINT(20) NULL;
+
+-- �뾽泥댁쓽 url 而щ읆 INDEX 異붽�
+ALTER TABLE `company_field` ADD INDEX `urlIndex`(`url`);
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 5ce7155..99ae537 100644
--- a/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties
+++ b/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties
@@ -206,4 +206,6 @@
 DEPARTMENT_REMOVE_NOT_SELECT = \uC0AD\uC81C\uD560 \uBD80\uC11C\uAC00 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
 
 COMPANY_REMOVE_NOT_SELECT = \uC0AD\uC81C\uD560 \uC5C5\uCCB4\uAC00 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
-COMPANYFIELD_NOT_EXIST = \uC5C5\uCCB4\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
\ No newline at end of file
+COMPANYFIELD_NOT_EXIST = \uC5C5\uCCB4\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
+COMPANYFIELD_NOT_URL = URL\uC774 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
+COMPANYFIELD_USED_URL = URL\uC774 \uC774\uBBF8 \uC0AC\uC6A9\uB418\uACE0 \uC788\uC2B5\uB2C8\uB2E4.
\ No newline at end of file
diff --git a/src/main/webapp/i18n/ko/global.json b/src/main/webapp/i18n/ko/global.json
index c0a6a8d..5c27969 100644
--- a/src/main/webapp/i18n/ko/global.json
+++ b/src/main/webapp/i18n/ko/global.json
@@ -816,7 +816,7 @@
         "emptyUser": "�꽑�깮�븷 �닔 �엳�뒗 �궗�슜�옄媛� �뾾�뒿�땲�떎.",
         "emptyProject": "�꽑�깮�븷 �닔 �엳�뒗 �봽濡쒖젥�듃媛� �뾾�뒿�땲�떎.",
         "emptyDepartment": "�꽑�깮�븷 �닔 �엳�뒗 遺��꽌媛� �뾾�뒿�땲�떎.",
-        "emptyProjectDepartment": "�꽑�깮�븷 �닔 �엳�뒗 遺��꽌媛� �뾾�뒿�땲�떎. <br> �봽濡쒖젥�듃 �꽕�젙�뿉�꽌 �떞�떦遺��꽌瑜� �꽕�젙�븯嫄곕굹,<br> 遺��꽌瑜� 異붽� �빐二쇱꽭�슂",
+        "emptyProjectDepartment": "�꽑�깮�븷 �닔 �엳�뒗 遺��꽌媛� �뾾�뒿�땲�떎. <br> �썙�겕�뵆濡쒖슦�뿉�꽌 �떞�떦遺��꽌瑜� �꽕�젙�븯嫄곕굹,<br> 遺��꽌瑜� 異붽� �빐二쇱꽭�슂",
         "noDepartment": "�떞�떦遺��꽌媛� �뾾�뒿�땲�떎.",
         "emptyCompany": "�꽑�깮�븷 �닔 �엳�뒗 �뾽泥닿� �뾾�뒿�땲�떎.",
         "emptyIssue": "�꽑�깮�븷 �닔 �엳�뒗 �씠�뒋媛� �뾾�뒿�땲�떎.",
diff --git a/src/main/webapp/scripts/components/utils/autoComplete.controller.js b/src/main/webapp/scripts/components/utils/autoComplete.controller.js
index a1570a5..cc4d354 100644
--- a/src/main/webapp/scripts/components/utils/autoComplete.controller.js
+++ b/src/main/webapp/scripts/components/utils/autoComplete.controller.js
@@ -315,7 +315,15 @@
                 function getIssueDepartmentList(query, excludeList, page, callBack) {
                     var conditions = {
                         //issueTypeId : $scope.vm.form.issueTypeId,
-                        issueTypeId : $rootScope.currentDetailIssueId,
+                        issueTypeId : (function () {
+                            var issueTypeId = "";
+                            if ($rootScope.currentDetailIssueId != null) {
+                                issueTypeId = $rootScope.currentDetailIssueId;
+                            } else {
+                                issueTypeId = $scope.vm.form.issueTypeId;
+                            }
+                            return issueTypeId;
+                        })(),
                         departmentName : query,
                         userId : $rootScope.user.id,
                         projectId : (function () {
diff --git a/src/main/webapp/views/companyField/companyFieldAdd.html b/src/main/webapp/views/companyField/companyFieldAdd.html
index 2d1a8d6..b7e8dab 100644
--- a/src/main/webapp/views/companyField/companyFieldAdd.html
+++ b/src/main/webapp/views/companyField/companyFieldAdd.html
@@ -166,6 +166,7 @@
                 <div class="form-group">
                     <label for="companyFieldAddForm10" class="issue-label">
                         <span translate="companyField.url">url</span>
+                        <code class="highlighter-rouge">*</code>
                     </label>
                     <input id="companyFieldAddForm10"
                            name="url"
@@ -176,6 +177,7 @@
                            ng-model="vm.form.url"
                            ng-maxlength="200"
                            maxlength="200"
+                           required
                     >
                 </div>
             </div>

--
Gitblit v1.8.0