feat(category): 增加按祖级 ID 查询分类信息功能- 新增 categoryByAncestors 接口,根据祖级 ID 获取分类信息列表

- 在 TzCategory 模型中添加 ancestors 字段,用于存储祖级列表
- 在 TzCategoryService接口中添加 listByAncestors 方法
- 在 TzCategoryServiceImpl 中实现 listByAncestors 方法
- 更新相关 BO 和 VO 类,支持 ancestors 字段
This commit is contained in:
清晨
2025-05-12 16:06:05 +08:00
parent 1d180d33a9
commit 5011984747
6 changed files with 40 additions and 12 deletions

View File

@@ -215,13 +215,21 @@ public class ApiProdController {
} }
@GetMapping("/categoryInfo") @GetMapping("/categoryInfo")
@Operation(summary = "分类信息列表", description = "获取所有的产品分类信息顶级分类的parentId为0,默认为顶级分类") @Operation(summary = "根据父级ID获取分类信息列表", description = "获取所有的产品分类信息顶级分类的parentId为0,默认为顶级分类")
@Parameter(name = "parentId", description = "分类ID") @Parameter(name = "parentId", description = "分类ID")
public ServerResponseEntity<List<TzCategoryVo>> categoryInfo(@RequestParam(value = "parentId", defaultValue = "0") Long parentId) { public ServerResponseEntity<List<TzCategoryVo>> categoryInfo(@RequestParam(value = "parentId", defaultValue = "0") Long parentId) {
List<TzCategoryVo> categories = categoryService.listByParentId(parentId); List<TzCategoryVo> categories = categoryService.listByParentId(parentId);
return ServerResponseEntity.success(categories); return ServerResponseEntity.success(categories);
} }
@GetMapping("/categoryByAncestors")
@Operation(summary = "根据祖级ID获取分类信息列表", description = "获取所有的产品分类信息顶级分类的ancestors为0,默认为顶级分类")
@Parameter(name = "ancestors", description = "祖级ID")
public ServerResponseEntity<List<TzCategoryVo>> categoryByAncestors(@RequestParam(value = "ancestors", defaultValue = "0") Long ancestors) {
List<TzCategoryVo> categories = categoryService.listByAncestors(ancestors);
return ServerResponseEntity.success(categories);
}
@PostMapping("/searchProdPage") @PostMapping("/searchProdPage")
@Operation(summary = "分页排序搜索商品", description = "根据商品名搜索") @Operation(summary = "分页排序搜索商品", description = "根据商品名搜索")
@Parameters({@Parameter(name = "categoryId", description = "分类ID"),@Parameter(name = "prodName", description = "商品名"), @Parameter(name = "floor", description = "是否特价 1是 2", required = true),@Parameter(name = "sort", description = "排序(0综合 1价格排序 2热门 3新品)", required = true), @Parameter(name = "orderBy", description = "排序(0升序 1降序)--sort选择1时必传")}) @Parameters({@Parameter(name = "categoryId", description = "分类ID"),@Parameter(name = "prodName", description = "商品名"), @Parameter(name = "floor", description = "是否特价 1是 2", required = true),@Parameter(name = "sort", description = "排序(0综合 1价格排序 2热门 3新品)", required = true), @Parameter(name = "orderBy", description = "排序(0升序 1降序)--sort选择1时必传")})

View File

@@ -30,9 +30,9 @@ public class TzCategory extends BaseEntity {
private Long categoryId; private Long categoryId;
/** /**
* 店铺ID * 祖级列表
*/ */
private Long shopId; private String ancestors;
/** /**
* 父节点 * 父节点

View File

@@ -30,9 +30,9 @@ public class TzCategoryBo extends BaseEntity {
private Long categoryId; private Long categoryId;
/** /**
* 店铺ID * 祖级列表
*/ */
private Long shopId; private String ancestors;
/** /**
* 父节点 * 父节点

View File

@@ -33,10 +33,10 @@ public class TzCategoryVo implements Serializable {
private Long categoryId; private Long categoryId;
/** /**
* 店铺ID * 祖级列表
*/ */
@ExcelProperty(value = "店铺ID") @ExcelProperty(value = "祖级列表")
private Long shopId; private String ancestors;
/** /**
* 父节点 * 父节点

View File

@@ -68,4 +68,11 @@ public interface ITzCategoryService {
* @return * @return
*/ */
List<TzCategoryVo> categoryAll(); List<TzCategoryVo> categoryAll();
/**
* 分类信息列表
* @param ancestors
* @return
*/
List<TzCategoryVo> listByAncestors(Long ancestors);
} }

View File

@@ -75,6 +75,10 @@ public class TzCategoryServiceImpl implements ITzCategoryService {
bo.setGrade(category.getGrade()+1); bo.setGrade(category.getGrade()+1);
category.setSubset(1); category.setSubset(1);
baseMapper.updateById(category); baseMapper.updateById(category);
bo.setAncestors(category.getAncestors()+StringUtils.SEPARATOR+category.getCategoryId());
}else{
bo.setAncestors("0");
} }
bo.setRecTime(new Date()); bo.setRecTime(new Date());
TzCategory add = MapstructUtils.convert(bo, TzCategory.class); TzCategory add = MapstructUtils.convert(bo, TzCategory.class);
@@ -94,6 +98,10 @@ public class TzCategoryServiceImpl implements ITzCategoryService {
bo.setGrade(category.getGrade()+1); bo.setGrade(category.getGrade()+1);
category.setSubset(1); category.setSubset(1);
baseMapper.updateById(category); baseMapper.updateById(category);
bo.setAncestors(category.getAncestors()+StringUtils.SEPARATOR+category.getCategoryId());
}else{
bo.setAncestors("0");
} }
TzCategory update = MapstructUtils.convert(bo, TzCategory.class); TzCategory update = MapstructUtils.convert(bo, TzCategory.class);
return baseMapper.updateById(update) > 0; return baseMapper.updateById(update) > 0;
@@ -113,19 +121,24 @@ public class TzCategoryServiceImpl implements ITzCategoryService {
/** /**
* 根据父级ID查询子类信息 * 根据父级ID查询子类信息
*
* @param parentId * @param parentId
* @return
*/ */
@Override @Override
public List<TzCategoryVo> listByParentId(Long parentId) { public List<TzCategoryVo> listByParentId(Long parentId) {
return baseMapper.selectVoList(new LambdaQueryWrapper<TzCategory>().eq(TzCategory::getParentId, parentId).eq(TzCategory::getStatus,1).eq(TzCategory::getSubset,1)); return baseMapper.selectVoList(new LambdaQueryWrapper<TzCategory>().eq(TzCategory::getParentId, parentId).eq(TzCategory::getStatus,1).eq(TzCategory::getSubset,1));
} }
/**
* 分类信息列表
* @param ancestors
*/
@Override
public List<TzCategoryVo> listByAncestors(Long ancestors) {
return baseMapper.selectVoList(new LambdaQueryWrapper<TzCategory>().like(TzCategory::getAncestors, ancestors).eq(TzCategory::getStatus,1).eq(TzCategory::getSubset,1));
}
/** /**
* 全部分类信息列表 * 全部分类信息列表
*
* @return
*/ */
@Override @Override
public List<TzCategoryVo> categoryAll() { public List<TzCategoryVo> categoryAll() {