From 5fec5801b937a2270920787891e39a8504cdf53f Mon Sep 17 00:00:00 2001
From: wyu <kknd09321@nate.com>
Date: 금, 03 12월 2021 15:00:44 +0900
Subject: [PATCH] 사용자 정의 필드 사용중일때 삭제 불가하게 수정

---
 src/main/java/kr/wisestone/owl/repository/IssueTypeCustomFieldRepository.java      |    2 ++
 src/main/java/kr/wisestone/owl/web/resolver/OwlResponseEntityExceptionHandler.java |    2 +-
 src/main/java/kr/wisestone/owl/constant/MsgConstants.java                          |    1 +
 src/main/java/kr/wisestone/owl/service/impl/CustomFieldServiceImpl.java            |   18 ++++++++++++++++--
 src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties                             |    1 +
 src/main/webapp/scripts/app/customField/customFieldAdd.controller.js               |    2 +-
 6 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
index a2ff548..0f28bf6 100644
--- a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
+++ b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
@@ -85,6 +85,7 @@
     public static final String CUSTOM_FIELD_NAME_MAX_LENGTH_OUT = "CUSTOM_FIELD_NAME_MAX_LENGTH_OUT";   //  �궗�슜�옄 �젙�쓽 �븘�뱶紐낆� 理쒕� 50湲��옄源뚯� �엯�젰�븷 �닔 �엳�뒿�땲�떎.
     public static final String CUSTOM_FIELD_USED_NAME = "CUSTOM_FIELD_USED_NAME";   //  �궗�슜�옄 �젙�쓽 �븘�뱶 紐낆씠 �씠誘� �궗�슜�릺怨� �엳�뒿�땲�떎.
     public static final String CUSTOM_FIELD_REMOVE_NOT_SELECT = "CUSTOM_FIELD_REMOVE_NOT_SELECT";   //  �궘�젣�븷 �궗�슜�옄 �젙�쓽 �븘�뱶媛� �꽑�깮�릺吏� �븡�븯�뒿�땲�떎.
+    public static final String CUSTOM_FIELD_USED_DATA_REMOVE = "CUSTOM_FIELD_USED_DATA_REMOVE";   //  �궗�슜�븯怨� �엳�뒗 �뜲�씠�꽣�엯�땲�떎.
     public static final String CUSTOM_FIELD_OPTIONS_NOT_USE_INPUT_FIELD = "CUSTOM_FIELD_OPTIONS_NOT_USE_INPUT_FIELD";   //  臾몄옄�뿴 �븘�뱶�뒗 �샃�뀡 媛믪쓣 �궗�슜�븷 �닔 �뾾�뒿�땲�떎.
     public static final String CUSTOM_FIELD_OPTIONS_NOT_EXIST_DEFAULT_VALUE = "CUSTOM_FIELD_OPTIONS_NOT_EXIST_DEFAULT_VALUE";   //  �궗�슜�옄 �젙�쓽 �븘�뱶 湲곕낯 媛믪씠 �샃�뀡�뿉 議댁옱�븯吏� �븡�뒿�땲�떎.
     public static final String CUSTOM_FIELD_OPTIONS_USED_EXIST_DEFAULT_VALUE = "CUSTOM_FIELD_OPTIONS_USED_EXIST_DEFAULT_VALUE";   //  �궗�슜�옄 �젙�쓽 �븘�뱶 湲곕낯 媛믪뿉 以묐났�맂 媛믪씠 議댁옱�빀�땲�떎.
diff --git a/src/main/java/kr/wisestone/owl/repository/IssueTypeCustomFieldRepository.java b/src/main/java/kr/wisestone/owl/repository/IssueTypeCustomFieldRepository.java
index 4ca81d6..3321201 100644
--- a/src/main/java/kr/wisestone/owl/repository/IssueTypeCustomFieldRepository.java
+++ b/src/main/java/kr/wisestone/owl/repository/IssueTypeCustomFieldRepository.java
@@ -12,4 +12,6 @@
     List<IssueTypeCustomField> findByProjectIdAndIssueTypeIdOrderByPosition(@Param("projectId") Long projectId, @Param("issueTypeId") Long issueTypeId);
 
     IssueTypeCustomField findByProjectIdAndIssueTypeIdAndCustomFieldId(@Param("projectId") Long projectId, @Param("issueTypeId") Long issueTypeId, @Param("customFieldId") Long customFieldId);
+
+    Long countByCustomFieldId(@Param("customFieldId") Long customFieldId);
 }
diff --git a/src/main/java/kr/wisestone/owl/service/impl/CustomFieldServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/CustomFieldServiceImpl.java
index 8bafa4e..31af4eb 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/CustomFieldServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/CustomFieldServiceImpl.java
@@ -11,6 +11,7 @@
 import kr.wisestone.owl.exception.OwlRuntimeException;
 import kr.wisestone.owl.mapper.CustomFieldMapper;
 import kr.wisestone.owl.repository.CustomFieldRepository;
+import kr.wisestone.owl.repository.IssueTypeCustomFieldRepository;
 import kr.wisestone.owl.service.*;
 import kr.wisestone.owl.util.ConvertUtil;
 import kr.wisestone.owl.util.MapUtil;
@@ -45,6 +46,9 @@
 
     @Autowired
     private CustomFieldRepository customFieldRepository;
+
+    @Autowired
+    private IssueTypeCustomFieldRepository issueTypeCustomFieldRepository;
 
     @Autowired
     private CustomFieldMapper customFieldMapper;
