From 5b1a4a591ae58bee7e96282512d58cfa121c905f Mon Sep 17 00:00:00 2001
From: xinyb <574600396@qq.com>
Date: 星期四, 05 九月 2024 10:00:25 +0800
Subject: [PATCH] CRM邮件功能优化邮件删除

---
 src/com/yc/crm/mail/action/MailController.java |   77 ++++++++++++++-----------
 src/com/yc/crm/mail/action/MailTag.java        |    4 
 src/com/yc/crm/mail/service/MailImpl.java      |   65 ++++++++++++---------
 src/com/yc/crm/mail/service/MailIfc.java       |   10 +-
 4 files changed, 85 insertions(+), 71 deletions(-)

diff --git a/src/com/yc/crm/mail/action/MailController.java b/src/com/yc/crm/mail/action/MailController.java
index 83c4c49..3834532 100644
--- a/src/com/yc/crm/mail/action/MailController.java
+++ b/src/com/yc/crm/mail/action/MailController.java
@@ -58,9 +58,15 @@
                     return msg;
                 }
             }
+            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<t482101HList> t482101HEntityList = emailIfc.getReceivingMailList(mail, mailType, isNoRead);
+            List<t482101HList> t482101HEntityList = emailIfc.getReceivingMailList(mail, mailType, isNoRead, userCode);
             if (t482101HEntityList.size() > 0) {
                 msg.setSuccess("鎵ц瀹屾垚", t482101HEntityList);
             }
@@ -104,8 +110,8 @@
      *
      * @return
      */
