Browse Source

防止直播订单重复提交

yuhongqi 3 days ago
parent
commit
6d49f46d0a

+ 2 - 1
fs-service/src/main/java/com/fs/live/service/impl/LiveOrderServiceImpl.java

@@ -3433,6 +3433,7 @@ public class LiveOrderServiceImpl implements ILiveOrderService {
     }
 
     @Override
+    @Transactional
     public void payConfirmPayment(Long existPayedRecordId) {
         LiveOrderPayment payment = liveOrderPaymentMapper.selectLiveOrderPaymentByPaymentId(existPayedRecordId);
         if (payment == null) {
@@ -3440,7 +3441,7 @@ public class LiveOrderServiceImpl implements ILiveOrderService {
             return;
         }
         log.info("手动查询单号:" + existPayedRecordId + ":" + payment);
-//        this.payConfirm(1,"",payment.getPayCode(),payment.getTradeNo(),)
+        this.payConfirm(1, null, payment.getPayCode(), payment.getTradeNo(), payment.getBankSerialNo(), payment.getBankSerialNo());
     }
 
 

+ 9 - 9
fs-user-app/src/main/java/com/fs/app/controller/live/LiveOrderController.java

@@ -644,15 +644,15 @@ public class LiveOrderController extends AppBaseController
     {
         Long orderId = param.getOrderId();
         logger.info("开始处理支付请求, 订单号: {}, 支付类型: {}", orderId, param.getPayType());
-//        try{
-//            Long existPayedRecordId = orderService.isExistPayedRecord(param.getOrderId());
-//            if (null != existPayedRecordId) {
-//                orderService.payConfirmPayment(existPayedRecordId);
-//                return R.error("当前订单已支付");
-//            }
-//        } catch(Exception ex){
-//            log.error("校验当前订单是否存在已经支付的支付记录异常,param:{}",param,ex);
-//        }
+        try{
+            Long existPayedRecordId = orderService.isExistPayedRecord(param.getOrderId());
+            if (null != existPayedRecordId) {
+                orderService.payConfirmPayment(existPayedRecordId);
+                return R.error("当前订单已支付");
+            }
+        } catch(Exception ex){
+            log.error("校验当前订单是否存在已经支付的支付记录异常,param:{}",param,ex);
+        }
 
 
         RLock lock = redissonClient.getLock(String.format(LOCK_KEY_PAY,orderId));