| | |
| | | private RedisTemplate<String, String> redisTemplate; |
| | | |
| | | /** |
| | | * 计算佣金 |
| | | * 计算佣金(设置每分钟执行一次) |
| | | */ |
| | | public void afterSales() |
| | | { |
| | |
| | | // 从延迟队列中获取需要处理的订单 |
| | | Set<String> orderIds = redisTemplate.opsForZSet().rangeByScore("delay_queue:commission", 0, now); |
| | | if (orderIds != null && !orderIds.isEmpty()) { |
| | | for (String orderId : orderIds) { |
| | | try { |
| | | Long id = Long.parseLong(orderId); |
| | | } catch (NumberFormatException e) { |
| | | log.error("延迟队列中的订单ID无效: {}", orderId, e); |
| | | } |
| | | } |
| | | // 处理完后移除已处理的订单 |
| | | redisTemplate.opsForZSet().removeRangeByScore("delay_queue:commission", 0, now); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 佣金补偿(每天执行一次) |
| | | * redis未配置持久化,为防止数据丢失,每天执行一次,将到期未处理的订单重新放入延迟队列中 |
| | | */ |
| | | public void afterSalesCompensation() |
| | | { |
| | | // 获取未处理的订单 |
| | | |
| | | } |
| | | } |