guomengjiao пре 4 месеци
родитељ
комит
1274c0d31a

+ 2 - 1
ruoyi-api/src/main/java/com/ruoyi/api/controller/shop/ApiShopOrderController.java

@@ -204,6 +204,7 @@ public class ApiShopOrderController extends AbstractApiController {
         }
         }
         Business business = businessService.loadById(order.getBusinessId(), true);
         Business business = businessService.loadById(order.getBusinessId(), true);
         //TODO 调用第三方支付接口
         //TODO 调用第三方支付接口
+        String payOrderNo = iShopOrderService.updatePayOrderNo(order);
         //支付金额为分
         //支付金额为分
         Integer money = Integer.valueOf(order.getActualPayment().multiply(new BigDecimal(100)).setScale(0, BigDecimal.ROUND_DOWN).toString());
         Integer money = Integer.valueOf(order.getActualPayment().multiply(new BigDecimal(100)).setScale(0, BigDecimal.ROUND_DOWN).toString());
         FubeiPayWay payWay = FubeiPayWay.W_WX_LITE;
         FubeiPayWay payWay = FubeiPayWay.W_WX_LITE;
@@ -214,7 +215,7 @@ public class ApiShopOrderController extends AbstractApiController {
         }
         }
         UserThirdIdentity userThirdIdentity = userThirdIdentityService.loadByUserId(userId, userThirdType, true);
         UserThirdIdentity userThirdIdentity = userThirdIdentityService.loadByUserId(userId, userThirdType, true);
         // 构建支付参数
         // 构建支付参数
-        PayBo pay = new PayBo(payWay, business.getFuMchNo(), business.getFuKey(), order.getPayOrderNo()
+        PayBo pay = new PayBo(payWay, business.getFuMchNo(), business.getFuKey(), payOrderNo
             , userThirdIdentity.getIdentityCode(),  money, "在线订单支付", String.format("在线订单支付:%s", business.getBusinessName()));
             , userThirdIdentity.getIdentityCode(),  money, "在线订单支付", String.format("在线订单支付:%s", business.getBusinessName()));
         // 发起付贝支付
         // 发起付贝支付
         PayVo payOrder = fubeiPayService.createPayOrder(pay);
         PayVo payOrder = fubeiPayService.createPayOrder(pay);

+ 1 - 2
ruoyi-line/src/main/java/com/ruoyi/onlineorder/domain/OnlineOrder.java

