use of com.topcom.cms.yuqing.vo.email.WarningEmail in project topcom-cloud by 545314690.
the class WarningJob method sendEmail.
private void sendEmail(Page page, CustomSubject subject, Long wangningLogId) {
WarningTask warningTask = subject.getWarning();
// logger.info("开始推送Email消息:" + subject.getName());
List<Contact> contacts = warningTask.getContacts();
/**
* 获取所有联系人
*/
Set<String> emailSet = contacts.stream().filter(contact -> Contact.Type.EMAIL.equals(contact.getType())).map(contact -> contact.getAccount()).collect(Collectors.toSet());
logger.info("开始推送Email消息:" + subject.getName() + emailSet.toString());
if (emailSet.size() > 0) {
/**
*先保存预警日志,否则下面warningLog.getId()取到的日志Id总为0,保存日志的时候,不要调用save
*/
// 发送邮件
SenderFactory emailSenderFactory = new EmailSenderFactory();
Sender emailSender = emailSenderFactory.create();
String[] emails = {};
emails = emailSet.toArray(emails);
try {
WarningEmailBody warningEmailBody = new WarningEmailBody();
warningEmailBody.setContent(page.getContent());
warningEmailBody.setSpecialNumber(String.valueOf(page.getTotalElements()));
warningEmailBody.setSpecialName(subject.getName());
User user = userManager.findById(subject.getUserId());
warningEmailBody.setUser(user.getFullName() == null ? user.getUsername() : user.getFullName());
// warningEmailBody.setSubject("");
warningEmailBody.setSpecialUrl(warningEmailSetting.getSubjectUrl() + subject.getId());
warningEmailBody.setWarningLogUrl(warningEmailSetting.getLogUrl() + wangningLogId);
WarningEmail warningEmail = new WarningEmail().create(emails, warningEmailBody);
emailSender.send(warningEmail);
// 更新上次预警时间
warningTask.setLastWarningDate(new Date());
warningManager.save(warningTask);
} catch (IOException | TemplateException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Aggregations