From c300739169cc3f8efe0daed4a552591bfd5a8385 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= <18222067976@163.com> Date: Fri, 17 Sep 2021 11:02:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E7=BB=84=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jero/common/system/api/ISysBaseAPI.java | 9 ++- ...ingGroupDistributionRecordServiceImpl.java | 59 +++++++------------ .../handle/impl/EmailSendMsgHandle.java | 42 ++++++++++--- .../system/service/impl/SysBaseApiImpl.java | 16 ++++- 4 files changed, 77 insertions(+), 49 deletions(-) diff --git a/jero-boot-base/jero-boot-base-api/src/main/java/com/jero/common/system/api/ISysBaseAPI.java b/jero-boot-base/jero-boot-base-api/src/main/java/com/jero/common/system/api/ISysBaseAPI.java index 14268c05..5d57e56e 100644 --- a/jero-boot-base/jero-boot-base-api/src/main/java/com/jero/common/system/api/ISysBaseAPI.java +++ b/jero-boot-base/jero-boot-base-api/src/main/java/com/jero/common/system/api/ISysBaseAPI.java @@ -280,7 +280,6 @@ public interface ISysBaseAPI extends CommonAPI { * @param content */ void sendEmailMsg(String email,String title,String content); - /** * 41根据部门id查询部门所有的父级(不包含自己) * @author 马志朝 @@ -303,5 +302,13 @@ public interface ISysBaseAPI extends CommonAPI { * 根据文件id获取文件名称 */ String findFileNameByFileId(String fileId); + /** + * 43发送邮件 + 附件消息 + * @param email 接收人 + * @param title 标题 + * @param content 内容 + * @param list 文件集合(路径+文件) + */ + void sendEmailMsgAndFile(String email, String title, String content,List list); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayWorkingGroupDistributionRecordServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayWorkingGroupDistributionRecordServiceImpl.java index 267989ff..9befce3b 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayWorkingGroupDistributionRecordServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayWorkingGroupDistributionRecordServiceImpl.java @@ -1,15 +1,15 @@ package com.jero.project.service.impl; -import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.jero.common.api.vo.Result; import com.jero.common.exception.JeroBootException; +import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.util.PasswordUtil; import com.jero.company.entity.PayContactsManagement; import com.jero.company.service.IPayContactsManagementService; import com.jero.data.entity.PayCaseCommittee; import com.jero.data.service.IPayCaseCommitteeService; +import com.jero.modules.message.handle.ISendMsgHandle; import com.jero.modules.message.handle.impl.EmailSendMsgHandle; import com.jero.modules.oss.entity.OSSFile; import com.jero.modules.oss.service.IOSSFileService; @@ -26,9 +26,11 @@ import com.jero.temporary.service.IPayContactsManagementTemporaryService; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.env.Environment; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -54,9 +56,12 @@ public class PayWorkingGroupDistributionRecordServiceImpl extends ServiceImpl listFile = new ArrayList<>(); - listFile.add(fileName); + listFile.add(path + fileName); List list = new ArrayList<>(); String msg = ""; if(payWorkingGroupDistributionRecord.getProjectType() == PayProjectCommon.PROJECT_TYPE_FILE1){ @@ -113,23 +119,13 @@ public class PayWorkingGroupDistributionRecordServiceImpl extends ServiceImpl finalList = list; + String content = msg + "文件已发送到您的账号和邮箱,可通过手机号登录系统XXX(点击链接可进入系统)或微信小程序搜素XXX进入查看"; list.forEach(p->{ if(StringUtils.isBlank(p)){ return; } - str.append(PasswordUtil.decrypt(p)); - if(finalList.indexOf(p) < finalList.size() - 1){ - str.append(","); - } + sysBaseAPI.sendEmailMsgAndFile(PasswordUtil.decrypt(p), "", content, listFile); }); - if(StringUtils.isBlank(str)){ - throw new JeroBootException("分发失败!"); - } - String content = msg + "文件已发送到您的账号和邮箱,可通过手机号登录系统XXX(点击链接可进入系统)或微信小程序搜素XXX进入查看"; - EmailSendMsgHandle emailHandle = new EmailSendMsgHandle(); - emailHandle.SendMsgAndFile(str.toString(), "", content, listFile); // todo 缺少发送消息 } @@ -158,12 +154,13 @@ public class PayWorkingGroupDistributionRecordServiceImpl extends ServiceImpl listFile = new ArrayList<>(); listPayWorkingGroupDataFile.forEach(p->{ OSSFile byId = iossFileService.getById(p.getFileId()); // 文件名称 String fileName = byId.getFileName(); - listFile.add(fileName); + listFile.add(path + fileName); }); String msg = ""; List list = new ArrayList<>(); @@ -197,29 +194,13 @@ public class PayWorkingGroupDistributionRecordServiceImpl extends ServiceImpl{ - if(StringUtils.isBlank(p)){ - return; - } - p = PasswordUtil.decrypt(p); - }); - StringBuilder str = new StringBuilder(); - List finalList = list; - list.forEach(p->{ - if(StringUtils.isBlank(p)){ - return; - } - str.append(PasswordUtil.decrypt(p)); - if(finalList.indexOf(p) < finalList.size() - 1){ - str.append(","); - } - }); - if(StringUtils.isBlank(str)){ - throw new JeroBootException("分发失败!"); - } String content = msg + "文件已发送到您的账号和邮箱,可通过手机号登录系统XXX(点击链接可进入系统)或微信小程序搜素XXX进入查看"; - EmailSendMsgHandle emailHandle = new EmailSendMsgHandle(); - emailHandle.SendMsgAndFile(str.toString(), "", content, listFile); + list.forEach(p->{ + if(StringUtils.isBlank(p)){ + return; + } + sysBaseAPI.sendEmailMsgAndFile(PasswordUtil.decrypt(p), "", content, listFile); + }); // todo 缺少发送消息 } } diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/message/handle/impl/EmailSendMsgHandle.java b/jero-boot-module-system/src/main/java/com/jero/modules/message/handle/impl/EmailSendMsgHandle.java index a5f56a96..f7d9bc34 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/message/handle/impl/EmailSendMsgHandle.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/message/handle/impl/EmailSendMsgHandle.java @@ -1,16 +1,22 @@ package com.jero.modules.message.handle.impl; +import com.jero.common.exception.JeroBootException; import com.jero.common.util.SpringContextUtils; import com.jero.common.util.oConvertUtils; import com.jero.config.StaticConfig; import com.jero.modules.message.handle.ISendMsgHandle; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.env.Environment; import org.springframework.core.io.FileSystemResource; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -18,6 +24,9 @@ import java.util.List; public class EmailSendMsgHandle implements ISendMsgHandle { static String emailFrom; + @Autowired + private Environment env; + public static void setEmailFrom(String emailFrom) { EmailSendMsgHandle.emailFrom = emailFrom; } @@ -47,10 +56,17 @@ public class EmailSendMsgHandle implements ISendMsgHandle { } - - //带附件发送邮件,多人多邮件; - - public void SendMsgAndFile(String es_receiver, String es_title, String es_content, List fileList ) { + /** + * @Description 带附件发送邮件,多人多邮件 + * @Param es_receiver 接收人邮箱 + * @Param es_title 标题 + * @Param es_content 内容 + * @Param fileList 文件集合 + * @Param path 文件路径 + * @Return + * @Exception + */ + public void SendMsgAndFile(String es_receiver, String es_title, String es_content, List fileList) { JavaMailSender mailSender = (JavaMailSender) SpringContextUtils.getBean("mailSender"); MimeMessage message = mailSender.createMimeMessage(); MimeMessageHelper helper = null; @@ -59,6 +75,19 @@ public class EmailSendMsgHandle implements ISendMsgHandle { StaticConfig staticConfig = SpringContextUtils.getBean(StaticConfig.class); setEmailFrom(staticConfig.getEmailFrom()); } + if(CollectionUtils.isEmpty(fileList)){ + throw new JeroBootException("附件不能为空!"); + } + // 验证文件是否存在 + fileList.forEach(p->{ + if(StringUtils.isBlank(p)){ + return; + } + File file = new File(p); + if(!file.exists()){ + throw new JeroBootException("附件不存在!"); + } + }); //update-end-author:taoyan date:20200811 for:配置类数据获取 try { ArrayList mailList = new ArrayList<>(Arrays.asList(es_receiver.split(","))); @@ -72,16 +101,15 @@ public class EmailSendMsgHandle implements ISendMsgHandle { helper.setText(es_content, true); for(String file :fileList) { if(!StringUtils.isBlank(file)) { - FileSystemResource filePath = new FileSystemResource(new File("D:\\opt\\upFiles" + "\\" + file)); + FileSystemResource filePath = new FileSystemResource(new File(file)); helper.addAttachment(file, filePath); } } mailSender.send(message); } } - } catch (MessagingException e) { + }catch (MessagingException e) { e.printStackTrace(); } - } } diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysBaseApiImpl.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysBaseApiImpl.java index 8714bedc..0eb437a3 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysBaseApiImpl.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysBaseApiImpl.java @@ -999,8 +999,20 @@ public class SysBaseApiImpl implements ISysBaseAPI { */ @Override public void sendEmailMsg(String email, String title, String content) { - EmailSendMsgHandle emailHandle=new EmailSendMsgHandle(); - emailHandle.SendMsg(email, title, content); + EmailSendMsgHandle emailHandle=new EmailSendMsgHandle(); + emailHandle.SendMsg(email, title, content); + } + + /** + * 发送邮件+ 附件消息 + * @param email + * @param title + * @param content + */ + @Override + public void sendEmailMsgAndFile(String email, String title, String content,List list) { + EmailSendMsgHandle emailHandle=new EmailSendMsgHandle(); + emailHandle.SendMsgAndFile(email, title, content,list); } /**