From 97b9177049433275264a3d12392e4bd61eb8a3dd Mon Sep 17 00:00:00 2001 From: caiyuchao Date: Tue, 2 Sep 2025 19:34:16 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=88=B0=E6=9C=9F=E6=8F=90=E9=86=92?= =?UTF-8?q?=E8=A1=A5=E5=85=85=E5=86=85=E5=AE=B9=E4=B8=94=E5=90=8C=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E9=82=AE=E4=BB=B6=E7=BB=84=E5=90=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../license/service/license/LicenseTask.java | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/license/LicenseTask.java b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/license/LicenseTask.java index 8e09625..c6854e4 100644 --- a/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/license/LicenseTask.java +++ b/agt-module-license/agt-module-license-server/src/main/java/org/agt/module/license/service/license/LicenseTask.java @@ -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>> userMap = new HashMap<>(); for (LicenseDO licenseDO : licenseList) { ProjectDO projectDO = projectMapper.selectById(licenseDO.getProjectId()); + CustomerDO customerDO = customerMapper.selectById(projectDO.getCustomerId()); Set 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> 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();