From 98123c3ea5bb8fc53d1258046403801deb5b1584 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 수, 01 12월 2021 13:09:02 +0900
Subject: [PATCH] 이슈 이메일 전송 백엔드

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java       |   17 ++++++--
 src/main/java/kr/wisestone/owl/service/impl/SystemEmailServiceImpl.java |   18 +++++++++
 src/main/java/kr/wisestone/owl/web/form/IssueForm.java                  |   14 +++++++
 src/main/java/kr/wisestone/owl/web/controller/IssueController.java      |    4 +-
 src/main/java/kr/wisestone/owl/constant/MsgConstants.java               |    1 
 src/main/java/kr/wisestone/owl/domain/enumType/EmailType.java           |    3 +
 src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties                  |    1 
 src/main/java/kr/wisestone/owl/constant/MailConstants.java              |    5 ++
 8 files changed, 56 insertions(+), 7 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/constant/MailConstants.java b/src/main/java/kr/wisestone/owl/constant/MailConstants.java
index 1a68deb..fac7864 100644
--- a/src/main/java/kr/wisestone/owl/constant/MailConstants.java
+++ b/src/main/java/kr/wisestone/owl/constant/MailConstants.java
@@ -30,7 +30,10 @@
 
     ISSUE_ADD("issue.add.title", "issueAddEmail"),  //  �씠�뒋 �깮�꽦
     ISSUE_REMOVE("issue.remove.title", "issueRemoveEmail"), //  �씠�뒋 �궘�젣
-    ISSUE_SEND("issue.send.title", "issueSendEmail"); //  �씠�뒋 �씠硫붿씪 �쟾�떖
+    ISSUE_SEND("issue.send.title", "issueSendEmail"), //  �씠�뒋 �씠硫붿씪 �쟾�떖
+    ISSUE_SEND_1("issue.send1.title", "issueSend1Email"), //  �씠�뒋 �씠硫붿씪 �쟾�떖
+    ISSUE_SEND_2("issue.send2.title", "issueSend2Email"), //  �씠�뒋 �씠硫붿씪 �쟾�떖
+    ISSUE_SEND_3("issue.send3.title", "issueSend3Email"); //  �씠�뒋 �씠硫붿씪 �쟾�떖
     //  ISSUE_MODIFY("issue.modify.title", "issueModifyEmail"); //  �씠�뒋 �닔�젙
 
 
diff --git a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
index 3672534..b4d81c6 100644
--- a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
+++ b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
@@ -114,6 +114,7 @@
     public static final String ISSUE_REMOVE_NOT_SELECT = "ISSUE_REMOVE_NOT_SELECT"; //  �궘�젣�븷 �씠�뒋媛� �꽑�깮�릺吏� �븡�븯�뒿�땲�떎.
     public static final String ISSUE_NO_TITLE = "ISSUE_NO_TITLE";   //  �씠�뒋 �젣紐⑹씠 �엯�젰�릺吏� �븡�븯�뒿�땲�떎.
     public static final String ISSUE_NOT_SEND_USER = "ISSUE_NOT_SEND_USER";   //  �씠�뒋 諛쒖넚 ���긽�옄瑜� �꽑�깮�븯吏� �븡�븯�뒿�땲�떎.
+    public static final String ISSUE_NOT_SELECT_TEMPLATE = "ISSUE_NOT_SELECT_TEMPLATE";   //  �씠�뒋 諛쒖넚 �뀥�뵆由우쓣 �꽑�깮�븯吏� �븡�븯�뒿�땲�떎.
 
     public static final String ISSUE_COMMENT_REMOVE_NOT_SELECT = "ISSUE_COMMENT_REMOVE_NOT_SELECT"; //  �궘�젣�븷 �뙎湲��쓣 �꽑�깮�븯吏� �븡�븯�뒿�땲�떎.
     public static final String ISSUE_COMMENT_NOT_EXIST = "ISSUE_COMMENT_NOT_EXIST"; //  �뙎湲��씠 議댁옱�븯吏� �븡�뒿�땲�떎.
diff --git a/src/main/java/kr/wisestone/owl/domain/enumType/EmailType.java b/src/main/java/kr/wisestone/owl/domain/enumType/EmailType.java
index 75d8b6b..b1bb116 100644
--- a/src/main/java/kr/wisestone/owl/domain/enumType/EmailType.java
+++ b/src/main/java/kr/wisestone/owl/domain/enumType/EmailType.java
@@ -32,6 +32,9 @@
     ISSUE_MODIFY,   //  �씠�뒋 �닔�젙
     ISSUE_REMOVE,   //  �씠�뒋 �궘�젣
     ISSUE_SEND, //  �씠�뒋 �젙蹂� �씠硫붿씪濡� �쟾�떖
