From a981c07d34edd0975b9d556d97c1f851ce79974c Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期三, 04 十二月 2024 13:40:00 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/AfterSalesTask.java | 39 +++++++++++++++++++++++++++++++++++++++ 1 files changed, 39 insertions(+), 0 deletions(-) diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/AfterSalesTask.java b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/AfterSalesTask.java new file mode 100644 index 0000000..f6915f7 --- /dev/null +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/task/AfterSalesTask.java @@ -0,0 +1,39 @@ +package com.ruoyi.job.task; + +import lombok.extern.log4j.Log4j2; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Set; + +@Component("ryTask") +@Log4j2 +public class AfterSalesTask { + @Resource + private RedisTemplate<String, String> redisTemplate; + + /** + * 计算佣金(设置每分钟执行一次) + */ + public void afterSales() + { + long now = System.currentTimeMillis() / 1000; // 获取当前时间戳(秒) + // 从延迟队列中获取需要处理的订单 + Set<String> orderIds = redisTemplate.opsForZSet().rangeByScore("delay_queue:commission", 0, now); + if (orderIds != null && !orderIds.isEmpty()) { + // 处理完后移除已处理的订单 + redisTemplate.opsForZSet().removeRangeByScore("delay_queue:commission", 0, now); + } + } + + /** + * 佣金补偿(每天执行一次) + * redis未配置持久化,为防止数据丢失,每天执行一次,将到期未处理的订单重新放入延迟队列中 + */ + public void afterSalesCompensation() + { + // 获取未处理的订单 + + } +} -- Gitblit v1.7.1