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