2 コミット 1ee704be7c ... c6a28ef5ba

作者 SHA1 メッセージ 日付
  18782137998 c6a28ef5ba 整改队长代码逻辑 11 ヶ月 前
  18782137998 d3d1c5673c 流程完成 11 ヶ月 前
31 ファイル変更937 行追加44 行削除
  1. 1 0
      src/main/java/com/sckw/freight/config/DataSourceNames.java
  2. 72 0
      src/main/java/com/sckw/freight/entity/payment/PayMemberWalletAp.java
  3. 114 0
      src/main/java/com/sckw/freight/entity/payment/PayOrder.java
  4. 136 0
      src/main/java/com/sckw/freight/entity/payment/PayOrderSub.java
  5. 89 0
      src/main/java/com/sckw/freight/entity/payment/PayWalletWithdrawOrder.java
  6. 19 0
      src/main/java/com/sckw/freight/mapper/payment/PayMemberWalletApMapper.java
  7. 19 0
      src/main/java/com/sckw/freight/mapper/payment/PayOrderMapper.java
  8. 19 0
      src/main/java/com/sckw/freight/mapper/payment/PayOrderSubMapper.java
  9. 19 0
      src/main/java/com/sckw/freight/mapper/payment/PayWalletWithdrawOrderMapper.java
  10. 21 0
      src/main/java/com/sckw/freight/model/po/CheckResult.java
  11. 231 28
      src/main/java/com/sckw/freight/service/JobService.java
  12. 1 1
      src/main/java/com/sckw/freight/service/PayCenterService.java
  13. 2 2
      src/main/java/com/sckw/freight/service/freight/IKwpSettlementLogisticsService.java
  14. 7 7
      src/main/java/com/sckw/freight/service/freight/impl/KwpLedgerLogisticsServiceImpl.java
  15. 5 4
      src/main/java/com/sckw/freight/service/freight/impl/KwpSettlementLogisticsServiceImpl.java
  16. 16 0
      src/main/java/com/sckw/freight/service/payment/IPayMemberWalletApService.java
  17. 16 0
      src/main/java/com/sckw/freight/service/payment/IPayOrderService.java
  18. 16 0
      src/main/java/com/sckw/freight/service/payment/IPayOrderSubService.java
  19. 16 0
      src/main/java/com/sckw/freight/service/payment/IPayWalletWithdrawOrderService.java
  20. 20 0
      src/main/java/com/sckw/freight/service/payment/impl/PayMemberWalletApServiceImpl.java
  21. 20 0
      src/main/java/com/sckw/freight/service/payment/impl/PayOrderServiceImpl.java
  22. 20 0
      src/main/java/com/sckw/freight/service/payment/impl/PayOrderSubServiceImpl.java
  23. 20 0
      src/main/java/com/sckw/freight/service/payment/impl/PayWalletWithdrawOrderServiceImpl.java
  24. 5 0
      src/main/resources/application-dev.yml
  25. 7 1
      src/main/resources/application-pro.yml
  26. 5 0
      src/main/resources/application-test.yml
  27. 1 1
      src/main/resources/com/sckw/freight/mapper/freight/KwpLedgerLogisticsMapper.xml
  28. 5 0
      src/main/resources/com/sckw/freight/mapper/payment/PayMemberWalletApMapper.xml
  29. 5 0
      src/main/resources/com/sckw/freight/mapper/payment/PayOrderMapper.xml
  30. 5 0
      src/main/resources/com/sckw/freight/mapper/payment/PayOrderSubMapper.xml
  31. 5 0
      src/main/resources/com/sckw/freight/mapper/payment/PayWalletWithdrawOrderMapper.xml

+ 1 - 0
src/main/java/com/sckw/freight/config/DataSourceNames.java

@@ -12,4 +12,5 @@ public   class DataSourceNames {
     public static final String KLL = "kll";
     public static final String FREIGHT = "freight";
     public static final String SAAS = "saas";
+    public static final String PAYMENT = "payment";
 }

+ 72 - 0
src/main/java/com/sckw/freight/entity/payment/PayMemberWalletAp.java

@@ -0,0 +1,72 @@
+package com.sckw.freight.entity.payment;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * AdvancePayment 钱包预付
+ * </p>
+ *
+ * @author xj
+ * @since 2025-02-10
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("pay_member_wallet_ap")
+public class PayMemberWalletAp implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 预付出款钱包
+     */
+    private Integer walletId;
+
+    /**
+     * 预付金额
+     */
+    private Integer money;
+
+    /**
+     * 预付订单号
+     */
+    private String apNo;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+
+    /**
+     * 预付状态
+     */
+    private Integer status;
+
+    /**
+     * 预付完成余额
+     */
+    private Integer apBalance;
+
+    /**
+     * 预付备注
+     */
+    private String remarks;
+
+
+}

+ 114 - 0
src/main/java/com/sckw/freight/entity/payment/PayOrder.java

