Procházet zdrojové kódy

fix 贸易订单,自动派车中派车方式问题

xucaiqin před 2 týdny
rodič
revize
ebdbc9b20e

+ 8 - 1
sckw-modules-api/sckw-payment-api/src/main/java/com/sckw/payment/api/dubbo/PaymentDubboService.java

@@ -1,6 +1,8 @@
 package com.sckw.payment.api.dubbo;
 package com.sckw.payment.api.dubbo;
 
 
+import com.sckw.core.web.response.BaseResult;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.core.web.response.HttpResult;
+import com.sckw.payment.api.model.WalletFreeze;
 import com.sckw.payment.api.model.constant.ChannelEnum;
 import com.sckw.payment.api.model.constant.ChannelEnum;
 import com.sckw.payment.api.model.constant.OrderEnum;
 import com.sckw.payment.api.model.constant.OrderEnum;
 import com.sckw.payment.api.model.dto.LedgerCount;
 import com.sckw.payment.api.model.dto.LedgerCount;
@@ -49,7 +51,7 @@ public interface PaymentDubboService {
      * @param entId 集团id
      * @param entId 集团id
      * @return
      * @return
      */
      */
-    LedgerCount countLedger(Long entId,List<Long> enterpriseIds);
+    LedgerCount countLedger(Long entId, List<Long> enterpriseIds);
 
 
     //工作台金额统计数据四个接口
     //工作台金额统计数据四个接口
 
 
@@ -85,4 +87,9 @@ public interface PaymentDubboService {
      */
      */
     SettlementMoney countShipper(Long entId, Integer countType);
     SettlementMoney countShipper(Long entId, Integer countType);
 
 
+    BaseResult<Boolean> freezeMoney(WalletFreeze walletFreeze);
+
+    BaseResult<Boolean> unfreezeMoney(WalletFreeze walletFreeze);
+
+    BaseResult<Boolean> dealMoney(WalletFreeze walletFreeze);
 }
 }

+ 0 - 28
sckw-modules-api/sckw-payment-api/src/main/java/com/sckw/payment/api/feign/WalletApi.java

@@ -1,28 +0,0 @@
-package com.sckw.payment.api.feign;
-
-import com.sckw.core.web.response.BaseResult;
-import com.sckw.payment.api.model.WalletFreeze;
-import jakarta.validation.Valid;
-import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-
-@FeignClient(name = "sckw-ng-payment", path = "/biz/wallet")
-public interface WalletApi {
-    /**
-     * 下单时冻结金额
-     *
-     */
-    @PostMapping("/freezeMoney")
-    BaseResult<Boolean> freezeMoney(@RequestBody @Valid WalletFreeze walletFreeze);
-    @PostMapping("/unfreezeMoney")
-    BaseResult<Boolean> unfreezeMoney(@RequestBody @Valid WalletFreeze walletFreeze);
-
-    /**
-     * 结算
-     *
-     */
-    @PostMapping("/dealMoney")
-    BaseResult<Boolean> dealMoney(@RequestBody @Valid WalletFreeze walletFreeze);
-
-}

+ 1 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/TradeOrderParam.java

@@ -37,6 +37,7 @@ public class TradeOrderParam {
     @NotBlank(message = "贸易合同名称不能为空")
     @NotBlank(message = "贸易合同名称不能为空")
     @Schema(description = "贸易合同名称")
     @Schema(description = "贸易合同名称")
     private String tradeContractName;
     private String tradeContractName;
+    private String tradeContractNo;
     /**
     /**
      * 订单总量
      * 订单总量
      */
      */

+ 6 - 7
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

@@ -54,7 +54,6 @@ import com.sckw.order.model.vo.res.OrderDetailRes;
 import com.sckw.order.model.vo.res.UnitInfoDetailRes;
 import com.sckw.order.model.vo.res.UnitInfoDetailRes;
 import com.sckw.payment.api.dubbo.PayCenterDubboService;
 import com.sckw.payment.api.dubbo.PayCenterDubboService;
 import com.sckw.payment.api.dubbo.PaymentDubboService;
 import com.sckw.payment.api.dubbo.PaymentDubboService;
-import com.sckw.payment.api.feign.WalletApi;
 import com.sckw.payment.api.model.WalletFreeze;
 import com.sckw.payment.api.model.WalletFreeze;
 import com.sckw.payment.api.model.constant.ChannelEnum;
 import com.sckw.payment.api.model.constant.ChannelEnum;
 import com.sckw.payment.api.model.dto.WalletDto;
 import com.sckw.payment.api.model.dto.WalletDto;
@@ -142,7 +141,6 @@ public class KwoTradeOrderService {
     private final KwoTradeOrderGoodsUnitService kwoTradeOrderGoodsUnitService;
     private final KwoTradeOrderGoodsUnitService kwoTradeOrderGoodsUnitService;
     private final KwoTradeOrderAmountService tradeOrderAmountService;
     private final KwoTradeOrderAmountService tradeOrderAmountService;
     private final KwoTradeOrderTransportService kwoTradeOrderTransportService;
     private final KwoTradeOrderTransportService kwoTradeOrderTransportService;
-    private final WalletApi walletApi;
     @Value("${url.order.list.valet.pc}")
     @Value("${url.order.list.valet.pc}")
     private String pcValetListUrl;
     private String pcValetListUrl;
 
 
@@ -2004,7 +2002,7 @@ public class KwoTradeOrderService {
 
 
         KwoTradeOrderContract kwoTradeOrderContract = new KwoTradeOrderContract();
         KwoTradeOrderContract kwoTradeOrderContract = new KwoTradeOrderContract();
         kwoTradeOrderContract.setContractId(tradeOrderParam.getTradeContractId());
         kwoTradeOrderContract.setContractId(tradeOrderParam.getTradeContractId());
-        kwoTradeOrderContract.setContractNo(tradeOrderParam.getTradeContractName());
+        kwoTradeOrderContract.setContractNo(tradeOrderParam.getTradeContractNo());
         kwoTradeOrderContract.setTOrderId(order.getId());
         kwoTradeOrderContract.setTOrderId(order.getId());
         kwoTradeOrderContract.setTOrderNo(order.getTOrderNo());
         kwoTradeOrderContract.setTOrderNo(order.getTOrderNo());
         kwoTradeOrderContract.setId(new IdWorker(1).nextId());
         kwoTradeOrderContract.setId(new IdWorker(1).nextId());
@@ -2055,7 +2053,7 @@ public class KwoTradeOrderService {
         });
         });
         kwoTradeOrderUnitService.insertBatch(list);
         kwoTradeOrderUnitService.insertBatch(list);
         //钱包
         //钱包
