Explorar o código

代客下单及订单受理时交易方式为预付款则冻结钱包金额

yzc %!s(int64=2) %!d(string=hai) anos
pai
achega
3949da2904

+ 20 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

@@ -31,6 +31,7 @@ import com.sckw.order.model.dto.WbTOrderExcelStsResDTO;
 import com.sckw.order.model.vo.req.*;
 import com.sckw.order.model.vo.res.*;
 import com.sckw.payment.api.dubbo.PayCenterDubboService;
+import com.sckw.payment.api.dubbo.PaymentDubboService;
 import com.sckw.payment.api.model.constant.ChannelEnum;
 import com.sckw.payment.api.model.dto.WalletDto;
 import com.sckw.payment.api.model.dto.common.R;
@@ -86,6 +87,9 @@ public class KwoTradeOrderService {
     @DubboReference(version = "1.0.0", group = "design", check = false)
     private PayCenterDubboService payCenterDubboService;
 
+    @DubboReference(version = "1.0.0", group = "design", check = false)
+    private PaymentDubboService paymentDubboService;
+
     @DubboReference(version = "1.0.0", group = "design", check = false)
     private TransportDubboService transportDubboService;
 
@@ -497,6 +501,14 @@ public class KwoTradeOrderService {
         if (!Objects.equals(HttpStatus.SUCCESS_CODE, updateResult.getCode())) {
             throw new BusinessException(updateResult.getMsg());
         }
+        //冻结金额
+        if (param.getTrading().startsWith("1")){
+            HttpResult freezeResult = paymentDubboService.freezeMoney(orderCheck.getProcureTopEntId(),
+                    ChannelEnum.getByTrading(param.getTrading()), orderCheck.getSupplyTopEntId(), param.getPrice(), order.getId());
+            if (!Objects.equals(HttpStatus.SUCCESS_CODE, freezeResult.getCode())) {
+                throw new BusinessException(freezeResult.getMsg());
+            }
+        }
         addOtherOrderInfo(order, BeanUtils.copyProperties(param, ValetOrderParam.class), false);
         //发送消息提醒
         submitOrderSendMsg(orderCheck, order.getTOrderNo());
@@ -916,6 +928,14 @@ public class KwoTradeOrderService {
         getTopEnt(orderCheck, unitInfos);
         orderCheck.setGoodsId(goods.getGoodsId()).setAmount(amount);
         orderCheck(orderCheck, true);
+        //冻结金额
+        if (param.getTrading().startsWith("1")){
+            HttpResult freezeResult = paymentDubboService.freezeMoney(orderCheck.getProcureTopEntId(),
+                    ChannelEnum.getByTrading(param.getTrading()), orderCheck.getSupplyTopEntId(), param.getPrice(), order.getId());
+            if (!Objects.equals(HttpStatus.SUCCESS_CODE, freezeResult.getCode())) {
+                throw new BusinessException(freezeResult.getMsg());
+            }
+        }
         //更新订单信息
         BeanUtils.copyProperties(param, order);
         ContractInfo contractInfo = param.getContractInfo();