guomengjiao vor 4 Monaten
Ursprung
Commit
3cae1b8de9
17 geänderte Dateien mit 74 neuen und 11 gelöschten Zeilen
  1. 1 1
      ruoyi-api/src/main/java/com/ruoyi/api/controller/line/ApiSubsidyQueueController.java
  2. 11 1
      ruoyi-api/src/main/java/com/ruoyi/api/controller/pay/ApiNotifyController.java
  3. 1 4
      ruoyi-api/src/main/java/com/ruoyi/api/controller/shop/ApiShopOrderController.java
  4. 5 0
      ruoyi-line/src/main/java/com/ruoyi/onlineorder/domain/OnlineOrder.java
  5. 4 0
      ruoyi-line/src/main/java/com/ruoyi/onlineorder/domain/bo/OnlineOrderBo.java
  6. 5 0
      ruoyi-line/src/main/java/com/ruoyi/onlineorder/domain/vo/OnlineOrderVo.java
  7. 2 0
      ruoyi-line/src/main/java/com/ruoyi/onlineorder/service/IOnlineOrderService.java
  8. 7 4
      ruoyi-line/src/main/java/com/ruoyi/onlineorder/service/impl/OnlineOrderServiceImpl.java
  9. 6 0
      ruoyi-line/src/main/java/com/ruoyi/subsidy/domain/vo/SubsidyModeAutoVo.java
  10. 8 1
      ruoyi-line/src/main/java/com/ruoyi/subsidy/service/impl/SubsidyModeAutoServiceImpl.java
  11. 1 0
      ruoyi-line/src/main/resources/mapper/onlineorder/OnlineOrderMapper.xml
  12. 5 0
      ruoyi-shop/src/main/java/com/ruoyi/shop/order/domain/ShopOrder.java
  13. 4 0
      ruoyi-shop/src/main/java/com/ruoyi/shop/order/domain/bo/ShopOrderBo.java
  14. 5 0
      ruoyi-shop/src/main/java/com/ruoyi/shop/order/domain/vo/ShopOrderVo.java
  15. 2 0
      ruoyi-shop/src/main/java/com/ruoyi/shop/order/service/IShopOrderService.java
  16. 6 0
      ruoyi-shop/src/main/java/com/ruoyi/shop/order/service/impl/ShopOrderServiceImpl.java
  17. 1 0
      ruoyi-shop/src/main/resources/mapper/order/ShopOrderMapper.xml

+ 1 - 1
ruoyi-api/src/main/java/com/ruoyi/api/controller/line/ApiSubsidyQueueController.java

