From 81d15b609a4588a4a36e4e0c30338f73e0a53da0 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Fri, 12 Sep 2025 17:27:43 +0800 Subject: [PATCH] feat(ai): 新增产品分类相关功能 --- src/main/java/cc/mrbird/febs/ai/controller/productCategory/ApiProductCategoryController.java | 24 ++++++++++++------------ src/main/java/cc/mrbird/febs/ai/enumerates/ProductCategoryLevelEnum.java | 20 ++++++++++++++++++++ src/main/java/cc/mrbird/febs/ai/service/impl/AiProductCategoryServiceImpl.java | 3 +++ src/main/resources/mapper/modules/AiProductCategoryMapper.xml | 3 +++ src/main/java/cc/mrbird/febs/ai/req/productCategory/ApiProductCategoryPageDto.java | 7 +++++-- 5 files changed, 43 insertions(+), 14 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/ai/controller/productCategory/ApiProductCategoryController.java b/src/main/java/cc/mrbird/febs/ai/controller/productCategory/ApiProductCategoryController.java index c29d398..34a2457 100644 --- a/src/main/java/cc/mrbird/febs/ai/controller/productCategory/ApiProductCategoryController.java +++ b/src/main/java/cc/mrbird/febs/ai/controller/productCategory/ApiProductCategoryController.java @@ -36,18 +36,7 @@ } - @ApiOperation(value = "分类列表", notes = "分类列表") - @ApiResponses({ - @ApiResponse(code = 200, message = "success", response = ApiProductCategoryVo.class) - }) - @PostMapping(value = "/list") - public FebsResponse list(@RequestBody @Validated ApiProductCategoryPageDto dto) { - - return aiProductCategoryService.categoryList(dto); - } - - - @ApiOperation(value = "全部分类", notes = "全部分类") + @ApiOperation(value = "全部父级分类", notes = "全部父级分类") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = ApiProductCategoryVo.class) }) @@ -56,4 +45,15 @@ return aiProductCategoryService.allList(); } + + + @ApiOperation(value = "子分类列表", notes = "子分类列表") + @ApiResponses({ + @ApiResponse(code = 200, message = "success", response = ApiProductCategoryVo.class) + }) + @PostMapping(value = "/list") + public FebsResponse list(@RequestBody @Validated ApiProductCategoryPageDto dto) { + + return aiProductCategoryService.categoryList(dto); + } } diff --git a/src/main/java/cc/mrbird/febs/ai/enumerates/ProductCategoryLevelEnum.java b/src/main/java/cc/mrbird/febs/ai/enumerates/ProductCategoryLevelEnum.java new file mode 100644 index 0000000..7deb61a --- /dev/null +++ b/src/main/java/cc/mrbird/febs/ai/enumerates/ProductCategoryLevelEnum.java @@ -0,0 +1,20 @@ +package cc.mrbird.febs.ai.enumerates; + +import lombok.Getter; + +@Getter +public enum ProductCategoryLevelEnum { + + LEVEL_TWO("二级菜单",2), + LEVEL_ONE("一级菜单",1); + + + private String name; + private Integer level; + + ProductCategoryLevelEnum(String name,Integer level) { + + this.level = level; + this.name = name; + } +} diff --git a/src/main/java/cc/mrbird/febs/ai/req/productCategory/ApiProductCategoryPageDto.java b/src/main/java/cc/mrbird/febs/ai/req/productCategory/ApiProductCategoryPageDto.java index 5e413ea..cffb9a9 100644 --- a/src/main/java/cc/mrbird/febs/ai/req/productCategory/ApiProductCategoryPageDto.java +++ b/src/main/java/cc/mrbird/febs/ai/req/productCategory/ApiProductCategoryPageDto.java @@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; /** @@ -21,7 +22,9 @@ @ApiModelProperty(value = "每页数量", example = "10") private Integer pageSize; - @ApiModelProperty(value = "查询名称", example = "123") - private String query; + + @NotBlank(message = "父分类不能为空") + @ApiModelProperty(value = "父分类ID", example = "123") + private String parentId; } diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductCategoryServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductCategoryServiceImpl.java index d2c7adb..2f0697e 100644 --- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductCategoryServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductCategoryServiceImpl.java @@ -1,6 +1,7 @@ package cc.mrbird.febs.ai.service.impl; import cc.mrbird.febs.ai.entity.AiProductCategory; +import cc.mrbird.febs.ai.enumerates.ProductCategoryLevelEnum; import cc.mrbird.febs.ai.mapper.AiProductCategoryMapper; import cc.mrbird.febs.ai.req.productCategory.ApiProductCategoryPageDto; import cc.mrbird.febs.ai.res.productCategory.ApiProductCategoryVo; @@ -50,6 +51,7 @@ List<ApiProductCategoryVo> list = new ArrayList<>(); LambdaQueryWrapper<AiProductCategory> query = Wrappers.lambdaQuery(AiProductCategory.class); + query.eq(AiProductCategory::getLevel, ProductCategoryLevelEnum.LEVEL_TWO.getLevel()); query.eq(AiProductCategory::getState, 1); query.eq(AiProductCategory::getHotState, 1); query.orderByAsc(AiProductCategory::getSort); @@ -94,6 +96,7 @@ List<ApiProductCategoryVo> list = new ArrayList<>(); LambdaQueryWrapper<AiProductCategory> query = Wrappers.lambdaQuery(AiProductCategory.class); query.eq(AiProductCategory::getState, 1); + query.eq(AiProductCategory::getLevel, ProductCategoryLevelEnum.LEVEL_ONE.getLevel()); query.orderByAsc(AiProductCategory::getSort); List<AiProductCategory> listByQuery = this.getListByQuery(query); if (CollUtil.isNotEmpty(listByQuery)){ diff --git a/src/main/resources/mapper/modules/AiProductCategoryMapper.xml b/src/main/resources/mapper/modules/AiProductCategoryMapper.xml index d1ae984..abed80a 100644 --- a/src/main/resources/mapper/modules/AiProductCategoryMapper.xml +++ b/src/main/resources/mapper/modules/AiProductCategoryMapper.xml @@ -11,6 +11,9 @@ from ai_product_category a where a.state = 1 + <if test="record.parentId != null and record.parentId != ''"> + and a.parent_id = #{record.parentId} + </if> order by a.sort asc </select> </mapper> \ No newline at end of file -- Gitblit v1.9.1