Browse Source

fix:订单

liujunchi 3 years ago
parent
commit
6eb0c0ff36

+ 5 - 1
cooleshow-mall/mall-mbg/src/main/java/com/yonge/cooleshow/mbg/mapper/UserOrderPaymentMapper.java

@@ -2,6 +2,8 @@ package com.yonge.cooleshow.mbg.mapper;
 
 import com.yonge.cooleshow.mbg.model.UserOrderPayment;
 
+import java.util.List;
+
 public interface UserOrderPaymentMapper {
 
 
@@ -13,5 +15,7 @@ public interface UserOrderPaymentMapper {
     int updateByPrimaryKeySelective(UserOrderPayment userOrderPayment);
 
 
-    UserOrderPayment selectByOrderNo(String orderSn, String payChannel, String payStaus);
+    List<UserOrderPayment> selectByOrderNo(String orderSn);
+
+    UserOrderPayment selectByOrderNoAndStatus(String orderSn, String payChannel, String payStatus);
 }

+ 0 - 19
cooleshow-mall/mall-pay/src/main/java/com/yonge/cooleshow/sdk/req/OrderPayReq.java

@@ -66,25 +66,6 @@ public class OrderPayReq {
         this.reason = reason;
     }
 
-    public void orderStatus(Integer orderStatus) {
-        if (orderStatus == 0) {
-            this.orderStatus = OrderStatusEnum.PAYING;
-        } else if (orderStatus == 1) {
-            this.orderStatus = OrderStatusEnum.PAID;
-        }else if (orderStatus == 2) {
-            this.orderStatus = OrderStatusEnum.CLOSE;
-        }else if (orderStatus == 3) {
-            this.orderStatus = OrderStatusEnum.CLOSE;
-        }else if (orderStatus == 4) {
-            this.orderStatus = OrderStatusEnum.CLOSE;
-        }else if (orderStatus == 5) {
-            this.orderStatus = OrderStatusEnum.CLOSE;
-        }else if (orderStatus == 6) {
-            this.orderStatus = OrderStatusEnum.WAIT_PAY;
-        } else {
-            this.orderStatus = OrderStatusEnum.CLOSE;
-        }
-    }
 
     public OrderStatusEnum getOrderStatus() {
         return orderStatus;

+ 1 - 1
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/OmsPortalOrderService.java

@@ -44,7 +44,7 @@ public interface OmsPortalOrderService {
      * 取消单个超时订单
      */
     @Transactional
-    void cancelOrder(Long orderId, String message);
+    void cancelOrder(Long orderId,  String message);
 
     /**
      * 发送延迟消息取消订单

+ 9 - 0
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/UserOrderPaymentService.java

@@ -4,6 +4,8 @@ import com.yonge.cooleshow.enums.PayChannelEnum;
 import com.yonge.cooleshow.enums.PayStatusEnum;
 import com.yonge.cooleshow.mbg.model.UserOrderPayment;
 
+import java.util.List;
+
 /**
  * Description
  *
@@ -31,4 +33,11 @@ public interface UserOrderPaymentService {
 
     UserOrderPayment getByOrderNo(String orderSn, PayChannelEnum payChannel, PayStatusEnum pending);
 
+    /**
+     * 根据订单查询 订单支付信息
+     *
+     * @param orderSn 订单号
+     * @return
+     */
+    List<UserOrderPayment> getByOrderNo(String orderSn);
 }

+ 16 - 13
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/OmsPortalOrderServiceImpl.java

@@ -327,7 +327,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
                 UmsMember member = memberService.getById(cancelOrder.getMemberId());
                 memberService.updateIntegration(cancelOrder.getMemberId(), member.getIntegration() + cancelOrder.getUseIntegration());
             }
-            UserOrderPayment orderPayment = userOrderPaymentService.getByTranNo(cancelOrder.getOrderSn());
+            UserOrderPayment orderPayment = userOrderPaymentService.getByOrderNo(cancelOrder.getOrderSn());
             if (null != orderPayment) {
                 // 发起关单
                 OrderCloseReq orderCloseReq = new OrderCloseReq();
@@ -481,14 +481,19 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
         }
         UserOrderPayment userOrderPayment = userOrderPaymentService
                 .getByOrderNo(detail.getOrderSn(), payReq.getPayChannel(), PayStatusEnum.pending);
-        payReq.orderStatus(detail.getStatus());
-        payReq.setOrderNo(detail.getOrderSn());
+        if (userOrderPayment == null) {
+            payReq.setOrderStatus(OrderStatusEnum.WAIT_PAY);
+            // 支付订单号
+            payReq.setOrderNo(generateOrderSn(detail));
+        }else {
+            payReq.setOrderStatus(OrderStatusEnum.PAYING);
+            // 支付订单号
+            payReq.setOrderNo(userOrderPayment.getAdapayNo());
+            payReq.setPayInfo(userOrderPayment.getPayInfo());
+        }
         payReq.setOrderPrice(detail.getPayAmount());
         payReq.setGoodTitle("");
         payReq.setGoodDesc("");
-        if (userOrderPayment != null) {
-            payReq.setPayInfo(userOrderPayment.getPayInfo());
-        }
         // 支付中的返回拉起信息
         orderPayRes = adapayPaymentService.orderPay(payReq);
         if (!orderPayRes.isStatus()) {
@@ -500,9 +505,8 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
             cancelOrder(detail.getId(),"订单金额和实际支付金额不符");
             throw new BizException("订单金额和实际支付金额不符");
         }
-        // 订单状态和付款状态都是付款中,直接返回付款拉起信息
-        if (OrderStatusEnum.PAYING.getCode().equals(payReq.getOrderStatus().getCode())
-                && PayStatusEnum.pending.getCode().equals(orderPayRes.getPayStatus().getCode())) {
+        // 同一个通道的支付请求,直接返回拉起支付信息
+        if (userOrderPayment != null) {
             return orderPayRes;
         }
 
@@ -513,10 +517,9 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
             omsOrder.setStatus(0);
             orderMapper.updateByPrimaryKeySelective(omsOrder);
             // 保存订单支付表
-            if (userOrderPayment == null) {
-                userOrderPayment = new UserOrderPayment();
-            }
-            userOrderPayment.setOrderNo(orderPayRes.getOrderNo());
+            userOrderPayment = new UserOrderPayment();
+            userOrderPayment.setOrderNo(detail.getOrderSn());
+            userOrderPayment.setAdapayNo(orderPayRes.getOrderNo());
             userOrderPayment.setPayChannel(orderPayRes.getPayChannel());
             userOrderPayment.setTransNo(orderPayRes.getTransNo());
             userOrderPayment.setPayAmt(new BigDecimal(orderPayRes.getPay_amt()));

+ 8 - 1
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/UserOrderPaymentServiceImpl.java

@@ -8,6 +8,8 @@ import com.yonge.cooleshow.portal.service.UserOrderPaymentService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * Description
  *
@@ -42,6 +44,11 @@ public class UserOrderPaymentServiceImpl implements UserOrderPaymentService {
     @Override
     public UserOrderPayment getByOrderNo(String orderSn, PayChannelEnum payChannel, PayStatusEnum payStatus) {
 
-        return userOrderPaymentMapper.selectByOrderNo(orderSn,payChannel.getCode(),payStatus.getCode());
+        return userOrderPaymentMapper.selectByOrderNoAndStatus(orderSn,payChannel.getCode(),payStatus.getCode());
+    }
+
+    @Override
+    public List<UserOrderPayment> getByOrderNo(String orderSn) {
+        return userOrderPaymentMapper.selectByOrderNo(orderSn);
     }
 }