diff --git a/src/main/java/run/halo/app/controller/content/ContentArchiveController.java b/src/main/java/run/halo/app/controller/content/ContentArchiveController.java index 5da4b1554..f54db97a5 100644 --- a/src/main/java/run/halo/app/controller/content/ContentArchiveController.java +++ b/src/main/java/run/halo/app/controller/content/ContentArchiveController.java @@ -163,15 +163,15 @@ public class ContentArchiveController { List categories = postCategoryService.listCategoriesBy(post.getId()); List tags = postTagService.listTagsBy(post.getId()); - List postMetas = postMetaService.listPostMetasBy(post.getId()); + List metas = postMetaService.listPostMetasBy(post.getId()); Page comments = postCommentService.pageVosBy(post.getId(), PageRequest.of(cp, optionService.getCommentPageSize(), sort)); model.addAttribute("is_post", true); model.addAttribute("post", postService.convertToDetailVo(post)); model.addAttribute("categories", categories); - model.addAttribute("postMetas", postMetas); model.addAttribute("tags", tags); + model.addAttribute("metas", postMetaService.convertToMap(metas)); model.addAttribute("comments", comments); if (preview) { diff --git a/src/main/java/run/halo/app/service/PostMetaService.java b/src/main/java/run/halo/app/service/PostMetaService.java index 14632514d..c66607db0 100644 --- a/src/main/java/run/halo/app/service/PostMetaService.java +++ b/src/main/java/run/halo/app/service/PostMetaService.java @@ -1,7 +1,6 @@ package run.halo.app.service; import org.springframework.lang.NonNull; -import org.springframework.lang.Nullable; import run.halo.app.model.dto.PostMetaDTO; import run.halo.app.model.entity.PostMeta; import run.halo.app.service.base.BaseMetaService; @@ -19,17 +18,55 @@ import java.util.Set; * @date 2019-08-04 */ public interface PostMetaService extends BaseMetaService { - List createOrUpdateByPostId(Integer id, Set postMetas); - List listPostMetasBy(Integer id); + /** + * Creates by post metas and post id. + * + * @param postId post id must not be null + * @param postMetas post metas must not be null + * @return a list of post meta + */ + List createOrUpdateByPostId(@NonNull Integer postId, @NonNull Set postMetas); - List removeByPostId(Integer postId); + /** + * Lists post metas by post id. + * + * @param postId post id must not be null + * @return a list of post meta + */ + List listPostMetasBy(@NonNull Integer postId); - Map> listPostMetaListMap(Set postIds); + /** + * Remove post metas by post id. + * + * @param postId post id must not be null + * @return a list of post meta + */ + List removeByPostId(@NonNull Integer postId); + /** + * Lists post metas as map. + * + * @param postIds post ids must not be null + * @return a map of post meta + */ + Map> listPostMetaAsMap(@NonNull Set postIds); + + /** + * Convert PostMeta to PostMetaDTO. + * + * @param postMeta post meta must not be null + * @return post meta vo + */ @NonNull PostMetaDTO convertTo(@NonNull PostMeta postMeta); + /** + * Convert list of PostMeta to list of PostMetaDTO. + * + * @param postMetaList post meta list must not be null + * @return a list of post meta dto + */ @NonNull - List convertTo(@Nullable List postMetaList); + List convertTo(@NonNull List postMetaList); } diff --git a/src/main/java/run/halo/app/service/impl/PostMetaServiceImpl.java b/src/main/java/run/halo/app/service/impl/PostMetaServiceImpl.java index 8b6d41cf9..7480f2c1b 100644 --- a/src/main/java/run/halo/app/service/impl/PostMetaServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/PostMetaServiceImpl.java @@ -47,6 +47,7 @@ public class PostMetaServiceImpl extends BaseMetaServiceImpl implement @Override public List createOrUpdateByPostId(Integer postId, Set postMetas) { Assert.notNull(postId, "Post id must not be null"); + Assert.notNull(postMetas, "Post metas must not be null"); if (CollectionUtils.isEmpty(postMetas)) { return Collections.emptyList(); } @@ -75,7 +76,8 @@ public class PostMetaServiceImpl extends BaseMetaServiceImpl implement } @Override - public Map> listPostMetaListMap(Set postIds) { + public Map> listPostMetaAsMap(Set postIds) { + Assert.notNull(postIds, "Post ids must not be null"); if (CollectionUtils.isEmpty(postIds)) { return Collections.emptyMap(); } diff --git a/src/main/java/run/halo/app/service/impl/PostServiceImpl.java b/src/main/java/run/halo/app/service/impl/PostServiceImpl.java index 0ef975127..fdbb1bac9 100644 --- a/src/main/java/run/halo/app/service/impl/PostServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/PostServiceImpl.java @@ -428,7 +428,7 @@ public class PostServiceImpl extends BasePostServiceImpl implements PostSe Map commentCountMap = postCommentService.countByPostIds(postIds); // Get post meta list map - Map> postMetaListMap = postMetaService.listPostMetaListMap(postIds); + Map> postMetaListMap = postMetaService.listPostMetaAsMap(postIds); return postPage.map(post -> { PostListVO postListVO = new PostListVO().convertFrom(post);