2 Angajamente 1ee704be7c ... c6a28ef5ba

Autor SHA1 Permisiunea de a trimite mesaje. Dacă este dezactivată, utilizatorul nu va putea trimite nici un fel de mesaj Data
  18782137998 c6a28ef5ba 整改队长代码逻辑 11 luni în urmă
  18782137998 d3d1c5673c 流程完成 11 luni în urmă
31 a modificat fișierele cu 937 adăugiri și 44 ștergeri
  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>