From 8cdee12102d831355c2be8fedff2d7f26cb0931b Mon Sep 17 00:00:00 2001
From: jhjang <jhjang@maprex.co.kr>
Date: 목, 16 12월 2021 19:02:28 +0900
Subject: [PATCH] - 프로젝트내 이슈유형에 설정된 사용자 정의 필드가 없을 경우 오류 예외 처리(api 입력 안되는 원인이었음)

---
 src/main/java/kr/wisestone/owl/service/impl/IssueCustomFieldValueServiceImpl.java |   51 ++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 42 insertions(+), 9 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueCustomFieldValueServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueCustomFieldValueServiceImpl.java
index 34e6886..76e4b96 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueCustomFieldValueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueCustomFieldValueServiceImpl.java
@@ -1,9 +1,11 @@
 package kr.wisestone.owl.service.impl;
 
 import com.google.common.collect.Lists;
+import kr.wisestone.owl.constant.MsgConstants;
 import kr.wisestone.owl.domain.*;
 import kr.wisestone.owl.domain.enumType.CustomFieldType;
 import kr.wisestone.owl.domain.enumType.IssueHistoryType;
+import kr.wisestone.owl.exception.OwlRuntimeException;
 import kr.wisestone.owl.mapper.IssueCustomFieldValueMapper;
 import kr.wisestone.owl.repository.IssueCustomFieldValueRepository;
 import kr.wisestone.owl.service.*;
@@ -61,15 +63,17 @@
         for (Map<String, Object> map : issueCustomFields) {
             Map<String, Object> result = new HashMap<>();
             //  customFieldVo �뿉�꽌 �궗�슜�옄 �젙�쓽 �븘�뱶�� �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 �젙蹂대�� 媛��졇�삩�떎.
-            this.getCustomFieldAndIssueTypeCustomField(map, issue, result);
-            List<String> useValues = MapUtil.getStrings(map, "useValues");
+            boolean useCustomField = this.getCustomFieldAndIssueTypeCustomField(map, issue, result);
+            if (useCustomField) {
+                List<String> useValues = MapUtil.getStrings(map, "useValues");
 
-            if (useValues != null) {
-                for (String useValue : useValues) {
-                    if (!StringUtils.isEmpty(useValue)) {
-                        //  Xss 怨듦꺽 諛⑹뼱瑜� �쐞�빐 script 怨듬갚�쑝濡� 移섑솚
-                        IssueCustomFieldValue issueCustomFieldValue = new IssueCustomFieldValue(issue, (CustomField)result.get("customField"), (IssueTypeCustomField)result.get("issueTypeCustomField"), useValue);
-                        issueCustomFieldValues.add(issueCustomFieldValue);
+                if (useValues != null) {
+                    for (String useValue : useValues) {
+                        if (!StringUtils.isEmpty(useValue)) {
+                            //  Xss 怨듦꺽 諛⑹뼱瑜� �쐞�빐 script 怨듬갚�쑝濡� 移섑솚
+                            IssueCustomFieldValue issueCustomFieldValue = new IssueCustomFieldValue(issue, (CustomField) result.get("customField"), (IssueTypeCustomField) result.get("issueTypeCustomField"), useValue);
+                            issueCustomFieldValues.add(issueCustomFieldValue);
+                        }
                     }
                 }
             }
@@ -82,13 +86,19 @@
 
     //  customFieldVo �뿉�꽌 �궗�슜�옄 �젙�쓽 �븘�뱶�� �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 �젙蹂대�� 媛��졇�삩�떎.
     @Override
-    public void getCustomFieldAndIssueTypeCustomField(Map<String, Object> map, Issue issue, Map<String, Object> result) {
+    public boolean getCustomFieldAndIssueTypeCustomField(Map<String, Object> map, Issue issue, Map<String, Object> result) {
         Map<String, Object> customFieldMap = (Map<String, Object>) MapUtil.getObject(map, "customFieldVo");
         CustomField customField = this.customFieldService.getCustomField(MapUtil.getLong(customFieldMap, "id"));
         IssueTypeCustomField issueTypeCustomField = this.issueTypeCustomFieldService.findByProjectIdAndIssueTypeIdAndCustomFieldId(issue.getProject().getId(), issue.getIssueType().getId(), customField.getId());
+        if (issueTypeCustomField == null) {
+            // �꽕�젙�맂 �궗�슜�옄 �젙�쓽 �븘�뱶媛� �뾾�쓣�븣
+            return false;
+        }
 
         result.put("customField", customField);
         result.put("issueTypeCustomField", issueTypeCustomField);
+
+        return true;
     }
 
     //  �씠�뒋�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 媛믪쓣 議고쉶�븳�떎.
@@ -333,6 +343,29 @@
         return customFieldSearch;
     }
 
+    @Override
+    public Map<String, Object> find(IssueCustomFieldValueCondition issueCustomFieldValueCondition) {
+        if (issueCustomFieldValueCondition.getUseValues().size() > 0 || !StringUtils.isEmpty(issueCustomFieldValueCondition.getUseValue())) {
+            issueCustomFieldValueCondition.setWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId());
+
+            //  �궗�슜�옄 �젙�쓽 �븘�뱶 媛� 寃��깋 �떆�옉
+            Map<String, Object> result = new HashMap<>();
+
+            switch (CustomFieldType.valueOf(issueCustomFieldValueCondition.getCustomFieldType())) {
+                case INPUT:
+                    result = this.issueCustomFieldValueMapper.findLikeUseValue(issueCustomFieldValueCondition);
+                    break;
+                case MULTI_SELECT:
+                case SINGLE_SELECT:
+                    result = this.issueCustomFieldValueMapper.findByUseValue(issueCustomFieldValueCondition);
+                    break;
+            }
+
+            return result;
+        }
+        return null;
+    }
+
     //  �씠�뒋�뿉�꽌 ���옣�븳 �궗�슜�옄 �젙�쓽 �븘�뱶 媛믪쓣 議고쉶�븳�떎.
     @Override
     @Transactional(readOnly = true)

--
Gitblit v1.8.0