Răsfoiți Sursa

平台默认物流

xucaiqin 2 luni în urmă
părinte
comite
98d71de2e3

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

@@ -62,6 +62,7 @@ public class TradeOrderParam {
     /**
      * 物流合同 承运单位
      * 合同托运方式是“采购方托运”时,才展示物流信息填写,“供应方托运”时隐藏这一块
+     * 买方托运时,可以选择平台默认物流
      */
     @Schema(description = "物流合同信息")
     private List<LogisticsEntDto> logisticsContractList;

+ 35 - 31
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

@@ -8,8 +8,8 @@ import cn.hutool.core.util.NumberUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
@@ -43,20 +43,19 @@ import com.sckw.manage.api.model.dto.res.FindEntCooperateResVo;
 import com.sckw.mongo.model.SckwTradeOrder;
 import com.sckw.order.api.model.*;
 import com.sckw.order.dao.KwoTradeOrderMapper;
-import com.sckw.order.enums.*;
 import com.sckw.order.enums.ContractStatusEnum;
+import com.sckw.order.enums.*;
 import com.sckw.order.model.*;
 import com.sckw.order.model.dto.*;
-import com.sckw.order.model.vo.req.*;
 import com.sckw.order.model.vo.req.ContractInfo;
-import com.sckw.order.model.vo.res.*;
+import com.sckw.order.model.vo.req.*;
 import com.sckw.order.model.vo.res.GoodsInfoDetailRes;
 import com.sckw.order.model.vo.res.OrderDetailRes;
 import com.sckw.order.model.vo.res.UnitInfoDetailRes;
+import com.sckw.order.model.vo.res.*;
 import com.sckw.order.repository.KwoTradeOrderUnitRepository;
 import com.sckw.payment.api.dubbo.PayCenterDubboService;
 import com.sckw.payment.api.dubbo.PaymentDubboService;
-import com.sckw.payment.api.model.WalletFreeze;
 import com.sckw.payment.api.feign.PaymentFeignService;
 import com.sckw.payment.api.model.constant.ChannelEnum;
 import com.sckw.payment.api.model.dto.WalletDto;
@@ -2209,6 +2208,11 @@ public class KwoTradeOrderService {
                 kwoTradeOrderTransport.setStatus(0);
                 kwoTradeOrderTransport.setCreateBy(LoginUserHolder.getUserId());
                 kwoTradeOrderTransport.setCreateTime(LocalDateTime.now());
+                if (Objects.equals(logisticsEntDto.getContractId(), 0L)) {//查询平台默认物流对应的企业id
+                    kwoTradeOrderTransport.setEntId(1L);//todo 硬编码,平台默认物流企业
+                    kwoTradeOrderTransport.setFirmName("平台默认物流");
+                }
+
                 kwoTradeOrderTransportService.insert(kwoTradeOrderTransport);
             }
         }
