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