feat: 到期提醒补充内容且同一个人邮件组合
This commit is contained in:
@@ -5,9 +5,11 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.agt.module.license.dal.dataobject.alert.AlertDO;
|
import org.agt.module.license.dal.dataobject.alert.AlertDO;
|
||||||
|
import org.agt.module.license.dal.dataobject.customer.CustomerDO;
|
||||||
import org.agt.module.license.dal.dataobject.license.LicenseDO;
|
import org.agt.module.license.dal.dataobject.license.LicenseDO;
|
||||||
import org.agt.module.license.dal.dataobject.project.ProjectDO;
|
import org.agt.module.license.dal.dataobject.project.ProjectDO;
|
||||||
import org.agt.module.license.dal.mysql.alert.AlertMapper;
|
import org.agt.module.license.dal.mysql.alert.AlertMapper;
|
||||||
|
import org.agt.module.license.dal.mysql.customer.CustomerMapper;
|
||||||
import org.agt.module.license.dal.mysql.license.LicenseMapper;
|
import org.agt.module.license.dal.mysql.license.LicenseMapper;
|
||||||
import org.agt.module.license.dal.mysql.project.ProjectMapper;
|
import org.agt.module.license.dal.mysql.project.ProjectMapper;
|
||||||
import org.agt.module.license.enums.LicenseStatusEnum;
|
import org.agt.module.license.enums.LicenseStatusEnum;
|
||||||
@@ -20,6 +22,7 @@ import org.springframework.stereotype.Component;
|
|||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -48,6 +51,9 @@ public class LicenseTask {
|
|||||||
@Resource
|
@Resource
|
||||||
private ProjectMapper projectMapper;
|
private ProjectMapper projectMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CustomerMapper customerMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private MailSendApi mailSendApi;
|
private MailSendApi mailSendApi;
|
||||||
|
|
||||||
@@ -74,9 +80,11 @@ public class LicenseTask {
|
|||||||
.eq(LicenseDO::getStatus, LicenseStatusEnum.COMPLETED.getCode())
|
.eq(LicenseDO::getStatus, LicenseStatusEnum.COMPLETED.getCode())
|
||||||
.gt(LicenseDO::getExpiryDate, LocalDateTime.now()));
|
.gt(LicenseDO::getExpiryDate, LocalDateTime.now()));
|
||||||
|
|
||||||
|
Map<Long, List<Map<String, Object>>> userMap = new HashMap<>();
|
||||||
for (LicenseDO licenseDO : licenseList) {
|
for (LicenseDO licenseDO : licenseList) {
|
||||||
|
|
||||||
ProjectDO projectDO = projectMapper.selectById(licenseDO.getProjectId());
|
ProjectDO projectDO = projectMapper.selectById(licenseDO.getProjectId());
|
||||||
|
CustomerDO customerDO = customerMapper.selectById(projectDO.getCustomerId());
|
||||||
Set<Long> users = new HashSet<>();
|
Set<Long> users = new HashSet<>();
|
||||||
if (projectDO.getBusinessOwner() != null) {
|
if (projectDO.getBusinessOwner() != null) {
|
||||||
users.add(projectDO.getBusinessOwner());
|
users.add(projectDO.getBusinessOwner());
|
||||||
@@ -96,10 +104,17 @@ public class LicenseTask {
|
|||||||
templateParams.put("sn", licenseDO.getSerialNo());
|
templateParams.put("sn", licenseDO.getSerialNo());
|
||||||
templateParams.put("days", day);
|
templateParams.put("days", day);
|
||||||
|
|
||||||
|
templateParams.put("customer", customerDO.getName());
|
||||||
|
templateParams.put("project", projectDO.getName());
|
||||||
log.info("已发送到期提醒邮件:{}", licenseDO.getSerialNo());
|
log.info("已发送到期提醒邮件:{}", licenseDO.getSerialNo());
|
||||||
// 2. 发送邮件
|
|
||||||
mailSendApi.sendSingleMailToAdmin(new MailSendSingleToUserReqDTO()
|
if (userMap.containsKey(userId)) {
|
||||||
.setUserId(userId).setTemplateCode(templateCode).setTemplateParams(templateParams));
|
userMap.get(userId).add(templateParams);
|
||||||
|
} else {
|
||||||
|
List<Map<String, Object>> userList = new ArrayList<>();
|
||||||
|
userList.add(templateParams);
|
||||||
|
userMap.put(userId, userList);
|
||||||
|
}
|
||||||
|
|
||||||
// 发送站内信
|
// 发送站内信
|
||||||
notifySendApi.sendSingleMessageToAdmin(new NotifySendSingleToUserReqDTO()
|
notifySendApi.sendSingleMessageToAdmin(new NotifySendSingleToUserReqDTO()
|
||||||
@@ -110,6 +125,11 @@ public class LicenseTask {
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
userMap.forEach((k, v) -> {
|
||||||
|
mailSendApi.sendSingleMailToAdmins(new MailSendSingleToUserReqDTO()
|
||||||
|
.setUserId(k).setTemplateCode(templateCode).setTemplateParamsList(v));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
licenseService.genLicenseTask();
|
licenseService.genLicenseTask();
|
||||||
|
|||||||
Reference in New Issue
Block a user