From aad276da26b3b44b7622343fa0bf15583e803585 Mon Sep 17 00:00:00 2001
From: xinyb <574600396@qq.com>
Date: 星期五, 27 九月 2024 11:29:01 +0800
Subject: [PATCH] CRM邮件文件夹和标签

---
 src/com/yc/crm/mail/action/MailController.java |  180 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 166 insertions(+), 14 deletions(-)

diff --git a/src/com/yc/crm/mail/action/MailController.java b/src/com/yc/crm/mail/action/MailController.java
index d3b2880..fcfabb9 100644
--- a/src/com/yc/crm/mail/action/MailController.java
+++ b/src/com/yc/crm/mail/action/MailController.java
@@ -2,6 +2,7 @@
 
 import com.yc.crm.mail.entity.*;
 import com.yc.crm.mail.service.MailAccountIfc;
+import com.yc.crm.mail.service.MailFileIfc;
 import com.yc.crm.mail.service.MailIfc;
 import com.yc.crm.mail.service.MailServiceIfc;
 import com.yc.crm.mail.util.AllBackMsg;
@@ -25,6 +26,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 /**
@@ -47,13 +49,15 @@
     MailIfc emailIfc;
     @Autowired
     MailServiceIfc mailServiceIfc;
+    @Autowired
+    MailFileIfc mailFileIfc;
 
     private static final Pattern EMAIL_PATTERN =
             Pattern.compile("^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$");
 
 
     /**
-     * 宸﹁竟缁撴瀯灞�
+     * 宸﹁竟缁撴瀯涓婂眰
      *
      * @return
      */
@@ -80,12 +84,40 @@
     }
 
     /**
+     * 宸﹁竟缁撴瀯涓嬪眰
+     *
+     * @return
+     */
+    @GetMapping("/getEmailModuleBelow.do")
+    public AllBackMsg getEmailModuleBelow(HttpServletRequest request, HttpServletResponse response) throws Exception {
+        AllBackMsg msg = new AllBackMsg();
+        try {
+            HttpSession session = request.getSession();
+            String userCode = (String) session.getAttribute(SessionKey.USERCODE);//褰撳墠鐧诲綍鐢ㄦ埛
+            if (StringUtils.isBlank(userCode)) {//鑾峰彇涓嶅埌褰撳墠鐢ㄦ埛鐩存帴缁撴潫
+                msg.setFail("鑾峰彇涓嶅埌鐢ㄦ埛淇℃伅");
+                return msg;
+            }
+            DataSourceEntity dataSourceEntity = MultiDataSource.getDataSourceMap(request);//鑾峰彇鏁版嵁婧愪俊鎭�
+            SpObserver.setDBtoInstance("_" + dataSourceEntity.getDbId());//鍒囨崲鏁版嵁婧�
+            List<MailModuleBelowEntity> list = emailIfc.getMailModuleBelowList(userCode);
+            msg.setSuccess("鎵ц鎴愬姛", list);
+        } catch (Exception e) {
+            msg.setFail(e.getCause() != null ? e.getCause().getMessage() : e.getMessage());
+        } finally {
+            SpObserver.setDBtoInstance();
+        }
+        return msg;
+    }
+
+    /**
      * 鑾峰彇閭欢鍒楄〃锛堝寘鎷崏绋跨锛屾敹浠剁锛�
      *
      * @return
      */
     @GetMapping("/getMailList.do")
