refactor: 分页查询

通过数据库进行分页查询而非查询全部然后分页
This commit is contained in:
禾几海
2021-03-16 15:38:49 +08:00
parent 9c580cf6d9
commit 81b4851e42
2 changed files with 33 additions and 7 deletions

View File

@@ -279,21 +279,20 @@ public class ArticleServiceImpl implements ArticleService {
*/ */
@Override @Override
public PageData<ArticleModel> adminArticles(int count, int page, Boolean deleted) { public PageData<ArticleModel> adminArticles(int count, int page, Boolean deleted) {
PageHelper.startPage(page, count);
List<Article> articleList = articleMapper.findAll(); List<Article> articleList = articleMapper.findAll();
PageData<ArticleModel> pageData = new PageData<>(null, 0, count, page); PageData<ArticleModel> pageData = new PageData<>(new PageInfo<>(articleList));
List<Article> collect; List<Article> collect;
if (deleted != null) { if (deleted != null) {
collect = articleList.stream().filter(article -> article.isDeleted() == deleted).collect(Collectors.toList()); collect = articleList.stream().filter(article -> article.isDeleted() == deleted).collect(Collectors.toList());
} else { } else {
collect = articleList; collect = articleList;
} }
pageData.setTotal(collect.size());
List<ArticleModel> articleModels = collect.stream() List<ArticleModel> articleModels = collect.stream()
.peek(article -> article.setMdContent(null)) .peek(article -> article.setMdContent(null))
.map(ModalTrans::article) .map(ModalTrans::article)
.skip((page - 1) * count)
.limit(count)
.collect(Collectors.toList()); .collect(Collectors.toList());
pageData.setList(articleModels); pageData.setList(articleModels);

View File

@@ -181,9 +181,36 @@
<select id="findAll" resultMap="articleViewResultMap"> <select id="findAll" resultMap="articleViewResultMap">
select * select article.a_id as articleId,
from articleView article.a_title as title,
order by articleId desc article.a_summary as summary,
article.a_md_content as mdContent,
article.a_url as url,
article.a_is_original as isOriginal,
article.a_reading_number as readingCount,
article.a_like as likeCount,
article.a_dislike as dislikeCount,
article.a_publish_date as publishDate,
article.a_update_date as updateDate,
article.a_is_open as isOpen,
category.t_id as categoryId,
category.t_name as categoryName,
user.u_id as authorId,
user.u_email as userEmail,
user.u_avatar as userAvatar,
user.u_display_name as userDisplayName,
article.is_delete as isDelete
from article,
tag_category as category,
article_tag,
user
where article.is_delete = false
and article.a_id = article_tag.a_id
and article.a_category_id = category.t_id
and category.is_category = true
and article.a_author_id = user.u_id
group by article.a_id
order by article.a_id desc
</select> </select>