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