news 2026/4/18 8:07:26

基于 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/18 5:24:54

Elastic Stack多节点环境中密码配置手把手教程

Elastic Stack 多节点环境密码配置实战&#xff1a;从裸奔到生产级安全的平滑升级你有没有过这样的经历&#xff1f;刚搭好的 Elasticsearch 集群&#xff0c;Kibana 一点就通&#xff0c;Logstash 数据哗哗地进。但当你准备把它交给运维上线时&#xff0c;安全部门一句话就让你…

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

Windows下Elasticsearch安装全流程手把手指南

手把手教你搞定 Windows 下 Elasticsearch 部署&#xff1a;从零到启动只需 10 分钟 你是不是也遇到过这样的场景&#xff1f;项目需要加个搜索功能&#xff0c;听说 Elasticsearch 很强大&#xff0c;但一上来就被“Java环境”“配置文件”“端口绑定”这些术语劝退。别急——…

作者头像 李华
网站建设 2026/4/9 18:15:49

虚拟串口软件使用指南:以SecureCRT为例讲解

没有串口&#xff1f;别慌&#xff01;用 SecureCRT 虚拟串口搞定嵌入式调试 你有没有遇到过这种情况&#xff1a;手头的开发板明明通过USB转TTL连上了电脑&#xff0c;但笔记本却死活找不到COM端口&#xff1b;或者在做自动化测试时&#xff0c;想模拟一个GPS模块发数据&…

作者头像 李华
网站建设 2026/4/14 12:10:50

WSLRegisterDistribution失败?试试PyTorch-CUDA官方镜像方案

WSLRegisterDistribution失败&#xff1f;试试PyTorch-CUDA官方镜像方案 在搭建深度学习开发环境时&#xff0c;你是否曾被一连串的报错折磨得怀疑人生&#xff1f;WSLRegisterDistribution failed、CUDA not available、驱动版本不匹配……这些看似简单的问题&#xff0c;往往…

作者头像 李华
网站建设 2026/4/16 17:47:43

清华镜像源替换官方pip源提升PyTorch依赖安装速度

清华镜像源加速 PyTorch 安装&#xff1a;高效构建深度学习环境 在人工智能项目开发中&#xff0c;一个常见的痛点是&#xff1a;明明代码写好了&#xff0c;模型结构也设计完毕&#xff0c;却卡在了最基础的一步——pip install torch。尤其是在国内网络环境下&#xff0c;使用…

作者头像 李华
网站建设 2026/4/18 7:59:55

10 个迹象:有人可能在“偷看”你的手机(但你还没意识到)

我有一支技术全面、经验丰富的小型团队&#xff0c;专注高效交付中等规模外包项目&#xff0c;有需要外包项目的可以联系我我不是某天早上醒来就笃定“完了&#xff0c;我手机被人盯上了”。更像是一种直觉——一种不太对劲的氛围。电池掉得比以前快。 定位小圆点在我“什么都没…

作者头像 李华