From cbabebff68c92af74be5740ae0414d9b901c2d5a Mon Sep 17 00:00:00 2001 From: johnniang Date: Sat, 4 May 2019 10:28:18 +0800 Subject: [PATCH] Refactor paging latest comments --- .../admin/api/JournalCommentController.java | 6 ++++-- .../controller/admin/api/PostCommentController.java | 12 ++++-------- .../controller/admin/api/SheetCommentController.java | 5 +++-- src/main/java/run/halo/app/service/ThemeService.java | 3 +++ .../halo/app/service/base/BaseCommentService.java | 2 +- .../app/service/impl/BaseCommentServiceImpl.java | 10 +++++++--- 6 files changed, 22 insertions(+), 16 deletions(-) diff --git a/src/main/java/run/halo/app/controller/admin/api/JournalCommentController.java b/src/main/java/run/halo/app/controller/admin/api/JournalCommentController.java index 8224279d7..195688f4b 100644 --- a/src/main/java/run/halo/app/controller/admin/api/JournalCommentController.java +++ b/src/main/java/run/halo/app/controller/admin/api/JournalCommentController.java @@ -43,8 +43,10 @@ public class JournalCommentController { } @GetMapping("latest") - public List listLatest(@RequestParam(name = "top", defaultValue = "10") int top) { - return journalCommentService.convertToWithJournalVo(journalCommentService.pageLatest(top).getContent()); + public List listLatest(@RequestParam(name = "top", defaultValue = "10") int top, + @RequestParam(name = "status", required = false) CommentStatus status) { + List latestComments = journalCommentService.pageLatest(top, status).getContent(); + return journalCommentService.convertToWithJournalVo(latestComments); } @PostMapping diff --git a/src/main/java/run/halo/app/controller/admin/api/PostCommentController.java b/src/main/java/run/halo/app/controller/admin/api/PostCommentController.java index 154c32506..bd83e0c2a 100644 --- a/src/main/java/run/halo/app/controller/admin/api/PostCommentController.java +++ b/src/main/java/run/halo/app/controller/admin/api/PostCommentController.java @@ -43,16 +43,12 @@ public class PostCommentController { @GetMapping("latest") @ApiOperation("Pages latest comments") - public List pageLatest(@RequestParam(name = "top", defaultValue = "10") int top) { - List content = postCommentService.pageLatest(top).getContent(); - return postCommentService.convertToWithPostVo(content); - } - - @GetMapping("latest/{status}") - @ApiOperation("Pages latest comments by status") public List pageLatest(@RequestParam(name = "top", defaultValue = "10") int top, - @PathVariable("status") CommentStatus status) { + @RequestParam(name = "status", required = false) CommentStatus status) { + // Get latest comment List content = postCommentService.pageLatest(top, status).getContent(); + + // Convert and return return postCommentService.convertToWithPostVo(content); } diff --git a/src/main/java/run/halo/app/controller/admin/api/SheetCommentController.java b/src/main/java/run/halo/app/controller/admin/api/SheetCommentController.java index 7ac48883b..4b648c8a1 100644 --- a/src/main/java/run/halo/app/controller/admin/api/SheetCommentController.java +++ b/src/main/java/run/halo/app/controller/admin/api/SheetCommentController.java @@ -41,8 +41,9 @@ public class SheetCommentController { } @GetMapping("latest") - public List listLatest(@RequestParam(name = "top", defaultValue = "10") int top) { - Page sheetCommentPage = sheetCommentService.pageLatest(top); + public List listLatest(@RequestParam(name = "top", defaultValue = "10") int top, + @RequestParam(name = "status", required = false) CommentStatus status) { + Page sheetCommentPage = sheetCommentService.pageLatest(top, status); return sheetCommentService.convertToWithPostVo(sheetCommentPage.getContent()); } diff --git a/src/main/java/run/halo/app/service/ThemeService.java b/src/main/java/run/halo/app/service/ThemeService.java index c1596974e..c187c1b0b 100644 --- a/src/main/java/run/halo/app/service/ThemeService.java +++ b/src/main/java/run/halo/app/service/ThemeService.java @@ -65,6 +65,9 @@ public interface ThemeService { */ String THEMES_CACHE_KEY = "themes"; + /** + * Custom sheet prefix. + */ String CUSTOM_SHEET_PREFIX = "sheet_"; /** diff --git a/src/main/java/run/halo/app/service/base/BaseCommentService.java b/src/main/java/run/halo/app/service/base/BaseCommentService.java index 01cb03613..a153bb97f 100644 --- a/src/main/java/run/halo/app/service/base/BaseCommentService.java +++ b/src/main/java/run/halo/app/service/base/BaseCommentService.java @@ -59,7 +59,7 @@ public interface BaseCommentService extends CrudSer * @return a page of comments */ @NonNull - Page pageLatest(int top, CommentStatus status); + Page pageLatest(int top, @Nullable CommentStatus status); /** * Pages comments. diff --git a/src/main/java/run/halo/app/service/impl/BaseCommentServiceImpl.java b/src/main/java/run/halo/app/service/impl/BaseCommentServiceImpl.java index fc1994a38..52e1b02a0 100644 --- a/src/main/java/run/halo/app/service/impl/BaseCommentServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/BaseCommentServiceImpl.java @@ -75,12 +75,16 @@ public abstract class BaseCommentServiceImpl extend @Override public Page pageLatest(int top) { - return listAll(ServiceUtils.buildLatestPageable(top)); + return pageLatest(top, null); } @Override - public Page pageLatest(int top,CommentStatus status){ - return baseCommentRepository.findAllByStatus(status,ServiceUtils.buildLatestPageable(top)); + public Page pageLatest(int top, CommentStatus status) { + if (status == null) { + return listAll(ServiceUtils.buildLatestPageable(top)); + } + + return baseCommentRepository.findAllByStatus(status, ServiceUtils.buildLatestPageable(top)); } @Override