-    @PostMapping("/deleteReceivingMail.do")
-    public AllBackMsg deleteReceivingMail(@RequestBody List<String> docCode, HttpServletRequest request, HttpServletResponse response) throws Exception {
+    @PostMapping("/deleteEmail.do")
+    public AllBackMsg deleteEmail(@RequestBody List<String> docCode, HttpServletRequest request, HttpServletResponse response) throws Exception {
         AllBackMsg msg = new AllBackMsg();
         try {
             if (docCode == null && docCode.size() == 0) {//鑾峰彇涓嶅埌褰撳墠鐢ㄦ埛鐩存帴缁撴潫
@@ -121,9 +127,9 @@
             }
             DataSourceEntity dataSourceEntity = MultiDataSource.getDataSourceMap(request);//鑾峰彇鏁版嵁婧愪俊鎭�
             SpObserver.setDBtoInstance("_" + dataSourceEntity.getDbId());//鍒囨崲鏁版嵁婧�
-            Integer cont = emailIfc.deleteReceivingMail(userCode, arrayCode);
+            Integer cont = emailIfc.deleteEmail(userCode, arrayCode);
             if (cont > 0) {
-                msg.setOk("閭欢宸插垹闄�");
+                msg.setOk("宸插垹闄�");
             }
         } catch (Exception e) {
             msg.setFail(e.getCause() != null ? e.getCause().getMessage() : e.getMessage());
@@ -154,7 +160,7 @@
                     return msg;
                 }
             }
-            if (t482101H.getReceiver()!=null && t482101H.getReceiver().size()>0) {
+            if (t482101H.getReceiver() != null && t482101H.getReceiver().size() > 0) {
                 for (String mail : t482101H.getReceiver()) {
                     if (!EMAIL_PATTERN.matcher(mail).matches()) {
                         msg.setFail("鏀朵欢浜洪偖绠憋細" + mail + "鐨勬牸寮忎笉姝g‘");
@@ -171,6 +177,7 @@
             t482101H.setUserCode(userCode);
             t482101H.setUserName(userName);
             t482101H.setMailType(0);//鑽夌
+            t482101H.setReadFlag(1);//宸茶
             DataSourceEntity dataSourceEntity = MultiDataSource.getDataSourceMap(request);//鑾峰彇鏁版嵁婧愪俊鎭�
             SpObserver.setDBtoInstance("_" + dataSourceEntity.getDbId());//鍒囨崲鏁版嵁婧�
             t482101H = emailIfc.saveReceivingMail(t482101H);
@@ -190,34 +197,34 @@
      *
      * @return
      */
-    @PostMapping("/deleteMailDrafts.do")
-    public AllBackMsg deleteMailDrafts(@RequestBody List<String> docCode, HttpServletRequest request, HttpServletResponse response) throws Exception {
-        AllBackMsg msg = new AllBackMsg();
-        try {
-            if (docCode == null && docCode.size() == 0) {//鑾峰彇涓嶅埌褰撳墠鐢ㄦ埛鐩存帴缁撴潫
-                msg.setFail("璇烽�変腑鍒犻櫎鐨勯偖浠�");
-                return msg;
-            }
-            String arrayCode=StringUtils.join(docCode,",");
-            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());//鍒囨崲鏁版嵁婧�
-            int cont = emailIfc.deleteMailDrafts(userCode,arrayCode);
-            if (cont > 0) {
-                msg.setOk("鍒犻櫎鎴愬姛");
-            }
-        } catch (Exception e) {
-            msg.setFail(e.getCause() != null ? e.getCause().getMessage() : e.getMessage());
-        } finally {
-            SpObserver.setDBtoInstance();
-        }
-        return msg;
-    }
+//    @PostMapping("/deleteMailDrafts.do")
+//    public AllBackMsg deleteMailDrafts(@RequestBody List<String> docCode, HttpServletRequest request, HttpServletResponse response) throws Exception {
+//        AllBackMsg msg = new AllBackMsg();
+//        try {
+//            if (docCode == null && docCode.size() == 0) {//鑾峰彇涓嶅埌褰撳墠鐢ㄦ埛鐩存帴缁撴潫
+//                msg.setFail("璇烽�変腑鍒犻櫎鐨勯偖浠�");
+//                return msg;
+//            }
+//            String arrayCode = StringUtils.join(docCode, ",");
+//            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());//鍒囨崲鏁版嵁婧�
+//            int cont = emailIfc.deleteEmail(userCode, arrayCode);
+//            if (cont > 0) {
+//                msg.setOk("鍒犻櫎鎴愬姛");
+//            }
+//        } catch (Exception e) {
+//            msg.setFail(e.getCause() != null ? e.getCause().getMessage() : e.getMessage());
+//        } finally {
+//            SpObserver.setDBtoInstance();
+//        }
+//        return msg;
+//    }
 
     /**
      * 鍙戦�侀偖浠�
@@ -242,7 +249,7 @@
                     return msg;
                 }
             }
-            if (t482101H.getReceiver()!=null && t482101H.getReceiver().size()>0) {
+            if (t482101H.getReceiver() != null && t482101H.getReceiver().size() > 0) {
                 for (String mail : t482101H.getReceiver()) {
                     if (!EMAIL_PATTERN.matcher(mail).matches()) {
                         msg.setFail("鏀朵欢浜洪偖绠憋細" + mail + "鐨勬牸寮忎笉姝g‘");
diff --git a/src/com/yc/crm/mail/action/MailTag.java b/src/com/yc/crm/mail/action/MailTag.java
index 4b86ba7..57df64d 100644
--- a/src/com/yc/crm/mail/action/MailTag.java
+++ b/src/com/yc/crm/mail/action/MailTag.java
@@ -78,7 +78,7 @@
         AllBackMsg msg = new AllBackMsg();
         try {
             if (tag.getTagId() == null) {
-                msg.setFail("缂哄皯SignId鍊硷紝璇锋鏌�");
+                msg.setFail("缂哄皯tagId鍊硷紝璇锋鏌�");
                 return msg;
             }
             HttpSession session = request.getSession();
@@ -113,7 +113,7 @@
         AllBackMsg msg = new AllBackMsg();
         try {
             if (tagId == 0) {
-                msg.setFail("绛惧悕ID鑾峰彇涓嶅埌");
+                msg.setFail("鏍囩ID鑾峰彇涓嶅埌");
                 return msg;
             }
             HttpSession session = request.getSession();
diff --git a/src/com/yc/crm/mail/service/MailIfc.java b/src/com/yc/crm/mail/service/MailIfc.java
index 4aa6290..927f7c3 100644
--- a/src/com/yc/crm/mail/service/MailIfc.java
+++ b/src/com/yc/crm/mail/service/MailIfc.java
@@ -54,14 +54,14 @@
      * @param docCode
      * @return
      */
-    Integer deleteReceivingMail(String userCode,String docCode);
+    Integer deleteEmail(String userCode,String docCode);
 
     /**
-     * 鍒犻櫎閭欢(鏍规嵁messageId鍒犻櫎)
+     * 鍒犻櫎閭欢(鏍规嵁messageId)
      * @param messagesId
      * @return
      */
-    Integer deleteReceivingMail(String messageId);
+    Integer deleteEmail(String messageId);
 
     /**
      * 鑾峰彇閭欢鐨勮鎯呭唴瀹�
@@ -78,7 +78,7 @@
      * @param isRead 鏄惁宸茶
      * @return
      */
-    List<t482101HList> getReceivingMailList(String email, Integer mailType, boolean isNoRead);
+    List<t482101HList> getReceivingMailList(String email, Integer mailType, boolean isNoRead,String userCode);
 
 
     /**
@@ -110,7 +110,7 @@
      * @param docCode
      * @return
      */
-    Integer deleteMailDrafts(String userCode,String docCode);
+//    Integer deleteMailDrafts(String userCode,String docCode);
 
     /**
      * 閭欢闄勪欢鐨勮皟鐢ㄥ鐞�
diff --git a/src/com/yc/crm/mail/service/MailImpl.java b/src/com/yc/crm/mail/service/MailImpl.java
index dc4bdb5..130b2c6 100644
--- a/src/com/yc/crm/mail/service/MailImpl.java
+++ b/src/com/yc/crm/mail/service/MailImpl.java
@@ -121,7 +121,7 @@
                     "cc=" + GridUtils.prossSqlParm(StringUtils.join(mail.getCc(), ",")) + ",bcc=" + GridUtils.prossSqlParm(StringUtils.join(mail.getBcc(), ",")) + ",subject=" + GridUtils.prossSqlParm(mail.getSubject()) + "," +
                     "content=" + GridUtils.prossSqlParm(mail.getContent()) + ",file_unid=" + GridUtils.prossSqlParm(mail.getFileUNID()) + ",mailType=" + mail.getMailType() + "," +
                     "update_time=getdate() \n";
-            sql += " where docCode=" + GridUtils.prossSqlParm(mail.getDocCode())+"\n";
+            sql += " where docCode=" + GridUtils.prossSqlParm(mail.getDocCode()) + "\n";
             sql += "select @@ROWCOUNT";
             return jdbcTemplate.queryForObject(sql, Integer.class);
         } catch (Exception e) {
@@ -136,7 +136,7 @@
             sql += "declare @docCode varchar(200) ='" + docCode + "' \n";
             sql += "update t482101H deleteFlag=1 where userCode =" + GridUtils.prossSqlParm(userCode) +
                     " and docCode in (select list from GetInStr(@docCode))\n";//鏍囪鍒犻櫎
-            sql += "select select @@ROWCOUNT";
+            sql += " select @@ROWCOUNT";
             return jdbcTemplate.queryForObject(sql, Integer.class);
         } catch (Exception e) {
             throw e;
@@ -144,13 +144,13 @@
     }
 
     @Override
-    public Integer deleteReceivingMail(String userCode, String docCode) {
+    public Integer deleteEmail(String userCode, String docCode) {
         String sql = "set nocount on\n";
         try {
             sql += "declare @docCode varchar(200) ='" + docCode + "' \n";
             sql += "delete t482101H where userCode =" + GridUtils.prossSqlParm(userCode) +
                     " and docCode in (select list from GetInStr(@docCode))\n";//鏍囪鍒犻櫎
-            sql += "select select @@ROWCOUNT";
+            sql += " select @@ROWCOUNT";
             return jdbcTemplate.queryForObject(sql, Integer.class);
         } catch (Exception e) {
             throw e;
@@ -158,12 +158,12 @@
     }
 
     @Override
-    public Integer deleteReceivingMail(String messageId) {
+    public Integer deleteEmail(String messageId) {
         String sql = "set nocount on\n";
         try {
             sql += "declare @messageId varchar(200) ='" + messageId + "' \n";
             sql += "delete t482101H where messageId in (select list from GetInStr(@messageId))\n";//鍒犻櫎
-            sql += "select select @@ROWCOUNT";
+            sql += " select @@ROWCOUNT";
             return jdbcTemplate.queryForObject(sql, Integer.class);
         } catch (Exception e) {
             throw e;
@@ -174,8 +174,9 @@
     public t482101HEntity getReceivingMailInfo(String docCode) {
         String sql = "set nocount on\n";
         try {
-            sql += "select top 1 DocCode,sender,receiver,subject,content,file_unid as fileUNID,messageId," +
-                    "read_flag,delete_flag,create_time,update_time,receive_time from t482101H " +
+            sql += "select top 1 DocCode,companyId,companyName,sender,receiver,mailType,subject,content,plain_text,file_unid as fileUNID,messageId," +
+                    "read_flag,delete_flag,attach_flag,urgent_flag,receipt_flag,track_flag,userCode,userName,create_time,update_time," +
+                    "send_status,receive_time,sign_id,attachment_list,remark,remark,DocVersion from t482101H " +
                     "where docCode=" + GridUtils.prossSqlParm(docCode);
             return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(t482101HEntity.class)).get(0);
         } catch (Exception e) {
@@ -184,16 +185,21 @@
     }
 
     @Override
-    public List<t482101HList> getReceivingMailList(String email, Integer mailType, boolean isNoRead) {
+    public List<t482101HList> getReceivingMailList(String email, Integer mailType, boolean isNoRead, String userCode) {
         String sql = "set nocount on\n";
         try {
             sql += "select companyId,companyName,mailType,DocCode,sender,receiver,subject,plain_text," +
                     "receive_time,update_time,create_time,sender,userCode,userName,folder_id,delete_Flag, " +
                     "read_Flag from t482101H ";
-            if (isNoRead) {//鏈鎵ц
-                sql += "where receiver ='" + email + "' and  isnull(readFlag,0)= 0";
-            } else {//宸茶
-                sql += "where receiver ='" + email + "' and  mailType=" + mailType;
+            sql += " where userCode=" + GridUtils.prossSqlParm(userCode);
+            sql += " and isnull(read_flag,0) = " + (isNoRead ? 0 : 1);//0琛ㄧず鏈锛�1琛ㄧず宸茶
+            sql += " and mailType=" + mailType;//0锛氳崏绋跨 1锛氭敹浠剁 2锛氬彂浠剁
+            if (StringUtils.isNotBlank(email)) {
+                if (mailType == 1) {
+                    sql += " and receiver like '%" + email + "%'";
+                } else if (mailType == 2) {
+                    sql += " and sender =" + GridUtils.prossSqlParm(email);
+                }
             }
             return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(t482101HList.class));
         } catch (Exception e) {
@@ -360,26 +366,26 @@
                     "content=" + GridUtils.prossSqlParm(mail.getContent()) + ",file_unid=" + GridUtils.prossSqlParm(mail.getFileUNID()) + ",mailType=" + mail.getMailType() + "," +
                     "updateTime=getdate() \n";
             sql += " where docCode=" + GridUtils.prossSqlParm(mail.getDocCode());
-            sql += "select select @@ROWCOUNT";
+            sql += " select @@ROWCOUNT";
             return jdbcTemplate.queryForObject(sql, Integer.class);
         } catch (Exception e) {
             throw e;
         }
     }
 
-    @Override
-    public Integer deleteMailDrafts(String userCode, String docCode) {
-        String sql = "set nocount on\n";
-        try {
-            sql += "declare @docCode varchar(200) ='" + docCode + "' \n";
-            sql += "delete t482101H where userCode =" + GridUtils.prossSqlParm(userCode) +
-                    " and docCode in (select list from GetInStr(@docCode)) \n";
-            sql += "select select @@ROWCOUNT";
-            return jdbcTemplate.queryForObject(sql, Integer.class);
-        } catch (Exception e) {
-            throw e;
-        }
-    }
+//    @Override
+//    public Integer deleteMailDrafts(String userCode, String docCode) {
+//        String sql = "set nocount on\n";
+//        try {
+//            sql += "declare @docCode varchar(200) ='" + docCode + "' \n";
+//            sql += "delete t482101H where userCode =" + GridUtils.prossSqlParm(userCode) +
+//                    " and docCode in (select list from GetInStr(@docCode)) \n";
+//            sql += " select @@ROWCOUNT";
+//            return jdbcTemplate.queryForObject(sql, Integer.class);
+//        } catch (Exception e) {
+//            throw e;
+//        }
+//    }
 
     /**
      * 鏀朵欢绠辫繑鍥炵殑淇℃伅杩涜灏佽澶勭悊
@@ -486,7 +492,7 @@
             }
             if (deleteMsgId.size() > 0) {
                 //鍒犻櫎
-                deleteReceivingMail(StringUtils.join(deleteMsgId, ","));
+                deleteEmail(StringUtils.join(deleteMsgId, ","));
             }
             return t482101HEntityList;
         } catch (Exception e) {
@@ -640,7 +646,8 @@
     public void updateRead(String docCode) {
         String sql = " set nocount on \n";
         try {
-            sql += "update t482101H set read_flag=1 where docCode in (" + GridUtils.prossSqlParm(docCode) + ")\n";
+            sql += "declare @docCode varchar(200) ='" + docCode + "' \n";
+            sql += "update t482101H set read_flag=1 where docCode in (select list from GetInStr(@docCode))\n";
             sql += "select @@ROWCOUNT";
             jdbcTemplate.queryForObject(sql, Integer.class);
         } catch (Exception e) {

--
Gitblit v1.8.0