New file |
| | |
| | | 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() |
| | | { |
| | | // 获取未处理的订单 |
| | | |
| | | } |
| | | } |