From ce82939b2d2ef793e446f464314c6e570c7ebad5 Mon Sep 17 00:00:00 2001
From: jhjang <jhjang@maprex.co.kr>
Date: 수, 05 1월 2022 10:48:42 +0900
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java        |   18 ++++++++-
 src/main/java/kr/wisestone/owl/service/impl/WorkspaceServiceImpl.java    |    9 ++++
 src/main/java/kr/wisestone/owl/service/IssueCommentService.java          |    3 +
 src/main/java/kr/wisestone/owl/service/WorkspaceService.java             |    2 +
 src/main/java/kr/wisestone/owl/web/form/IssueApiForm.java                |    9 ++++
 src/main/java/kr/wisestone/owl/web/form/IssueForm.java                   |    3 +
 src/main/java/kr/wisestone/owl/service/impl/IssueCommentServiceImpl.java |   21 ++++++++++
 src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java |   12 +++---
 8 files changed, 68 insertions(+), 9 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/IssueCommentService.java b/src/main/java/kr/wisestone/owl/service/IssueCommentService.java
index da38dc5..5bb5edb 100644
--- a/src/main/java/kr/wisestone/owl/service/IssueCommentService.java
+++ b/src/main/java/kr/wisestone/owl/service/IssueCommentService.java
@@ -1,6 +1,7 @@
 package kr.wisestone.owl.service;
 
 import kr.wisestone.owl.domain.IssueComment;
+import kr.wisestone.owl.domain.User;
 import kr.wisestone.owl.vo.IssueCommentVo;
 import kr.wisestone.owl.web.form.IssueCommentForm;
 import org.springframework.data.jpa.repository.JpaRepository;
@@ -11,6 +12,8 @@
 
     IssueComment addIssueComment(IssueCommentForm issueCommentForm);
 
+    IssueComment addIssueComment(IssueCommentForm issueCommentForm, User user);
+
     void removeIssueComments(IssueCommentForm issueCommentForm);
 
     IssueComment getIssueComment(Long id );
diff --git a/src/main/java/kr/wisestone/owl/service/WorkspaceService.java b/src/main/java/kr/wisestone/owl/service/WorkspaceService.java
index 00d4e28..6d1ea4f 100644
--- a/src/main/java/kr/wisestone/owl/service/WorkspaceService.java
+++ b/src/main/java/kr/wisestone/owl/service/WorkspaceService.java
@@ -42,6 +42,8 @@
 
     void checkUseWorkspace();
 
+    void checkUseWorkspace(User user);
+
     Workspace checkUseWorkspace(User user, Long workspaceId);
 
     ModelAndView checkUseExcelDownload(Model model);
diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueCommentServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueCommentServiceImpl.java
index ad166cc..a2963aa 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueCommentServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueCommentServiceImpl.java
@@ -3,6 +3,7 @@
 import kr.wisestone.owl.constant.MsgConstants;
 import kr.wisestone.owl.domain.Issue;
 import kr.wisestone.owl.domain.IssueComment;
+import kr.wisestone.owl.domain.User;
 import kr.wisestone.owl.exception.OwlRuntimeException;
 import kr.wisestone.owl.repository.IssueCommentRepository;
 import kr.wisestone.owl.service.IssueCommentService;
@@ -61,6 +62,26 @@
         return issueComment;
     }
 