@@ -318,10 +322,18 @@
     public void removeCustomFields(CustomFieldForm customFieldForm) {
         //  �궗�슜�븯怨� �엳�뒗 �뾽臾� 怨듦컙�씠 �솢�꽦 �긽�깭�씤吏� �솗�씤�븳�떎. �궗�슜 怨듦컙�뿉�꽌 濡쒓렇�씤�븳 �궗�슜�옄媛� 鍮꾪솢�꽦�씤吏� �솗�씤�븳�떎.
         this.workspaceService.checkUseWorkspace();
-
-        if (customFieldForm.getRemoveIds().size() < 1) {
+        List<Long> removeIds = customFieldForm.getRemoveIds();
+        if (removeIds.size() < 1) {
             throw new OwlRuntimeException(
                     this.messageAccessor.getMessage(MsgConstants.CUSTOM_FIELD_REMOVE_NOT_SELECT));
+        }else {
+            for (Long id : removeIds) {
+                Long count = this.issueTypeCustomFieldRepository.countByCustomFieldId(id);
+                if (count > 0){
+                    throw new OwlRuntimeException(
+                            this.messageAccessor.getMessage(MsgConstants.CUSTOM_FIELD_USED_DATA_REMOVE));
+                }
+            }
         }
 
         for (Long projectId : customFieldForm.getRemoveIds()) {
@@ -329,6 +341,7 @@
         }
 
 //        this.customFieldRepository.flush();
+        this.customFieldRepository.flush();
     }
 
     private void removeCustomFields(Long customFieldId) {
@@ -336,6 +349,7 @@
         customField.setUse(UseType.N.toString());
         this.customFieldRepository.saveAndFlush(customField);
 //        this.customFieldRepository.delete(customField);
+       this.customFieldRepository.delete(customField);
     }
 
     //  �씠�뒋 �뿊�� import �뿉�꽌 �궗�슜�븳�떎.
diff --git a/src/main/java/kr/wisestone/owl/web/resolver/OwlResponseEntityExceptionHandler.java b/src/main/java/kr/wisestone/owl/web/resolver/OwlResponseEntityExceptionHandler.java
index 20fc132..560217e 100644
--- a/src/main/java/kr/wisestone/owl/web/resolver/OwlResponseEntityExceptionHandler.java
+++ b/src/main/java/kr/wisestone/owl/web/resolver/OwlResponseEntityExceptionHandler.java
@@ -39,7 +39,7 @@
         Map<String, Object> resJsonData = new HashMap<String, Object>();
         resJsonData.put(Constants.RES_KEY_MESSAGE, this.messageAccessor.getResMessage(ex, Constants.RES_KEY_MSG_FAIL));
 
-        return this.handleExceptionInternal(ex, resJsonData, new HttpHeaders(), HttpStatus.BAD_REQUEST, request);
+        return this.handleExceptionInternal(ex, resJsonData, new HttpHeaders(), HttpStatus.OK, request);
     }
 
     @ExceptionHandler({ StackOverflowError.class,
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 0e421b3..5ce7155 100644
--- a/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties
+++ b/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties
@@ -87,6 +87,7 @@
 CUSTOM_FIELD_NAME_MAX_LENGTH_OUT = \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC \uBA85\uC740 \uCD5C\uB300 50\uAE00\uC790\uAE4C\uC9C0 \uC785\uB825\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.
 CUSTOM_FIELD_USED_NAME = \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC \uBA85\uC774 \uC774\uBBF8 \uC0AC\uC6A9\uB418\uACE0 \uC788\uC2B5\uB2C8\uB2E4.
 CUSTOM_FIELD_REMOVE_NOT_SELECT = \uC0AD\uC81C\uD560 \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC\uAC00 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
+CUSTOM_FIELD_USED_DATA_REMOVE = \uC0AC\uC6A9\uD558\uACE0 \uC788\uB294 \uB370\uC774\uD130\uC785\uB2C8\uB2E4.
 CUSTOM_FIELD_OPTIONS_NOT_USE_INPUT_FIELD = \uC120\uD0DD\uD55C \uD544\uB4DC\uB294 \uC635\uC158 \uAC12\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
 CUSTOM_FIELD_OPTIONS_NOT_EXIST_DEFAULT_VALUE = \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC \uAE30\uBCF8 \uAC12\uC774 \uC635\uC158\uC5D0 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
 CUSTOM_FIELD_OPTIONS_USED_EXIST_DEFAULT_VALUE = \uC0AC\uC6A9\uC790 \uC815\uC758 \uD544\uB4DC \uAE30\uBCF8 \uAC12\uC5D0 \uC911\uBCF5\uB41C \uAC12\uC774 \uC874\uC7AC\uD569\uB2C8\uB2E4.
diff --git a/src/main/webapp/scripts/app/customField/customFieldAdd.controller.js b/src/main/webapp/scripts/app/customField/customFieldAdd.controller.js
index 39f6dee..41ffb40 100644
--- a/src/main/webapp/scripts/app/customField/customFieldAdd.controller.js
+++ b/src/main/webapp/scripts/app/customField/customFieldAdd.controller.js
@@ -42,7 +42,7 @@
                 //  �븘�뱶 �쑀�삎�쓣 蹂�寃� �뻽�쓣 �븣 臾몄옄�뿴 �븘�뱶�씪 寃쎌슦�뿉�뒗 �샃�뀡 媛믪쓣 珥덇린�솕�빐以��떎.
                 function changeFieldType() {
                     // if ($scope.vm.form.customFieldType === "INPUT") {
-                    $scope.vm.form.name = "";
+                    // $scope.vm.form.name = "";
                     $scope.vm.form.options = [];
                     $scope.vm.form.optionText = "";
 

--
Gitblit v1.8.0