diff --git a/src/main/java/cc/ryanc/halo/model/entity/Post.java b/src/main/java/cc/ryanc/halo/model/entity/Post.java index 34f65ff2b..9d578614b 100644 --- a/src/main/java/cc/ryanc/halo/model/entity/Post.java +++ b/src/main/java/cc/ryanc/halo/model/entity/Post.java @@ -135,6 +135,9 @@ public class Post extends BaseEntity { super.prePersist(); id = null; editTime = getCreateTime(); + if (type == null) { + type = PostType.POST; + } } } diff --git a/src/main/java/cc/ryanc/halo/model/params/PostParam.java b/src/main/java/cc/ryanc/halo/model/params/PostParam.java index dc25a43d4..0b8ce2c9b 100644 --- a/src/main/java/cc/ryanc/halo/model/params/PostParam.java +++ b/src/main/java/cc/ryanc/halo/model/params/PostParam.java @@ -4,6 +4,7 @@ import cc.ryanc.halo.model.dto.base.InputConverter; import cc.ryanc.halo.model.entity.Post; import cc.ryanc.halo.model.enums.PostCreateFrom; import cc.ryanc.halo.model.enums.PostStatus; +import cc.ryanc.halo.model.enums.PostType; import cc.ryanc.halo.utils.HaloUtils; import cn.hutool.crypto.digest.BCrypt; import lombok.Data; @@ -70,6 +71,9 @@ public class PostParam implements InputConverter { post.setPassword(BCrypt.hashpw(password, BCrypt.gensalt())); } + // Set post type to + post.setType(PostType.POST); + return post; } @@ -89,5 +93,6 @@ public class PostParam implements InputConverter { if (StringUtils.isNotBlank(password)) { post.setPassword(BCrypt.hashpw(password, BCrypt.gensalt())); } + } } diff --git a/src/main/java/cc/ryanc/halo/service/impl/PostServiceImpl.java b/src/main/java/cc/ryanc/halo/service/impl/PostServiceImpl.java index cfe7b202c..9a33875e4 100644 --- a/src/main/java/cc/ryanc/halo/service/impl/PostServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/PostServiceImpl.java @@ -28,10 +28,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.function.Function; import java.util.function.Supplier; import java.util.stream.Collectors; @@ -135,13 +132,21 @@ public class PostServiceImpl extends AbstractCrudService implemen return postPage.map(post -> { PostListVO postListVO = new PostListVO().convertFrom(post); + Optional.ofNullable(tagListMap.get(post.getId())).orElseGet(LinkedList::new); + // Set tags - List tagOutputDTOS = tagListMap.get(post.getId()).stream().map(tag -> (TagOutputDTO) new TagOutputDTO().convertFrom(tag)).collect(Collectors.toList()); - postListVO.setTags(tagOutputDTOS); + postListVO.setTags(Optional.ofNullable(tagListMap.get(post.getId())) + .orElseGet(LinkedList::new) + .stream() + .map(tag -> new TagOutputDTO().convertFrom(tag)) + .collect(Collectors.toList())); // Set categories - List categoryOutputDTOS = categoryListMap.get(post.getId()).stream().map(category -> (CategoryOutputDTO) new CategoryOutputDTO().convertFrom(category)).collect(Collectors.toList()); - postListVO.setCategories(categoryOutputDTOS); + postListVO.setCategories(Optional.ofNullable(categoryListMap.get(post.getId())) + .orElseGet(LinkedList::new) + .stream() + .map(category -> new CategoryOutputDTO().convertFrom(category)) + .collect(Collectors.toList())); // Set comment count postListVO.setCommentCount(commentCountMap.getOrDefault(post.getId(), 0L)); diff --git a/src/main/java/cc/ryanc/halo/web/controller/admin/api/PostController.java b/src/main/java/cc/ryanc/halo/web/controller/admin/api/PostController.java index 17ddc182e..eeaf212b7 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/admin/api/PostController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/admin/api/PostController.java @@ -43,8 +43,12 @@ public class PostController { @GetMapping("status/{status}") @ApiOperation("Gets a page of post by post status") - public Page pageByStatus(@PathVariable(name = "status") PostStatus status, - @PageableDefault(sort = "updateTime", direction = DESC) Pageable pageable) { + public Page pageByStatus(@PathVariable(name = "status") PostStatus status, + @RequestParam(value = "more_info", required = false, defaultValue = "false") Boolean moreInfo, + @PageableDefault(sort = "updateTime", direction = DESC) Pageable pageable) { + if (moreInfo) { + return postService.pageListVoBy(status, PostType.POST, pageable); + } return postService.pageSimpleDtoByStatus(status, PostType.POST, pageable); }