From c9bfd11cd5320d6788b9545f41994d52175b5caa Mon Sep 17 00:00:00 2001 From: johnniang Date: Thu, 25 Apr 2019 20:10:07 +0800 Subject: [PATCH] Complete journal comment list api --- .../admin/api/JournalController.java | 30 ++++++++++++++++++- .../admin/{ => api}/MainController.java | 2 +- .../run/halo/app/model/dto/CommentDTO.java | 18 ----------- .../app/model/dto/base/InputConverter.java | 4 +-- .../app/model/params/BaseCommentParam.java | 2 +- 5 files changed, 33 insertions(+), 23 deletions(-) rename src/main/java/run/halo/app/controller/admin/{ => api}/MainController.java (88%) delete mode 100644 src/main/java/run/halo/app/model/dto/CommentDTO.java diff --git a/src/main/java/run/halo/app/controller/admin/api/JournalController.java b/src/main/java/run/halo/app/controller/admin/api/JournalController.java index 82121c78f..29fc9dd3b 100644 --- a/src/main/java/run/halo/app/controller/admin/api/JournalController.java +++ b/src/main/java/run/halo/app/controller/admin/api/JournalController.java @@ -2,7 +2,10 @@ package run.halo.app.controller.admin.api; import io.swagger.annotations.ApiOperation; import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; +import org.springframework.data.web.SortDefault; import org.springframework.web.bind.annotation.*; import run.halo.app.model.dto.BaseCommentDTO; import run.halo.app.model.dto.JournalDTO; @@ -11,12 +14,17 @@ import run.halo.app.model.entity.Journal; import run.halo.app.model.entity.JournalComment; import run.halo.app.model.params.JournalCommentParam; import run.halo.app.model.params.JournalParam; +import run.halo.app.model.vo.BaseCommentVO; +import run.halo.app.model.vo.BaseCommentWithParentVO; import run.halo.app.service.JournalCommentService; import run.halo.app.service.JournalService; +import run.halo.app.service.OptionService; import javax.validation.Valid; import java.util.List; +import static org.springframework.data.domain.Sort.Direction.DESC; + /** * Journal controller. * @@ -31,10 +39,14 @@ public class JournalController { private final JournalCommentService journalCommentService; + private final OptionService optionService; + public JournalController(JournalService journalService, - JournalCommentService journalCommentService) { + JournalCommentService journalCommentService, + OptionService optionService) { this.journalService = journalService; this.journalCommentService = journalCommentService; + this.optionService = optionService; } @GetMapping @@ -64,4 +76,20 @@ public class JournalController { JournalComment journalComment = journalCommentService.createBy(journalCommentParam); return journalCommentService.convertTo(journalComment); } + + @GetMapping("{journalId:\\d+}/comments/tree_view") + @ApiOperation("Lists comments with tree view") + public Page listCommentTree(@PathVariable("journalId") Integer journalId, + @RequestParam(name = "page", required = false, defaultValue = "0") int page, + @SortDefault(sort = "createTime", direction = DESC) Sort sort) { + return journalCommentService.pageVosBy(journalId, PageRequest.of(page, optionService.getCommentPageSize(), sort)); + } + + @GetMapping("{journalId:\\d+}/comments/list_view") + @ApiOperation("Lists comment with list view") + public Page listComments(@PathVariable("journalId") Integer journalId, + @RequestParam(name = "page", required = false, defaultValue = "0") int page, + @SortDefault(sort = "createTime", direction = DESC) Sort sort) { + return journalCommentService.pageWithParentVoBy(journalId, PageRequest.of(page, optionService.getCommentPageSize(), sort)); + } } diff --git a/src/main/java/run/halo/app/controller/admin/MainController.java b/src/main/java/run/halo/app/controller/admin/api/MainController.java similarity index 88% rename from src/main/java/run/halo/app/controller/admin/MainController.java rename to src/main/java/run/halo/app/controller/admin/api/MainController.java index d87ad6f4e..7316d90cf 100644 --- a/src/main/java/run/halo/app/controller/admin/MainController.java +++ b/src/main/java/run/halo/app/controller/admin/api/MainController.java @@ -1,4 +1,4 @@ -package run.halo.app.controller.admin; +package run.halo.app.controller.admin.api; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; diff --git a/src/main/java/run/halo/app/model/dto/CommentDTO.java b/src/main/java/run/halo/app/model/dto/CommentDTO.java deleted file mode 100644 index 2c28846bd..000000000 --- a/src/main/java/run/halo/app/model/dto/CommentDTO.java +++ /dev/null @@ -1,18 +0,0 @@ -package run.halo.app.model.dto; - -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -/** - * Comment output dto. - * - * @author johnniang - */ -@Data -@ToString(callSuper = true) -@EqualsAndHashCode(callSuper = true) -@Deprecated -public class CommentDTO extends BaseCommentDTO { - -} diff --git a/src/main/java/run/halo/app/model/dto/base/InputConverter.java b/src/main/java/run/halo/app/model/dto/base/InputConverter.java index 92185f952..d013e5762 100644 --- a/src/main/java/run/halo/app/model/dto/base/InputConverter.java +++ b/src/main/java/run/halo/app/model/dto/base/InputConverter.java @@ -22,7 +22,7 @@ public interface InputConverter { @SuppressWarnings("unchecked") default DOMAIN convertTo() { // Get parameterized type - ParameterizedType currentType = getParameterizedType(); + ParameterizedType currentType = parameterizedType(); // Assert not equal Objects.requireNonNull(currentType, "Cannot fetch actual type because parameterized type is null"); @@ -47,7 +47,7 @@ public interface InputConverter { * @return parameterized type or null */ @Nullable - default ParameterizedType getParameterizedType() { + default ParameterizedType parameterizedType() { return ReflectionUtils.getParameterizedType(InputConverter.class, this.getClass()); } } diff --git a/src/main/java/run/halo/app/model/params/BaseCommentParam.java b/src/main/java/run/halo/app/model/params/BaseCommentParam.java index 8add9165a..58543e5ed 100644 --- a/src/main/java/run/halo/app/model/params/BaseCommentParam.java +++ b/src/main/java/run/halo/app/model/params/BaseCommentParam.java @@ -42,7 +42,7 @@ public abstract class BaseCommentParam implements InputConverter