@@ -2235,15 +2239,15 @@ public class KwoTradeOrderService {
         kwoTradeOrderUnitService.insertBatch(list);
         //钱包
 //        BaseResult<Boolean> booleanBaseResult = paymentDubboService.freezeMoney(walletFreeze);
-        BaseResult<Object> freezeBaseResult = new  BaseResult<>();
-        if(Objects.equals(tradeContractResDto.getSettlement(),1)){
+        BaseResult<Object> freezeBaseResult = new BaseResult<>();
+        if (Objects.equals(tradeContractResDto.getSettlement(), 1)) {
             // todo 普通结算冻结
 
-        }else if(Objects.equals(tradeContractResDto.getSettlement(),2)){
+        } else if (Objects.equals(tradeContractResDto.getSettlement(), 2)) {
             //预付制结算冻结
             walletFreeze.setOrderType(4);
             walletFreeze.setTradeType(4);
-            walletFreeze.setRemark("贸易订单号:"+walletFreeze.getOrderNo()+",下单冻结");
+            walletFreeze.setRemark("贸易订单号:" + walletFreeze.getOrderNo() + ",下单冻结");
             freezeBaseResult = paymentFeignService.updatePrepaidBalance(walletFreeze);
         }
 
@@ -2286,7 +2290,7 @@ public class KwoTradeOrderService {
         freezeDto.setOrderNo(String.valueOf(order.getId()));
         freezeDto.setOrderType(4);
         freezeDto.setTradeType(5);
-        freezeDto.setRemark("贸易订单号:"+freezeDto.getOrderNo()+",撤销订单");
+        freezeDto.setRemark("贸易订单号:" + freezeDto.getOrderNo() + ",撤销订单");
         BaseResult<Object> balanceResult;
         try {
             balanceResult = paymentFeignService.updatePrepaidBalance(freezeDto);
@@ -2345,10 +2349,10 @@ public class KwoTradeOrderService {
         //结算方式校验余额
         BigDecimal orderAmount = NumberUtil.mul(tradeOrderParam.getAmount(), goodsInfoDto.getPrice());
         Integer settlement = tradeContractResDto.getSettlement();
-        if(Objects.equals(settlement, 1)){
+        if (Objects.equals(settlement, 1)) {
             // todo 普通结算
 
-        }else {
+        } else {
             //预付制结算
             BaseResult<BigDecimal> prepaidBalanceResult = null;
             try {
@@ -2357,11 +2361,11 @@ public class KwoTradeOrderService {
                 log.error("查询线下钱包服务异常", e);
                 throw new BusinessException("查询线下钱包服务异常,请稍后再试");
             }
-            if(prepaidBalanceResult.getCode() == HttpStatus.SUCCESS_CODE){
-                if(orderAmount.compareTo(prepaidBalanceResult.getData()) > 0){
+            if (prepaidBalanceResult.getCode() == HttpStatus.SUCCESS_CODE) {
+                if (orderAmount.compareTo(prepaidBalanceResult.getData()) > 0) {
                     throw new BusinessException("当前贸易订单金额大于可用预付余额");
                 }
-            }else{
+            } else {
                 throw new BusinessException("查询对应供应商预付余额失败");
             }
         }
@@ -2427,14 +2431,14 @@ public class KwoTradeOrderService {
             walletFreeze.setSupEntId(unitMap.get(String.valueOf(CooperateTypeEnum.SUPPLIER.getCode())).getEntId());
             walletFreeze.setOrderType(4);
             walletFreeze.setTradeType(5);
-            walletFreeze.setRemark("贸易订单:"+walletFreeze.getOrderNo()+",审核拒绝解冻");
+            walletFreeze.setRemark("贸易订单:" + walletFreeze.getOrderNo() + ",审核拒绝解冻");
 //            BaseResult<Boolean> booleanBaseResult = paymentDubboService.unfreezeMoney(walletFreeze);
 
-            BaseResult<Object> booleanBaseResult = new  BaseResult<>();
-            if(Objects.equals(kwoTradeOrder.getSettlement(),1)){
+            BaseResult<Object> booleanBaseResult = new BaseResult<>();
+            if (Objects.equals(kwoTradeOrder.getSettlement(), 1)) {
                 // todo 普通结算解冻结
 
-            }else if(Objects.equals(kwoTradeOrder.getSettlement(),2)){
+            } else if (Objects.equals(kwoTradeOrder.getSettlement(), 2)) {
                 //预付制结算解冻
                 booleanBaseResult = paymentFeignService.updatePrepaidBalance(walletFreeze);
             }
@@ -2808,13 +2812,13 @@ public class KwoTradeOrderService {
         return true;
     }
 
-    private void calculatePrepaidBalance(KwoTradeOrder kwoTradeOrder){
-        if(Objects.equals(kwoTradeOrder.getStatus(),TradeOrderStatusEnum.SUCCESS.getCode())){
+    private void calculatePrepaidBalance(KwoTradeOrder kwoTradeOrder) {
+        if (Objects.equals(kwoTradeOrder.getStatus(), TradeOrderStatusEnum.SUCCESS.getCode())) {
             //贸易订单已完结,计算预付余额
-            if(Objects.equals(kwoTradeOrder.getSettlement(),1)){
+            if (Objects.equals(kwoTradeOrder.getSettlement(), 1)) {
                 //todo 普通结算
 
-            }else if(Objects.equals(kwoTradeOrder.getSettlement(),2)){
+            } else if (Objects.equals(kwoTradeOrder.getSettlement(), 2)) {
                 //预付制模式
                 //1解冻运费
                 List<KwoTradeOrderUnit> orderUnits = kwoTradeOrderUnitService.getByOrderId(kwoTradeOrder.getId());
@@ -2832,11 +2836,11 @@ public class KwoTradeOrderService {
                 unFreezePrepaidDto.setSupEntId(unitMap.get(String.valueOf(CooperateTypeEnum.SUPPLIER.getCode())).getEntId());
                 unFreezePrepaidDto.setOrderType(4);
                 unFreezePrepaidDto.setTradeType(5);
-                unFreezePrepaidDto.setRemark("贸易订单:"+unFreezePrepaidDto.getOrderNo()+",");
+                unFreezePrepaidDto.setRemark("贸易订单:" + unFreezePrepaidDto.getOrderNo() + ",");
                 BaseResult<Object> unFreezeResult = paymentFeignService.updatePrepaidBalance(unFreezePrepaidDto);
-                if(unFreezeResult.getCode()!= HttpStatus.SUCCESS_CODE){
-                    log.error("贸易订单号:{},订单完结解冻失败,异常信息为:{}",unFreezePrepaidDto.getOrderNo(),unFreezeResult.getMessage());
-                    throw new BusinessException("贸易订单号:"+unFreezePrepaidDto.getOrderNo()+",订单完结解冻失败");
+                if (unFreezeResult.getCode() != HttpStatus.SUCCESS_CODE) {
+                    log.error("贸易订单号:{},订单完结解冻失败,异常信息为:{}", unFreezePrepaidDto.getOrderNo(), unFreezeResult.getMessage());
+                    throw new BusinessException("贸易订单号:" + unFreezePrepaidDto.getOrderNo() + ",订单完结解冻失败");
                 }
                 //2计算订单金额
                 WalletPrepaidDto consumePrepaidDto = new WalletPrepaidDto();
@@ -2846,11 +2850,11 @@ public class KwoTradeOrderService {
                 unFreezePrepaidDto.setOrderType(4);
                 unFreezePrepaidDto.setTradeType(6);
                 consumePrepaidDto.setTradeAmount(kwoTradeOrder.getPrice());
-                consumePrepaidDto.setRemark("贸易订单号:"+consumePrepaidDto.getOrderNo()+",订单完结消费");
+                consumePrepaidDto.setRemark("贸易订单号:" + consumePrepaidDto.getOrderNo() + ",订单完结消费");
                 BaseResult<Object> consumeResult = paymentFeignService.updatePrepaidBalance(consumePrepaidDto);
-                if(consumeResult.getCode()!= HttpStatus.SUCCESS_CODE){
-                    log.error("贸易订单号:{},订单完结消费失败,异常信息为:{}",consumePrepaidDto.getOrderNo(),consumeResult.getMessage());
-                    throw new BusinessException("贸易订单号:"+consumePrepaidDto.getOrderNo()+",订单完结消费失败");
+                if (consumeResult.getCode() != HttpStatus.SUCCESS_CODE) {
+                    log.error("贸易订单号:{},订单完结消费失败,异常信息为:{}", consumePrepaidDto.getOrderNo(), consumeResult.getMessage());
+                    throw new BusinessException("贸易订单号:" + consumePrepaidDto.getOrderNo() + ",订单完结消费失败");
                 }
             }
         }