@@ -0,0 +1,114 @@
+package com.sckw.freight.entity.payment;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 支付订单
+ * </p>
+ *
+ * @author xj
+ * @since 2025-01-23
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("pay_order")
+public class PayOrder implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 用户唯一ID
+     */
+    private String uid;
+
+    /**
+     * 唯一订单号
+     */
+    private String orderNo;
+
+    private String platformNo;
+
+    /**
+     * 金额,分
+     */
+    private Integer money;
+
+    /**
+     * 支付时间
+     */
+    private LocalDateTime payTime;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+
+    /**
+     * 删除时间
+     */
+    private LocalDateTime deleteTime;
+
+    /**
+     * 支付通道
+     */
+    private String channel;
+
+    /**
+     * 余额,分
+     */
+    private Integer balance;
+
+    /**
+     * 0:关闭,1:正在使用,1:支付中
+     */
+    private Integer status;
+
+    /**
+     * 过滤器
+     */
+    private String filter;
+
+    /**
+     * 支付地址
+     */
+    private String payUrl;
+
+    /**
+     * 中信支付主体账户ID
+     */
+    private String mainAccount;
+
+    /**
+     * 单据来源1-客户端2-收银台
+     */
+    private Integer source;
+
+    /**
+     * 管理ID
+     */
+    private Integer operId;
+
+    /**
+     * 管理员名称
+     */
+    private String operName;
+
+
+}

+ 136 - 0
src/main/java/com/sckw/freight/entity/payment/PayOrderSub.java

@@ -0,0 +1,136 @@
+package com.sckw.freight.entity.payment;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 分账信息
+ * </p>
+ *
+ * @author xj
+ * @since 2025-02-10
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("pay_order_sub")
+public class PayOrderSub implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * uid
+     */
+    private String uid;
+
+    /**
+     * 订单id
+     */
+    private Integer orderId;
+
+    /**
+     * 分账订单号
+     */
+    private String subNo;
+
+    /**
+     * 平台单号
+     */
+    private String platformNo;
+
+    /**
+     * 分账金额,分
+     */
+    private Integer money;
+
+    /**
+     * 分账前,余额
+     */
+    private Integer beforeBalance;
+
+    /**
+     * 分账后,余额
+     */
+    private Integer afterBalance;
+
+    /**
+     * 收款人,uid
+     */
+    private String recvUid;
+
+    /**
+     * 收款人信息快照
+     */
+    private String recvInfoSnapshot;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 完成时间
+     */
+    private LocalDateTime finishTime;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+    /**
+     * 2:分账中,1:分账成功,0:分账失败
+     */
+    private Integer status;
+
+    /**
+     * 流水号,避免重复分账
+     */
+    private String businessNo;
+
+    private String filter;
+
+    private String channel;
+
+    /**
+     * 中信主体账号
+     */
+    private String mainAccount;
+
+    /**
+     * 预付订单号
+     */
+    private String apNo;
+
+    /**
+     * 凭证
+     */
+    private String voucher;
+
+    /**
+     * 单据来源1-客户端2-收银台
+     */
+    private Integer source;
+
+    /**
+     * 管理ID
+     */
+    private Integer operId;
+
+    /**
+     * 管理员名称
+     */
+    private String operName;
+
+
+}

+ 89 - 0
src/main/java/com/sckw/freight/entity/payment/PayWalletWithdrawOrder.java

@@ -0,0 +1,89 @@
+package com.sckw.freight.entity.payment;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 提现订单
+ * </p>
+ *
+ * @author xj
+ * @since 2025-02-10
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("pay_wallet_withdraw_order")
+public class PayWalletWithdrawOrder implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 钱包ID
+     */
+    private Integer walletId;
+
+    /**
+     * 提现订单号
+     */
+    private String orderNo;
+
+    /**
+     * 提现金额
+     */
+    private Integer money;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 完成时间
+     */
+    private LocalDateTime finishTime;
+
+    /**
+     * 状态
+     */
+    private Integer status;
+
+    /**
+     * 提现后余额
+     */
+    private Integer balance;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+    private String platformNo;
+
+    /**
+     * 单据来源1-客户端2-收银台
+     */
+    private Integer source;
+
+    /**
+     * 管理ID
+     */
+    private Integer operId;
+
+    /**
+     * 管理员名称
+     */
+    private String operName;
+
+
+}

+ 19 - 0
src/main/java/com/sckw/freight/mapper/payment/PayMemberWalletApMapper.java

@@ -0,0 +1,19 @@
+package com.sckw.freight.mapper.payment;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.sckw.freight.config.DataSourceNames;
+import com.sckw.freight.entity.payment.PayMemberWalletAp;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * AdvancePayment 钱包预付 Mapper 接口
+ * </p>
+ *
+ * @author xj
+ * @since 2025-02-10
+ */
+@DS(DataSourceNames.PAYMENT)
+public interface PayMemberWalletApMapper extends BaseMapper<PayMemberWalletAp> {
+
+}

+ 19 - 0
src/main/java/com/sckw/freight/mapper/payment/PayOrderMapper.java

@@ -0,0 +1,19 @@
+package com.sckw.freight.mapper.payment;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.sckw.freight.config.DataSourceNames;
+import com.sckw.freight.entity.payment.PayOrder;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 支付订单 Mapper 接口
+ * </p>
+ *
+ * @author xj
+ * @since 2025-01-23
+ */
+@DS(DataSourceNames.PAYMENT)
+public interface PayOrderMapper extends BaseMapper<PayOrder> {
+
+}

+ 19 - 0
src/main/java/com/sckw/freight/mapper/payment/PayOrderSubMapper.java

@@ -0,0 +1,19 @@
+package com.sckw.freight.mapper.payment;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.sckw.freight.config.DataSourceNames;
+import com.sckw.freight.entity.payment.PayOrderSub;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 分账信息 Mapper 接口
+ * </p>
+ *
+ * @author xj
+ * @since 2025-02-10
+ */
+@DS(DataSourceNames.PAYMENT)
+public interface PayOrderSubMapper extends BaseMapper<PayOrderSub> {
+
+}

