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