From 00a08d6cb62e8be2e81fca90371b14f02b561f84 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Mon, 28 Apr 2025 00:24:59 +0800 Subject: [PATCH] =?UTF-8?q?reactor=EF=BC=9A=E3=80=90MALL=E3=80=91=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E8=B4=AD=E7=89=A9=E8=BD=A6=E6=9F=A5=E8=AF=A2=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=8C=E8=BF=94=E5=9B=9E=E5=BA=93=E5=AD=98=E3=80=81?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E7=AD=89=E7=8A=B6=E6=80=81=EF=BC=8C=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E4=B8=8D=E8=87=AA=E5=8A=A8=E5=8F=96=E6=B6=88=20select?= =?UTF-8?q?ed=20=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/app/base/spu/AppProductSpuBaseRespVO.java | 8 ++++++-- .../yudao/module/trade/convert/cart/TradeCartConvert.java | 8 +++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/base/spu/AppProductSpuBaseRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/base/spu/AppProductSpuBaseRespVO.java index d30417818f..c7a3c1d9e7 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/base/spu/AppProductSpuBaseRespVO.java +++ b/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; + } diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/cart/TradeCartConvert.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/cart/TradeCartConvert.java index 83cd459542..fa5fccd54e 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/cart/TradeCartConvert.java +++ b/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); }