+    ISSUE_SEND_1,
+    ISSUE_SEND_2,
+    ISSUE_SEND_3,
     PROJECT_ADD,    //  �봽濡쒖젥�듃 �깮�꽦
     PROJECT_MODIFY, //  �봽濡쒖젥�듃 �닔�젙
     PROJECT_REMOVE, //  �봽濡쒖젥�듃 �궘�젣
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 4133115..0005bb0 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -2480,6 +2480,9 @@
         if (issueForm.getSendEmails().size() < 1) {
             throw new OwlRuntimeException(
                     this.messageAccessor.getMessage(MsgConstants.ISSUE_NOT_SEND_USER));
+        }else if (issueForm.getTemplate() != null){
+            throw new OwlRuntimeException(
+                    this.messageAccessor.getMessage(MsgConstants.ISSUE_NOT_SELECT_TEMPLATE));
         }
 
         Issue issue = this.getIssue(issueForm.getId());
@@ -2501,8 +2504,15 @@
 
         //  �궗�슜�옄 �떆�뒪�뀥 湲곕뒫 �궗�슜 �젙蹂� �닔吏�
         log.info(ElasticSearchUtil.makeUserActiveHistoryMessage(this.webAppUtil.getLoginUser(), ElasticSearchConstants.ISSUE_ANOTHER_USER_SEND_EMAIL));
+        //this.systemEmailService.directEmail(issueForm.getSendEmails().toArray(new String[issueForm.getSendEmails().size()]), EmailType.ISSUE_SEND, issueMap, null);
 
-        this.systemEmailService.directEmail(issueForm.getSendEmails().toArray(new String[issueForm.getSendEmails().size()]), EmailType.ISSUE_SEND, issueMap, null); //mailType.ISSUE_SEND - �뀥�뵆由� �꽕�젙
+        if(issueForm.getTemplate().equals("SEND1")){
+            this.systemEmailService.directEmail(issueForm.getSendEmails().toArray(new String[issueForm.getSendEmails().size()]), EmailType.ISSUE_SEND_1, issueMap, null);
+        }else if(issueForm.getTemplate().equals("SEND2")){
+            this.systemEmailService.directEmail(issueForm.getSendEmails().toArray(new String[issueForm.getSendEmails().size()]), EmailType.ISSUE_SEND_2, issueMap, null);
+        }else if(issueForm.getTemplate().equals("SEND3")){
+            this.systemEmailService.directEmail(issueForm.getSendEmails().toArray(new String[issueForm.getSendEmails().size()]), EmailType.ISSUE_SEND_3, issueMap, null);
+        }
     }
 
     //  �삁�빟 諛쒖깮 �씠�뒋瑜� �떎�뻾�븳�떎
@@ -2686,7 +2696,6 @@
         }
 
         if (newParentIssueId != null) { // 異붽� �븷 寃쎌슦
-           // todo �씠�쟾 �븯�쐞 �씪媛� �엳�뒪�넗由ш린濡� �븘�슂
             parentIssue = this.getIssue(newParentIssueId); //�긽�쐞�씠�뒋(myIssue)
             issue.setParentIssue(parentIssue); //myIssue瑜� �븯�쐞�씠�뒋�쓽 �긽�쐞�씠�뒋濡� set
             this.issueHistoryService.detectDownIssues(IssueHistoryType.ADD, issue, sb); //issue = �븯�쐞�씠�뒋
@@ -2716,7 +2725,7 @@
         }
     }
 
