『博客开发日记』之分类列表的实现

本文最后更新于 2025年11月26日 晚上

分类列表的实现


分类列表的需求

页面上需要展示分类列表,用户可以点击具体的分类查看该分类下的文章列表

注意:

①要求只展示有发布正式文章的分类

②必须是正常状态的分类

分类列表接口分析设计

在前端分类列表中需要返回的数据应该有:

分类名称:前端显示用

分类id:用户点击分类名称时需要根据分类id来进行跳转到相应的分类列表

代码实现

一键生成对应类于接口

首先要实现这个功能,就会涉及到数据库的多表查询,会用到先前数据库中的article表

先一键生成对应的类和接口


然后在CategoryServiceImpl中编写需要实现的业务代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
@Service("categoryService")
public class CategoryServiceImpl extends ServiceImpl<CategoryMapper, Category> implements CategoryService {

@Autowired
private ArticleService articleService;

@Override
public ResponseResult getCategoryList()
{
//先去查询文章表状态为已发布的
LambdaQueryWrapper<Article> articleWrapper = new LambdaQueryWrapper<>();
articleWrapper.eq(Article::getStatus, SystemConstants.ARTICLE_STATUS_NORMAL);//查询文章状态
List<Article> articleList = articleService.list(articleWrapper);
//获取文章的分类id,并且去重
Set<Long> categoryId = articleList.stream()
.map(Article::getCategoryId)
.collect(Collectors.toSet());
//查询分类表
List<Category> categories = listByIds(categoryId);
//保证是正常状态的分类
categories = categories.stream()
.filter(category -> SystemConstants.STATUS_NORMAL.equals(category.getStatus()))
.collect(Collectors.toList());
// 封装成Vo
final List<CategoryVo> categoryVos = BeanCopyUtils.copyBeanList(categories, CategoryVo.class);
return ResponseResult.okResult(categoryVos);
}
}

最后封装CategoryVo类


测试接口成功


前端返回数据成功



PS:该系列只做为作者学习开发项目做的笔记用

不一定符合读者来学习,仅供参考


预告

后续会记录博客的开发过程

每次学习会做一份笔记来进行发表

“一花一世界,一叶一菩提”


版权所有 © 2025 云梦泽
欢迎访问我的个人网站:https://hgt12.github.io/


『博客开发日记』之分类列表的实现
http://example.com/2025/11/26/『博客开发日记』之分类列表的实现/
作者
云梦泽
发布于
2025年11月26日
更新于
2025年11月26日
许可协议