|
@@ -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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 判断订单是否完成,若订单已完成则完成订单
|
|
|
*
|