+ 19 - 0
src/main/java/com/sckw/freight/mapper/payment/PayWalletWithdrawOrderMapper.java

@@ -0,0 +1,19 @@
+package com.sckw.freight.mapper.payment;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.sckw.freight.config.DataSourceNames;
+import com.sckw.freight.entity.payment.PayWalletWithdrawOrder;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 提现订单 Mapper 接口
+ * </p>
+ *
+ * @author xj
+ * @since 2025-02-10
+ */
+@DS(DataSourceNames.PAYMENT)
+public interface PayWalletWithdrawOrderMapper extends BaseMapper<PayWalletWithdrawOrder> {
+
+}

+ 21 - 0
src/main/java/com/sckw/freight/model/po/CheckResult.java

@@ -0,0 +1,21 @@
+package com.sckw.freight.model.po;
+
+import lombok.Data;
+
+/**
+ * @BelongsProject: Freight-Settlement-Backend
+ * @BelongsPackage: com.sckw.freight.model.po
+ * @Author: xj
+ * @CreateTime: 2025-02-10  14:02
+ * @Description: TODO
+ * @Version: 1.0
+ */
+@Data
+public class CheckResult<T> {
+    //true:成功,false:失败
+    private boolean status=false;
+    //业务单号
+    private String businessNo=" ";
+    //业务单据数据
+    private T data;
+}

+ 231 - 28
src/main/java/com/sckw/freight/service/JobService.java

@@ -2,21 +2,33 @@ package com.sckw.freight.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.sckw.freight.entity.freight.KwpSettlementLogistics;
+import com.sckw.freight.entity.payment.PayMemberWalletAp;
+import com.sckw.freight.entity.payment.PayOrder;
+import com.sckw.freight.entity.payment.PayOrderSub;
+import com.sckw.freight.entity.payment.PayWalletWithdrawOrder;
 import com.sckw.freight.mapper.freight.KwpLedgerLogisticsMapper;
 import com.sckw.freight.mapper.freight.KwpSettlementLogisticsMapper;
+import com.sckw.freight.mapper.payment.PayMemberWalletApMapper;
+import com.sckw.freight.mapper.payment.PayOrderMapper;
+import com.sckw.freight.mapper.payment.PayOrderSubMapper;
+import com.sckw.freight.mapper.payment.PayWalletWithdrawOrderMapper;
+import com.sckw.freight.model.dto.BusinessNo;
+import com.sckw.freight.model.dto.Order;
 import com.sckw.freight.model.dto.PatchPay;
-import com.sckw.freight.model.dto.PayOrderDetail;
 import com.sckw.freight.model.enums.ChannelEnum;
 import com.sckw.freight.model.enums.KwpSettlementLogisticsStatusEnum;
