OWL ITS + 탐지시스템(인터넷 진흥원)
jhjang
2022-01-06 dc12a6a3e3dbe7088b54a1bb02cfc98cf7c230c0
src/main/java/kr/wisestone/owl/web/form/IssueApiForm.java
@@ -1,17 +1,16 @@
package kr.wisestone.owl.web.form;
import com.google.common.collect.Lists;
import kr.wisestone.owl.constant.MsgConstants;
import kr.wisestone.owl.domain.IssueCustomFieldValue;
import kr.wisestone.owl.exception.OwlRuntimeException;
import kr.wisestone.owl.util.ConvertUtil;
import kr.wisestone.owl.util.MapUtil;
import kr.wisestone.owl.vo.CustomFieldVo;
import org.springframework.web.multipart.MultipartFile;
import java.io.Serializable;
import java.util.*;
public class IssueApiForm {
/**
 * API 이슈 추가 / 수정용 form class
 */
public class IssueApiForm implements Serializable {
    public enum ApiType {
        add,
@@ -23,6 +22,7 @@
    private String projectKey;
    private String description;
    private Long issueTypeId;
    private Long issueStatusId;
    private Long priorityId;
    private Long severityId;
    private Date startDate;
@@ -32,50 +32,38 @@
    private List<DepartmentForm> departments = Lists.newArrayList();
    private List<IssueCustomFieldValueForm> issueCustomFieldValues = Lists.newArrayList();
    private List<Map<String, Object>> CustomFieldValues = Lists.newArrayList();
//    private List<Map<String, Object>> files = Lists.newArrayList();
    private List<MultipartFile> multipartFiles = Lists.newArrayList();
    private List<Long> useIssueCustomFieldIds = Lists.newArrayList();       // 사위일감용 사용자필드값
    private String url;             // 탐지 시스템에서만 적용
    private String comment;
    public IssueApiForm() {
    }
    public static IssueApiForm make(Map<String, Object> content, List<MultipartFile> files) {
        IssueApiForm form = ConvertUtil.convertMapToClass(content, IssueApiForm.class);
        form.setMultipartFiles(files);
        // api 타입
        if (MapUtil.getString(content, "apiType") != null) {
            try {
                form.setApiType(ApiType.valueOf(MapUtil.getString(content, "apiType")));
            } catch (Exception ex) {
                return null;
            }
    /**
     * 사용자 정의 필드 변환
     * @param customFieldJson 사용자 정의 필드 json
     */
    public void parseCustomFields(String customFieldJson) {
        Map<String, Object> json = ConvertUtil.convertJsonToMap(customFieldJson);
        List<Map<String, Object>> customFields = (List) MapUtil.getObject(json, "customFields");
        for (Map<String, Object> customField : customFields) {
            IssueCustomFieldValueForm issueCustomFieldValueForm = ConvertUtil.convertMapToClass(customField, IssueCustomFieldValueForm.class);
            this.addIssueCustomFieldValue(issueCustomFieldValueForm);
            Map<String, Object> customFieldVo = new HashMap<>();
            customFieldVo.put("id", issueCustomFieldValueForm.getCustomFieldId());
            customField.put("customFieldVo", customFieldVo);
            List<String> useValues = Lists.newArrayList();
            useValues.add(issueCustomFieldValueForm.getUseValue());
            customField.put("useValues", useValues);
            this.addCustomFieldValue(customField);
        }
        //  사용자 필드 정보
        if (MapUtil.getObject(content, "customFields") != null){
            List<Map<String, Object>> customFields = (List)MapUtil.getObject(content, "customFields");
            for (Map<String, Object> customField : customFields) {
                IssueCustomFieldValueForm issueCustomFieldValueForm = ConvertUtil.convertMapToClass(customField, IssueCustomFieldValueForm.class);
                form.addIssueCustomFieldValue(issueCustomFieldValueForm);
                Map<String, Object> customFieldVo = new HashMap<>();
                customFieldVo.put("id", issueCustomFieldValueForm.getCustomFieldId());
                customField.put("customFieldVo", customFieldVo);
                List<String> useValues = Lists.newArrayList();
                useValues.add(issueCustomFieldValueForm.getUseValue());
                customField.put("useValues", useValues);
                form.addCustomFieldValue(customField);
            }
        }
        // 첨부 파일
//        if (MapUtil.getObject(content, "files") != null){
//            form.setFiles((List)MapUtil.getObject(content, "files"));
//        }
        return form;
    }
    public String getToken() {
@@ -202,14 +190,6 @@
        this.apiType = apiType;
    }
    //    public List<Map<String, Object>> getFiles() {
//        return files;
//    }
//
//    public void setFiles(List<Map<String, Object>> files) {
//        this.files = files;
//    }
    public List<MultipartFile> getMultipartFiles() {
        return multipartFiles;
    }
@@ -217,4 +197,42 @@
    public void setMultipartFiles(List<MultipartFile> multipartFiles) {
        this.multipartFiles = multipartFiles;
    }
    public Long getIssueStatusId() {
        return issueStatusId;
    }
    public void setIssueStatusId(Long issueStatusId) {
        this.issueStatusId = issueStatusId;
    }
    public List<Long> getUseIssueCustomFieldIds() {
        return useIssueCustomFieldIds;
    }
    public void setUseIssueCustomFieldIds(List<Long> useIssueCustomFieldIds) {
        this.useIssueCustomFieldIds = useIssueCustomFieldIds;
    }
    public void addUseIssueCustomFieldId(Long customFieldId) {
        if (this.useIssueCustomFieldIds != null) {
            this.useIssueCustomFieldIds.add(customFieldId);
        }
    }
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    public String getComment() {
        return comment;
    }
    public void setComment(String comment) {
        this.comment = comment;
    }
}