feat: support set archives page size. (#610)

pull/612/head
Ryan Wang 2020-03-02 14:41:16 +08:00 committed by GitHub
parent b70806960b
commit a9fedef8b2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 32 additions and 6 deletions

View File

@ -53,7 +53,7 @@ public class CategoryModel {
final Category category = categoryService.getBySlugOfNonNull(slug); final Category category = categoryService.getBySlugOfNonNull(slug);
CategoryDTO categoryDTO = categoryService.convertTo(category); CategoryDTO categoryDTO = categoryService.convertTo(category);
final Pageable pageable = PageRequest.of(page - 1, optionService.getPostPageSize(), Sort.by(DESC, "createTime")); final Pageable pageable = PageRequest.of(page - 1, optionService.getArchivesPageSize(), Sort.by(DESC, "createTime"));
Page<Post> postPage = postCategoryService.pagePostBy(category.getId(), PostStatus.PUBLISHED, pageable); Page<Post> postPage = postCategoryService.pagePostBy(category.getId(), PostStatus.PUBLISHED, pageable);
Page<PostListVO> posts = postService.convertToListVo(postPage); Page<PostListVO> posts = postService.convertToListVo(postPage);

View File

@ -163,7 +163,7 @@ public class PostModel {
} }
public String archives(Integer page, Model model) { public String archives(Integer page, Model model) {
int pageSize = optionService.getPostPageSize(); int pageSize = optionService.getArchivesPageSize();
Pageable pageable = PageRequest Pageable pageable = PageRequest
.of(page >= 1 ? page - 1 : page, pageSize, Sort.by(Sort.Direction.DESC, "createTime")); .of(page >= 1 ? page - 1 : page, pageSize, Sort.by(Sort.Direction.DESC, "createTime"));

View File

@ -53,7 +53,7 @@ public class TagModel {
final Tag tag = tagService.getBySlugOfNonNull(slug); final Tag tag = tagService.getBySlugOfNonNull(slug);
TagDTO tagDTO = tagService.convertTo(tag); TagDTO tagDTO = tagService.convertTo(tag);
final Pageable pageable = PageRequest.of(page - 1, optionService.getPostPageSize(), Sort.by(DESC, "createTime")); final Pageable pageable = PageRequest.of(page - 1, optionService.getArchivesPageSize(), Sort.by(DESC, "createTime"));
Page<Post> postPage = postTagService.pagePostsBy(tag.getId(), PostStatus.PUBLISHED, pageable); Page<Post> postPage = postTagService.pagePostsBy(tag.getId(), PostStatus.PUBLISHED, pageable);
Page<PostListVO> posts = postService.convertToListVo(postPage); Page<PostListVO> posts = postService.convertToListVo(postPage);

View File

@ -4,7 +4,8 @@ package run.halo.app.model.properties;
* Post properties. * Post properties.
* *
* @author johnniang * @author johnniang
* @date 4/1/19 * @author ryanwang
* @date 2019-04-01
*/ */
public enum PostProperties implements PropertyEnum { public enum PostProperties implements PropertyEnum {
@ -28,6 +29,11 @@ public enum PostProperties implements PropertyEnum {
*/ */
INDEX_PAGE_SIZE("post_index_page_size", Integer.class, "10"), INDEX_PAGE_SIZE("post_index_page_size", Integer.class, "10"),
/**
* Archives page size.
*/
ARCHIVES_PAGE_SIZE("post_archives_page_size", Integer.class, "10"),
/** /**
* Post index sort. * Post index sort.
*/ */

View File

@ -33,6 +33,8 @@ public interface OptionService extends CrudService<Option, Integer> {
int DEFAULT_POST_PAGE_SIZE = 10; int DEFAULT_POST_PAGE_SIZE = 10;
int DEFAULT_ARCHIVES_PAGE_SIZE = 10;
int DEFAULT_COMMENT_PAGE_SIZE = 10; int DEFAULT_COMMENT_PAGE_SIZE = 10;
int DEFAULT_RSS_PAGE_SIZE = 20; int DEFAULT_RSS_PAGE_SIZE = 20;
@ -299,6 +301,13 @@ public interface OptionService extends CrudService<Option, Integer> {
*/ */
int getPostPageSize(); int getPostPageSize();
/**
* Gets archives page size.
*
* @return page size
*/
int getArchivesPageSize();
/** /**
* Gets comment page size. * Gets comment page size.
* *

View File

@ -43,6 +43,7 @@ import java.util.stream.Collectors;
* OptionService implementation class * OptionService implementation class
* *
* @author ryanwang * @author ryanwang
* @author johnniang
* @date 2019-03-14 * @date 2019-03-14
*/ */
@Slf4j @Slf4j
@ -365,13 +366,23 @@ public class OptionServiceImpl extends AbstractCrudService<Option, Integer> impl
@Override @Override
public int getPostPageSize() { public int getPostPageSize() {
try { try {
return getByPropertyOrDefault(PostProperties.INDEX_PAGE_SIZE, Integer.class, DEFAULT_COMMENT_PAGE_SIZE); return getByPropertyOrDefault(PostProperties.INDEX_PAGE_SIZE, Integer.class, DEFAULT_POST_PAGE_SIZE);
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
log.error(PostProperties.INDEX_PAGE_SIZE.getValue() + " option is not a number format", e); log.error(PostProperties.INDEX_PAGE_SIZE.getValue() + " option is not a number format", e);
return DEFAULT_POST_PAGE_SIZE; return DEFAULT_POST_PAGE_SIZE;
} }
} }
@Override
public int getArchivesPageSize() {
try {
return getByPropertyOrDefault(PostProperties.ARCHIVES_PAGE_SIZE, Integer.class, DEFAULT_ARCHIVES_PAGE_SIZE);
} catch (NumberFormatException e) {
log.error(PostProperties.ARCHIVES_PAGE_SIZE.getValue() + " option is not a number format", e);
return DEFAULT_POST_PAGE_SIZE;
}
}
@Override @Override
public int getCommentPageSize() { public int getCommentPageSize() {
try { try {
@ -385,7 +396,7 @@ public class OptionServiceImpl extends AbstractCrudService<Option, Integer> impl
@Override @Override
public int getRssPageSize() { public int getRssPageSize() {
try { try {
return getByPropertyOrDefault(PostProperties.RSS_PAGE_SIZE, Integer.class, DEFAULT_COMMENT_PAGE_SIZE); return getByPropertyOrDefault(PostProperties.RSS_PAGE_SIZE, Integer.class, DEFAULT_RSS_PAGE_SIZE);
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
log.error(PostProperties.RSS_PAGE_SIZE.getValue() + " setting is not a number format", e); log.error(PostProperties.RSS_PAGE_SIZE.getValue() + " setting is not a number format", e);
return DEFAULT_RSS_PAGE_SIZE; return DEFAULT_RSS_PAGE_SIZE;