mirror of
https://gitee.com/dromara/dax-pay.git
synced 2025-09-09 13:59:05 +00:00
fix 支付单过期处理注册不正确修改
This commit is contained in:
@@ -54,12 +54,8 @@ public class PayOrderService {
|
||||
public void updateById(PayOrder payOrder){
|
||||
// 如果是异步支付且支付订单完成, 需要删除订单超时任务记录
|
||||
if (ORDER_FINISH.contains(payOrder.getStatus())){
|
||||
expiredTimeService.cancelExpiredTime(payOrder.getId());
|
||||
expiredTimeService.cancelExpiredTime(payOrder.getOrderNo());
|
||||
}
|
||||
payOrderManager.updateById(payOrder);
|
||||
}
|
||||
|
||||
/**
|
||||
* 关闭
|
||||
*/
|
||||
}
|
||||
|
@@ -20,16 +20,16 @@ import java.util.Set;
|
||||
@RequiredArgsConstructor
|
||||
public class PayExpiredTimeRepository {
|
||||
|
||||
private static final String KEY = "payment:pay:expiredtime";
|
||||
private static final String KEY = "payment:pay:overtime";
|
||||
|
||||
private final RedisClient redisClient;
|
||||
|
||||
/**
|
||||
* 根据 token 存储对应的 ExpiredTokenKey
|
||||
*/
|
||||
public void store(Long payOderId, LocalDateTime expiredTime) {
|
||||
public void store(String orderNo, LocalDateTime expiredTime) {
|
||||
long time = LocalDateTimeUtil.timestamp(expiredTime);
|
||||
redisClient.zadd(KEY, String.valueOf(payOderId), time);
|
||||
redisClient.zadd(KEY, orderNo, time);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -40,16 +40,6 @@ public class PayExpiredTimeRepository {
|
||||
return redisClient.zrangeByScore(KEY, 0L, time);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有未过期的订单ID. (7天内的订单)
|
||||
*/
|
||||
public Set<String> getNormalKeysBy30Day(){
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
long start = LocalDateTimeUtil.timestamp(now);
|
||||
long end = LocalDateTimeUtil.timestamp(now.plusDays(30));
|
||||
return redisClient.zrangeByScore(KEY, start, end);
|
||||
}
|
||||
|
||||
/**
|
||||
* 支付完成或者取消支付后, 需要调用这个方法来清除列表里的订单ID
|
||||
*/
|
||||
|
@@ -38,7 +38,7 @@ public class PayExpiredTimeService {
|
||||
try {
|
||||
// 将过期时间添加到redis中, 往后延时一分钟
|
||||
expiredTime = LocalDateTimeUtil.offset(expiredTime, 1, ChronoUnit.MINUTES);
|
||||
repository.store(payOrder.getId(), expiredTime);
|
||||
repository.store(payOrder.getOrderNo(), expiredTime);
|
||||
}
|
||||
catch (Exception e) {
|
||||
log.error("注册支付单超时关闭失败",e);
|
||||
@@ -50,8 +50,8 @@ public class PayExpiredTimeService {
|
||||
/**
|
||||
* 取消支付单超时关闭事件
|
||||
*/
|
||||
public void cancelExpiredTime(Long paymentId) {
|
||||
repository.removeKeys(String.valueOf(paymentId));
|
||||
public void cancelExpiredTime(String orderNo) {
|
||||
repository.removeKeys(orderNo);
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user