文章列表展示
查看接口传入的参数 有用户id 关键字 文章状态 发布时间 分页参数
业务逻辑:
- 判断分页参数是否存在 若不存在设置一个默认值
- 判断传入的条件是否存在 若存在则使用queryWrapper添加参数
- 构造分页参数 并进行分页查询
controller
- 首先判断分页参数是否存在 若不存在设置一个默认值
- 调用service方法进行查询 并将查询结果返回给前端
public GraceJSONResult queryMyList(String userId, String keyword, Integer status, String startDate, String endDate, Integer page, Integer pageSize) {
if (page == null) {
page = 0;
}
if (pageSize == null) {
pageSize = 10;
}
PageGridResult articles = articleService.queryArticleListByCondition(userId, keyword, status, startDate, endDate, page, pageSize);
return GraceJSONResult.ok(articles);
}
}
service
根据传入的参数构造查询条件 gt 大于 lt小于 最后根据创建时间进行排序 前端传入的文章状态为0表示查询全部文章 若为12表示查询审核中的文章
if (userId == null) {
GraceException.display(ResponseStatusEnum.USER_NOT_EXIST_ERROR);
}
QueryWrapper<Article> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("publish_user_id", userId);
if (StringUtils.isNotBlank(keyword)) {
queryWrapper.like("title", keyword);
}
if (status != null && status != 12 && status != 0) {
queryWrapper.eq("article_status", status);
}
if (status != null && status == 12) {
queryWrapper.eq("article_status", ArticleStatusEnums.auditing.getType());
}
if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)) {
queryWrapper.gt("create_time", startDate);
queryWrapper.lt("create_time", endDate);
}
queryWrapper.orderByAsc("create_time");
queryWrapper.eq("is_delete", YesOrNoEnums.NO.getType());
抽出pageGaidResult方法来 因为这个方法会被多次调用 进行分页查询并进行返回
@NotNull
private PageGridResult getPageGridResult(Integer page, Integer pageSize, QueryWrapper<Article> queryWrapper) {
Page<Article> articlePage = new Page<>(page, pageSize);
articleMapper.selectPage(articlePage, queryWrapper);
PageGridResult pageGridResult = new PageGridResult();
pageGridResult.setPage(articlePage.getCurrent());
pageGridResult.setRows(articlePage.getRecords());
pageGridResult.setTotal(articlePage.getTotal());
pageGridResult.setRecords(articlePage.getTotal());
return pageGridResult;
}
虽然道路是曲折的,但前途是光明的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律