-    @Override
+    /*@Override
     @Transactional
     public void findMailTargetAll(Map<String, Object> resJsonData, IssueCondition condition, Pageable pageable) {
         IssueVo issueVo = new IssueVo();
@@ -2752,7 +2761,7 @@
         resJsonData.put(Constants.RES_KEY_CONTENTS, emailList);
         resJsonData.put(Constants.REQ_KEY_PAGE_VO, new ResPage(pageable.getPageNumber(), pageable.getPageSize(),
                 totalPage, totalCount));
-    }
+    }*/
 
     /*@Override
     @Transactional
diff --git a/src/main/java/kr/wisestone/owl/service/impl/SystemEmailServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/SystemEmailServiceImpl.java
index 60a400c..a51aff3 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/SystemEmailServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/SystemEmailServiceImpl.java
@@ -179,6 +179,24 @@
                 content = this.springTemplateEngine.process(mailConstants.getMailTemplate(), context);
                 break;
 
+            case ISSUE_SEND_1:    //  �씠�뒋 �씠硫붿씪濡� ���긽�옄�뿉寃� 諛쒖넚
+                mailConstants = MailConstants.ISSUE_SEND_1;
+                context = StringTemplateUtil.makeContext(params, locale);
+                content = this.springTemplateEngine.process(mailConstants.getMailTemplate(), context);
+                break;
+
+            case ISSUE_SEND_2:    //  �씠�뒋 �씠硫붿씪濡� ���긽�옄�뿉寃� 諛쒖넚
+                mailConstants = MailConstants.ISSUE_SEND_2;
+                context = StringTemplateUtil.makeContext(params, locale);
+                content = this.springTemplateEngine.process(mailConstants.getMailTemplate(), context);
+                break;
+
+            case ISSUE_SEND_3:    //  �씠�뒋 �씠硫붿씪濡� ���긽�옄�뿉寃� 諛쒖넚
+                mailConstants = MailConstants.ISSUE_SEND_3;
+                context = StringTemplateUtil.makeContext(params, locale);
+                content = this.springTemplateEngine.process(mailConstants.getMailTemplate(), context);
+                break;
+
             case USER_JOIN_STATISTICS:  //  �씪�씪 �궗�슜�옄 媛��엯 �젙蹂� 諛쒖넚
                 mailConstants = MailConstants.USER_JOIN_STATISTICS;
                 context = StringTemplateUtil.makeContext(params, locale);
diff --git a/src/main/java/kr/wisestone/owl/web/controller/IssueController.java b/src/main/java/kr/wisestone/owl/web/controller/IssueController.java
index 436a3b5..68898f9 100644
--- a/src/main/java/kr/wisestone/owl/web/controller/IssueController.java
+++ b/src/main/java/kr/wisestone/owl/web/controller/IssueController.java
@@ -165,7 +165,7 @@
     }
 
     //  硫붿씪 諛쒖넚 ���긽�옄 紐⑸줉 議고쉶
-    @RequestMapping(value = "/issue/findMailTargetAll", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
+    /*@RequestMapping(value = "/issue/findMailTargetAll", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
     public
     @ResponseBody
     Map<String, Object> findMailTargetAll(@RequestBody Map<String, Map<String, Object>> params) {
@@ -175,7 +175,7 @@
         this.issueService.findMailTargetAll(resJsonData, IssueCondition.make(params.get(Constants.REQ_KEY_CONTENT)), pageable);
 
         return this.setSuccessMessage(resJsonData);
-    }
+    }*/
 
 
     /*//  �뾽泥� �떞�떦�옄 硫붿씪 紐⑸줉 議고쉶
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 9f3a6cc..9ff571f 100644
--- a/src/main/java/kr/wisestone/owl/web/form/IssueForm.java
+++ b/src/main/java/kr/wisestone/owl/web/form/IssueForm.java
@@ -30,6 +30,7 @@
     private List<Long> userIds = Lists.newArrayList();
     private List<Long> departmentIds = Lists.newArrayList();    // �떞�떦 遺��꽌
     private List<String> sendEmails = Lists.newArrayList(); //  �씠硫붿씪 諛쒖넚 ���긽�옄
+    private String template;
     private List<Long> attachedFileIds = Lists.newArrayList();
     private Long relationIssue;   // �뿰愿� �씪媛�
     private List<Map<String, Object>> issueCustomFields = Lists.newArrayList();
@@ -70,6 +71,11 @@
         //  硫붿씪 諛쒖넚�옄 �젙蹂�
         if (MapUtil.getStrings(params, "sendEmails") != null) {
             form.setSendEmails(MapUtil.getStrings(params, "sendEmails"));
+        }
+
+        //  硫붿씪 �뀥�뵆由� �젙蹂�
+        if (MapUtil.getString(params, "template") != null) {
+            form.setTemplate(MapUtil.getString(params, "template"));
         }
 
         //  �뀓�뒪�듃 �뿉�뵒�꽣�뿉 泥⑤��맂 �뙆�씪�쓣 �씠�뒋�� �뿰寃고븯�뒗 �젙蹂�
@@ -333,4 +339,12 @@
     public void setParentIssueId(Long parentIssueId) {
         this.parentIssueId = parentIssueId;
     }
+
+    public String getTemplate() {
+        return template;
+    }
+
+    public void setTemplate(String template) {
+        this.template = template;
+    }
 }
diff --git a/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties b/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties
index f13e192..f56fd09 100644
--- a/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties
+++ b/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties
@@ -116,6 +116,7 @@
 ISSUE_REMOVE_NOT_SELECT = \uC0AD\uC81C\uD560 \uC774\uC288\uAC00 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
 ISSUE_NO_TITLE = \uC774\uC288 \uC81C\uBAA9\uC774 \uC785\uB825\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
 ISSUE_NOT_SEND_USER = \uC774\uC288 \uBC1C\uC1A1 \uB300\uC0C1\uC790\uB97C \uC120\uD0DD\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
+ISSUE_NOT_SELECT_TEMPLATE = \uC774\uC288 \uBC1C\uC1A1 \uD15C\uD50C\uB9BF\uC744 \uC120\uD0DD\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
 
 ISSUE_COMMENT_REMOVE_NOT_SELECT = \uC0AD\uC81C\uD560 \uB313\uAE00\uC744 \uC120\uD0DD\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
 ISSUE_COMMENT_NOT_EXIST = \uB313\uAE00\uC774 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.

--
Gitblit v1.8.0