From ced98f2db7161ed77be6d84ad79ca17ec575d3be Mon Sep 17 00:00:00 2001 From: pbvfus8to <480171784@qq.com> Date: Wed, 18 Dec 2024 10:52:55 +0800 Subject: [PATCH] Update SkuController.java --- .../shop/api/controller/SkuController.java | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/yami-shop-api/src/main/java/com/yami/shop/api/controller/SkuController.java b/yami-shop-api/src/main/java/com/yami/shop/api/controller/SkuController.java index 217c29e..161e284 100644 --- a/yami-shop-api/src/main/java/com/yami/shop/api/controller/SkuController.java +++ b/yami-shop-api/src/main/java/com/yami/shop/api/controller/SkuController.java @@ -27,6 +27,9 @@ import org.springframework.web.bind.annotation.RestController; import java.util.List; /** + * SKU(库存保有单位,即商品规格)相关接口的控制器类,主要负责处理根据商品 ID 获取其对应的全部有效规格列表的请求, + * 通过调用服务层的方法查询数据库,并将查询结果转换为合适的 DTO 类型返回给前端使用。 + * * @author lanhai */ @RestController @@ -35,20 +38,29 @@ import java.util.List; @AllArgsConstructor public class SkuController { + // 通过构造函数注入的方式引入 SKU 服务层接口,方便后续调用其提供的业务逻辑方法来处理与 SKU 相关的操作,比如查询 SKU 列表等。 private final SkuService skuService; - - + /** + * 根据商品 ID 获取商品全部规格列表的方法,接收商品 ID 作为参数,使用 MyBatis Plus 的 LambdaQueryWrapper 构建查询条件, + * 从数据库中查询出该商品下状态为启用(这里假设状态值为 1 表示启用)且未被删除(假设 isDelete 为 0 表示未删除)的所有 SKU 记录, + * 然后将查询到的 SKU 实体列表转换为对应的 DTO 类型列表,最后将结果封装在 ServerResponseEntity 中返回给前端,方便前端展示和使用商品规格信息。 + * + * @param prodId 要查询其规格列表的商品 ID,通过请求参数传入,用于筛选出属于该商品的 SKU 记录,该参数对应数据库中 Sku 表的 prodId 字段。 + * @return 包含商品全部规格信息列表的 ServerResponseEntity,以 SkuDto 类型封装每个 SKU 的信息,若查询到符合条件的 SKU 则返回对应列表,否则返回空列表表示。 + */ @GetMapping("/getSkuList") - @Operation(summary = "通过prodId获取商品全部规格列表" , description = "通过prodId获取商品全部规格列表") - @Parameter(name = "prodId", description = "商品id" ) + @Operation(summary = "通过prodId获取商品全部规格列表", description = "通过prodId获取商品全部规格列表") + @Parameter(name = "prodId", description = "商品id") public ServerResponseEntity> getSkuListByProdId(Long prodId) { + // 使用 MyBatis Plus 的 LambdaQueryWrapper 构建查询条件,设置筛选条件为状态为启用、未被删除且属于指定商品 ID 的 SKU 记录。 List skus = skuService.list(new LambdaQueryWrapper() - .eq(Sku::getStatus, 1) - .eq(Sku::getIsDelete, 0) - .eq(Sku::getProdId, prodId) + .eq(Sku::getStatus, 1) + .eq(Sku::getIsDelete, 0) + .eq(Sku::getProdId, prodId) ); + // 使用 Hutool 的 BeanUtil 将查询到的 Sku 实体列表转换为 SkuDto 类型的列表,方便按照前端期望的格式返回数据,避免直接暴露实体对象的一些潜在问题。 List skuDtoList = BeanUtil.copyToList(skus, SkuDto.class); return ServerResponseEntity.success(skuDtoList); } -} +} \ No newline at end of file