reactor:【MALL】修改购物车查询接口,返回库存、状态等状态,默认不自动取消 selected 状态
This commit is contained in:
parent
ec76c1ae6e
commit
00a08d6cb6
|
@ -3,8 +3,6 @@ package cn.iocoder.yudao.module.trade.controller.app.base.spu;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 商品 SPU 基础 Response VO
|
* 商品 SPU 基础 Response VO
|
||||||
*
|
*
|
||||||
|
@ -25,4 +23,10 @@ public class AppProductSpuBaseRespVO {
|
||||||
@Schema(description = "商品分类编号", example = "1")
|
@Schema(description = "商品分类编号", example = "1")
|
||||||
private Long categoryId;
|
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;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package cn.iocoder.yudao.module.trade.convert.cart;
|
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.sku.dto.ProductSkuRespDTO;
|
||||||
import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO;
|
import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO;
|
||||||
import cn.iocoder.yudao.module.product.enums.spu.ProductSpuStatusEnum;
|
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());
|
cartVO.setId(cart.getId()).setCount(cart.getCount()).setSelected(cart.getSelected());
|
||||||
ProductSpuRespDTO spu = spuMap.get(cart.getSpuId());
|
ProductSpuRespDTO spu = spuMap.get(cart.getSpuId());
|
||||||
ProductSkuRespDTO sku = skuMap.get(cart.getSkuId());
|
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 不存在,或者下架,或者库存不足,说明是无效的
|
// 如果 SPU 不存在,或者下架,或者库存不足,说明是无效的
|
||||||
if (spu == null
|
if (spu == null
|
||||||
|| !ProductSpuStatusEnum.isEnable(spu.getStatus())
|
|| !ProductSpuStatusEnum.isEnable(spu.getStatus())
|
||||||
|| spu.getStock() <= 0) {
|
|| spu.getStock() <= 0) {
|
||||||
cartVO.setSelected(false); // 强制设置成不可选中
|
|
||||||
invalidList.add(cartVO);
|
invalidList.add(cartVO);
|
||||||
} else {
|
} else {
|
||||||
// 虽然 SKU 可能也会不存在,但是可以通过购物车重新选择
|
|
||||||
validList.add(cartVO);
|
validList.add(cartVO);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return new AppCartListRespVO().setValidList(validList).setInvalidList(invalidList);
|
return new AppCartListRespVO().setValidList(validList).setInvalidList(invalidList);
|
||||||
}
|
}
|
||||||
AppProductSpuBaseRespVO convert(ProductSpuRespDTO spu);
|
|
||||||
AppProductSkuBaseRespVO convert(ProductSkuRespDTO sku);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue