Commit 00a08d6cb62e8be2e81fca90371b14f02b561f84
1 parent
ec76c1ae
reactor:【MALL】修改购物车查询接口,返回库存、状态等状态,默认不自动取消 selected 状态
Showing
2 changed files
with
9 additions
and
7 deletions
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 | } | ... | ... |