diff --git a/src/main/java/run/halo/app/controller/content/api/CategoryController.java b/src/main/java/run/halo/app/controller/content/api/CategoryController.java index 3ba42d4cd..eb0d2db98 100644 --- a/src/main/java/run/halo/app/controller/content/api/CategoryController.java +++ b/src/main/java/run/halo/app/controller/content/api/CategoryController.java @@ -57,7 +57,7 @@ public class CategoryController { @GetMapping("{slug}/posts") @ApiOperation("Lists posts by category slug") public Page listPostsBy(@PathVariable("slug") String slug, - @PageableDefault(sort = "updateTime", direction = DESC) Pageable pageable) { + @PageableDefault(sort = {"topPriority", "updateTime"}, direction = DESC) Pageable pageable) { // Get category by slug Category category = categoryService.getBySlugOfNonNull(slug); diff --git a/src/main/java/run/halo/app/controller/content/api/TagController.java b/src/main/java/run/halo/app/controller/content/api/TagController.java index 0eebafb33..3a98dd592 100644 --- a/src/main/java/run/halo/app/controller/content/api/TagController.java +++ b/src/main/java/run/halo/app/controller/content/api/TagController.java @@ -60,7 +60,7 @@ public class TagController { @GetMapping("{slug}/posts") @ApiOperation("Lists posts by tag slug") public Page listPostsBy(@PathVariable("slug") String slug, - @PageableDefault(sort = "updateTime", direction = DESC) Pageable pageable) { + @PageableDefault(sort = {"topPriority", "updateTime"}, direction = DESC) Pageable pageable) { // Get tag by slug Tag tag = tagService.getBySlugOfNonNull(slug); diff --git a/src/main/java/run/halo/app/controller/content/model/CategoryModel.java b/src/main/java/run/halo/app/controller/content/model/CategoryModel.java index b7161cba5..93e167df4 100644 --- a/src/main/java/run/halo/app/controller/content/model/CategoryModel.java +++ b/src/main/java/run/halo/app/controller/content/model/CategoryModel.java @@ -69,7 +69,9 @@ public class CategoryModel { final Category category = categoryService.getBySlugOfNonNull(slug); CategoryDTO categoryDTO = categoryService.convertTo(category); - final Pageable pageable = PageRequest.of(page - 1, optionService.getArchivesPageSize(), Sort.by(DESC, "createTime")); + final Pageable pageable = PageRequest.of(page - 1, + optionService.getArchivesPageSize(), + Sort.by(DESC, "topPriority", "createTime")); Page postPage = postCategoryService.pagePostBy(category.getId(), PostStatus.PUBLISHED, pageable); Page posts = postService.convertToListVo(postPage); diff --git a/src/main/java/run/halo/app/model/dto/post/BasePostSimpleDTO.java b/src/main/java/run/halo/app/model/dto/post/BasePostSimpleDTO.java index b9ed8175e..1337e41de 100644 --- a/src/main/java/run/halo/app/model/dto/post/BasePostSimpleDTO.java +++ b/src/main/java/run/halo/app/model/dto/post/BasePostSimpleDTO.java @@ -29,4 +29,8 @@ public class BasePostSimpleDTO extends BasePostMinimalDTO { private Integer topPriority; private Long likes; + + public boolean isTopped() { + return this.topPriority != null && this.topPriority > 0; + } }