소스 검색

提货订单结算

cup 2 년 전
부모
커밋
70d24511b8

+ 17 - 7
mp-admin/src/main/java/com/qs/mp/web/controller/api/user/UserDeliverOrderController.java

@@ -237,18 +237,28 @@ public class UserDeliverOrderController extends BaseApiController {
         }
 
         List<Long> goodsIdList = prizeStorageList.stream().map(UserPrizeStorage::getGoodsId).collect(Collectors.toList());
-        int count = goodsService.count(new LambdaQueryWrapper<Goods>()
-            .in(Goods::getGoodsId, goodsIdList)
-            .eq(Goods::getType, GoodsTypeEnum.REAL_GOODS.getValue()));
-        // 比对是否所有商品都是实物商品
-        if (goodsIdList.size() != count) {
-            return AjaxResult.error("实物商品和卡密商品不能混合提货");
+        List<Goods> goodsList = goodsService.list(new LambdaQueryWrapper<Goods>()
+            .in(Goods::getGoodsId, goodsIdList));
+
+        Integer goodsType = goodsList.get(0).getType();
+        // 设置订单类型
+        if (GoodsTypeEnum.CARD_GOODS.getValue().equals(goodsType)) {
+            orderSettleVO.setOrderType(DeliverOrderTypeEnum.ORDINARY.getValue());
+        } else {
+            orderSettleVO.setOrderType(DeliverOrderTypeEnum.CARD.getValue());
+        }
+
+        for (Goods goods : goodsList) {
+            if (!goodsType.equals(goods.getType())) {
+                return AjaxResult.error("实物商品和卡密商品不能混合提货");
+            }
         }
 
+
         // 计算运费
         UserAddr userAddr = orderSettleVO.getAddr();
         // 地址不为空,并且是实物商品,计算运费
-        if (Objects.nonNull(userAddr) && count > 0) {
+        if (Objects.nonNull(userAddr) && GoodsTypeEnum.REAL_GOODS.getValue().equals(goodsType)) {
             // TODO: 4L上线需要调整,后期放开就是取的商品里配的运费模板id
             ShippingTemplateCalculateVO shippingTemplateCalculateVO = shippingTemplateRuleService.getShippingTemplateRuleByTemplateIdAndAreaInfo(
                 shippingTemplateId, userAddr.getProvinceId(), userAddr.getCityId());

+ 35 - 0
mp-common/src/main/java/com/qs/mp/common/enums/DeliverOrderTypeEnum.java

@@ -0,0 +1,35 @@
+package com.qs.mp.common.enums;
+
+import com.baomidou.mybatisplus.annotation.IEnum;
+import io.swagger.annotations.ApiModel;
+
+/**
+ * 提货订单类型枚举
+ * @author Cup
+ * @date 2022/8/3
+ */
+@ApiModel("提货订单类型枚举")
+public enum DeliverOrderTypeEnum implements IEnum<Integer> {
+
+    ORDINARY(1, "普通订单"),
+
+    CARD(2,"卡密订单");
+
+    private Integer value;
+
+    private String description;
+
+    @Override
+    public Integer getValue() {
+        return value;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    DeliverOrderTypeEnum(Integer value, String description) {
+        this.value = value;
+        this.description = description;
+    }
+}

+ 3 - 0
mp-service/src/main/java/com/qs/mp/user/domain/vo/DeliverOrderSettleVO.java

@@ -58,4 +58,7 @@ public class DeliverOrderSettleVO {
 
     @ApiModelProperty("小程序Id")
     private String appId;
+
+    @ApiModelProperty("订单类型:1实物订单,2卡密订单")
+    private Integer orderType;
 }