Commit 00a08d6cb62e8be2e81fca90371b14f02b561f84

Authored by YunaiV
1 parent ec76c1ae

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

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;
3 3 import io.swagger.v3.oas.annotations.media.Schema;
4 4 import lombok.Data;
5 5  
6   -import java.util.List;
7   -
8 6 /**
9 7 * 商品 SPU 基础 Response VO
10 8 *
... ... @@ -25,4 +23,10 @@ public class AppProductSpuBaseRespVO {
25 23 @Schema(description = "商品分类编号", example = "1")
26 24 private Long categoryId;
27 25  
  26 + @Schema(description = "商品库存", requiredMode = Schema.RequiredMode.REQUIRED, example = "10000")
  27 + private Integer stock;
  28 +
  29 + @Schema(description = "商品状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
  30 + private Integer status;
  31 +
28 32 }
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/cart/TradeCartConvert.java
1 1 package cn.iocoder.yudao.module.trade.convert.cart;
2 2  
  3 +import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
3 4 import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuRespDTO;
4 5 import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO;
5 6 import cn.iocoder.yudao.module.product.enums.spu.ProductSpuStatusEnum;
... ... @@ -33,21 +34,18 @@ public interface TradeCartConvert {
33 34 cartVO.setId(cart.getId()).setCount(cart.getCount()).setSelected(cart.getSelected());
34 35 ProductSpuRespDTO spu = spuMap.get(cart.getSpuId());
35 36 ProductSkuRespDTO sku = skuMap.get(cart.getSkuId());
36   - cartVO.setSpu(convert(spu)).setSku(convert(sku));
  37 + cartVO.setSpu(BeanUtils.toBean(spu, AppProductSpuBaseRespVO.class))
  38 + .setSku(BeanUtils.toBean(sku, AppProductSkuBaseRespVO.class));
37 39 // 如果 SPU 不存在,或者下架,或者库存不足,说明是无效的
38 40 if (spu == null
39 41 || !ProductSpuStatusEnum.isEnable(spu.getStatus())
40 42 || spu.getStock() <= 0) {
41   - cartVO.setSelected(false); // 强制设置成不可选中
42 43 invalidList.add(cartVO);
43 44 } else {
44   - // 虽然 SKU 可能也会不存在,但是可以通过购物车重新选择
45 45 validList.add(cartVO);
46 46 }
47 47 });
48 48 return new AppCartListRespVO().setValidList(validList).setInvalidList(invalidList);
49 49 }
50   - AppProductSpuBaseRespVO convert(ProductSpuRespDTO spu);
51   - AppProductSkuBaseRespVO convert(ProductSkuRespDTO sku);
52 50  
53 51 }
... ...