+import com.sckw.freight.model.po.CheckResult;
 import com.sckw.freight.model.po.LedgerLogisticsAndBuySellInfo;
 import com.sckw.freight.service.freight.IKwpLedgerLogisticsService;
 import com.sckw.freight.service.freight.IKwpSettlementLogisticsService;
 import com.sckw.freight.util.MoneyChange;
 import com.sckw.freight.util.R;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -41,6 +53,14 @@ public class JobService {
     KwpLedgerLogisticsMapper kwpLedgerLogisticsMapper;
     @Autowired
     KwpSettlementLogisticsMapper kwpSettlementLogisticsMapper;
+    @Autowired
+    PayOrderMapper payOrderMapper;
+    @Autowired
+    PayOrderSubMapper payOrderSubMapper;
+    @Autowired
+    PayWalletWithdrawOrderMapper payWalletWithdrawOrderMapper;
+    @Autowired
+    PayMemberWalletApMapper payMemberWalletApMapper;
 
     /**
      * 【轮循程序】
@@ -72,46 +92,71 @@ public class JobService {
                     LambdaQueryWrapper<KwpSettlementLogistics> settlementLogisticsLambdaQueryWrapper = new LambdaQueryWrapper<>();
                     settlementLogisticsLambdaQueryWrapper.eq(KwpSettlementLogistics::getLLedgerId, logisticsAndBuySellInfo.getId());
                     settlementLogisticsLambdaQueryWrapper.eq(KwpSettlementLogistics::getStatus, KwpSettlementLogisticsStatusEnum.Nopaid.getCode());
-                    settlementLogisticsLambdaQueryWrapper.select(KwpSettlementLogistics::getSlOrderNo);
+                    settlementLogisticsLambdaQueryWrapper.select(KwpSettlementLogistics::getSlOrderNo, KwpSettlementLogistics::getId,
+                            KwpSettlementLogistics::getRemark);
                     List<KwpSettlementLogistics> settlementLogistics = kwpSettlementLogisticsMapper.selectList(settlementLogisticsLambdaQueryWrapper);
                     if (settlementLogistics == null || settlementLogistics.isEmpty()) {
                         //没有未支付的结算信息 直接下一条
                         continue;
                     }
                     for (KwpSettlementLogistics settlementLogisticsInfo : settlementLogistics) {
+                        String _cz = " ", _yp = " ", _qf = " ", _tx = " ";
                         try {
 
-                            R<PayOrderDetail> details = payCenterService.getPayDetailByOrderNo(settlementLogisticsInfo.getSlOrderNo());
-                            if (details == null || details.getCode() != 200 || details.getData() == null || !details.getStatus()) {
+                            //记录关联单号,防止重复调用 (有值-表示已生成对应单据,无值一表示没有业务单据) remark=已支付的充值单号|预付单号|清分单号|提现单号
+                            String remark = settlementLogisticsInfo.getRemark();
+                            if (!StringUtils.isBlank(remark)) {
+                                String[] split = remark.split("\\|");
+                                if (split.length == 4) {
+                                    _cz = split[0];
+                                    _yp = split[1];
+                                    _qf = split[2];
+                                    _tx = split[3];
+                                }
+                            }
+                            //检查充值
+                            CheckResult<PayOrder> checkResultPayOrder = checkPayOrder(_cz, settlementLogisticsInfo);
+                            if (!checkResultPayOrder.isStatus()) continue;
+                            //已经充值成功
+                            _cz = checkResultPayOrder.getData().getOrderNo();
+
+                            //支付金额
+                            BigDecimal money = MoneyChange.smallMoney(new BigDecimal(checkResultPayOrder.getData().getMoney()));
+
+                            // 检查预付
+                            CheckResult checkAdvancePay = checkAdvancePay(_yp, logisticsAndBuySellInfo, money);
+                            if (!checkAdvancePay.isStatus()) {
+                                _yp = checkAdvancePay.getBusinessNo();
                                 continue;
                             }
-                            //根据充值订单状态 处理结算状态
-                            if (details.getData().getStatus() == 1) {//已支付
-                                //发起预付
-                                payCenterService.advancePayApply(logisticsAndBuySellInfo.getBuyUid() , ChannelEnum.XW,
-                                        logisticsAndBuySellInfo.getSellUid() , MoneyChange.bigMoney(details.getData().getMoney()));
-
-
-                                // 1.记账
-                                List<PatchPay> list = new ArrayList<>();
-                                PatchPay patchPay = new PatchPay();
-                                patchPay.setUid(logisticsAndBuySellInfo.getSellUid() );
-                                patchPay.setMoney(MoneyChange.bigMoney(details.getData().getMoney()));
-                                list.add(patchPay);
-                                //清分
-                                payCenterService.payAgentPayV2(logisticsAndBuySellInfo.getBuyUid() , logisticsAndBuySellInfo.getSellUid() , ChannelEnum.XW,
-                                        MoneyChange.bigMoney(details.getData().getMoney()), list, settlementLogisticsInfo.getSlOrderNo(), "1");
-
-                                //提现
-                                payCenterService.withdrawTake(logisticsAndBuySellInfo.getSellUid() , ChannelEnum.XW,
-                                        MoneyChange.bigMoney(details.getData().getMoney()),
-                                        "");
-
-                                //修改结算单状态
-                                iKwpSettlementLogisticsService.updateSettlementLogisticsStatusPaid(settlementLogisticsInfo, details.getData());
+
+                            //检查清分
+                            CheckResult checkAgentPay = checkAgentPay(_qf, settlementLogisticsInfo, logisticsAndBuySellInfo, money);
+                            if (!checkAgentPay.isStatus()) {
+                                _qf = checkAgentPay.getBusinessNo();
+                                continue;
+                            }
+                            //检查提现
+                            CheckResult checkWithdrawTake = checkWithdrawTake(_tx, logisticsAndBuySellInfo, money);
+                            if (!checkWithdrawTake.isStatus()) {
+                                _tx = checkWithdrawTake.getBusinessNo();
+                                continue;
                             }
+                            //修改结算单状态
+                            iKwpSettlementLogisticsService.updateSettlementLogisticsStatusPaid(settlementLogisticsInfo, checkResultPayOrder.getData());
+
                         } catch (Exception e) {
                             log.error("获取/处理 充值详情异常", e);
+                        } finally {
+                            try {
+                                KwpSettlementLogistics newSetlementLogistics = new KwpSettlementLogistics();
+                                newSetlementLogistics.setId(settlementLogisticsInfo.getId());
+                                String remark = (_cz) + "|" + (_yp) + "|" + (_qf) + "|" + (_tx);
+                                newSetlementLogistics.setRemark(remark);
+                                kwpSettlementLogisticsMapper.updateById(newSetlementLogistics);
+                            } catch (Exception e) {
+                                log.error("修改结算单状态异常", e);
+                            }
                         }
                     }
                 } catch (Exception e) {
@@ -131,4 +176,162 @@ public class JobService {
         }
     }
 
+    /**
+     * @description:检查充值订单
+     * @author: xj
+     * @date: 2025/2/10 星期一 14:17
+     * @param:
+     * @return:
+     **/
+    private CheckResult<PayOrder> checkPayOrder(String _cz, KwpSettlementLogistics settlementLogisticsInfo) {
+        CheckResult<PayOrder> checkResult = new CheckResult<PayOrder>();
+        //直接查充值订单
+        LambdaQueryWrapper<PayOrder> payOrderLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        payOrderLambdaQueryWrapper.eq(PayOrder::getOrderNo, settlementLogisticsInfo.getSlOrderNo());
+        payOrderLambdaQueryWrapper.eq(PayOrder::getStatus, 1);//已支付
+        List<PayOrder> payOrders = payOrderMapper.selectList(payOrderLambdaQueryWrapper);
+        if (payOrders == null || payOrders.isEmpty()) {
+            //没有已支付的充值订单信息,不做处理
+            checkResult.setStatus(false);
+        } else {
+            PayOrder details = payOrders.get(0);
+            checkResult.setStatus(true);
+            checkResult.setBusinessNo(details.getOrderNo());
+            checkResult.setData(details);
+        }
+        return checkResult;
+    }
+
+    /**
+     * @description:检查预付单状态
+     * @author: xj
+     * @date: 2025/2/10 星期一 14:24
+     * @param:
+     * @return: null
+     **/
+    private CheckResult checkAdvancePay(String _yp, LedgerLogisticsAndBuySellInfo logisticsAndBuySellInfo, BigDecimal money) {
+        CheckResult checkResult = new CheckResult();
+        // 检查预付
+        if (StringUtils.isBlank(_yp)) {
+
+            try {
+                //发起预付
+                R<Order> orderR = payCenterService.advancePayApply(logisticsAndBuySellInfo.getBuyUid(), ChannelEnum.XW,
+                        logisticsAndBuySellInfo.getSellUid(), MoneyChange.bigMoney(money));
+                if (orderR == null || !orderR.getStatus() || orderR.getData() == null) {
+                    checkResult.setStatus(false);
+                    return checkResult;
+                } else {
+                    _yp = orderR.getData().getOrderNo();
+                }
+            } catch (Exception e) {
+                log.error("检查预付异常", e);
+                checkResult.setStatus(false);
+                return checkResult;
+            }
+        }
+        LambdaQueryWrapper<PayMemberWalletAp> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(PayMemberWalletAp::getApNo, _yp);
+        PayMemberWalletAp walletAp = payMemberWalletApMapper.selectOne(wrapper);
+        checkResult.setBusinessNo(_yp);
+        if (walletAp.getStatus().equals(2)) {
+            checkResult.setStatus(true);
+        } else {
+            checkResult.setStatus(false);
+        }
+        return checkResult;
+    }
+
+    /**
+     * @description:检查清分
+     * @author: xj
+     * @date: 2025/2/10 星期一 14:28
+     * @param:
+     * @return: null
+     **/
+    private CheckResult checkAgentPay(String _qf, KwpSettlementLogistics settlementLogisticsInfo, LedgerLogisticsAndBuySellInfo logisticsAndBuySellInfo, BigDecimal money) {
+        CheckResult<PayOrderSub> checkResult = new CheckResult<>();
+
+        if (StringUtils.isBlank(_qf)) {
+            // 1.记账
+            List<PatchPay> list = new ArrayList<>();
+            PatchPay patchPay = new PatchPay();
+            patchPay.setUid(logisticsAndBuySellInfo.getSellUid());
+            patchPay.setMoney(MoneyChange.bigMoney(money));
+            patchPay.setRemark("对账单结算");
+            list.add(patchPay);
+            try {
+                //清分
+                R<BusinessNo> businessNoR = payCenterService.payAgentPayV2(logisticsAndBuySellInfo.getBuyUid(), logisticsAndBuySellInfo.getSellUid(), ChannelEnum.XW,
+                        MoneyChange.bigMoney(money), list, settlementLogisticsInfo.getSlOrderNo(), "1");
+                log.info("发起清分结果->{}", businessNoR);
+                if (businessNoR == null || !businessNoR.getStatus() || businessNoR.getData() == null) {
+                    checkResult.setStatus(false);
+                    return checkResult;
+                }
+                _qf = businessNoR.getData().getBusinessNo();
+            } catch (Exception e) {
+                log.error("发起清分异常", e);
+                checkResult.setStatus(false);
+                return checkResult;
+            }
+        }
+        LambdaQueryWrapper<PayOrderSub> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(PayOrderSub::getSubNo, _qf);
+
+        List<PayOrderSub> orderSubs = payOrderSubMapper.selectList(wrapper);
+        if (orderSubs == null || orderSubs.isEmpty()) {
+            checkResult.setStatus(false);
+            return checkResult;
+        } else {
+            PayOrderSub orderSub = orderSubs.get(0);
+            if (orderSub.getStatus().equals(1)) {
+                checkResult.setStatus(true);
+            } else {
+                checkResult.setStatus(false);
+            }
+            checkResult.setBusinessNo(_qf);
+            checkResult.setData(orderSubs.get(0));
+        }
+        return checkResult;
+    }
+
+    /**
+     * @description: 检查提现
+     * @author: xj
+     * @date: 2025/2/10 星期一 14:56
+     * @param:
+     * @return: null
+     **/
+    private CheckResult checkWithdrawTake(String _tx, LedgerLogisticsAndBuySellInfo logisticsAndBuySellInfo, BigDecimal money) {
+        CheckResult checkResult = new CheckResult();
+
+        if (StringUtils.isBlank(_tx)) {
+            try {
+                //提现
+                R<Order> withdrawTake = payCenterService.withdrawTake(logisticsAndBuySellInfo.getSellUid(), ChannelEnum.XW,
+                        MoneyChange.bigMoney(money), "提现");
+                if (withdrawTake == null || !withdrawTake.getStatus() || withdrawTake.getData() == null) {
+                    checkResult.setStatus(false);
+                    return checkResult;
+                }
+                _tx = withdrawTake.getData().getOrderNo();
+
+            } catch (Exception e) {
+                checkResult.setStatus(false);
+                return checkResult;
+            }
+        }
+        checkResult.setBusinessNo(_tx);
+        LambdaQueryWrapper<PayWalletWithdrawOrder> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(PayWalletWithdrawOrder::getOrderNo, _tx);
+        PayWalletWithdrawOrder payWalletWithdrawOrder = payWalletWithdrawOrderMapper.selectOne(wrapper);
+        checkResult.setData(payWalletWithdrawOrder);
+        if (payWalletWithdrawOrder.getStatus().equals(1)) {
+            checkResult.setStatus(true);
+        } else {
+            checkResult.setStatus(false);
+        }
+        return checkResult;
+    }
 }

