1. 程式人生 > 其它 >文章列表展示

文章列表展示

檢視介面傳入的引數 有使用者id 關鍵字 文章狀態 釋出時間 分頁引數

業務邏輯:

  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;
    }