@@ -169,7 +169,6 @@ public class OnlineOrder extends BaseTimeEntity {
         this.refundStatus = OnlineOrderRefundStatus.UNREFUNDED;
         this.refundStatus = OnlineOrderRefundStatus.UNREFUNDED;
         this.cancelType = OnlineOrderCancelType.UNCANCELED;
         this.cancelType = OnlineOrderCancelType.UNCANCELED;
         this.orderNo = buildOrderNo();
         this.orderNo = buildOrderNo();
-        this.payOrderNo = buildOrderNo();
         this.sendPoint = BigDecimal.ZERO;
         this.sendPoint = BigDecimal.ZERO;
         this.subsidyAmount = BigDecimal.ZERO;
         this.subsidyAmount = BigDecimal.ZERO;
         this.expireTime = DateUtil.offsetMinute(new Date(), expireMinute);
         this.expireTime = DateUtil.offsetMinute(new Date(), expireMinute);
@@ -183,7 +182,7 @@ public class OnlineOrder extends BaseTimeEntity {
     /**
     /**
      * 生成订单号
      * 生成订单号
      */
      */
-    private String buildOrderNo() {
+    public String buildOrderNo() {
         ISysSequenceService sysSequenceService = SpringUtil.getBean("sysSequenceServiceImpl", ISysSequenceService.class);
         ISysSequenceService sysSequenceService = SpringUtil.getBean("sysSequenceServiceImpl", ISysSequenceService.class);
         return sysSequenceService.generateSequence(SequencePrefixEnum.ONLINE_ORDER,
         return sysSequenceService.generateSequence(SequencePrefixEnum.ONLINE_ORDER,
             DateUtil.format(new Date(), "yyMMdd"), 6);
             DateUtil.format(new Date(), "yyMMdd"), 6);

+ 3 - 0
ruoyi-line/src/main/java/com/ruoyi/onlineorder/service/impl/OnlineOrderServiceImpl.java

@@ -372,6 +372,9 @@ public class OnlineOrderServiceImpl implements IOnlineOrderService {
     }
     }
 
 
     private PayVo fubeiPay(OnlineOrder onlineOrder, Business business, Long userId) {
     private PayVo fubeiPay(OnlineOrder onlineOrder, Business business, Long userId) {
+        //先更新支付订单号
+        onlineOrder.setPayOrderNo(onlineOrder.buildOrderNo());
+        baseMapper.updateById(onlineOrder);
         //支付金额为分
         //支付金额为分
         Integer money = Integer.valueOf(onlineOrder.getPayAmount().multiply(new BigDecimal(100)).setScale(0, BigDecimal.ROUND_DOWN).toString());
         Integer money = Integer.valueOf(onlineOrder.getPayAmount().multiply(new BigDecimal(100)).setScale(0, BigDecimal.ROUND_DOWN).toString());
         FubeiPayWay payWay = FubeiPayWay.W_WX_LITE;
         FubeiPayWay payWay = FubeiPayWay.W_WX_LITE;

+ 1 - 2
ruoyi-shop/src/main/java/com/ruoyi/shop/order/domain/ShopOrder.java

@@ -327,7 +327,6 @@ public class ShopOrder extends BaseTimeEntity {
         this.platformIncomeSettled = CallInterfaceStatus.NO;
         this.platformIncomeSettled = CallInterfaceStatus.NO;
 
 
         this.orderNo = buildOrderNo();
         this.orderNo = buildOrderNo();
-        this.payOrderNo = buildOrderNo();
         if(this.getActualPayment().compareTo(BigDecimal.ZERO)==0)
         if(this.getActualPayment().compareTo(BigDecimal.ZERO)==0)
         {
         {
             this.transactionStatus = TransactionStatus.WAIT_DELIVER;
             this.transactionStatus = TransactionStatus.WAIT_DELIVER;
@@ -348,7 +347,7 @@ public class ShopOrder extends BaseTimeEntity {
      * 生成订单号
      * 生成订单号
      * @return
      * @return
      */
      */
-    private String buildOrderNo() {
+    public String buildOrderNo() {
         ISysSequenceService sysSequenceService = SpringUtil.getBean("sysSequenceServiceImpl", ISysSequenceService.class);
         ISysSequenceService sysSequenceService = SpringUtil.getBean("sysSequenceServiceImpl", ISysSequenceService.class);
         String orderNo = sysSequenceService.generateSequence(SequencePrefixEnum.SHOP_ORDER,
         String orderNo = sysSequenceService.generateSequence(SequencePrefixEnum.SHOP_ORDER,
             DateUtil.format(new Date(), "yyMMdd"), 6);
             DateUtil.format(new Date(), "yyMMdd"), 6);

+ 2 - 0
ruoyi-shop/src/main/java/com/ruoyi/shop/order/service/IShopOrderService.java

@@ -223,4 +223,6 @@ public interface IShopOrderService {
     Boolean isPay(Long orderId);
     Boolean isPay(Long orderId);
 
 
     String queryOrderNoByPayOrderNo(String payOrderNo);
     String queryOrderNoByPayOrderNo(String payOrderNo);
+
+    String updatePayOrderNo(ShopOrder order);
 }
 }

+ 8 - 0
ruoyi-shop/src/main/java/com/ruoyi/shop/order/service/impl/ShopOrderServiceImpl.java

@@ -576,6 +576,14 @@ public class ShopOrderServiceImpl implements IShopOrderService {
         return shopOrder != null ? shopOrder.getOrderNo() : null;
         return shopOrder != null ? shopOrder.getOrderNo() : null;
     }
     }
 
 
+    @Override
+    public String updatePayOrderNo(ShopOrder order) {
+        //更新支付订单号
+        order.setPayOrderNo(order.buildOrderNo());
+        this.baseMapper.updateById(order);
+        return order.getPayOrderNo();
+    }
+
     @Override
     @Override
     public void endRefundOrderSync(Long orderDetailId, Long orderId) {
     public void endRefundOrderSync(Long orderDetailId, Long orderId) {
         ShopOrder shopOrder = this.loadByLockId(orderId, true);
         ShopOrder shopOrder = this.loadByLockId(orderId, true);