From f73d6c4342ef7f77dd59933a1b89102e093d7310 Mon Sep 17 00:00:00 2001 From: johnniang Date: Thu, 21 Mar 2019 11:06:34 +0800 Subject: [PATCH] Complete tag list api --- src/main/java/cc/ryanc/halo/service/TagService.java | 11 +++++++++++ .../cc/ryanc/halo/service/impl/TagServiceImpl.java | 13 +++++++++++++ .../web/controller/admin/api/TagController.java | 10 ++++++++-- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/main/java/cc/ryanc/halo/service/TagService.java b/src/main/java/cc/ryanc/halo/service/TagService.java index b5ba44a19..1cc7fe97a 100644 --- a/src/main/java/cc/ryanc/halo/service/TagService.java +++ b/src/main/java/cc/ryanc/halo/service/TagService.java @@ -3,6 +3,8 @@ package cc.ryanc.halo.service; import cc.ryanc.halo.model.dto.TagOutputDTO; import cc.ryanc.halo.model.entity.Tag; import cc.ryanc.halo.service.base.CrudService; +import org.springframework.data.domain.Sort; +import org.springframework.lang.NonNull; import java.util.List; @@ -21,4 +23,13 @@ public interface TagService extends CrudService { */ void remove(Integer id); + /** + * Lists all tag dtos. + * + * @param sort sort info must not be null + * @return a list of tag dto + */ + @NonNull + List listDtos(@NonNull Sort sort); + } diff --git a/src/main/java/cc/ryanc/halo/service/impl/TagServiceImpl.java b/src/main/java/cc/ryanc/halo/service/impl/TagServiceImpl.java index 78a487e52..05c14bed3 100644 --- a/src/main/java/cc/ryanc/halo/service/impl/TagServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/TagServiceImpl.java @@ -1,12 +1,18 @@ package cc.ryanc.halo.service.impl; import cc.ryanc.halo.exception.AlreadyExistsException; +import cc.ryanc.halo.model.dto.TagOutputDTO; import cc.ryanc.halo.model.entity.Tag; import cc.ryanc.halo.repository.TagRepository; import cc.ryanc.halo.service.TagService; import cc.ryanc.halo.service.base.AbstractCrudService; import lombok.extern.slf4j.Slf4j; +import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; +import org.springframework.util.Assert; + +import java.util.List; +import java.util.stream.Collectors; /** * TagService implementation class @@ -35,6 +41,13 @@ public class TagServiceImpl extends AbstractCrudService implements // TODO 删除标签,以及对应的文章关系 } + @Override + public List listDtos(Sort sort) { + Assert.notNull(sort, "Sort info must not be null"); + + return listAll(sort).stream().map(tag -> (TagOutputDTO) new TagOutputDTO().convertFrom(tag)).collect(Collectors.toList()); + } + @Override public Tag create(Tag tag) { // Check if the tag is exist diff --git a/src/main/java/cc/ryanc/halo/web/controller/admin/api/TagController.java b/src/main/java/cc/ryanc/halo/web/controller/admin/api/TagController.java index 044b85736..1b5adc2f4 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/admin/api/TagController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/admin/api/TagController.java @@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; +import java.util.stream.Collectors; /** * Tag controller. @@ -35,11 +36,16 @@ public class TagController { this.postTagService = postTagService; } - @GetMapping - public List listTags(@SortDefault(sort = "updateTime", direction = Sort.Direction.DESC) Sort sort) { + @GetMapping("/addition") + public List listTagsWithCount(@SortDefault(sort = "updateTime", direction = Sort.Direction.DESC) Sort sort) { return postTagService.listTagWithCountDtos(sort); } + @GetMapping + public List listTags(@SortDefault(sort = "updateTime", direction = Sort.Direction.DESC) Sort sort) { + return tagService.listDtos(sort); + } + @PostMapping public TagOutputDTO createTag(@Valid @RequestBody TagParam tagParam) { // Convert to tag