From c88104169bc4fe457f98f33a91574c4dd33da573 Mon Sep 17 00:00:00 2001
From: jhjang <jhjang@maprex.co.kr>
Date: 금, 03 12월 2021 20:08:01 +0900
Subject: [PATCH] - api 입력 오류 수정 - api 기본값 및 중복 설정 적용 수정

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java |   67 +++++++++++++++++++++++++--------
 1 files changed, 50 insertions(+), 17 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
index 3a1202a..8bfe576 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -188,11 +188,7 @@
     }
 
 
-
-    //  API 瑜� �넻�빐 �씠�뒋 異붽�.
-    @Override
-    @Transactional
-    public Issue addApiIssue(IssueApiForm issueApiForm) {
+    private IssueForm convertToIssueForm(IssueApiForm issueApiForm, User user) {
         if (issueApiForm.getIssueTypeId() == null) {
             throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.API_PARAMETER_ISSUE_TYPE_ERROR));
         }
@@ -211,14 +207,7 @@
         }
         issueForm.setProjectId(project.getId());
 
-        // �넗�겙�쑝濡� �쑀�� �젙蹂� 媛��졇�삤湲�
-        String token = issueApiForm.getToken();
-        UserVo userVo = this.apiTokenService.certification(token);
-
-        // �빐�떦 �쑀�� �젙蹂닿� �쁽�옱 db�뿉 �엳�뒗吏� �솗�씤
-        User user = this.userService.getUser(userVo.getId());
         if (user != null) {
-
             // 湲곕낯媛� �엯�젰�븯湲�
             IssueApiDefaultForm issueApiDefaultForm = new IssueApiDefaultForm();
             issueApiDefaultForm.setUserId(user.getId());
@@ -226,6 +215,7 @@
             IssueApiDefault issueApiDefault = this.issueApiDefaultService.find(issueApiDefaultForm);
             if (issueApiDefault != null) {
                 ConvertUtil.copyProperties(issueApiDefault, issueForm);
+                issueForm.setId(null);
                 issueForm.setPriorityId(issueApiDefault.getPriority().getId());
                 issueForm.setSeverityId(issueApiDefault.getSeverity().getId());
             }
@@ -248,11 +238,33 @@
             // api �엯�젰媛� �쟻�슜
             ConvertUtil.copyProperties(issueApiForm, issueForm);
 
-            return addIssue(user, issueForm, issueApiForm.getMultipartFiles());
+            return issueForm;
+
         } else {
             throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.API_USER_ERROR));
         }
     }
+
+    private User convertToUser(String token) {
+        // �넗�겙�쑝濡� �쑀�� �젙蹂� 媛��졇�삤湲�
+        UserVo userVo = this.apiTokenService.certification(token);
+
+        // �빐�떦 �쑀�� �젙蹂닿� �쁽�옱 db�뿉 �엳�뒗吏� �솗�씤
+        return this.userService.getUser(userVo.getId());
+    }
+
+
+    //  API 瑜� �넻�빐 �씠�뒋 異붽�.
+    @Override
+    @Transactional
+    public Issue addApiIssue(IssueApiForm issueApiForm) {
+        User user = convertToUser(issueApiForm.getToken());
+        IssueForm issueForm = this.convertToIssueForm(issueApiForm, user);
+
+        return addIssue(user, issueForm, issueApiForm.getMultipartFiles());
+    }
+
+
 
     // 以묐났�맂 �긽�쐞 �씠�뒋 寃��깋
     private IssueVo findIssue(IssueApiForm issueApiForm, Long userId) {
@@ -316,6 +328,10 @@
         issue.setIssueType(issueType);
         issue.setPriority(priority);
         issue.setSeverity(severity);
+        if (issueForm.getParentIssueId() != null){
+            Issue parentIssue = this.getIssue(issueForm.getParentIssueId());
+            issue.setParentIssue(parentIssue);
+        }
 
         issue.setIssueNumber(this.issueNumberGeneratorService.generateIssueNumber(project));    //  媛� �봽濡쒖젥�듃�쓽 怨좎쑀 �씠�뒋 踰덊샇 �깮�꽦
 
@@ -1209,12 +1225,29 @@
         issueVo.setIssueHistoryVos(this.issueHistoryService.findIssueHistory(issue.getId()));
     }
 
