文章列表展示

查看接口传入的参数 有用户id 关键字 文章状态 发布时间 分页参数
image

业务逻辑:

  1. 判断分页参数是否存在 若不存在设置一个默认值
  2. 判断传入的条件是否存在 若存在则使用queryWrapper添加参数
  3. 构造分页参数 并进行分页查询

controller

  1. 首先判断分页参数是否存在 若不存在设置一个默认值
  2. 调用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;
    }
posted @   RainbowMagic  阅读(25)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示