-    public AllBackMsg getMailList(String mail, @RequestParam(defaultValue = "1") Integer mailType, boolean isNoRead, HttpServletRequest request, HttpServletResponse response) throws Exception {
+    public AllBackMsg getMailList(String mail, @RequestParam(defaultValue = "1") Integer mailType,
+                                  @RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "20") Integer limit, boolean isNoRead, HttpServletRequest request, HttpServletResponse response) throws Exception {
         AllBackMsg msg = new AllBackMsg();
         try {
             if (StringUtils.isNotBlank(mail)) {
@@ -102,10 +134,17 @@
             }
             DataSourceEntity dataSourceEntity = MultiDataSource.getDataSourceMap(request);//鑾峰彇鏁版嵁婧愪俊鎭�
             SpObserver.setDBtoInstance("_" + dataSourceEntity.getDbId());//鍒囨崲鏁版嵁婧�
-            List<t482101HList> t482101HEntityList = emailIfc.getReceivingMailList(mail, mailType, isNoRead, userCode);
+            List<t482101HList> t482101HEntityList = emailIfc.getReceivingMailList(mail, mailType, isNoRead, userCode, page, limit);
+            Map<String, Object> map = new HashMap<>();
+            map.put("page", page);
+            map.put("limit", limit);
             if (t482101HEntityList.size() > 0) {
-                msg.setSuccess("鎵ц瀹屾垚", t482101HEntityList);
+                map.put("total", emailIfc.getMailTotal(mail, mailType, isNoRead, null, userCode));
+                map.put("list", t482101HEntityList);
+            } else {
+                map.put("list", new ArrayList<>());
             }
+            msg.setSuccess("鎵ц瀹屾垚", map);
         } catch (Exception e) {
             msg.setFail(e.getCause() != null ? e.getCause().getMessage() : e.getMessage());
         } finally {
@@ -120,7 +159,8 @@
      * @return
      */
     @GetMapping("/getHandleMailList.do")
-    public AllBackMsg getHandleMailList(String mail, HttpServletRequest request, HttpServletResponse response) throws Exception {
+    public AllBackMsg getHandleMailList(String mail, @RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "20") Integer limit,
+                                        HttpServletRequest request, HttpServletResponse response) throws Exception {
         AllBackMsg msg = new AllBackMsg();
         try {
             if (StringUtils.isNotBlank(mail)) {
@@ -137,10 +177,17 @@
             }
             DataSourceEntity dataSourceEntity = MultiDataSource.getDataSourceMap(request);//鑾峰彇鏁版嵁婧愪俊鎭�
             SpObserver.setDBtoInstance("_" + dataSourceEntity.getDbId());//鍒囨崲鏁版嵁婧�
-            List<t482101HList> t482101HEntityList = emailIfc.getHandleMailList(mail, userCode);
+            List<t482101HList> t482101HEntityList = emailIfc.getHandleMailList(mail, userCode, page, limit);
+            Map<String, Object> map = new HashMap<>();
+            map.put("page", page);
+            map.put("limit", limit);
             if (t482101HEntityList.size() > 0) {
-                msg.setSuccess("鎵ц瀹屾垚", t482101HEntityList);
+                map.put("total", emailIfc.getMailTotal(mail, 3, false, null, userCode));
+                map.put("list", t482101HEntityList);
+            } else {
+                map.put("list", new ArrayList<>());
             }
+            msg.setSuccess("鎵ц瀹屾垚", map);
         } catch (Exception e) {
             msg.setFail(e.getCause() != null ? e.getCause().getMessage() : e.getMessage());
         } finally {
@@ -168,11 +215,11 @@
             if (t482101HEntity != null) {
                 if (StringUtils.isNotBlank(t482101HEntity.getAttachmentList())) {//闄勪欢鐨勫鐞�
                     //鑾峰彇鍒伴檮浠跺唴瀹�
-                    List<AttachmentEntity> attachmentEntities = emailIfc.getAttachmentEntityList(t482101HEntity.getAttachmentList());
+                    List<AttachmentEntity> attachmentEntities = mailFileIfc.getAttachmentEntityList(t482101HEntity.getAttachmentList());
                     List<String> list = new ArrayList<>();
                     if (attachmentEntities.size() > 0) {
                         for (AttachmentEntity a : attachmentEntities) {
-                            list.add(shoppingImageServer + "/uploads/attachment/" + dataSourceEntity.getDbId() + "/482101/" + a.getUnid() + "@p@" + a.getPhysicalFile());
+                            list.add(shoppingImageServer + "/uploads/email/" + dataSourceEntity.getDbId() + "/482101/" + a.getUnid() + "@p@" + a.getPhysicalFile());
                         }
                         t482101HEntity.setAttachmentPath(list);
                     }
@@ -488,14 +535,14 @@
     }
 
     /**
-     * 寰呭鐞嗛偖浠�
+     * 绉诲姩閭欢鍒嗙被
      *
      * @param request
      * @param response
      * @return
      */
-    @GetMapping("/updateHandle.do")
-    public AllBackMsg updateHandle(String handleTime, String docCode, HttpServletRequest request, HttpServletResponse response) throws Exception {
+    @PostMapping("/updateMailType.do")
+    public AllBackMsg updateMailType(@RequestBody Map<String, Object> map, HttpServletRequest request, HttpServletResponse response) throws Exception {
         AllBackMsg msg = new AllBackMsg();
         try {
             HttpSession session = request.getSession();
@@ -504,14 +551,119 @@
                 msg.setFail("鑾峰彇涓嶅埌鐢ㄦ埛淇℃伅");
                 return msg;
             }
+            if (map.get("docCode") == null) {
+                msg.setFail("鑾峰彇涓嶅埌绉诲姩閭欢缂栧彿docCode");
+                return msg;
+            }
+            String docCode = (String) map.get("docCode");
+            Integer folderId = map.get("folderId") == null ? 0 : (Integer) map.get("folderId");
+            List<String> tagArray = (List<String>) map.get("tagId");
+            if (folderId.equals(0) && (tagArray == null || tagArray.size() == 0)) {
+                msg.setFail("绉诲姩閭欢鍒嗙被涓嶈兘涓虹┖");
+                return msg;
+            }
+            String tagId = "";
+            if (tagArray != null && tagArray.size() > 0) {
+                tagId = StringUtils.join(tagArray, ",");
+            }
+            DataSourceEntity dataSourceEntity = MultiDataSource.getDataSourceMap(request);//鑾峰彇鏁版嵁婧愪俊鎭�
+            SpObserver.setDBtoInstance("_" + dataSourceEntity.getDbId());//鍒囨崲鏁版嵁婧�
+            emailIfc.updateMailType(docCode, folderId, tagId);
+            msg.setOk("绉诲姩鎴愬姛");
+        } catch (Exception e) {
+            msg.setFail(e.getCause() != null ? e.getCause().getMessage() : e.getMessage());
+        } finally {
+            SpObserver.setDBtoInstance();
+        }
+        return msg;
+    }
 
-            if (StringUtils.isBlank(docCode)) {
+    /**
+     * 鍔犺浇涓嶅悓鐩綍閲岀殑閭欢
+     *
+     * @param request
+     * @param response
+     * @return
+     */
+    @GetMapping("/classificationMail.do")
+    public AllBackMsg classificationMail(@RequestParam(defaultValue = "-1") Integer id, String type, @RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "20") Integer limit,
+                                         HttpServletRequest request, HttpServletResponse response) throws Exception {
+        AllBackMsg msg = new AllBackMsg();
+        try {
+            HttpSession session = request.getSession();
+            String userCode = (String) session.getAttribute(SessionKey.USERCODE);//褰撳墠鐧诲綍鐢ㄦ埛
+            if (StringUtils.isBlank(userCode)) {//鑾峰彇涓嶅埌褰撳墠鐢ㄦ埛鐩存帴缁撴潫
+                msg.setFail("鑾峰彇涓嶅埌鐢ㄦ埛淇℃伅");
+                return msg;
+            }
+            if (id == null || id.equals(-1)) {
+                msg.setFail("鑾峰彇涓嶅埌鏂囦欢Id");
+                return msg;
+            }
+            if (StringUtils.isBlank(type)) {
+                msg.setFail("鑾峰彇涓嶅埌鏂囦欢绫诲瀷");
+                return msg;
+            }
+            type = type + "_" + id;//缁勮涓�
+            DataSourceEntity dataSourceEntity = MultiDataSource.getDataSourceMap(request);//鑾峰彇鏁版嵁婧愪俊鎭�
+            SpObserver.setDBtoInstance("_" + dataSourceEntity.getDbId());//鍒囨崲鏁版嵁婧�
+            List<t482101HList> t482101 = emailIfc.getFolderMailList(type, userCode, page, limit);
+            Map<String, Object> map = new HashMap<>();
+            map.put("page", page);
+            map.put("limit", limit);
+            if (t482101.size() > 0) {
+                map.put("total", emailIfc.getMailTotal(null, 6, false, type, userCode));
+                map.put("list", t482101);
+            } else {
+                map.put("list", new ArrayList<>());
+            }
+            msg.setSuccess("鎵ц瀹屾垚", map);
+        } catch (Exception e) {
+            msg.setFail(e.getCause() != null ? e.getCause().getMessage() : e.getMessage());
+        } finally {
+            SpObserver.setDBtoInstance();
+        }
+        return msg;
+    }
+
+    /**
+     * 寰呭鐞嗛偖浠�
+     *
+     * @param request
+     * @param response
+     * @return
+     */
+    @PostMapping("/updateHandle.do")
+    public AllBackMsg updateHandle(@RequestBody Map<String, Object> param, HttpServletRequest request, HttpServletResponse response) throws Exception {
+        AllBackMsg msg = new AllBackMsg();
+        try {
+            HttpSession session = request.getSession();
+            String userCode = (String) session.getAttribute(SessionKey.USERCODE);//褰撳墠鐧诲綍鐢ㄦ埛
+            if (StringUtils.isBlank(userCode)) {//鑾峰彇涓嶅埌褰撳墠鐢ㄦ埛鐩存帴缁撴潫
+                msg.setFail("鑾峰彇涓嶅埌鐢ㄦ埛淇℃伅");
+                return msg;
+            }
+            if (param.get("docCode") == null) {
                 msg.setFail("閭欢鍞竴鏍囪瘑docCode涓嶈兘绌�");
+                return msg;
+            }
+            if (param.get("handleTime") == null) {
+                msg.setFail("寰呭鐞嗘椂闂翠笉鑳界┖");
+                return msg;
+            }
+            List<String> docCode = (List<String>) param.get("docCode");
+            String handleTime = (String) param.get("handleTime");
+            // 姝e垯琛ㄨ揪寮忥紝鐢ㄤ簬鍖归厤鏃ユ湡鏍煎紡
+            String regex = "\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}";
+            Pattern pattern = Pattern.compile(regex);
+            Matcher matcher = pattern.matcher(handleTime);
+            if (!matcher.matches()) {
+                msg.setFail("寰呭鐞嗘棩鏈熸牸寮忎负锛歽yyy-MM-dd HH:mm锛堝锛�1900-08-01 08:00锛夈�傝妫�鏌�");
                 return msg;
             }
             DataSourceEntity dataSourceEntity = MultiDataSource.getDataSourceMap(request);//鑾峰彇鏁版嵁婧愪俊鎭�
             SpObserver.setDBtoInstance("_" + dataSourceEntity.getDbId());//鍒囨崲鏁版嵁婧�
-            emailIfc.updateMailHandle(handleTime, docCode);
+            emailIfc.updateMailHandle(handleTime, StringUtils.join(docCode, ","));
             msg.setOk("鎴愬姛鏍囪涓哄緟澶勭悊閭欢");
         } catch (Exception e) {
             msg.setFail(e.getCause() != null ? e.getCause().getMessage() : e.getMessage());

--
Gitblit v1.8.0