+    // �씠�뒋瑜� �닔�젙�븳�떎
+    @Override
+    public Issue modifyIssue(IssueApiForm issueApiForm, List<MultipartFile> files) {
+        User user = this.convertToUser(issueApiForm.getToken());
+        IssueForm issueForm = this.convertToIssueForm(issueApiForm, user);
+
+        return this.modifyIssue(user, issueForm, files);
+    }
+
     //  �씠�뒋瑜� �닔�젙�븳�떎.
     @Override
     @Transactional
     public Issue modifyIssue(IssueForm issueForm, List<MultipartFile> multipartFiles) {
+        User user = this.webAppUtil.getLoginUserObject();
+        return modifyIssue(user, issueForm, multipartFiles);
+    }
+
+    //  �씠�뒋瑜� �닔�젙�븳�떎.
+    @Override
+    @Transactional
+    public Issue modifyIssue(User user, IssueForm issueForm, List<MultipartFile> multipartFiles) {
         //  �궗�슜�븯怨� �엳�뒗 �뾽臾� 怨듦컙�씠 �솢�꽦 �긽�깭�씤吏� �솗�씤�븳�떎. �궗�슜 怨듦컙�뿉�꽌 濡쒓렇�씤�븳 �궗�슜�옄媛� 鍮꾪솢�꽦�씤吏� �솗�씤�븳�떎.
-        this.workspaceService.checkUseWorkspace();
+        this.workspaceService.checkUseWorkspace(user, user.getLastWorkspaceId());
         //  �씠�뒋 �닔�젙 沅뚰븳 泥댄겕
         this.verifyIssueModifyPermission(issueForm.getId());
         //  �봽濡쒖젥�듃 �쑀�슚�꽦 泥댄겕
@@ -1266,14 +1299,14 @@
         //this.issueUserService.modifyIssueUser(issue, project.getWorkspace(), issueForm.getUserIds());
         //  �떞�떦遺��꽌 吏��젙
         if(issueForm.getDepartmentIds().size()>0){
-            this.issueDepartmentService.modifyIssueDepartment(issue, project.getWorkspace(), issueForm.getDepartmentIds());
+            this.issueDepartmentService.modifyIssueDepartment(issue, user, project.getWorkspace(), issueForm.getDepartmentIds());
         }
 
         //  multipartFile �쓣 file Map List 媛앹껜濡� 蹂�寃쏀븳�떎.
         List<Map<String, Object>> convertFileMaps = this.convertMultipartFileToFile(multipartFiles);
 
         //  泥⑤� �뙆�씪 ���옣 - 鍮꾨룞湲곕줈 �옉�룞
-        this.attachedFileService.addAttachedFile(convertFileMaps, issue, this.webAppUtil.getLoginUser().getAccount());
+        this.attachedFileService.addAttachedFile(convertFileMaps, issue, user.getAccount());
         //  �궘�젣�맂 泥⑤��뙆�씪 泥섎━
         this.attachedFileService.removeAttachedFiles(issueForm.getRemoveFiles());
         //  �뀓�뒪�듃 �뿉�뵒�꽣�뿉 泥⑤��븳 �뙆�씪�쓣 �씠�뒋�� �뿰寃�
@@ -1282,7 +1315,7 @@
         this.issueCustomFieldValueService.modifyIssueCustomFieldValue(issue, issueForm.getIssueCustomFields());
         //  �씠�뒋 �씠�젰 �벑濡�
         if (!StringUtils.isEmpty(detectIssueChange.toString())) {
-            this.issueHistoryService.addIssueHistory(issue, IssueHistoryType.MODIFY, detectIssueChange.toString());
+            this.issueHistoryService.addIssueHistory(issue, user, IssueHistoryType.MODIFY, detectIssueChange.toString());
         }
         //  �궗�슜�옄 �떆�뒪�뀥 湲곕뒫 �궗�슜 �젙蹂� �닔吏�
         log.info(ElasticSearchUtil.makeUserActiveHistoryMessage(this.webAppUtil.getLoginUser(), ElasticSearchConstants.ISSUE_MODIFY));

--
Gitblit v1.8.0