+ 1 - 1
src/main/java/com/sckw/freight/service/PayCenterService.java

@@ -142,7 +142,7 @@ public class PayCenterService {
     }
 
     private String changeRes(String sync) {
-        if (StringUtils.isEmpty(sync)) {
+        if (StringUtils.isBlank(sync)) {
             return sync;
         }
         JSONObject jsonObject = JSONObject.parseObject(sync);

+ 2 - 2
src/main/java/com/sckw/freight/service/freight/IKwpSettlementLogisticsService.java

@@ -3,7 +3,7 @@ package com.sckw.freight.service.freight;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.sckw.freight.entity.freight.KwpLedgerLogistics;
 import com.sckw.freight.entity.freight.KwpSettlementLogistics;
-import com.sckw.freight.model.dto.PayOrderDetail;
+import com.sckw.freight.entity.payment.PayOrder;
 import com.sckw.freight.model.enums.KwpSettlementLogisticsStatusEnum;
 import com.sckw.freight.model.vo.request.RequestSettlementLogisticsPageInfo;
 import com.sckw.freight.model.vo.response.ResponsePageData;
@@ -28,5 +28,5 @@ public interface IKwpSettlementLogisticsService extends IService<KwpSettlementLo
 
     void saveSettlementLogistics(KwpLedgerLogistics logistics, BigDecimal price, String slOrderNo, KwpSettlementLogisticsStatusEnum status, LocalDateTime payTime, Long userid);
 
-    void updateSettlementLogisticsStatusPaid(KwpSettlementLogistics kwpSettlementLogistics, PayOrderDetail payOrderDetail);
+    void updateSettlementLogisticsStatusPaid(KwpSettlementLogistics kwpSettlementLogistics, PayOrder payOrderDetail);
 }

+ 7 - 7
src/main/java/com/sckw/freight/service/freight/impl/KwpLedgerLogisticsServiceImpl.java

@@ -233,10 +233,10 @@ public class KwpLedgerLogisticsServiceImpl extends ServiceImpl<KwpLedgerLogistic
          * 3:组装数据
          */
         LambdaQueryWrapper<KwpLedgerLogistics> wrapper = new LambdaQueryWrapper<>();
-        if (!StringUtils.isEmpty(requestPageInfo.getName())) {
+        if (!StringUtils.isBlank(requestPageInfo.getName())) {
             wrapper.like(KwpLedgerLogistics::getName, requestPageInfo.getName());
         }
-        if (!StringUtils.isEmpty(requestPageInfo.getLLedgerNo())) {
+        if (!StringUtils.isBlank(requestPageInfo.getLLedgerNo())) {
             wrapper.eq(KwpLedgerLogistics::getLLedgerNo, requestPageInfo.getLLedgerNo());
         }
         if (requestPageInfo.getStatus() != null) {
@@ -349,9 +349,9 @@ public class KwpLedgerLogisticsServiceImpl extends ServiceImpl<KwpLedgerLogistic
             requestSaveLedgerSettlementInfo.setDeductPrice(BigDecimal.ZERO);
         }
         //不能小于0
-        if (requestSaveLedgerSettlementInfo.getDeductPrice().compareTo(BigDecimal.ZERO) < 0) {
-            throw new RuntimeException("对账单的扣减金额不能小于0");
-        }
+//        if (requestSaveLedgerSettlementInfo.getDeductPrice().compareTo(BigDecimal.ZERO) < 0) {
+//            throw new RuntimeException("对账单的扣减金额不能小于0");
+//        }
         //验证对应的订单是否在该企业下 ,且状态是完结
         LambdaQueryWrapper<KllOrder> wrapper = new LambdaQueryWrapper<>();
         wrapper.in(KllOrder::getId, requestSaveLedgerSettlementInfo.getOrderIds());
@@ -547,7 +547,7 @@ public class KwpLedgerLogisticsServiceImpl extends ServiceImpl<KwpLedgerLogistic
         if (saasCompanyS == null) {
             return R.failed("收款方【" + entId + "】账户不存在");
         }
-        if (StringUtils.isEmpty(saasCompanyS.getPayPlatformUid())) {
+        if (StringUtils.isBlank(saasCompanyS.getPayPlatformUid())) {
             return R.failed("收款方【" + entId + "】钱包账户不存在");
         }
         //查询付款方(买方-付款方)  账户信息
@@ -561,7 +561,7 @@ public class KwpLedgerLogisticsServiceImpl extends ServiceImpl<KwpLedgerLogistic
         if (saasCompanyP == null) {
             return R.failed("付款方【" + ledgerLogistics.getCompanyId() + "】账户不存在");
         }
-        if (StringUtils.isEmpty(saasCompanyP.getPayPlatformUid())) {
+        if (StringUtils.isBlank(saasCompanyP.getPayPlatformUid())) {
             return R.failed("付款方【" + ledgerLogistics.getCompanyId() + "】钱包账户不存在");
         }
         //调用支付中台的【在线充值】接口

+ 5 - 4
src/main/java/com/sckw/freight/service/freight/impl/KwpSettlementLogisticsServiceImpl.java

@@ -5,8 +5,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.sckw.freight.entity.freight.KwpLedgerLogistics;
 import com.sckw.freight.entity.freight.KwpSettlementLogistics;
+import com.sckw.freight.entity.payment.PayOrder;
 import com.sckw.freight.mapper.freight.KwpSettlementLogisticsMapper;
-import com.sckw.freight.model.dto.PayOrderDetail;
 import com.sckw.freight.model.enums.DelFlagEnum;
 import com.sckw.freight.model.enums.KwpSettlementLogisticsStatusEnum;
 import com.sckw.freight.model.vo.request.RequestSettlementLogisticsPageInfo;
@@ -15,6 +15,7 @@ import com.sckw.freight.model.vo.response.ResponseSettlementLogistics;
 import com.sckw.freight.service.freight.IKwpLedgerLogisticsService;
 import com.sckw.freight.service.freight.IKwpSettlementLogisticsService;
 import com.sckw.freight.util.DateTimeUtil;
+import com.sckw.freight.util.MoneyChange;
 import com.sckw.freight.util.R;
 import com.sckw.freight.util.SnowflakeIdUtil;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -178,13 +179,13 @@ public class KwpSettlementLogisticsServiceImpl extends ServiceImpl<KwpSettlement
      * @return: null
      **/
     @Override
-    public void updateSettlementLogisticsStatusPaid(KwpSettlementLogistics kwpSettlementLogistics, PayOrderDetail payOrderDetail) {
+    public void updateSettlementLogisticsStatusPaid(KwpSettlementLogistics kwpSettlementLogistics, PayOrder payOrderDetail) {
         KwpSettlementLogistics newSettlementLogistics = new KwpSettlementLogistics();
         newSettlementLogistics.setId(kwpSettlementLogistics.getId());
         newSettlementLogistics.setStatus(KwpSettlementLogisticsStatusEnum.Paid.getCode());
         newSettlementLogistics.setUpdateTime(payOrderDetail.getPayTime());
-        newSettlementLogistics.setActualPrice(payOrderDetail.getMoney());
-        newSettlementLogistics.setTotalPrice(payOrderDetail.getMoney());
+        newSettlementLogistics.setActualPrice(MoneyChange.smallMoney(new BigDecimal(payOrderDetail.getMoney())) );
+        newSettlementLogistics.setTotalPrice(MoneyChange.smallMoney(new BigDecimal(payOrderDetail.getMoney())) );
         boolean update = updateById(newSettlementLogistics);
         if (!update) throw new RuntimeException("更新结算单状态为已支付失败");
     }

+ 16 - 0
src/main/java/com/sckw/freight/service/payment/IPayMemberWalletApService.java

@@ -0,0 +1,16 @@
+package com.sckw.freight.service.payment;
+
+import com.sckw.freight.entity.payment.PayMemberWalletAp;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * AdvancePayment 钱包预付 服务类
+ * </p>
+ *
+ * @author xj
+ * @since 2025-02-10
+ */
+public interface IPayMemberWalletApService extends IService<PayMemberWalletAp> {
+
+}

+ 16 - 0
src/main/java/com/sckw/freight/service/payment/IPayOrderService.java

@@ -0,0 +1,16 @@
+package com.sckw.freight.service.payment;
+
+import com.sckw.freight.entity.payment.PayOrder;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 支付订单 服务类
+ * </p>
+ *
+ * @author xj
+ * @since 2025-01-23
+ */
+public interface IPayOrderService extends IService<PayOrder> {
+
+}

+ 16 - 0
src/main/java/com/sckw/freight/service/payment/IPayOrderSubService.java

@@ -0,0 +1,16 @@
+package com.sckw.freight.service.payment;
+
+import com.sckw.freight.entity.payment.PayOrderSub;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 分账信息 服务类
+ * </p>
+ *
+ * @author xj
+ * @since 2025-02-10
+ */
+public interface IPayOrderSubService extends IService<PayOrderSub> {
+
+}

+ 16 - 0
src/main/java/com/sckw/freight/service/payment/IPayWalletWithdrawOrderService.java

@@ -0,0 +1,16 @@
+package com.sckw.freight.service.payment;
+
+import com.sckw.freight.entity.payment.PayWalletWithdrawOrder;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 提现订单 服务类
+ * </p>
+ *
+ * @author xj
+ * @since 2025-02-10
+ */
+public interface IPayWalletWithdrawOrderService extends IService<PayWalletWithdrawOrder> {
+
+}

+ 20 - 0
src/main/java/com/sckw/freight/service/payment/impl/PayMemberWalletApServiceImpl.java

@@ -0,0 +1,20 @@
+package com.sckw.freight.service.payment.impl;
+
+import com.sckw.freight.entity.payment.PayMemberWalletAp;
+import com.sckw.freight.mapper.payment.PayMemberWalletApMapper;
+import com.sckw.freight.service.payment.IPayMemberWalletApService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * AdvancePayment 钱包预付 服务实现类
+ * </p>
+ *
+ * @author xj
+ * @since 2025-02-10
+ */
+@Service
+public class PayMemberWalletApServiceImpl extends ServiceImpl<PayMemberWalletApMapper, PayMemberWalletAp> implements IPayMemberWalletApService {
+
+}

+ 20 - 0
src/main/java/com/sckw/freight/service/payment/impl/PayOrderServiceImpl.java

@@ -0,0 +1,20 @@
+package com.sckw.freight.service.payment.impl;
+
+import com.sckw.freight.entity.payment.PayOrder;
+import com.sckw.freight.mapper.payment.PayOrderMapper;
+import com.sckw.freight.service.payment.IPayOrderService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 支付订单 服务实现类
+ * </p>
+ *
+ * @author xj
+ * @since 2025-01-23
+ */
+@Service
+public class PayOrderServiceImpl extends ServiceImpl<PayOrderMapper, PayOrder> implements IPayOrderService {
+
+}

+ 20 - 0
src/main/java/com/sckw/freight/service/payment/impl/PayOrderSubServiceImpl.java

@@ -0,0 +1,20 @@
+package com.sckw.freight.service.payment.impl;
+
+import com.sckw.freight.entity.payment.PayOrderSub;
+import com.sckw.freight.mapper.payment.PayOrderSubMapper;
+import com.sckw.freight.service.payment.IPayOrderSubService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 分账信息 服务实现类
+ * </p>
+ *
+ * @author xj
+ * @since 2025-02-10
+ */
+@Service
+public class PayOrderSubServiceImpl extends ServiceImpl<PayOrderSubMapper, PayOrderSub> implements IPayOrderSubService {
+
+}

+ 20 - 0
src/main/java/com/sckw/freight/service/payment/impl/PayWalletWithdrawOrderServiceImpl.java

@@ -0,0 +1,20 @@
+package com.sckw.freight.service.payment.impl;
+
+import com.sckw.freight.entity.payment.PayWalletWithdrawOrder;
+import com.sckw.freight.mapper.payment.PayWalletWithdrawOrderMapper;
+import com.sckw.freight.service.payment.IPayWalletWithdrawOrderService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 提现订单 服务实现类
+ * </p>
+ *
+ * @author xj
+ * @since 2025-02-10
+ */
+@Service
+public class PayWalletWithdrawOrderServiceImpl extends ServiceImpl<PayWalletWithdrawOrderMapper, PayWalletWithdrawOrder> implements IPayWalletWithdrawOrderService {
+
+}

+ 5 - 0
src/main/resources/application-dev.yml

@@ -24,6 +24,11 @@ spring:
           url: jdbc:mysql://10.10.10.230:3306/saas?useUnicode=true&characterEncoding=utf8&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull
           username: saas
           password: saas
+        payment:
+          driver-class-name: com.mysql.cj.jdbc.Driver
+          url: jdbc:mysql://10.10.10.230:3306/payment?useUnicode=true&characterEncoding=utf8&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull
+          username: payment
+          password: payment
 
 #  data:
 #    redis:

+ 7 - 1
src/main/resources/application-pro.yml

@@ -25,6 +25,12 @@ spring:
           url: jdbc:mysql://rm-2vcw922e20158115lvo.mysql.cn-chengdu.rds.aliyuncs.com:3306/shyj_saas?useUnicode=true&characterEncoding=utf8&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull
           username: shyj_saas
           password: yTkjJ#1DmqQkfx2@hv1N3o0
+        payment:
+          driver-class-name: com.mysql.cj.jdbc.Driver
+          url: jdbc:mysql://rm-2vcw922e20158115lvo.mysql.cn-chengdu.rds.aliyuncs.com:3306/shyj_pay_platform?useUnicode=true&characterEncoding=utf8&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull
+          username: shyj_pay_platform
+          password: shyj_payment@2025KwfeZbLH
+
 #  data:
 #    redis:
 #      host: 10.10.10.221
@@ -55,4 +61,4 @@ payCenter:
 #轮循任务 间隔时长(秒)
 job:
   sleep: 5
-  enable: false
+  enable: true

+ 5 - 0
src/main/resources/application-test.yml

@@ -25,6 +25,11 @@ spring:
           url: jdbc:mysql://10.10.10.221:3306/saas?useUnicode=true&characterEncoding=utf8&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull
           username: saas
           password: saas
+        payment:
+          driver-class-name: com.mysql.cj.jdbc.Driver
+          url: jdbc:mysql://10.10.10.221:3306/payment?useUnicode=true&characterEncoding=utf8&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull
+          username: payment
+          password: payment
 #  data:
 #    redis:
 #      host: 10.10.10.221

+ 1 - 1
src/main/resources/com/sckw/freight/mapper/freight/KwpLedgerLogisticsMapper.xml

@@ -15,7 +15,7 @@
             resultType="com.sckw.freight.model.po.LedgerLogisticsAndBuySellInfo">
         SELECT
             t.*,
-            rs.uid by_uid,
+            rs.uid buy_uid,
             rp.uid sell_uid
         FROM
             kwp_ledger_logistics t

+ 5 - 0
src/main/resources/com/sckw/freight/mapper/payment/PayMemberWalletApMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sckw.freight.mapper.payment.PayMemberWalletApMapper">
+
+</mapper>

+ 5 - 0
src/main/resources/com/sckw/freight/mapper/payment/PayOrderMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sckw.freight.mapper.payment.PayOrderMapper">
+
+</mapper>

+ 5 - 0
src/main/resources/com/sckw/freight/mapper/payment/PayOrderSubMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sckw.freight.mapper.payment.PayOrderSubMapper">
+
+</mapper>

+ 5 - 0
src/main/resources/com/sckw/freight/mapper/payment/PayWalletWithdrawOrderMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sckw.freight.mapper.payment.PayWalletWithdrawOrderMapper">
+
+</mapper>