Преглед изворни кода

贸易订单下单参数调整

yzc пре 2 година
родитељ
комит
d7f45ae127

+ 5 - 0
sckw-modules-api/sckw-product-api/src/main/java/com/sckw/product/api/model/GoodsDetail.java

@@ -167,6 +167,11 @@ public class GoodsDetail implements Serializable {
      */
     private String statusLabel;
 
+    /**
+     * 是否删除
+     */
+    private Integer delFlag;
+
     /**
      * 商品详情图片
      */

+ 0 - 47
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/GoodsInfo.java

@@ -26,36 +26,6 @@ public class GoodsInfo {
     @NotNull(message = "商品id不能为空")
     private Long goodsId;
 
-    /**
-     * 商品编号
-     */
-    @NotBlank(message = "商品编号不能为空")
-    private String goodsCode;
-
-    /**
-     * 商品名称
-     */
-    @NotBlank(message = "商品名称不能为空")
-    private String goodsName;
-
-    /**
-     * 商品类型
-     */
-    @NotBlank(message = "商品类型不能为空")
-    private String goodsType;
-
-    /**
-     * 商品发票税率(%)
-     */
-    @NotBlank(message = "商品发票税率不能为空")
-    private String goodsTaxRate;
-
-    /**
-     * 商品尺寸大小
-     */
-    @NotBlank(message = "商品尺寸大小不能为空")
-    private String goodsSpec;
-
     /**
      * 单位(吨、方、箱、件)
      */
@@ -73,21 +43,4 @@ public class GoodsInfo {
     @DecimalMin(value = "0.00",message = "订单成交单价最小为零")
     private BigDecimal unitPrice;
 
-    /**
-     * 商品skuId
-     */
-    private Long skuId;
-
-    /**
-     * 收款单位id
-     */
-    @NotNull(message = "收款单位id不能为空")
-    private Long collectionUnitId;
-
-    /**
-     * 收款单位名称
-     */
-    @NotBlank(message = "收款单位名称不能为空")
-    private String collectionUnit;
-
 }

+ 61 - 2
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/GoodsInfoDetailRes.java

@@ -1,6 +1,5 @@
 package com.sckw.order.model.vo.res;
 
-import com.sckw.order.model.vo.req.GoodsInfo;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
@@ -19,10 +18,70 @@ import java.math.BigDecimal;
 @Setter
 @ToString
 @Accessors(chain = true)
-public class GoodsInfoDetailRes extends GoodsInfo implements Serializable {
+public class GoodsInfoDetailRes implements Serializable {
 
     @Serial
     private static final long serialVersionUID = 1427251412395875742L;
+
+    /**
+     * 商品id
+     */
+    private Long goodsId;
+
+    /**
+     * 商品编号
+     */
+    private String goodsCode;
+
+    /**
+     * 商品名称
+     */
+    private String goodsName;
+
+    /**
+     * 商品类型
+     */
+    private String goodsType;
+
+    /**
+     * 商品发票税率(%)
+     */
+    private String goodsTaxRate;
+
+    /**
+     * 商品尺寸大小
+     */
+    private String goodsSpec;
+
+    /**
+     * 单位(吨、方、箱、件)
+     */
+    private String unit;
+    /**
+     * 价格段id
+     */
+    private Long priceRangeId;
+
+    /**
+     * 订单成交单价
+     */
+    private BigDecimal unitPrice;
+
+    /**
+     * 商品skuId
+     */
+    private Long skuId;
+
+    /**
+     * 收款单位id
+     */
+    private Long collectionUnitId;
+
+    /**
+     * 收款单位名称
+     */
+    private String collectionUnit;
+
     /**
      * 商品类型label
      */

+ 12 - 24
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

@@ -27,6 +27,7 @@ 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;
 import com.sckw.product.api.dubbo.GoodsInfoService;
+import com.sckw.product.api.model.GoodsDetail;
 import com.sckw.product.api.model.KwpGoods;
 import com.sckw.redis.constant.RedisConstant;
 import com.sckw.redis.utils.RedissonUtils;
@@ -118,8 +119,16 @@ public class KwoTradeOrderService {
         GoodsInfo goodsInfo = param.getGoodsInfo();
         KwoTradeOrderGoods goods = BeanUtils.copyProperties(goodsInfo, KwoTradeOrderGoods.class);
         if (Objects.nonNull(goods)) {
-            goods.setTOrderId(id).setTOrderNo(tOrderNo);
+            GoodsDetail goodsDetail = goodsInfoService.getDetailById(goods.getGoodsId());
+            if (Objects.isNull(goodsDetail) || !Objects.equals(goodsDetail.getStatus(), 1)
+                    || Objects.equals(goodsDetail.getDelFlag(), Global.YES)) {
+                throw new BusinessException("商品不存在或已下架!");
+            }
+            goods.setTOrderId(id).setTOrderNo(tOrderNo).setGoodsType(goodsDetail.getGoodsType());
             kwoTradeOrderGoodsService.insert(goods);
+            order.setGoodsId(goodsDetail.getId()).setUnit(goodsDetail.getUnit()).setUnitPrice(goods.getUnitPrice())
+                    .setGoodsName(goodsDetail.getName()).setGoodsType(goodsDetail.getGoodsType()).setGoodsCode(goodsDetail.getCode())
+                    .setGoodsTaxRate(goodsDetail.getTaxRate()).setGoodsSpec(goodsDetail.getSpec());
             BeanUtils.copyProperties(goodsInfo, order);
         }
         //单位信息
@@ -389,7 +398,7 @@ public class KwoTradeOrderService {
                         .setGoodsId(goods.getId()).setGoodsCode(goods.getCode()).setGoodsName(goods.getName())
                         .setGoodsType(goods.getGoodsType()).setGoodsTaxRate(goods.getTaxRate()).setGoodsSpec(goods.getSpec())
                         .setUnit(goods.getUnit()).setPriceRangeId(orderGoods.getPriceRangeId()).setUnitPrice(orderGoods.getUnitPrice())
-                        .setSkuId(orderGoods.getSkuId()).setCollectionUnitId(goods.getEntId()).setCollectionUnitId(goods.getEntId())
+                        .setSkuId(orderGoods.getSkuId()).setCollectionUnitId(goods.getEntId())
                         .setCollectionUnit(Objects.isNull(entCache) ? null : entCache.getFirmName());
                 detail.setGoodsInfo(goodsDetail);
             }
@@ -539,36 +548,15 @@ public class KwoTradeOrderService {
         if (Objects.isNull(goodsInfo.getGoodsId())) {
             throw new BusinessException("商品id不能为空!");
         }
-        if (StringUtils.isBlank(goodsInfo.getGoodsCode())) {
-            throw new BusinessException("商品编号不能为空!");
-        }
-        if (StringUtils.isBlank(goodsInfo.getGoodsName())) {
-            throw new BusinessException("商品名称不能为空!");
-        }
-        if (StringUtils.isBlank(goodsInfo.getGoodsType())) {
-            throw new BusinessException("商品类型不能为空!");
-        }
-        if (StringUtils.isBlank(goodsInfo.getGoodsTaxRate())) {
-            throw new BusinessException("商品发票税率不能为空!");
-        }
-        if (StringUtils.isBlank(goodsInfo.getGoodsSpec())) {
-            throw new BusinessException("商品尺寸大小不能为空!");
-        }
         if (StringUtils.isBlank(goodsInfo.getUnit())) {
             throw new BusinessException("商品单位不能为空!");
         }
-        if (Objects.isNull(goodsInfo.getPriceRangeId())) {
+        if (Objects.isNull(goodsInfo.getPriceRangeId()) && Objects.equals(source, DictEnum.TORDER_SOURCE_1.getValue())) {
             throw new BusinessException("价格段id不能为空!");
         }
         if (Objects.isNull(goodsInfo.getUnitPrice()) || goodsInfo.getUnitPrice().compareTo(BigDecimal.ZERO) < 0) {
             throw new BusinessException("订单成交单价不能为空且不能为负数!");
         }
-        if (Objects.isNull(goodsInfo.getCollectionUnitId())) {
-            throw new BusinessException("收款单位id不能为空!");
-        }
-        if (StringUtils.isBlank(goodsInfo.getCollectionUnit())) {
-            throw new BusinessException("收款单位名称不能为空!");
-        }
 
         List<UnitInfo> unitInfos = param.getUnitInfo();
         if (CollectionUtils.isEmpty(unitInfos)) {