OWL ITS + 탐지시스템(인터넷 진흥원)
이슈목록 - 테이블표시설정에 프로젝트에서 설정한 사용자정의필드만 가져오기
2개 파일 추가됨
6개 파일 변경됨
94 ■■■■■ 파일 변경됨
src/main/java/kr/wisestone/owl/mapper/IssueTypeCustomFieldMapper.java 15 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/IssueTypeCustomFieldService.java 2 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/IssueTypeCustomFieldServiceImpl.java 23 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/web/condition/IssueTypeCustomFieldCondition.java 10 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/web/controller/IssueTypeCustomFieldController.java 12 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/mybatis/query-template/issueTypeCustomField-template.xml 20 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js 6 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/components/issueTypeCustomField/issueTypeCustomField.service.js 6 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/mapper/IssueTypeCustomFieldMapper.java
New file
@@ -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);
}
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);
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)
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;
    }
}
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);
    }
}
src/main/resources/mybatis/query-template/issueTypeCustomField-template.xml
New file
@@ -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>
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); // 사용자 정의 필드 목록 조회 실패
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);