From 9b589820e73c0ca36ceca13ddd6b8c2dda810459 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 월, 29 11월 2021 17:03:41 +0900
Subject: [PATCH] 이슈 메일 보내기 기능 - 전체 대상자 출력 백엔드

---
 src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java  |   70 +++++++++++++++++++++--
 src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java   |    4 +
 src/main/java/kr/wisestone/owl/service/IssueService.java           |    8 ++
 src/main/java/kr/wisestone/owl/web/controller/IssueController.java |   62 ++++++++++++++++----
 4 files changed, 124 insertions(+), 20 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/service/IssueService.java b/src/main/java/kr/wisestone/owl/service/IssueService.java
index 4b63770..0458655 100644
--- a/src/main/java/kr/wisestone/owl/service/IssueService.java
+++ b/src/main/java/kr/wisestone/owl/service/IssueService.java
@@ -73,5 +73,11 @@
 
     void findPartner(Map<String, Object> resJsonData, Map<String, Object> params);
 
-    void findMailTarget(Map<String, Object> resJsonData, Map<String, Object> params);
+    void findMailTargetAll(Map<String, Object> resJsonData, IssueCondition condition, Pageable pageable);
+
+    /*void findMailTargetCompany(Map<String, Object> resJsonData, Map<String, Object> params);
+
+    void findMailTargetIsp(Map<String, Object> resJsonData, Map<String, Object> params);
+
+    void findMailTargetHosting(Map<String, Object> resJsonData, Map<String, Object> params);*/
 }
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 c74683f..59a159b 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -2711,15 +2711,71 @@
     }
 
     @Override
-    public void findMailTarget(Map<String, Object> resJsonData, Map<String, Object> params) {
-        Long issueId = MapUtil.getLong(params, "issueId");
-        Issue issue = this.getIssue(issueId);
+    @Transactional
+    public void findMailTargetAll(Map<String, Object> resJsonData, IssueCondition condition, Pageable pageable) {
         IssueVo issueVo = new IssueVo();
+        //Long issueId = MapUtil.getLong(params, "issueId");
+        Long issueId = condition.getId();
 
-        this.setIssueCompanyField(issue, issueVo);  //�뾽泥� �젙蹂� �꽭�똿
-        this.setIssueIspField(issue, issueVo);  //ISP �젙蹂� �꽭�똿
-        this.setIssueHostingField(issue, issueVo);  //HOSTING �젙蹂� �꽭�똿
+        List<String> emailList = Lists.newArrayList();
 
-        resJsonData.put(Constants.RES_KEY_CONTENTS, issueVo);
+        if(issueId != null){
+            Issue issue = this.getIssue(issueId);
+            issueVo = ConvertUtil.copyProperties(issue, IssueVo.class);
+            this.setIssueCompanyField(issue, issueVo);  //�뾽泥� �젙蹂� �꽭�똿
+            this.setIssueIspField(issue, issueVo);  //ISP �젙蹂� �꽭�똿
+            this.setIssueHostingField(issue, issueVo);  //HOSTING �젙蹂� �꽭�똿
+            for(IssueCompanyVo issueCompanyVo : issueVo.getIssueCompanyVos()) {
+                emailList.add(issueCompanyVo.getEmail());
+            }
+            for(IssueIspVo issueIspVo : issueVo.getIssueIspVos()) {
+                emailList.add(issueIspVo.getEmail());
+            }
+            for(IssueHostingVo issueHostingVo : issueVo.getIssueHostingVos()) {
+                emailList.add(issueHostingVo.getEmail());
+            }
+
+        }
+
+        Long totalCount = this.issueMapper.count(condition);
+        int totalPage = (int) Math.ceil((totalCount - 1) / pageable.getPageSize()) + 1;
+
+        condition.setPage(pageable.getPageNumber() * pageable.getPageSize());
+        condition.setPageSize(pageable.getPageSize());
+        //resJsonData.put(Constants.RES_KEY_CONTENTS, emailList);
+        resJsonData.put(Constants.RES_KEY_CONTENTS, emailList);
+        resJsonData.put(Constants.REQ_KEY_PAGE_VO, new ResPage(pageable.getPageNumber(), pageable.getPageSize(),
+                totalPage, totalCount));
     }
+
+    /*@Override
+    @Transactional
+    public void findMailTargetCompany(Map<String, Object> resJsonData, Map<String, Object> params) {
+        IssueVo issueVo = new IssueVo();
+        Long issueId = MapUtil.getLong(params, "issueId");
+
+        List<String> emailList = Lists.newArrayList();
+
+        if(issueId != null){
+            Issue issue = this.getIssue(issueId);
+            issueVo = ConvertUtil.copyProperties(issue, IssueVo.class);
+            this.setIssueCompanyField(issue, issueVo);  //�뾽泥� �젙蹂� �꽭�똿
+            for(IssueCompanyVo issueCompanyVo : issueVo.getIssueCompanyVos()) {
+                emailList.add(issueCompanyVo.getEmail());
+            }
+        }
+        resJsonData.put(Constants.RES_KEY_CONTENTS, emailList);
+    }
+
+    @Override
+    @Transactional
+    public void findMailTargetIsp(Map<String, Object> resJsonData, Map<String, Object> params) {
+
+    }
+
+    @Override
+    @Transactional
+    public void findMailTargetHosting(Map<String, Object> resJsonData, Map<String, Object> params) {
+
+    }*/
 }
