news 2026/8/18 23:15:00

基于 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/8/9 16:24:11

HuggingFace Transformers库在PyTorch-CUDA环境中的加载优化

HuggingFace Transformers库在PyTorch-CUDA环境中的加载优化 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;一个开发者最不想浪费时间的地方&#xff0c;往往不是模型设计本身&#xff0c;而是——环境配置。你是否经历过这样的场景&#xff1a;满怀信心地运行一…

作者头像 李华
网站建设 2026/8/13 5:34:16

GitHub项目Readme编写规范:以PyTorch项目为例说明

GitHub项目Readme编写规范&#xff1a;以PyTorch项目为例说明 在AI工程实践中&#xff0c;一个项目的成败往往不只取决于代码质量&#xff0c;更在于它是否“好用”——新成员能否在10分钟内跑通第一个训练脚本&#xff1f;协作开发者会不会因为环境差异导致“在我机器上能跑”…

作者头像 李华
网站建设 2026/8/3 1:40:36

day49_通道注意力机制 @浙大疏锦行

Day 49通道注意力机制 浙大疏锦行 概念 目的&#xff1a;让神经网络自动学习每个特征通道的重要性&#xff0c;从而增强有用的特征通道&#xff0c;抑制无用的特征通道。实现步骤&#xff1a; Squeeze (压缩)&#xff1a; 使用全局平均池化 (nn.AdaptiveAvgPool2d(1))。将形状…

作者头像 李华
网站建设 2026/8/17 9:20:50

生物信息学中的模式匹配技巧

在生物信息学领域,处理大量的基因序列数据是一个常见任务。今天我们来探讨如何通过Python中的Biopython库和正则表达式模块(re)来高效地处理FASTA格式的文件,并提取特定模式的序列信息。 背景介绍 FASTA格式是一种用于存储核酸和蛋白质序列的文本格式,每个序列由一个描述…

作者头像 李华
网站建设 2026/8/7 9:04:28

单片机毕设 stm32智能鱼缸监控投喂系统(源码+硬件+论文)

文章目录 0 前言1 主要功能2 硬件设计(原理图)3 核心软件设计4 实现效果5 最后 0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到毕业答辩的要求&#xff0c;这两年不断有学弟学妹告诉…

作者头像 李华
网站建设 2026/8/8 23:35:32

人机信息论

为了计算&#xff0c;需要计量&#xff0c;为了计量&#xff0c;需要定义。香农定义了信源、信道的信息量&#xff1b;为了这个定义&#xff0c;他定义了信息、信息量、定义了信息量的单位.....这些定义成了他最著名的定义&#xff0c;也通过这些定义奠定了信息论的基础。类似&…

作者头像 李华