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