news 2026/4/24 17:41:55

基于 XXL-JOB 3.x 实现7天、15天、30天 三个时间节点的自动提醒

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于 XXL-JOB 3.x 实现7天、15天、30天 三个时间节点的自动提醒

数据库

数据

INSERT INTO `test3`.`overdue_record`(`id`,`business_no`,`customer_id`,`customer_name`,`customer_email`,`customer_phone`,`due_date`,`overdue_amount`,`overdue_days`,`reminded_7_days`,`reminded_15_days`,`reminded_30_days`,`status`,`create_time`,`update_time`)VALUES(1,'ORD20240101001',1001,'张三','zhangsan@example.com', '13800138000', '2025-12-20',1000.00,8,0,0,0,0,'2025-12-2816:11:22', '2025-12-2817:27:55');INSERT INTO `test3`.`overdue_record`(`id`,`business_no`,`customer_id`,`customer_name`,`customer_email`,`customer_phone`,`due_date`,`overdue_amount`,`overdue_days`,`reminded_7_days`,`reminded_15_days`,`reminded_30_days`,`status`,`create_time`,`update_time`)VALUES(2,'ORD20240101002',1002,'李四','lisi@example.com', '13800138001', '2025-12-12',2000.00,16,0,0,0,0,'2025-12-2816:11:22', '2025-12-2817:27:55');INSERT INTO `test3`.`overdue_record`(`id`,`business_no`,`customer_id`,`customer_name`,`customer_email`,`customer_phone`,`due_date`,`overdue_amount`,`overdue_days`,`reminded_7_days`,`reminded_15_days`,`reminded_30_days`,`status`,`create_time`,`update_time`)VALUES(3,'ORD20240101003',1003,'王五','wangwu@example.com', '13800138002', '2025-11-27',3000.00,31,0,0,0,0,'2025-12-2816:11:22', '2025-12-2817:27:55');

mapper

<update id="updateDueDate">UPDATE overdue_recordSEToverdue_days=DATEDIFF(CURDATE(),due_date),update_time=NOW()WHEREstatus=0</update><select id="overdueSeven"resultType="ho.entity.OverdueSevenRecord">SELECTid,business_no,customer_name,customer_email,customer_phone,due_date,overdue_amount,reminded_seven_days,reminded_fifteen_days,reminded_thirty_days,status FROM overdue_record WHERE//根据due_date查出逾期大于7天小于15天的数据DATEDIFF(CURDATE(),due_date)>=7ANDDATEDIFF(CURDATE(),due_date)&lt;15ANDstatus=0ANDreminded_seven_days=0</select>

service
调用接口推送数据

@Service@Slf4jpublicclassOverdueRecordServiceImplextendsServiceImpl<OverdueRecordMapper,OverdueRecord>implementsIOverdueRecordService{@ResourceprivateOverdueRecordMapperoverdueRecordMapper;@OverridepublicList<OverdueRecord>overDueSeven(){// 更新逾期天数overdueRecordMapper.updateDueDate();List<OverdueSevenRecord>overdueSevenRecords=overdueRecordMapper.overdueSeven();List<OverdueRecord>overdueRecords=overdueSevenRecords.stream().map(e->{OverdueRecordoverdueRecord=newOverdueRecord();BeanUtil.copyProperties(e,overdueRecord,false);returnoverdueRecord;}).collect(Collectors.toList());intsuccessCount=0;intfailCount=0;for(OverdueRecordoverdueRecord:overdueRecords){//try{// 发送提醒booleansent=this.sendReminder(overdueRecord,7);if(sent){// 标记已发送overdueRecord.setRemindedSevenDays(true);overdueRecordMapper.updateById(overdueRecord);successCount++;log.info("成功发送7天提醒,业务编号:{}",overdueRecord.getBusinessNo());}else{failCount++;log.warn("发送7天提醒失败,业务编号:{}",overdueRecord.getBusinessNo());}}catch(Exceptione){failCount++;log.error("发送7天提醒异常,业务编号:{},错误:{}",overdueRecord.getBusinessNo(),e.getMessage(),e);}}returnnull;}privatebooleansendReminder(OverdueRecordoverdueRecord,intdays){//returntrue;}}

上门面仅展示了逾期7天的,逾期15、30的也是一样的,根据数据库字段查数据,然后调用推送接口,要自动发送用@XxlJob(“xxx”)即可

逾期15的sql是

DATEDIFF(CURDATE(),due_date)>=15ANDDATEDIFF(CURDATE(),due_date)<30

逾期30的sql是

DATEDIFF(CURDATE(),due_date)>=30
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 12:08:39

清华镜像站加速pip install torch命令实测效果分析

清华镜像站加速 pip install torch 实测效果分析 在深度学习项目开发中&#xff0c;最令人沮丧的体验之一莫过于输入 pip install torch 后看着进度条龟速爬行——尤其是当带宽被卡在几十 KB/s、下载动辄超过半小时时。这种“等待的煎熬”在中国大陆尤为常见&#xff0c;根源在…

作者头像 李华
网站建设 2026/4/23 15:42:12

深入浅出Kappa架构:大数据实时处理的终极解决方案

深入浅出Kappa架构&#xff1a;大数据实时处理的终极解决方案关键词&#xff1a;Kappa架构、大数据、实时处理、流处理、日志存储、Lambda架构、数据一致性摘要&#xff1a;在大数据时代&#xff0c;实时处理需求从“锦上添花”变成了“刚需”——电商需要实时推荐、金融需要实…

作者头像 李华
网站建设 2026/4/23 13:55:00

终极硬件调校指南:如何用GHelper彻底释放华硕笔记本隐藏性能

还在为官方控制软件Armoury Crate的臃肿体积和资源占用感到困扰吗&#xff1f;GHelper作为一款专为华硕笔记本打造的轻量级硬件控制工具&#xff0c;正在重新定义硬件管理体验。这款开源软件不仅能让你的ROG设备发挥最大潜力&#xff0c;还能带来前所未有的操作便利性。 【免费…

作者头像 李华
网站建设 2026/4/23 13:59:56

在CI流程中集成Parasoft与MISRA C++检查从零实现

在CI流程中集成Parasoft与MISRA C检查&#xff1a;从零构建高安全代码门禁你有没有遇到过这样的场景&#xff1f;团队里新人写了一段看似“没问题”的C代码&#xff0c;结果在系统集成阶段突然出现内存越界、未定义行为&#xff0c;甚至引发功能安全评审时被一票否决。更糟的是…

作者头像 李华
网站建设 2026/4/23 14:00:46

libusb异步操作详解:全面讲解请求提交与回调处理

libusb异步操作实战指南&#xff1a;从请求提交到回调处理的深度解析你有没有遇到过这样的场景&#xff1f;你的USB数据采集设备每秒产生上千个数据包&#xff0c;而你的程序却因为一次libusb_bulk_transfer()阻塞调用&#xff0c;导致界面卡顿、控制指令延迟响应——甚至丢掉了…

作者头像 李华
网站建设 2026/4/23 14:02:16

PDF文档中的日期水印添加技巧

在处理工程图纸或其他需要文档追踪的PDF文件时,添加日期水印是一种常见的需求。通过iText库,我们可以实现这一功能,但有时候会遇到一些奇怪的问题,例如水印文本虽然存在但不可见。本文将详细讲解如何使用iText库正确地在PDF文档的每一页添加日期水印,并讨论一些可能遇到的…

作者头像 李华