From 988b102742495caf8e347986ab402a7512d6fc17 Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 목, 16 12월 2021 18:03:06 +0900 Subject: [PATCH] 이슈목록 - 테이블표시설정에 프로젝트에서 설정한 사용자정의필드만 가져오기 --- src/main/java/kr/wisestone/owl/service/IssueTypeCustomFieldService.java | 2 + src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js | 6 +- src/main/java/kr/wisestone/owl/web/condition/IssueTypeCustomFieldCondition.java | 10 +++++ src/main/java/kr/wisestone/owl/service/impl/IssueTypeCustomFieldServiceImpl.java | 23 +++++++++++ src/main/webapp/scripts/components/issueTypeCustomField/issueTypeCustomField.service.js | 6 +++ src/main/resources/mybatis/query-template/issueTypeCustomField-template.xml | 20 ++++++++++ src/main/java/kr/wisestone/owl/mapper/IssueTypeCustomFieldMapper.java | 15 +++++++ src/main/java/kr/wisestone/owl/web/controller/IssueTypeCustomFieldController.java | 12 ++++++ 8 files changed, 91 insertions(+), 3 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/mapper/IssueTypeCustomFieldMapper.java b/src/main/java/kr/wisestone/owl/mapper/IssueTypeCustomFieldMapper.java new file mode 100644 index 0000000..28c8262 --- /dev/null +++ b/src/main/java/kr/wisestone/owl/mapper/IssueTypeCustomFieldMapper.java @@ -0,0 +1,15 @@ +package kr.wisestone.owl.mapper; + +import kr.wisestone.owl.vo.IssueTypeCustomFieldVo; +import kr.wisestone.owl.web.condition.IssueTypeCustomFieldCondition; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * Created by wisestone on 2018-05-29. + */ +@Repository +public interface IssueTypeCustomFieldMapper { + List<IssueTypeCustomFieldVo> findByIssueType(IssueTypeCustomFieldCondition condition); +} diff --git a/src/main/java/kr/wisestone/owl/service/IssueTypeCustomFieldService.java b/src/main/java/kr/wisestone/owl/service/IssueTypeCustomFieldService.java index d246363..785ccd3 100644 --- a/src/main/java/kr/wisestone/owl/service/IssueTypeCustomFieldService.java +++ b/src/main/java/kr/wisestone/owl/service/IssueTypeCustomFieldService.java @@ -14,6 +14,8 @@ List<IssueTypeCustomFieldVo> findIssueTypeCustomField(Map<String, Object> resJsonData, IssueTypeCustomFieldCondition condition); + List<IssueTypeCustomFieldVo> findCustomFieldByIssueType(Map<String, Object> resJsonData, IssueTypeCustomFieldCondition condition); + List<IssueTypeCustomField> findByProjectIdAndIssueTypeId(Long projectId, Long issueTypeId); IssueTypeCustomField findByProjectIdAndIssueTypeIdAndCustomFieldId(Long projectId, Long issueTypeId, Long customFieldId); diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueTypeCustomFieldServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueTypeCustomFieldServiceImpl.java index 8c4dc82..78286d0 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueTypeCustomFieldServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueTypeCustomFieldServiceImpl.java @@ -3,6 +3,7 @@ import com.google.common.collect.Lists; import kr.wisestone.owl.constant.Constants; import kr.wisestone.owl.domain.*; +import kr.wisestone.owl.mapper.IssueTypeCustomFieldMapper; import kr.wisestone.owl.repository.IssueTypeCustomFieldRepository; import kr.wisestone.owl.service.*; import kr.wisestone.owl.util.ConvertUtil; @@ -30,10 +31,16 @@ private IssueTypeCustomFieldRepository issueTypeCustomFieldRepository; @Autowired + private IssueTypeCustomFieldMapper issueTypeCustomFieldMapper; + + @Autowired private ProjectService projectService; @Autowired private IssueTypeService issueTypeService; + + @Autowired + private UserService userService; @Autowired private CustomFieldService customFieldService; @@ -183,6 +190,22 @@ return issueTypeCustomFieldVos; } + @Override + @Transactional(readOnly = true) + public List<IssueTypeCustomFieldVo> findCustomFieldByIssueType(Map<String, Object> resJsonData, IssueTypeCustomFieldCondition condition) { + List<IssueTypeCustomFieldVo> issueTypeCustomFieldVos = Lists.newArrayList(); + + IssueType issueType = this.issueTypeService.getIssueType(condition.getIssueTypeId()); + condition.setIssueTypeId(issueType.getId()); + condition.setWorkspaceId(this.userService.getUser(this.webAppUtil.getLoginId()).getLastWorkspaceId()); + List<IssueTypeCustomFieldVo> issueTypeCustomFieldVo = this.issueTypeCustomFieldMapper.findByIssueType(condition); + if (issueTypeCustomFieldVo != null && issueTypeCustomFieldVo.size() > 0) { + issueTypeCustomFieldVos.addAll(issueTypeCustomFieldVo); + } + resJsonData.put(Constants.RES_KEY_CONTENTS, issueTypeCustomFieldVos); + return issueTypeCustomFieldVos; + } + // �씠�뒋 excel template download �뿉�꽌 �궗�슜 @Override @Transactional(readOnly = true) diff --git a/src/main/java/kr/wisestone/owl/web/condition/IssueTypeCustomFieldCondition.java b/src/main/java/kr/wisestone/owl/web/condition/IssueTypeCustomFieldCondition.java index 90debdb..e9b922f 100644 --- a/src/main/java/kr/wisestone/owl/web/condition/IssueTypeCustomFieldCondition.java +++ b/src/main/java/kr/wisestone/owl/web/condition/IssueTypeCustomFieldCondition.java @@ -11,6 +11,8 @@ private Long projectId; private Long issueTypeId; + private Long workspaceId; + public IssueTypeCustomFieldCondition(){} public static IssueTypeCustomFieldCondition make(Map<String, Object> conditions) { @@ -33,4 +35,12 @@ public void setIssueTypeId(Long issueTypeId) { this.issueTypeId = issueTypeId; } + + public Long getWorkspaceId() { + return workspaceId; + } + + public void setWorkspaceId(Long workspaceId) { + this.workspaceId = workspaceId; + } } diff --git a/src/main/java/kr/wisestone/owl/web/controller/IssueTypeCustomFieldController.java b/src/main/java/kr/wisestone/owl/web/controller/IssueTypeCustomFieldController.java index dc19893..da79a26 100644 --- a/src/main/java/kr/wisestone/owl/web/controller/IssueTypeCustomFieldController.java +++ b/src/main/java/kr/wisestone/owl/web/controller/IssueTypeCustomFieldController.java @@ -48,4 +48,16 @@ return this.setSuccessMessage(resJsonData); } + // �씠�뒋 ���엯 蹂� �궗�슜�옄 �젙�쓽 �븘�뱶 �뿰寃� 議고쉶 + @RequestMapping(value = "/issueTypeCustomField/findByIssueType", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public + @ResponseBody + Map<String, Object> findByIssueType(@RequestBody Map<String, Map<String, Object>> params) { + Map<String, Object> resJsonData = new HashMap<>(); + + this.issueTypeCustomFieldService.findCustomFieldByIssueType(resJsonData, IssueTypeCustomFieldCondition.make(params.get(Constants.REQ_KEY_CONTENT))); + + return this.setSuccessMessage(resJsonData); + } + } diff --git a/src/main/resources/mybatis/query-template/issueTypeCustomField-template.xml b/src/main/resources/mybatis/query-template/issueTypeCustomField-template.xml new file mode 100644 index 0000000..28cd687 --- /dev/null +++ b/src/main/resources/mybatis/query-template/issueTypeCustomField-template.xml @@ -0,0 +1,20 @@ +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + +<mapper namespace="kr.wisestone.owl.mapper.IssueTypeCustomFieldMapper"> + + <select id="findByIssueType" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.IssueTypeCustomFieldCondition"> + SELECT + cf.id AS id, + cf.name AS name, + cf.custom_field_type as customFieldType, + cf.default_value as defaultValue + FROM issue_type_custom_field it + INNER JOIN custom_field cf ON cf.id = it.custom_field_id + INNER JOIN workspace ws on cf.workspace_id = ws.id + WHERE cf.use_flag = 'Y' + AND it.issue_type_id = #{issueTypeId} + AND ws.id = #{workspaceId} + </select> + +</mapper> \ No newline at end of file diff --git a/src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js b/src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js index 912fcc2..8f9eb74 100644 --- a/src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js +++ b/src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js @@ -8,8 +8,8 @@ 'angular' ], function (app, angular) { - app.controller('issueAddTableConfigController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'SweetAlert', '$timeout', 'IssueTableConfig', 'CustomField', '$q', '$filter', 'parameter', - function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, SweetAlert, $timeout, IssueTableConfig, CustomField, $q, $filter, parameter) { + app.controller('issueAddTableConfigController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'SweetAlert', '$timeout', 'IssueTableConfig', 'IssueTypeCustomField', '$q', '$filter', 'parameter', + function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, SweetAlert, $timeout, IssueTableConfig, IssueTypeCustomField, $q, $filter, parameter) { // �븿�닔 紐⑥쓬 $scope.fn = { @@ -139,7 +139,7 @@ function getCustomFields() { var deferred = $q.defer(); - CustomField.find($resourceProvider.getContent({}, + IssueTypeCustomField.findByIssueType($resourceProvider.getContent({issueTypeId : $rootScope.getCurrentIssueTypeId()}, $resourceProvider.getPageContent(0, 1000))).then(function (result) { if (result.data.message.status !== "success") { SweetAlert.error($filter("translate")("issue.failedToUserDefinedFieldListLookup"), result.data.message.message); // �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 議고쉶 �떎�뙣 diff --git a/src/main/webapp/scripts/components/issueTypeCustomField/issueTypeCustomField.service.js b/src/main/webapp/scripts/components/issueTypeCustomField/issueTypeCustomField.service.js index 1caa2be..223686a 100644 --- a/src/main/webapp/scripts/components/issueTypeCustomField/issueTypeCustomField.service.js +++ b/src/main/webapp/scripts/components/issueTypeCustomField/issueTypeCustomField.service.js @@ -14,6 +14,12 @@ return response; }); }, + findByIssueType : function (conditions) { + return $http.post("issueTypeCustomField/findByIssueType", conditions).then(function (response) { + $log.debug("�씠�뒋 �쑀�삎 蹂� �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 �뜲�씠�꽣 : ", response); + return response; + }); + }, modify : function (conditions) { return $http.post("issueTypeCustomField/modify", conditions).then(function (response) { $log.debug("�씠�뒋 �쑀�삎 �궗�슜�옄 �젙�쓽 �븘�뱶 �닔�젙 寃곌낵 : ", response); -- Gitblit v1.8.0