异步修改订单状态

This commit is contained in:
2025-03-07 15:21:44 +08:00
parent 2ea4be7f82
commit 37569fa7a8

View File

@@ -52,6 +52,9 @@ import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
import java.util.concurrent.TimeUnit;
/**
* @author ww
@@ -101,10 +104,13 @@ public class PayServiceImpl implements PayService {
private OrderInfo checkPay(CheckOrderPay checkOrderPay) {
OrderInfo orderInfo = orderInfoService.checkOrderPay(checkOrderPay);
if (orderInfo.getOrderAmount().compareTo(BigDecimal.ZERO) == 0) {
log.info("订单:{} 金额为0", orderInfo);
orderInfoService.upOrderInfo(orderInfo, orderInfo.getOrderAmount(),
LocalDateTime.now(), null, PayEnums.CASH_PAY);
redisService.del(RedisCst.classKeyExpired.EXPIRED_ORDER + orderInfo.getId());
Executor delayedExecutor = CompletableFuture.delayedExecutor(3, TimeUnit.SECONDS);
// 使用延迟的Executor执行一个简单任务
CompletableFuture.runAsync(() -> {
orderInfoService.upOrderInfo(orderInfo, orderInfo.getOrderAmount(),
LocalDateTime.now(), null, PayEnums.CASH_PAY);
redisService.del(RedisCst.classKeyExpired.EXPIRED_ORDER + orderInfo.getId());
}, delayedExecutor);
throw new PaySuccessException();
}
return orderInfo;