diff --git a/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java b/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java
index 177072d..a0a8824 100644
--- a/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java
+++ b/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java
@@ -168,6 +168,10 @@
             condition.setExcludeIds(MapUtil.getLongs(conditions, "excludeIds"));
         }
 
+        if (MapUtil.getLong(conditions, "issueId") != null) {
+            condition.setId(MapUtil.getLong(conditions, "issueId"));
+        }
+
         return condition;
     }
 
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 d3eead3..436a3b5 100644
--- a/src/main/java/kr/wisestone/owl/web/controller/IssueController.java
+++ b/src/main/java/kr/wisestone/owl/web/controller/IssueController.java
@@ -75,18 +75,6 @@
         return this.setSuccessMessage(resJsonData);
     }
 
-    //  硫붿씪 諛쒖넚 ���긽�옄 紐⑸줉 議고쉶
-    @RequestMapping(value = "/issue/findMailTarget", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
-    public
-    @ResponseBody
-    Map<String, Object> findMailTarget(@RequestBody Map<String, Map<String, Object>> params) {
-        Map<String, Object> resJsonData = new HashMap<>();
-
-        this.issueService.findMailTarget(resJsonData, params.get(Constants.REQ_KEY_CONTENT));
-
-        return this.setSuccessMessage(resJsonData);
-    }
-
     //  �씠�뒋 �긽�꽭 議고쉶
     @RequestMapping(value = "/issue/detail", produces = MediaType.APPLICATION_JSON_VALUE)
     public
@@ -176,5 +164,55 @@
         return this.setSuccessMessage(resJsonData);
     }
 
+    //  硫붿씪 諛쒖넚 ���긽�옄 紐⑸줉 議고쉶
+    @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) {
+        Map<String, Object> resJsonData = new HashMap<>();
+        Pageable pageable = this.pageUtil.convertPageable(this.getPageVo(params));
+
+        this.issueService.findMailTargetAll(resJsonData, IssueCondition.make(params.get(Constants.REQ_KEY_CONTENT)), pageable);
+
+        return this.setSuccessMessage(resJsonData);
+    }
+
+
+    /*//  �뾽泥� �떞�떦�옄 硫붿씪 紐⑸줉 議고쉶
+    @RequestMapping(value = "/issue/findMailTargetCompany", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
+    public
+    @ResponseBody
+    Map<String, Object> findMailTargetCompany(@RequestBody Map<String, Map<String, Object>> params) {
+        Map<String, Object> resJsonData = new HashMap<>();
+
+        this.issueService.findMailTargetCompany(resJsonData, params.get(Constants.REQ_KEY_CONTENT));
+
+        return this.setSuccessMessage(resJsonData);
+    }
+
+    //  ISP �떞�떦�옄 硫붿씪 紐⑸줉 議고쉶
+    @RequestMapping(value = "/issue/findMailTargetIsp", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
+    public
+    @ResponseBody
+    Map<String, Object> findMailTargetIsp(@RequestBody Map<String, Map<String, Object>> params) {
+        Map<String, Object> resJsonData = new HashMap<>();
+
+        this.issueService.findMailTargetIsp(resJsonData, params.get(Constants.REQ_KEY_CONTENT));
+
+        return this.setSuccessMessage(resJsonData);
+    }
+
+    //  �샇�뒪�똿 �떞�떦�옄 硫붿씪 紐⑸줉 議고쉶
+    @RequestMapping(value = "/issue/findMailTargetHosting", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
+    public
+    @ResponseBody
+    Map<String, Object> findMailTargetHosting(@RequestBody Map<String, Map<String, Object>> params) {
+        Map<String, Object> resJsonData = new HashMap<>();
+
+        this.issueService.findMailTargetHosting(resJsonData, params.get(Constants.REQ_KEY_CONTENT));
+
+        return this.setSuccessMessage(resJsonData);
+    }*/
+
 
 }

--
Gitblit v1.8.0