@@ -68,7 +68,7 @@ public class ApiSubsidyQueueController extends AbstractApiController {
      * 获取当前商家的排队数量
      */
     @ApiOperation("获取当前商家的排队数量")
-    @GetMapping("/validQueueCount}")
+    @GetMapping("/validQueueCount")
     public R<Long> validQueueCount() {
         return R.ok(iSubsidyQueueService.validQueueCount(getBusinessByUserId(getUserId(true), true), false));
     }

+ 11 - 1
ruoyi-api/src/main/java/com/ruoyi/api/controller/pay/ApiNotifyController.java

@@ -216,10 +216,20 @@ public class ApiNotifyController extends AbstractApiController {
     public String payCallback(@RequestParam Map<String, Object> dataMap) {
         log.info("--- 付贝支付回调 --->" + dataMap.toString());
 
-        String mchOrderNo = MapUtil.getStr(dataMap, "mchOrderNo");
+        String payOrderNo = MapUtil.getStr(dataMap, "mchOrderNo");
         String payOrderId = MapUtil.getStr(dataMap, "payOrderId");
         Integer state = MapUtil.getInt(dataMap, "state");
         try {
+            String mchOrderNo;
+            //支付单号查出订单号
+            if (payOrderNo.startsWith(SequencePrefixEnum.SHOP_ORDER.getCode())) {
+                mchOrderNo = iShopOrderService.queryOrderNoByPayOrderNo(payOrderNo);
+            } else if (payOrderNo.startsWith(SequencePrefixEnum.ONLINE_ORDER.getCode())) {
+                mchOrderNo = onlineOrderService.queryOrderNoByPayOrderNo(payOrderNo);
+            } else {
+                log.error(" ---> 支付回调支付单号不存在:" + payOrderNo);
+                return Constants.FB_FAIL;
+            }
             // 验签
             if (!this.checkBackData(dataMap, mchOrderNo)) {
                 return Constants.FB_FAIL;

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

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

+ 5 - 0
ruoyi-line/src/main/java/com/ruoyi/onlineorder/domain/OnlineOrder.java

@@ -59,6 +59,10 @@ public class OnlineOrder extends BaseTimeEntity {
      * 第三方支付编号
      */
     private String transactionId;
+    /**
+     * 订单支付订单号
+     */
+    private String payOrderNo;
     /**
      * 订单下单用户ID
      */
@@ -165,6 +169,7 @@ public class OnlineOrder extends BaseTimeEntity {
         this.refundStatus = OnlineOrderRefundStatus.UNREFUNDED;
         this.cancelType = OnlineOrderCancelType.UNCANCELED;
         this.orderNo = buildOrderNo();
+        this.payOrderNo = buildOrderNo();
         this.sendPoint = BigDecimal.ZERO;
         this.subsidyAmount = BigDecimal.ZERO;
         this.expireTime = DateUtil.offsetMinute(new Date(), expireMinute);

+ 4 - 0
ruoyi-line/src/main/java/com/ruoyi/onlineorder/domain/bo/OnlineOrderBo.java

@@ -82,6 +82,10 @@ public class OnlineOrderBo extends BaseTimeEntity {
      */
     @ApiModelProperty(value = "第三方支付编号", required = true)
     private String transactionId;
+    /**
+     * 订单支付订单号
+     */
+    private String payOrderNo;
 
     /**
      * 订单下单用户ID

+ 5 - 0
ruoyi-line/src/main/java/com/ruoyi/onlineorder/domain/vo/OnlineOrderVo.java

@@ -156,6 +156,11 @@ public class OnlineOrderVo extends BaseVo {
     @ApiModelProperty("第三方支付编号")
     private String transactionId;
 
+    /**
+     * 订单支付订单号
+     */
+    private String payOrderNo;
+
     /**
      * 订单下单用户ID
      */

+ 2 - 0
ruoyi-line/src/main/java/com/ruoyi/onlineorder/service/IOnlineOrderService.java

@@ -149,4 +149,6 @@ public interface IOnlineOrderService {
     List<OnlineOrderVo> queryCustomList(OnlineOrderBo bo);
 
     PayVo thirdPay(OnlineOrderBo bo, Long userId);
+
+    String queryOrderNoByPayOrderNo(String payOrderNo);
 }

+ 7 - 4
ruoyi-line/src/main/java/com/ruoyi/onlineorder/service/impl/OnlineOrderServiceImpl.java

@@ -361,13 +361,16 @@ public class OnlineOrderServiceImpl implements IOnlineOrderService {
             throw new ServiceException(OnlineOrderExceptionEnum.ORDER_USER_ERROR);
         }
         Business business = businessService.loadById(onlineOrder.getBusinessId(), true);
-        //先关单
-        PayBo closeBo = new PayBo(business.getFuMchNo(), business.getFuKey(), onlineOrder.getOrderNo(), onlineOrder.getTransactionId());
-        fubeiPayService.closePayOrder(closeBo);
         //在调用支付
         return fubeiPay(onlineOrder, business, userId);
     }
 
+    @Override
+    public String queryOrderNoByPayOrderNo(String payOrderNo) {
+        OnlineOrder onlineOrder = baseMapper.selectOne(new LambdaQueryWrapper<OnlineOrder>().select(OnlineOrder::getOrderNo).eq(OnlineOrder::getPayOrderNo, payOrderNo));
+        return ObjectUtil.isNotNull(onlineOrder) ? onlineOrder.getOrderNo() : null;
+    }
+
     private PayVo fubeiPay(OnlineOrder onlineOrder, Business business, Long userId) {
         //支付金额为分
         Integer money = Integer.valueOf(onlineOrder.getPayAmount().multiply(new BigDecimal(100)).setScale(0, BigDecimal.ROUND_DOWN).toString());
@@ -379,7 +382,7 @@ public class OnlineOrderServiceImpl implements IOnlineOrderService {
         }
         UserThirdIdentity userThirdIdentity = userThirdIdentityService.loadByUserId(userId, userThirdType, true);
         // 构建支付参数
-        PayBo pay = new PayBo(payWay, business.getFuMchNo(), business.getFuKey(), onlineOrder.getOrderNo()
+        PayBo pay = new PayBo(payWay, business.getFuMchNo(), business.getFuKey(), onlineOrder.getPayOrderNo()
             , userThirdIdentity.getIdentityCode(),  money, "在线订单支付", String.format("在线订单支付:%s", business.getBusinessName()));
         // 发起付贝支付
         return fubeiPayService.createPayOrder(pay);

+ 6 - 0
ruoyi-line/src/main/java/com/ruoyi/subsidy/domain/vo/SubsidyModeAutoVo.java

@@ -67,5 +67,11 @@ public class SubsidyModeAutoVo {
     @ApiModelProperty("转换目标模式ID")
     private Long targetModeId;
 
+    /**
+     * 转换目标模式名称
+     */
+    @ExcelProperty(value = "转换目标模式名称")
+    @ApiModelProperty("转换目标模式名称")
+    private String targetModeName;
 
 }

+ 8 - 1
ruoyi-line/src/main/java/com/ruoyi/subsidy/service/impl/SubsidyModeAutoServiceImpl.java

@@ -117,7 +117,14 @@ public class SubsidyModeAutoServiceImpl implements ISubsidyModeAutoService {
 
     @Override
     public SubsidyModeAutoVo loadVoByBusinessId(Long businessId) {
-        return baseMapper.selectVoOne(new LambdaQueryWrapper<SubsidyModeAuto>().eq(SubsidyModeAuto::getBusinessId, businessId).last("limit 1"));
+        SubsidyModeAutoVo subsidyModeAutoVo = baseMapper.selectVoOne(new LambdaQueryWrapper<SubsidyModeAuto>().eq(SubsidyModeAuto::getBusinessId, businessId).last("limit 1"));
+        if (ObjectUtil.isNotNull(subsidyModeAutoVo.getTargetModeId())) {
+            SubsidyMode targetMode = this.subsidyModeService.loadById(subsidyModeAutoVo.getTargetModeId(), false);
+            if(ObjectUtil.isNotNull(targetMode)) {
+                subsidyModeAutoVo.setTargetModeName(targetMode.getName());
+            }
+        }
+        return subsidyModeAutoVo;
     }
 
     @Override

+ 1 - 0
ruoyi-line/src/main/resources/mapper/onlineorder/OnlineOrderMapper.xml

@@ -13,6 +13,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="payTime" column="pay_time"/>
         <result property="payStatus" column="pay_status"/>
         <result property="transactionId" column="transaction_id"/>
+        <result property="payOrderNo" column="pay_order_no"/>
         <result property="userId" column="user_id"/>
         <result property="userMobile" column="user_mobile"/>
         <result property="userName" column="user_name"/>

+ 5 - 0
ruoyi-shop/src/main/java/com/ruoyi/shop/order/domain/ShopOrder.java

@@ -103,6 +103,10 @@ public class ShopOrder extends BaseTimeEntity {
      * 第三方支付单号
      */
     private String transactionId;
+    /**
+     * 订单支付单号
+     */
+    private String payOrderNo;
     /**
      * 支付状态(0待支付,10已支付,100支付失败)
      */
@@ -323,6 +327,7 @@ public class ShopOrder extends BaseTimeEntity {
         this.platformIncomeSettled = CallInterfaceStatus.NO;
 
         this.orderNo = buildOrderNo();
+        this.payOrderNo = buildOrderNo();
         if(this.getActualPayment().compareTo(BigDecimal.ZERO)==0)
         {
             this.transactionStatus = TransactionStatus.WAIT_DELIVER;

+ 4 - 0
ruoyi-shop/src/main/java/com/ruoyi/shop/order/domain/bo/ShopOrderBo.java

@@ -173,6 +173,10 @@ public class ShopOrderBo extends BaseTimeEntity {
      */
     @ApiModelProperty(value = "第三方支付单号", required = true)
     private String transactionId;
+    /**
+     * 订单支付单号
+     */
+    private String payOrderNo;
 
     /**
      * 支付状态(0待支付,10已支付,100支付失败)

+ 5 - 0
ruoyi-shop/src/main/java/com/ruoyi/shop/order/domain/vo/ShopOrderVo.java

@@ -199,6 +199,11 @@ public class ShopOrderVo extends BaseVo {
     @ApiModelProperty("第三方支付单号")
     private String transactionId;
 
+    /**
+     * 订单支付单号
+     */
+    private String payOrderNo;
+
     /**
      * 支付状态(0待支付,10已支付,100支付失败)
      */

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

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

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

@@ -570,6 +570,12 @@ public class ShopOrderServiceImpl implements IShopOrderService {
         return PaymentStatus.PAID.equals(order.getPaymentStatus());
     }
 
+    @Override
+    public String queryOrderNoByPayOrderNo(String payOrderNo) {
+        ShopOrder shopOrder = baseMapper.selectOne(new LambdaQueryWrapper<ShopOrder>().select(ShopOrder::getOrderNo).eq(ShopOrder::getPayOrderNo, payOrderNo));
+        return shopOrder != null ? shopOrder.getOrderNo() : null;
+    }
+
     @Override
     public void endRefundOrderSync(Long orderDetailId, Long orderId) {
         ShopOrder shopOrder = this.loadByLockId(orderId, true);

+ 1 - 0
ruoyi-shop/src/main/resources/mapper/order/ShopOrderMapper.xml

@@ -21,6 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="end" column="end"/>
         <result property="paymentMethod" column="payment_method"/>
         <result property="transactionId" column="transaction_id"/>
+        <result property="payOrderNo" column="pay_order_no"/>
         <result property="paymentStatus" column="payment_status"/>
         <result property="shippingStatus" column="shipping_status"/>
         <result property="receivingStatus" column="receiving_status"/>