文章列表展示

查看接口传入的参数 有用户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 @ 2021-09-22 14:35  RainbowMagic  阅读(34)  评论(0)    收藏  举报