-        BaseResult<Boolean> booleanBaseResult = walletApi.freezeMoney(walletFreeze);
+        BaseResult<Boolean> booleanBaseResult = paymentDubboService.freezeMoney(walletFreeze);
         if (booleanBaseResult.getCode() != 60200) {
         if (booleanBaseResult.getCode() != 60200) {
             throw new BusinessException(booleanBaseResult.getMessage());
             throw new BusinessException(booleanBaseResult.getMessage());
         }
         }
@@ -2081,6 +2079,7 @@ public class KwoTradeOrderService {
         if (Objects.isNull(goodsInfoDto)) {
         if (Objects.isNull(goodsInfoDto)) {
             throw new BusinessException("当前贸易订单不存在交易商品");
             throw new BusinessException("当前贸易订单不存在交易商品");
         }
         }
+        tradeOrderParam.setTradeContractNo(tradeContractResDto.getContractNo());
         order.setUnit(goodsById.getUnit());
         order.setUnit(goodsById.getUnit());
         order.setPickupType(String.valueOf(tradeContractResDto.getConsignment()));//来源于合同约束的托运方式
         order.setPickupType(String.valueOf(tradeContractResDto.getConsignment()));//来源于合同约束的托运方式
         order.setDeliveryType("");
         order.setDeliveryType("");
@@ -2091,6 +2090,7 @@ public class KwoTradeOrderService {
         order.setLoadAmount(new BigDecimal("0"));
         order.setLoadAmount(new BigDecimal("0"));
         order.setUnloadAmount(new BigDecimal("0"));
         order.setUnloadAmount(new BigDecimal("0"));
         order.setChargeType(tradeContractResDto.getUnloadWay());
         order.setChargeType(tradeContractResDto.getUnloadWay());
+        order.setDispatchWay(tradeContractResDto.getDispatchWay());
         order.setConsignmentWay(tradeContractResDto.getConsignment());
         order.setConsignmentWay(tradeContractResDto.getConsignment());
         order.setEntId(LoginUserHolder.getEntId()).setTOrderNo(getOrderNo()).setAmount(tradeOrderParam.getAmount()).setStartTime(DateUtils.localDateToDateStart(tradeOrderParam.getStartTime())).setEndTime(DateUtils.localDateToDateEnd(tradeOrderParam.getEndTime())).setSource(OrderSourceEnum.PURCHASE.getType()).setStatus(TradeOrderStatusEnum.AUDIT.getCode()).setRemark(tradeOrderParam.getRemark());
         order.setEntId(LoginUserHolder.getEntId()).setTOrderNo(getOrderNo()).setAmount(tradeOrderParam.getAmount()).setStartTime(DateUtils.localDateToDateStart(tradeOrderParam.getStartTime())).setEndTime(DateUtils.localDateToDateEnd(tradeOrderParam.getEndTime())).setSource(OrderSourceEnum.PURCHASE.getType()).setStatus(TradeOrderStatusEnum.AUDIT.getCode()).setRemark(tradeOrderParam.getRemark());
         return tradeContractResDto;
         return tradeContractResDto;
@@ -2136,7 +2136,7 @@ public class KwoTradeOrderService {
             WalletFreeze walletFreeze = new WalletFreeze();
             WalletFreeze walletFreeze = new WalletFreeze();
             walletFreeze.setTTradeOrderId(kwoTradeOrder.getId());
             walletFreeze.setTTradeOrderId(kwoTradeOrder.getId());
             walletFreeze.setOrderNo(kwoTradeOrder.getTOrderNo());
             walletFreeze.setOrderNo(kwoTradeOrder.getTOrderNo());
-            BaseResult<Boolean> booleanBaseResult = walletApi.unfreezeMoney(walletFreeze);
+            BaseResult<Boolean> booleanBaseResult = paymentDubboService.unfreezeMoney(walletFreeze);
             if (booleanBaseResult.getCode() != 60200) {
             if (booleanBaseResult.getCode() != 60200) {
                 throw new BusinessException(booleanBaseResult.getMessage());
                 throw new BusinessException(booleanBaseResult.getMessage());
             }
             }
@@ -2162,8 +2162,7 @@ public class KwoTradeOrderService {
         Map<String, Map<String, String>> dict = remoteSystemService.queryDictByType(List.of(DictTypeEnum.UNIT_TYPE.getType()));
         Map<String, Map<String, String>> dict = remoteSystemService.queryDictByType(List.of(DictTypeEnum.UNIT_TYPE.getType()));
         List<LogisticsEntDtoVO> validContractLog = new ArrayList<>();
         List<LogisticsEntDtoVO> validContractLog = new ArrayList<>();
         List<LogisticsEntDto> logisticsContractId = new ArrayList<>();
         List<LogisticsEntDto> logisticsContractId = new ArrayList<>();
-        if (Objects.equals(DispatchWayEnums.AUTO_DISPATCH.getCode(), tradeContractResDto.getDispatchWay())
-                && Objects.equals(tradeOrderAuditParam.getStatus(), Global.NUMERICAL_ONE)) {
+        if (Objects.equals(DispatchWayEnums.AUTO_DISPATCH.getCode(), tradeContractResDto.getDispatchWay()) && Objects.equals(tradeOrderAuditParam.getStatus(), Global.NUMERICAL_ONE)) {
             //自动派单校验: 判断当前有无包含该商品的有效自动派车物流合同
             //自动派单校验: 判断当前有无包含该商品的有效自动派车物流合同
             validContractLog = checkAutoContractLogOrder(unitMap, byOrderId, tradeContractResDto);
             validContractLog = checkAutoContractLogOrder(unitMap, byOrderId, tradeContractResDto);
         } else {
         } else {

+ 4 - 4
sckw-modules/sckw-order/src/main/java/com/sckw/order/task/TradeOrderTask.java

@@ -13,7 +13,7 @@ import com.sckw.order.enums.TradeOrderStatusEnum;
 import com.sckw.order.model.KwoTradeOrder;
 import com.sckw.order.model.KwoTradeOrder;
 import com.sckw.order.model.KwoTradeOrderGoods;
 import com.sckw.order.model.KwoTradeOrderGoods;
 import com.sckw.order.model.KwoTradeOrderUnit;
 import com.sckw.order.model.KwoTradeOrderUnit;
-import com.sckw.payment.api.feign.WalletApi;
+import com.sckw.payment.api.dubbo.PaymentDubboService;
 import com.sckw.payment.api.model.WalletFreeze;
 import com.sckw.payment.api.model.WalletFreeze;
 import com.sckw.transport.api.dubbo.TransportRemoteService;
 import com.sckw.transport.api.dubbo.TransportRemoteService;
 import com.sckw.transport.api.model.param.OrderFinishParam;
 import com.sckw.transport.api.model.param.OrderFinishParam;
@@ -47,10 +47,10 @@ public class TradeOrderTask {
     private KwoTradeOrderUnitMapper kwoTradeOrderUnitMapper;
     private KwoTradeOrderUnitMapper kwoTradeOrderUnitMapper;
     @Resource
     @Resource
     private KwoTradeOrderGoodsMapper kwoTradeOrderGoodsMapper;
     private KwoTradeOrderGoodsMapper kwoTradeOrderGoodsMapper;
-    @Resource
-    private WalletApi walletApi;
     @DubboReference(version = "1.0.0", group = "design", check = false, timeout = 8000)
     @DubboReference(version = "1.0.0", group = "design", check = false, timeout = 8000)
     private TransportRemoteService transportRemoteService;
     private TransportRemoteService transportRemoteService;
+    @DubboReference(version = "1.0.0", group = "design", check = false, timeout = 8000)
+    private PaymentDubboService paymentDubboService;
     private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 2, 1, TimeUnit.MINUTES, new LinkedBlockingQueue<>(20));
     private final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 2, 1, TimeUnit.MINUTES, new LinkedBlockingQueue<>(20));
 
 
     @Scheduled(cron = "0 0/5 * * * ?")
     @Scheduled(cron = "0 0/5 * * * ?")
@@ -97,7 +97,7 @@ public class TradeOrderTask {
                         walletFreeze.setTTradeOrderId(kwoTradeOrder.getId());
                         walletFreeze.setTTradeOrderId(kwoTradeOrder.getId());
                         walletFreeze.setOrderNo(kwoTradeOrder.getTOrderNo());
                         walletFreeze.setOrderNo(kwoTradeOrder.getTOrderNo());
                         log.info("结算 {}", JSONObject.toJSONString(walletFreeze));
                         log.info("结算 {}", JSONObject.toJSONString(walletFreeze));
-                        walletApi.dealMoney(walletFreeze);
+                        paymentDubboService.dealMoney(walletFreeze);
 
 
                         kwoTradeOrder.setStatus(TradeOrderStatusEnum.SUCCESS.getCode());
                         kwoTradeOrder.setStatus(TradeOrderStatusEnum.SUCCESS.getCode());
                         kwoTradeOrderMapper.updateById(kwoTradeOrder);
                         kwoTradeOrderMapper.updateById(kwoTradeOrder);

+ 0 - 20
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/controller/KwpBizWalletController.java

@@ -4,7 +4,6 @@ package com.sckw.payment.controller;
 import com.sckw.core.web.response.BaseResult;
 import com.sckw.core.web.response.BaseResult;
 import com.sckw.core.web.response.result.PageDataResult;
 import com.sckw.core.web.response.result.PageDataResult;
 import com.sckw.excel.utils.ExcelUtil;
 import com.sckw.excel.utils.ExcelUtil;
-import com.sckw.payment.api.model.WalletFreeze;
 import com.sckw.payment.repose.KwpBizWalletPageResponse;
 import com.sckw.payment.repose.KwpBizWalletPageResponse;
 import com.sckw.payment.repose.KwpBizWalletPrepayPageResponse;
 import com.sckw.payment.repose.KwpBizWalletPrepayPageResponse;
 import com.sckw.payment.repose.vo.KwpBizWalletPrepayExcelVO;
 import com.sckw.payment.repose.vo.KwpBizWalletPrepayExcelVO;
@@ -123,24 +122,5 @@ public class KwpBizWalletController {
         ExcelUtil.downData(response, KwpBizWalletPrepayExcelVO.class, excelVOList);
         ExcelUtil.downData(response, KwpBizWalletPrepayExcelVO.class, excelVOList);
     }
     }
 
 
-    /**
-     * 冻结金额
-     */
-    @Operation(summary = "冻结金额", description = "冻结金额")
-    @PostMapping("/freezeMoney")
-    public BaseResult<Boolean> freezeMoney(@RequestBody @Validated WalletFreeze walletFreeze) {
-        return kwpBizWalletService.freezeMoney(walletFreeze);
-    }
 
 
-    @Operation(summary = "解冻金额", description = "解冻金额")
-    @PostMapping("/unfreezeMoney")
-    public BaseResult<Boolean> unfreezeMoney(@RequestBody @Validated WalletFreeze walletFreeze) {
-        return kwpBizWalletService.unfreezeMoney(walletFreeze);
-    }
-
-    @Operation(summary = "结算金额", description = "结算金额")
-    @PostMapping("/dealMoney")
-    public BaseResult<Boolean> dealMoney(@RequestBody @Validated WalletFreeze walletFreeze) {
-        return kwpBizWalletService.dealMoney(walletFreeze);
-    }
 }
 }

+ 157 - 1
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/dubbo/PaymentDubboServiceImpl.java

@@ -1,26 +1,37 @@
 package com.sckw.payment.dubbo;
 package com.sckw.payment.dubbo;
 
 
+import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson2.JSONObject;
 import com.alibaba.fastjson2.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.sckw.core.exception.BusinessException;
 import com.sckw.core.exception.BusinessException;
+import com.sckw.core.utils.DateTimeUtil;
 import com.sckw.core.utils.OrderUtils;
 import com.sckw.core.utils.OrderUtils;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.constant.HttpStatus;
+import com.sckw.core.web.context.LoginUserHolder;
+import com.sckw.core.web.response.BaseResult;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.payment.api.dubbo.PaymentDubboService;
 import com.sckw.payment.api.dubbo.PaymentDubboService;
+import com.sckw.payment.api.model.WalletFreeze;
 import com.sckw.payment.api.model.constant.ChannelEnum;
 import com.sckw.payment.api.model.constant.ChannelEnum;
 import com.sckw.payment.api.model.constant.OrderEnum;
 import com.sckw.payment.api.model.constant.OrderEnum;
 import com.sckw.payment.api.model.dto.LedgerCount;
 import com.sckw.payment.api.model.dto.LedgerCount;
 import com.sckw.payment.api.model.dto.SettlementMoney;
 import com.sckw.payment.api.model.dto.SettlementMoney;
+import com.sckw.payment.dao.KwpBizWalletMapper;
+import com.sckw.payment.dao.KwpBizWalletPrepayMapper;
+import com.sckw.payment.model.KwpBizWallet;
+import com.sckw.payment.model.KwpBizWalletPrepay;
 import com.sckw.payment.model.constant.LogisticsUnitType;
 import com.sckw.payment.model.constant.LogisticsUnitType;
 import com.sckw.payment.model.constant.TradeUnitType;
 import com.sckw.payment.model.constant.TradeUnitType;
 import com.sckw.payment.model.dto.LedgerSize;
 import com.sckw.payment.model.dto.LedgerSize;
 import com.sckw.payment.model.dto.MoneyType;
 import com.sckw.payment.model.dto.MoneyType;
 import com.sckw.payment.service.*;
 import com.sckw.payment.service.*;
-import com.sckw.core.utils.DateTimeUtil;
 import com.sckw.payment.utils.DecimalUtils;
 import com.sckw.payment.utils.DecimalUtils;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboService;
 import org.apache.dubbo.config.annotation.DubboService;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 import java.text.DecimalFormat;
 import java.text.DecimalFormat;
@@ -43,6 +54,8 @@ public class PaymentDubboServiceImpl implements PaymentDubboService {
     private final KwpSettlementTradeService kwpSettlementTradeService;
     private final KwpSettlementTradeService kwpSettlementTradeService;
     private final WalletService walletService;
     private final WalletService walletService;
     private final KwpTradeFreezeService kwpTradeFreezeService;
     private final KwpTradeFreezeService kwpTradeFreezeService;
+    private final KwpBizWalletPrepayMapper kwpBizWalletPrepayMapper;
+    private final KwpBizWalletMapper kwpBizWalletMapper;
 
 
 
 
     private SettlementMoney change(List<MoneyType> moneyType) {
     private SettlementMoney change(List<MoneyType> moneyType) {
@@ -229,5 +242,148 @@ public class PaymentDubboServiceImpl implements PaymentDubboService {
         List<MoneyType> moneyType = kwpSettlementLogisticsService.moneySum(entId, cur, pre, LogisticsUnitType.SHIPPER);
         List<MoneyType> moneyType = kwpSettlementLogisticsService.moneySum(entId, cur, pre, LogisticsUnitType.SHIPPER);
         return change(moneyType);
         return change(moneyType);
     }
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public BaseResult<Boolean> freezeMoney(WalletFreeze walletFreeze) {
+        log.info("冻结钱包:{}", JSONObject.toJSONString(walletFreeze));
+        KwpBizWallet one = kwpBizWalletMapper.selectOne(new LambdaQueryWrapper<KwpBizWallet>()
+                .eq(KwpBizWallet::getSupEntId, walletFreeze.getSaleEntId())
+                .eq(KwpBizWallet::getProEntId, walletFreeze.getBuyEntId()).eq(KwpBizWallet::getState, 1)
+        );
+        if (Objects.isNull(one)) {
+            return BaseResult.failed("钱包不存在,请核实");
+        }
+        BigDecimal amount = one.getAmount();
+        if (NumberUtil.isLess(amount, walletFreeze.getMoney())) {
+            return BaseResult.failed("可用余额不足");
+        }
+        one.setAmount(NumberUtil.sub(amount, walletFreeze.getMoney()));
+        one.setPrepayAmount(NumberUtil.add(one.getPrepayAmount(), walletFreeze.getMoney()));
+        one.setUpdateUser(LoginUserHolder.getUserName());
+        kwpBizWalletMapper.updateById(one);
+        //新增订单
+        KwpBizWalletPrepay kwpBizWalletPrepay = new KwpBizWalletPrepay();
+        kwpBizWalletPrepay.setWalletId(one.getId());
+        kwpBizWalletPrepay.setOrderId(walletFreeze.getTTradeOrderId());
+        kwpBizWalletPrepay.setChangeAmount(walletFreeze.getMoney());
+        kwpBizWalletPrepay.setAmount(one.getAmount());
+        kwpBizWalletPrepay.setPrepayAmount(one.getPrepayAmount());
+        kwpBizWalletPrepay.setType(2);
+        kwpBizWalletPrepay.setRemark(StrUtil.format("[订单号:{}]冻结", walletFreeze.getOrderNo()));
+        kwpBizWalletPrepay.setVoucherUrl("");
+        kwpBizWalletPrepay.setCreateTime(new Date());
+        kwpBizWalletPrepay.setUpdateTime(new Date());
+        kwpBizWalletPrepay.setCreateUser(LoginUserHolder.getUserName());
+        kwpBizWalletPrepay.setUpdateUser(LoginUserHolder.getUserName());
+
+        kwpBizWalletPrepayMapper.insert(kwpBizWalletPrepay);
+        return BaseResult.success();
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public BaseResult<Boolean> dealMoney(WalletFreeze walletFreeze) {
+        log.info("钱包结算 {}", JSONObject.toJSONString(walletFreeze));
+        Long tTradeOrderId = walletFreeze.getTTradeOrderId();
+        KwpBizWalletPrepay one = kwpBizWalletPrepayMapper.selectOne(new LambdaQueryWrapper<KwpBizWalletPrepay>()
+                .eq(KwpBizWalletPrepay::getOrderId, tTradeOrderId)
+                .eq(KwpBizWalletPrepay::getType, 2)
+                .last("limit 1")
+        );
+        if (Objects.isNull(one)) {
+            return BaseResult.failed("冻结订单不存在");
+        }
+
+        KwpBizWallet wallet = kwpBizWalletMapper.selectById(one.getWalletId());
+        if (Objects.isNull(wallet) || Objects.equals(wallet.getState(), 0)) {
+            return BaseResult.failed("钱包不存在或状态异常");
+        }
+        BigDecimal changeAmount = one.getChangeAmount();//冻结金额
+        //钱包实际可用
+        BigDecimal amount = wallet.getAmount();
+        //新增解冻订单
+        amount = NumberUtil.add(amount, changeAmount);
+        KwpBizWalletPrepay kwpBizWalletPrepay = new KwpBizWalletPrepay();
+        kwpBizWalletPrepay.setWalletId(one.getId());
+        kwpBizWalletPrepay.setOrderId(walletFreeze.getTTradeOrderId());
+        kwpBizWalletPrepay.setChangeAmount(changeAmount);
+        kwpBizWalletPrepay.setAmount(amount);
+        kwpBizWalletPrepay.setPrepayAmount(NumberUtil.sub(wallet.getPrepayAmount(), changeAmount));
+        kwpBizWalletPrepay.setType(3);
+        kwpBizWalletPrepay.setRemark(StrUtil.format("[{}][结算]解冻订单总金额", walletFreeze.getOrderNo()));
+        kwpBizWalletPrepay.setVoucherUrl("");
+        kwpBizWalletPrepay.setCreateTime(new Date());
+        kwpBizWalletPrepay.setUpdateTime(new Date());
+        kwpBizWalletPrepay.setCreateUser(LoginUserHolder.getUserName());
+        kwpBizWalletPrepay.setUpdateUser(LoginUserHolder.getUserName());
+        kwpBizWalletPrepayMapper.insert(kwpBizWalletPrepay);
+
+        //新增消费订单
+        KwpBizWalletPrepay kwpBizWalletPrepay2 = new KwpBizWalletPrepay();
+        kwpBizWalletPrepay2.setWalletId(one.getId());
+        kwpBizWalletPrepay2.setOrderId(walletFreeze.getTTradeOrderId());
+        kwpBizWalletPrepay2.setChangeAmount(walletFreeze.getMoney());
+        kwpBizWalletPrepay2.setAmount(NumberUtil.sub(amount, walletFreeze.getMoney()));
+        kwpBizWalletPrepay2.setPrepayAmount(kwpBizWalletPrepay.getPrepayAmount());
+        kwpBizWalletPrepay2.setType(4);
+        kwpBizWalletPrepay2.setRemark(StrUtil.format("[{}][结算]扣除订单总金额", walletFreeze.getOrderNo()));
+        kwpBizWalletPrepay2.setVoucherUrl("");
+        kwpBizWalletPrepay2.setCreateTime(new Date());
+        kwpBizWalletPrepay2.setUpdateTime(new Date());
+        kwpBizWalletPrepay2.setCreateUser(LoginUserHolder.getUserName());
+        kwpBizWalletPrepay2.setUpdateUser(LoginUserHolder.getUserName());
+        kwpBizWalletPrepayMapper.insert(kwpBizWalletPrepay2);
+
+        wallet.setAmount(kwpBizWalletPrepay2.getAmount());
+        wallet.setPrepayAmount(kwpBizWalletPrepay2.getPrepayAmount());
+        kwpBizWalletMapper.updateById(wallet);
+        return BaseResult.success();
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public BaseResult<Boolean> unfreezeMoney(WalletFreeze walletFreeze) {
+        log.info("解冻钱包:{}", JSONObject.toJSONString(walletFreeze));
+        Long tTradeOrderId = walletFreeze.getTTradeOrderId();
+        KwpBizWalletPrepay one = kwpBizWalletPrepayMapper.selectOne(new LambdaQueryWrapper<KwpBizWalletPrepay>()
+                .eq(KwpBizWalletPrepay::getOrderId, tTradeOrderId)
+                .eq(KwpBizWalletPrepay::getType, 2)
+                .last("limit 1")
+        );
+        if (Objects.isNull(one)) {
+            return BaseResult.failed("冻结订单不存在");
+        }
+
+        KwpBizWallet wallet = kwpBizWalletMapper.selectById(one.getWalletId());
+        if (Objects.isNull(wallet) || Objects.equals(wallet.getState(), 0)) {
+            return BaseResult.failed("钱包不存在或状态异常");
+        }
+        BigDecimal changeAmount = one.getChangeAmount();//冻结金额
+        //钱包实际可用
+        BigDecimal amount = wallet.getAmount();
+        //新增解冻订单
+        amount = NumberUtil.add(amount, changeAmount);
+        KwpBizWalletPrepay kwpBizWalletPrepay = new KwpBizWalletPrepay();
+        kwpBizWalletPrepay.setWalletId(one.getId());
+        kwpBizWalletPrepay.setOrderId(walletFreeze.getTTradeOrderId());
+        kwpBizWalletPrepay.setChangeAmount(changeAmount);
+        kwpBizWalletPrepay.setAmount(amount);
+        kwpBizWalletPrepay.setPrepayAmount(NumberUtil.sub(wallet.getPrepayAmount(), changeAmount));
+        kwpBizWalletPrepay.setType(3);
+        kwpBizWalletPrepay.setRemark(StrUtil.format("[订单号:{}]解冻", walletFreeze.getOrderNo()));
+        kwpBizWalletPrepay.setVoucherUrl("");
+        kwpBizWalletPrepay.setCreateTime(new Date());
+        kwpBizWalletPrepay.setUpdateTime(new Date());
+        kwpBizWalletPrepay.setCreateUser(LoginUserHolder.getUserName());
+        kwpBizWalletPrepay.setUpdateUser(LoginUserHolder.getUserName());
+        kwpBizWalletPrepayMapper.insert(kwpBizWalletPrepay);
+
+
+        wallet.setAmount(amount);
+        wallet.setPrepayAmount(kwpBizWalletPrepay.getPrepayAmount());
+        kwpBizWalletMapper.updateById(wallet);
+        return BaseResult.success();
+    }
 }
 }
 
 

+ 0 - 142
sckw-modules/sckw-payment/src/main/java/com/sckw/payment/service/wallet/KwpBizWalletService.java

@@ -1,7 +1,5 @@
 package com.sckw.payment.service.wallet;
 package com.sckw.payment.service.wallet;
 
 
-import cn.hutool.core.util.NumberUtil;
-import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson2.JSONObject;
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@@ -12,9 +10,7 @@ import com.sckw.core.common.enums.StringConstant;
 import com.sckw.core.model.enums.EntTypeEnum;
 import com.sckw.core.model.enums.EntTypeEnum;
 import com.sckw.core.model.enums.SystemTypeEnum;
 import com.sckw.core.model.enums.SystemTypeEnum;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.context.LoginUserHolder;
-import com.sckw.core.web.response.BaseResult;
 import com.sckw.core.web.response.result.PageDataResult;
 import com.sckw.core.web.response.result.PageDataResult;
-import com.sckw.payment.api.model.WalletFreeze;
 import com.sckw.payment.enums.PrepayTypEnum;
 import com.sckw.payment.enums.PrepayTypEnum;
 import com.sckw.payment.model.KwpBizWallet;
 import com.sckw.payment.model.KwpBizWallet;
 import com.sckw.payment.model.KwpBizWalletPrepay;
 import com.sckw.payment.model.KwpBizWalletPrepay;
@@ -471,142 +467,4 @@ public class KwpBizWalletService {
         log.info("钱包冻账明细导出成功,结果:{}", JSONObject.toJSONString(walletPrepayPageResult));
         log.info("钱包冻账明细导出成功,结果:{}", JSONObject.toJSONString(walletPrepayPageResult));
         return walletPrepayExcelVO;
         return walletPrepayExcelVO;
     }
     }
-
-    @Transactional(rollbackFor = Exception.class)
-    public BaseResult<Boolean> freezeMoney(WalletFreeze walletFreeze) {
-        log.info("冻结钱包:{}", JSONObject.toJSONString(walletFreeze));
-        KwpBizWallet one = kwpBizWalletRepository.getOne(new LambdaQueryWrapper<KwpBizWallet>()
-                .eq(KwpBizWallet::getSupEntId, walletFreeze.getSaleEntId())
-                .eq(KwpBizWallet::getProEntId, walletFreeze.getBuyEntId()).eq(KwpBizWallet::getState, 1)
-        );
-        if (Objects.isNull(one)) {
-            return BaseResult.failed("钱包不存在,请核实");
-        }
-        BigDecimal amount = one.getAmount();
-        if (NumberUtil.isLess(amount, walletFreeze.getMoney())) {
-            return BaseResult.failed("可用余额不足");
-        }
-        one.setAmount(NumberUtil.sub(amount, walletFreeze.getMoney()));
-        one.setPrepayAmount(NumberUtil.add(one.getPrepayAmount(), walletFreeze.getMoney()));
-        one.setUpdateUser(LoginUserHolder.getUserName());
-        kwpBizWalletRepository.updateById(one);
-        //新增订单
-        KwpBizWalletPrepay kwpBizWalletPrepay = new KwpBizWalletPrepay();
-        kwpBizWalletPrepay.setWalletId(one.getId());
-        kwpBizWalletPrepay.setOrderId(walletFreeze.getTTradeOrderId());
-        kwpBizWalletPrepay.setChangeAmount(walletFreeze.getMoney());
-        kwpBizWalletPrepay.setAmount(one.getAmount());
-        kwpBizWalletPrepay.setPrepayAmount(one.getPrepayAmount());
-        kwpBizWalletPrepay.setType(2);
-        kwpBizWalletPrepay.setRemark(StrUtil.format("[订单号:{}]冻结", walletFreeze.getOrderNo()));
-        kwpBizWalletPrepay.setVoucherUrl("");
-        kwpBizWalletPrepay.setCreateTime(new Date());
-        kwpBizWalletPrepay.setUpdateTime(new Date());
-        kwpBizWalletPrepay.setCreateUser(LoginUserHolder.getUserName());
-        kwpBizWalletPrepay.setUpdateUser(LoginUserHolder.getUserName());
-        kwpBizWalletPrepayRepository.save(kwpBizWalletPrepay);
-        return BaseResult.success();
-    }
-
-    @Transactional(rollbackFor = Exception.class)
-    public BaseResult<Boolean> dealMoney(WalletFreeze walletFreeze) {
-        Long tTradeOrderId = walletFreeze.getTTradeOrderId();
-        KwpBizWalletPrepay one = kwpBizWalletPrepayRepository.getOne(new LambdaQueryWrapper<KwpBizWalletPrepay>()
-                .eq(KwpBizWalletPrepay::getOrderId, tTradeOrderId)
-                .eq(KwpBizWalletPrepay::getType, 2)
-                .last("limit 1")
-        );
-        if (Objects.isNull(one)) {
-            return BaseResult.failed("冻结订单不存在");
-        }
-
-        KwpBizWallet wallet = kwpBizWalletRepository.getById(one.getWalletId());
-        if (Objects.isNull(wallet) || Objects.equals(wallet.getState(), 0)) {
-            return BaseResult.failed("钱包不存在或状态异常");
-        }
-        BigDecimal changeAmount = one.getChangeAmount();//冻结金额
-        //钱包实际可用
-        BigDecimal amount = wallet.getAmount();
-        //新增解冻订单
-        amount = NumberUtil.add(amount, changeAmount);
-        KwpBizWalletPrepay kwpBizWalletPrepay = new KwpBizWalletPrepay();
-        kwpBizWalletPrepay.setWalletId(one.getId());
-        kwpBizWalletPrepay.setOrderId(walletFreeze.getTTradeOrderId());
-        kwpBizWalletPrepay.setChangeAmount(changeAmount);
-        kwpBizWalletPrepay.setAmount(amount);
-        kwpBizWalletPrepay.setPrepayAmount(NumberUtil.sub(wallet.getPrepayAmount(), changeAmount));
-        kwpBizWalletPrepay.setType(3);
-        kwpBizWalletPrepay.setRemark(StrUtil.format("[{}][结算]解冻订单总金额", walletFreeze.getOrderNo()));
-        kwpBizWalletPrepay.setVoucherUrl("");
-        kwpBizWalletPrepay.setCreateTime(new Date());
-        kwpBizWalletPrepay.setUpdateTime(new Date());
-        kwpBizWalletPrepay.setCreateUser(LoginUserHolder.getUserName());
-        kwpBizWalletPrepay.setUpdateUser(LoginUserHolder.getUserName());
-        kwpBizWalletPrepayRepository.save(kwpBizWalletPrepay);
-
-        //新增消费订单
-        KwpBizWalletPrepay kwpBizWalletPrepay2 = new KwpBizWalletPrepay();
-        kwpBizWalletPrepay2.setWalletId(one.getId());
-        kwpBizWalletPrepay2.setOrderId(walletFreeze.getTTradeOrderId());
-        kwpBizWalletPrepay2.setChangeAmount(walletFreeze.getMoney());
-        kwpBizWalletPrepay2.setAmount(NumberUtil.sub(amount, walletFreeze.getMoney()));
-        kwpBizWalletPrepay2.setPrepayAmount(kwpBizWalletPrepay.getPrepayAmount());
-        kwpBizWalletPrepay2.setType(4);
-        kwpBizWalletPrepay2.setRemark(StrUtil.format("[{}][结算]扣除订单总金额", walletFreeze.getOrderNo()));
-        kwpBizWalletPrepay2.setVoucherUrl("");
-        kwpBizWalletPrepay2.setCreateTime(new Date());
-        kwpBizWalletPrepay2.setUpdateTime(new Date());
-        kwpBizWalletPrepay2.setCreateUser(LoginUserHolder.getUserName());
-        kwpBizWalletPrepay2.setUpdateUser(LoginUserHolder.getUserName());
-        kwpBizWalletPrepayRepository.save(kwpBizWalletPrepay);
-
-        wallet.setAmount(kwpBizWalletPrepay2.getAmount());
-        wallet.setPrepayAmount(kwpBizWalletPrepay2.getPrepayAmount());
-        kwpBizWalletRepository.updateById(wallet);
-        return BaseResult.success();
-    }
-
-    @Transactional(rollbackFor = Exception.class)
-    public BaseResult<Boolean> unfreezeMoney(WalletFreeze walletFreeze) {
-        log.info("解冻钱包:{}", JSONObject.toJSONString(walletFreeze));
-        Long tTradeOrderId = walletFreeze.getTTradeOrderId();
-        KwpBizWalletPrepay one = kwpBizWalletPrepayRepository.getOne(new LambdaQueryWrapper<KwpBizWalletPrepay>()
-                .eq(KwpBizWalletPrepay::getOrderId, tTradeOrderId)
-                .eq(KwpBizWalletPrepay::getType, 2)
-                .last("limit 1")
-        );
-        if (Objects.isNull(one)) {
-            return BaseResult.failed("冻结订单不存在");
-        }
-
-        KwpBizWallet wallet = kwpBizWalletRepository.getById(one.getWalletId());
-        if (Objects.isNull(wallet) || Objects.equals(wallet.getState(), 0)) {
-            return BaseResult.failed("钱包不存在或状态异常");
-        }
-        BigDecimal changeAmount = one.getChangeAmount();//冻结金额
-        //钱包实际可用
-        BigDecimal amount = wallet.getAmount();
-        //新增解冻订单
-        amount = NumberUtil.add(amount, changeAmount);
-        KwpBizWalletPrepay kwpBizWalletPrepay = new KwpBizWalletPrepay();
-        kwpBizWalletPrepay.setWalletId(one.getId());
-        kwpBizWalletPrepay.setOrderId(walletFreeze.getTTradeOrderId());
-        kwpBizWalletPrepay.setChangeAmount(changeAmount);
-        kwpBizWalletPrepay.setAmount(amount);
-        kwpBizWalletPrepay.setPrepayAmount(NumberUtil.sub(wallet.getPrepayAmount(), changeAmount));
-        kwpBizWalletPrepay.setType(3);
-        kwpBizWalletPrepay.setRemark(StrUtil.format("[订单号:{}]解冻", walletFreeze.getOrderNo()));
-        kwpBizWalletPrepay.setVoucherUrl("");
-        kwpBizWalletPrepay.setCreateTime(new Date());
-        kwpBizWalletPrepay.setUpdateTime(new Date());
-        kwpBizWalletPrepay.setCreateUser(LoginUserHolder.getUserName());
-        kwpBizWalletPrepay.setUpdateUser(LoginUserHolder.getUserName());
-        kwpBizWalletPrepayRepository.save(kwpBizWalletPrepay);
-
-
-        wallet.setAmount(amount);
-        wallet.setPrepayAmount(kwpBizWalletPrepay.getPrepayAmount());
-        kwpBizWalletRepository.updateById(wallet);
-        return BaseResult.success();
-    }
 }
 }