From b93a0b2565a82984b4843fa31c2c764fcdd43aef Mon Sep 17 00:00:00 2001 From: yupeng <roc__yu@163.com> Date: 星期四, 27 二月 2025 11:45:48 +0800 Subject: [PATCH] feat: 完善后台批量发送邮件接口 --- ruoyi-common/src/main/java/com/ruoyi/common/utils/TencentMailUtil.java | 4 ++++ ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBillController.java | 3 ++- ruoyi-common/src/main/java/com/ruoyi/common/utils/SmsUtil.java | 5 +++++ ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java | 8 ++++++-- ruoyi-common/src/main/java/com/ruoyi/common/config/MailProperties.java | 10 ++++++++++ 5 files changed, 27 insertions(+), 3 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBillController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBillController.java index 443cedc..18e6005 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBillController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBillController.java @@ -89,7 +89,7 @@ @PreAuthorize("@ss.hasPermi('system:bill:sendMailBatchByBillIds')") - @ApiOperation("账单批量发送短信通知") + @ApiOperation("账单批量发送邮件通知") @PostMapping("sendMailBatchByBillIds") public R sendMailBatchByBillIds(@Validated @RequestBody SmsByBillDto dto){ Integer failNum = tBillService.sendMailBatchByBillIds(dto); @@ -100,6 +100,7 @@ @ApiOperation("收款") @PostMapping("cashPay") public R cashPay(@RequestBody OfflinePayDto offlinePayDto){ + return null; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/config/MailProperties.java b/ruoyi-common/src/main/java/com/ruoyi/common/config/MailProperties.java index 2e525c6..2774be6 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/config/MailProperties.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/config/MailProperties.java @@ -17,4 +17,14 @@ private String userName = "测试"; + /** + * 账单提醒 ,同一个用户离上次发送短信的最小间隔 + * 单位分钟 + */ + private Integer billSmsDelayPeriod = 60; + /** + * 账单提醒 ,同一个用户离上次发送邮件的最小间隔 + * 单位分钟 + */ + private Integer billMailDelayPeriod = 60; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SmsUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SmsUtil.java index 34de308..2ca307f 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SmsUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SmsUtil.java @@ -25,6 +25,11 @@ SmsProperties smsProperties; static SmsClient smsClient; + + public SmsProperties getPro() { + return smsProperties; + } + public SmsClient createSmsClient(SmsProperties properties) { // 实例化一个认证对象,入参需要传入腾讯云账户 SecretId,SecretKey。 // 为了保护密钥安全,建议将密钥设置在环境变量中或者配置文件中,请参考凭证管理 https://github.com/TencentCloud/tencentcloud-sdk-java?tab=readme-ov-file#%E5%87%AD%E8%AF%81%E7%AE%A1%E7%90%86。 diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/TencentMailUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/TencentMailUtil.java index 1c9c887..bd7321c 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/TencentMailUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/TencentMailUtil.java @@ -21,6 +21,10 @@ @Autowired MailProperties properties; + public MailProperties getPro() { + return properties; + } + /** * * @param emailAddress 邮件接收者email地址 diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java index a694c73..2d13e31 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java @@ -9,6 +9,7 @@ import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SmsUtil; import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.TencentMailUtil; import com.ruoyi.common.utils.uuid.UUID; import com.ruoyi.system.dto.OfflinePayCheckDto; import com.ruoyi.system.dto.SmsByBillDto; @@ -80,6 +81,9 @@ @Resource SmsUtil smsUtil; + + @Resource + TencentMailUtil mailUtil; public PageInfo<TBillDto> queryPage(TBillQuery query){ PageInfo<TBill> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); @@ -391,7 +395,7 @@ for (String billId : dto.getBillIds()) { TBillDto bill = getDetailByBillId(billId); if (bill.getSmsLastTime()!=null - && (System.currentTimeMillis()-bill.getSmsLastTime().getTime()<smsUtil.getPro().getBillMailDelayPeriod()*60*1000L)){ + && (System.currentTimeMillis()-bill.getSmsLastTime().getTime()<mailUtil.getPro().getBillMailDelayPeriod()*60*1000L)){ throw new ServiceException("有账单最近一次发送的时间是:"+DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,bill.getSmsLastTime())); } if (StringUtils.isEmpty(bill.getEmail())){ @@ -401,7 +405,7 @@ TBill save = new TBill(); save.setId(bill.getId()); try { - //todo 发送邮件 + mailUtil.send(bill.getEmail(),bill.getHouseName()); save.setMailStatus(1); }catch (ServiceException e){ failNum++; -- Gitblit v1.7.1