文章列表展示
查看接口传入的参数 有用户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;
}
虽然道路是曲折的,但前途是光明的。