+    //  �뙎湲��쓣 �벑濡앺븳�떎. (api�슜)
+    @Override
+    @Transactional
+    public IssueComment addIssueComment(IssueCommentForm issueCommentForm, User user) {
+        //  �궗�슜�븯怨� �엳�뒗 �뾽臾� 怨듦컙�씠 �솢�꽦 �긽�깭�씤吏� �솗�씤�븳�떎. �궗�슜 怨듦컙�뿉�꽌 濡쒓렇�씤�븳 �궗�슜�옄媛� 鍮꾪솢�꽦�씤吏� �솗�씤�븳�떎.
+        this.workspaceService.checkUseWorkspace(user);
+
+        IssueComment issueComment = ConvertUtil.copyProperties(issueCommentForm, IssueComment.class);
+
+        this.verifyComment(issueCommentForm.getDescription());
+
+        Issue issue = this.issueService.getIssue(issueCommentForm.getIssueId());
+        issueComment.setIssue(issue);
+        issueComment.setWorkspace(issue.getProject().getWorkspace());
+
+        this.issueCommentRepository.saveAndFlush(issueComment);
+
+        return issueComment;
+    }
+
     private void verifyComment(String comment) {
         if (StringUtils.isEmpty(comment)) {
             throw new OwlRuntimeException(
diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java
index 80b12e2..1e2a2b3 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueHistoryServiceImpl.java
@@ -349,8 +349,11 @@
         this.detectIssuePeriod(issue, issueForm, description);
         //  �떞�떦�옄 蹂�寃� �젙蹂대�� 湲곕줉�븳�떎.
         this.detectIssueManager(issue, issueForm, description);
-        //  �떞�떦遺��꽌 蹂�寃� �젙蹂대�� 湲곕줉�븳�떎.
-        this.detectIssueDepartment(issue, issueForm, description);
+
+        if (issueForm.getIsApi().equals(Issue.IS_API_NO)) { //api濡� 蹂�寃� �떆 �떞�떦遺��꽌 蹂�寃� 遺덇�
+            //  �떞�떦遺��꽌 蹂�寃� �젙蹂대�� 湲곕줉�븳�떎.
+            this.detectIssueDepartment(issue, issueForm, description);
+        }
         //  �궗�슜�옄 �젙�쓽 �븘�뱶 蹂�寃� �젙蹂대�� 湲곕줉�븳�떎.
         this.detectCustomField(issue, issueForm, description);
 
@@ -759,10 +762,7 @@
             // �씠�뒋 �쐞�뿕 愿�由ъ뿉 �떞�떦遺��꽌 蹂�寃� �젙蹂대�� �뾽�뜲�씠�듃 �븳�떎. - �떞�떦遺��꽌 蹂�寃�
             this.issueRiskService.modifyIssueRisk(issue, false, true, null);
             saveIssueRisk = true;
-        }
-
-        //  �떞�떦遺��꽌 �닔�뒗 媛숈쑝�굹 �떞�떦遺��꽌媛� �떖�씪議뚯쓣 寃쎌슦
-        if (issue.getIssueDepartments().size() > 0 && issueForm.getDepartmentIds().size() > 0) {
+        }else if (issue.getIssueDepartments().size() > 0 && issueForm.getDepartmentIds().size() > 0) {//  �떞�떦遺��꽌 �닔�뒗 媛숈쑝�굹 �떞�떦遺��꽌媛� �떖�씪議뚯쓣 寃쎌슦
             //  �씠�쟾 �떞�떦�옄 �몴�떆
             for (IssueDepartment issueDepartment : issue.getIssueDepartments()) {
                 boolean change = true;
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 641bcd9..bce5de5 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -313,7 +313,7 @@
         }
     }
 
-    private void findCompanyField(IssueForm issueForm) {
+    private IssueForm findCompanyField(IssueForm issueForm) {
         if(issueForm.getIssueCustomFields() != null && issueForm.getIssueCustomFields().size() > 0) {
             CompanyFieldCondition condition = new CompanyFieldCondition();
             List<Map<String, Object>> companyFields = this.companyFieldService.find(condition);
@@ -356,6 +356,7 @@
                 issueForm.setIssueHostingFields(issueHostingFields);
             }
         }
+        return issueForm;
     }
 
     private User convertToUser(String token) {
@@ -381,7 +382,14 @@
         } else {
             // 媛��긽 �긽�쐞 �씠�뒋 異붽�
             IssueForm parentIssueForm = issueForm.clone();
+            // 媛��긽 �긽�쐞 �씠�뒋 異붽�
             parentIssueForm.setUseIssueCustomFields(issueApiForm.getUseIssueCustomFieldIds());
+            //  媛숈� �룄硫붿씤 �뾽泥� 李얘린
+            IssueForm partners = this.findCompanyField(parentIssueForm);
+            parentIssueForm.setIssueCompanyFields(partners.getIssueCompanyFields());
+            parentIssueForm.setIssueIspFields(partners.getIssueIspFields());
+            parentIssueForm.setIssueHostingFields(partners.getIssueHostingFields());
+
             Issue issue = addIssue(user, parentIssueForm, null);
             issues.add(issue);
             // �븯�쐞 �씠�뒋 異붽�
@@ -501,7 +509,6 @@
         this.issueIspService.modifyIssueIspField(issue, issueForm);
         //  HOSTING �젙蹂� ���옣
         this.issueHostingService.modifyIssueHostingField(issue, issueForm);
-
 
         //  泥⑤� �뙆�씪 ���옣
         //  multipartFile �쓣 file Map List 媛앹껜濡� 蹂�寃쏀븳�떎.
@@ -1904,6 +1911,13 @@
     private Issue modifyIssueForApi(User user, IssueForm issueForm, List<MultipartFile> multipartFiles) {
         CheckIssueData checkIssueData = this.checkIssue(user, issueForm);
 
+        if (issueForm.getComment() != null && !issueForm.getComment().equals("")) { //�뙎湲� 異붽�
+            IssueCommentForm issueCommentForm = new IssueCommentForm();
+            issueCommentForm.setDescription(issueForm.getComment());
+            issueCommentForm.setIssueId(issueForm.getId());
+            this.issueCommentService.addIssueComment(issueCommentForm, user);
+        }
+
         // �씠�뒋 �씠�젰 �궓湲곌린
         this.addIssueHistoryModify(user, issueForm, checkIssueData, multipartFiles);
 
diff --git a/src/main/java/kr/wisestone/owl/service/impl/WorkspaceServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/WorkspaceServiceImpl.java
index 398de47..a1a3ee2 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/WorkspaceServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/WorkspaceServiceImpl.java
@@ -567,6 +567,15 @@
     //  �궗�슜�븯怨� �엳�뒗 �뾽臾� 怨듦컙�씠 �솢�꽦 �긽�깭�씤吏� �솗�씤�븳�떎. �궗�슜 怨듦컙�뿉�꽌 濡쒓렇�씤�븳 �궗�슜�옄媛� 鍮꾪솢�꽦�씤吏� �솗�씤�븳�떎.
     @Override
     @Transactional
+    public void checkUseWorkspace(User user) {
+        Workspace workspace = this.getWorkspace(user.getLastWorkspaceId());
+
+        this.checkUseWorkspace(user, workspace.getId());
+    }
+
+    //  �궗�슜�븯怨� �엳�뒗 �뾽臾� 怨듦컙�씠 �솢�꽦 �긽�깭�씤吏� �솗�씤�븳�떎. �궗�슜 怨듦컙�뿉�꽌 濡쒓렇�씤�븳 �궗�슜�옄媛� 鍮꾪솢�꽦�씤吏� �솗�씤�븳�떎.
+    @Override
+    @Transactional
     public Workspace checkUseWorkspace(User user, Long workspaceId) {
         if (user == null) {
             throw new OwlRuntimeException(
diff --git a/src/main/java/kr/wisestone/owl/web/form/IssueApiForm.java b/src/main/java/kr/wisestone/owl/web/form/IssueApiForm.java
index 42c5467..aaab370 100644
--- a/src/main/java/kr/wisestone/owl/web/form/IssueApiForm.java
+++ b/src/main/java/kr/wisestone/owl/web/form/IssueApiForm.java
@@ -32,6 +32,7 @@
     private List<MultipartFile> multipartFiles = Lists.newArrayList();
     private List<Long> useIssueCustomFieldIds = Lists.newArrayList();       // �궗�쐞�씪媛먯슜 �궗�슜�옄�븘�뱶媛�
     private String url;             // �깘吏� �떆�뒪�뀥�뿉�꽌留� �쟻�슜
+    private String comment;
 
     public IssueApiForm() {
     }
@@ -237,4 +238,12 @@
     public void setUrl(String url) {
         this.url = url;
     }
+
+    public String getComment() {
+        return comment;
+    }
+
+    public void setComment(String comment) {
+        this.comment = comment;
+    }
 }
diff --git a/src/main/java/kr/wisestone/owl/web/form/IssueForm.java b/src/main/java/kr/wisestone/owl/web/form/IssueForm.java
index f2a8b70..992db0d 100644
--- a/src/main/java/kr/wisestone/owl/web/form/IssueForm.java
+++ b/src/main/java/kr/wisestone/owl/web/form/IssueForm.java
@@ -1,6 +1,7 @@
 package kr.wisestone.owl.web.form;
 
 import com.google.common.collect.Lists;
+import kr.wisestone.owl.domain.Issue;
 import kr.wisestone.owl.util.ConvertUtil;
 import kr.wisestone.owl.util.MapUtil;
 import kr.wisestone.owl.vo.CompanyFieldVo;
@@ -66,7 +67,7 @@
 
     private List<Map<String, Object>> files = Lists.newArrayList(); // api�슜 泥⑤��뙆�씪
     private Long parentIssueId; // �긽�쐞 �씠�뒋
-    private String isApi;
+    private String isApi = Issue.IS_API_NO;
     private List<String> downIssuesStatus = Lists.newArrayList(); //�븯�쐞�씠�뒋 �긽�깭
 
     public IssueForm() {

--
Gitblit v1.8.0