Przeglądaj źródła

reactor:【MALL】修改购物车查询接口,返回库存、状态等状态,默认不自动取消 selected 状态

YunaiV 1 rok temu
rodzic
commit
00a08d6cb6

+ 6 - 2
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/base/spu/AppProductSpuBaseRespVO.java

@@ -3,8 +3,6 @@ package cn.iocoder.yudao.module.trade.controller.app.base.spu;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
-import java.util.List;
-
 /**
  * 商品 SPU 基础 Response VO
  *
@@ -25,4 +23,10 @@ public class AppProductSpuBaseRespVO {
     @Schema(description = "商品分类编号", example = "1")
     private Long categoryId;
 
+    @Schema(description = "商品库存", requiredMode = Schema.RequiredMode.REQUIRED, example = "10000")
+    private Integer stock;
+
+    @Schema(description = "商品状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    private Integer status;
+
 }

+ 3 - 5
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/cart/TradeCartConvert.java

@@ -1,5 +1,6 @@
 package cn.iocoder.yudao.module.trade.convert.cart;
 
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuRespDTO;
 import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO;
 import cn.iocoder.yudao.module.product.enums.spu.ProductSpuStatusEnum;
@@ -33,21 +34,18 @@ public interface TradeCartConvert {
             cartVO.setId(cart.getId()).setCount(cart.getCount()).setSelected(cart.getSelected());
             ProductSpuRespDTO spu = spuMap.get(cart.getSpuId());
             ProductSkuRespDTO sku = skuMap.get(cart.getSkuId());
-            cartVO.setSpu(convert(spu)).setSku(convert(sku));
+            cartVO.setSpu(BeanUtils.toBean(spu, AppProductSpuBaseRespVO.class))
+                    .setSku(BeanUtils.toBean(sku, AppProductSkuBaseRespVO.class));
             // 如果 SPU 不存在,或者下架,或者库存不足,说明是无效的
             if (spu == null
                 || !ProductSpuStatusEnum.isEnable(spu.getStatus())
                 || spu.getStock() <= 0) {
-                cartVO.setSelected(false); // 强制设置成不可选中
                 invalidList.add(cartVO);
             } else {
-                // 虽然 SKU 可能也会不存在,但是可以通过购物车重新选择
                 validList.add(cartVO);
             }
         });
         return new AppCartListRespVO().setValidList(validList).setInvalidList(invalidList);
     }
-    AppProductSpuBaseRespVO convert(ProductSpuRespDTO spu);
-    AppProductSkuBaseRespVO convert(ProductSkuRespDTO sku);
 
 }