浏览代码

更新状态

刘俊驰 6 月之前
父节点
当前提交
22a81db375

+ 56 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderServiceImpl.java

@@ -273,8 +273,13 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
 
         UserOrderVo userOrderVo = baseMapper.detailApp(param);
 
-        if (userOrderVo.getStatus() == OrderStatusEnum.PAYING) {
-            userPaymentCoreService.paymentStatus(userOrderVo.getOrderNo());
+        if (userOrderVo.getStatus() == OrderStatusEnum.PAYING ) {
+            if (userOrderVo.getPaymentVersion() == EPaymentVersion.V1) {
+                paymentStatus(userOrderVo.getOrderNo());
+
+            } else if (userOrderVo.getPaymentVersion() == EPaymentVersion.V2) {
+                userPaymentCoreService.paymentStatus(userOrderVo.getOrderNo());
+            }
         }
         userOrderVo = baseMapper.detailApp(param);
         userOrderDetail(userOrderVo);
@@ -844,6 +849,55 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
         }
     }
 
+    private void paymentStatus(String orderNo) {
+        UserOrderVo detail = detail(orderNo, null);
+        if (null == detail) {
+            return;
+        }
+        if (!OrderStatusEnum.WAIT_PAY.equals(detail.getStatus())
+            && !OrderStatusEnum.PAYING.equals(detail.getStatus())) {
+            return;
+        }
+        UserOrderPayment userOrderPayment = orderPaymentService.detailByTransNoOrPaymentNo(detail.getTransNo(), detail.getPaymentNo());
+        if (userOrderPayment == null) {
+            return;
+        }
+
+        Payment param = new Payment(detail.getOpenType(),
+                PaymentClientEnum.valueOf(userOrderPayment.getPaymentClient()), detail.getPayChannel());
+        param.setId(detail.getTransNo());
+        param.setPaymentNo(detail.getPaymentNo());
+        BaseResult<Payment> res = paymentClient.queryPayment(param);
+        Payment queryPaymentData = res.getData();
+
+        //支付成功
+        if (res.getStatus() && TradeStatusEnum.succeeded.getCode().equals(queryPaymentData.getStatus().getCode())
+                && (OrderStatusEnum.WAIT_PAY.equals(detail.getStatus()) || OrderStatusEnum.PAYING.equals(detail.getStatus()))) {
+            //订单已经完成,则完成订单
+            orderSuccess(detail);
+            //付款单改为已完成状态
+            userOrderPayment.setTransNo(queryPaymentData.getId());
+            userOrderPayment.setStatus(TradeStatusEnum.succeeded);
+            userOrderPayment.setUpdateTime(new Date());
+            userOrderPayment.setArrivalTime(new Date());
+            if (queryPaymentData.getPayAmt() != null) {
+                userOrderPayment.setBackPayAmt(new BigDecimal(queryPaymentData.getPayAmt()));
+            }
+
+            ExecutePaymentCallBack executePaymentCallBack = queryPaymentData.getExecutePaymentCallBack();
+            if (null != executePaymentCallBack) {
+                userOrderPayment.setArrivalTime(executePaymentCallBack.getTradeTime());
+                if (executePaymentCallBack.getPayAmt() != null) {
+                    userOrderPayment.setBackPayAmt(
+                            new BigDecimal(executePaymentCallBack.getPayAmt()));
+                    userOrderPayment.setFeeAmt(new BigDecimal(executePaymentCallBack.getFeeAmt()));
+                }
+
+            }
+            orderPaymentService.updateById(userOrderPayment);
+        }
+    }
+
     /**
      * 判断订单是否完成,若订单已完成则完成订单
      *