From 8e9c4b14c3ebd7d619ed701dd19eb38eeaea1259 Mon Sep 17 00:00:00 2001 From: ruibaby Date: Mon, 16 Jul 2018 20:29:12 +0800 Subject: [PATCH] =?UTF-8?q?:alien:=20=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ryanc/halo/repository/CommentRepository.java | 7 +++++++ .../cc/ryanc/halo/repository/PostRepository.java | 9 +++++++++ .../java/cc/ryanc/halo/service/CommentService.java | 8 ++++++++ .../java/cc/ryanc/halo/service/PostService.java | 8 ++++++++ .../halo/service/impl/CommentServiceImpl.java | 11 +++++++++++ .../ryanc/halo/service/impl/PostServiceImpl.java | 11 +++++++++++ src/main/java/cc/ryanc/halo/utils/CommentUtil.java | 6 +++--- .../web/controller/admin/CommentController.java | 6 +++--- .../halo/web/controller/admin/PostController.java | 6 +++--- .../controller/front/FrontCommentController.java | 14 +++++++------- 10 files changed, 70 insertions(+), 16 deletions(-) diff --git a/src/main/java/cc/ryanc/halo/repository/CommentRepository.java b/src/main/java/cc/ryanc/halo/repository/CommentRepository.java index 38d4499ae..1182377c8 100644 --- a/src/main/java/cc/ryanc/halo/repository/CommentRepository.java +++ b/src/main/java/cc/ryanc/halo/repository/CommentRepository.java @@ -72,4 +72,11 @@ public interface CommentRepository extends JpaRepository { @Query(value = "SELECT * FROM halo_comment ORDER BY comment_date DESC LIMIT 5", nativeQuery = true) List findTopFive(); + /** + * 根据评论状态查询数量 + * + * @param status 评论状态 + * @return 评论数量 + */ + Integer countAllByCommentStatus(Integer status); } diff --git a/src/main/java/cc/ryanc/halo/repository/PostRepository.java b/src/main/java/cc/ryanc/halo/repository/PostRepository.java index 5970be3ad..f4fab8d41 100644 --- a/src/main/java/cc/ryanc/halo/repository/PostRepository.java +++ b/src/main/java/cc/ryanc/halo/repository/PostRepository.java @@ -204,4 +204,13 @@ public interface PostRepository extends JpaRepository { */ @Query(value = "select sum(post_views) from halo_post", nativeQuery = true) Long getPostViewsSum(); + + /** + * 根据文章状态查询数量 + * + * @param status 文章状态 + * @param postType 文章类型 + * @return 文章数量 + */ + Integer countAllByPostStatusAndPostType(Integer status, String postType); } diff --git a/src/main/java/cc/ryanc/halo/service/CommentService.java b/src/main/java/cc/ryanc/halo/service/CommentService.java index b1d67178d..3802171a8 100644 --- a/src/main/java/cc/ryanc/halo/service/CommentService.java +++ b/src/main/java/cc/ryanc/halo/service/CommentService.java @@ -104,4 +104,12 @@ public interface CommentService { * @return List */ List findCommentsLatest(); + + /** + * 根据评论状态查询数量 + * + * @param status 评论状态 + * @return 评论数量 + */ + Integer getCountByStatus(Integer status); } diff --git a/src/main/java/cc/ryanc/halo/service/PostService.java b/src/main/java/cc/ryanc/halo/service/PostService.java index 9c5a49325..0c9c1518c 100755 --- a/src/main/java/cc/ryanc/halo/service/PostService.java +++ b/src/main/java/cc/ryanc/halo/service/PostService.java @@ -239,6 +239,14 @@ public interface PostService { */ Long getPostViews(); + /** + * 根据文章状态查询数量 + * + * @param status 文章状态 + * @return 文章数量 + */ + Integer getCountByStatus(Integer status); + /** * 生成rss * diff --git a/src/main/java/cc/ryanc/halo/service/impl/CommentServiceImpl.java b/src/main/java/cc/ryanc/halo/service/impl/CommentServiceImpl.java index 840a733a0..1385aa02a 100644 --- a/src/main/java/cc/ryanc/halo/service/impl/CommentServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/CommentServiceImpl.java @@ -159,4 +159,15 @@ public class CommentServiceImpl implements CommentService { public List findCommentsLatest() { return commentRepository.findTopFive(); } + + /** + * 根据评论状态查询数量 + * + * @param status 评论状态 + * @return 评论数量 + */ + @Override + public Integer getCountByStatus(Integer status) { + return commentRepository.countAllByCommentStatus(status); + } } 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 a98d72720..df4570fb5 100755 --- a/src/main/java/cc/ryanc/halo/service/impl/PostServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/PostServiceImpl.java @@ -408,6 +408,17 @@ public class PostServiceImpl implements PostService { return postRepository.getPostViewsSum(); } + /** + * 根据文章状态查询数量 + * + * @param status 文章状态 + * @return 文章数量 + */ + @Override + public Integer getCountByStatus(Integer status) { + return postRepository.countAllByPostStatusAndPostType(status, PostType.POST_TYPE_POST.getDesc()); + } + /** * 生成rss * diff --git a/src/main/java/cc/ryanc/halo/utils/CommentUtil.java b/src/main/java/cc/ryanc/halo/utils/CommentUtil.java index 9d829e8e6..be9196275 100644 --- a/src/main/java/cc/ryanc/halo/utils/CommentUtil.java +++ b/src/main/java/cc/ryanc/halo/utils/CommentUtil.java @@ -20,9 +20,9 @@ public class CommentUtil { public static List getComments(List commentsRoot) { List commentsResult = new ArrayList<>(); - for (int i = 0; i < commentsRoot.size(); i++) { - if (commentsRoot.get(i).getCommentParent() == 0) { - commentsResult.add(commentsRoot.get(i)); + for (Comment comment : commentsRoot) { + if (comment.getCommentParent() == 0) { + commentsResult.add(comment); } } diff --git a/src/main/java/cc/ryanc/halo/web/controller/admin/CommentController.java b/src/main/java/cc/ryanc/halo/web/controller/admin/CommentController.java index 58e607647..373b868bf 100755 --- a/src/main/java/cc/ryanc/halo/web/controller/admin/CommentController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/admin/CommentController.java @@ -77,9 +77,9 @@ public class CommentController extends BaseController { Pageable pageable = PageRequest.of(page, size, sort); Page comments = commentService.findAllComments(status, pageable); model.addAttribute("comments", comments); - model.addAttribute("publicCount", commentService.findAllComments(CommentStatus.PUBLISHED.getCode(), pageable).getTotalElements()); - model.addAttribute("checkCount", commentService.findAllComments(CommentStatus.CHECKING.getCode(), pageable).getTotalElements()); - model.addAttribute("trashCount", commentService.findAllComments(CommentStatus.RECYCLE.getCode(), pageable).getTotalElements()); + model.addAttribute("publicCount", commentService.getCountByStatus(CommentStatus.PUBLISHED.getCode())); + model.addAttribute("checkCount", commentService.getCountByStatus(CommentStatus.CHECKING.getCode())); + model.addAttribute("trashCount", commentService.getCountByStatus(CommentStatus.RECYCLE.getCode())); model.addAttribute("status", status); return "admin/admin_comment"; } diff --git a/src/main/java/cc/ryanc/halo/web/controller/admin/PostController.java b/src/main/java/cc/ryanc/halo/web/controller/admin/PostController.java index 24e163d81..0f650325c 100755 --- a/src/main/java/cc/ryanc/halo/web/controller/admin/PostController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/admin/PostController.java @@ -92,9 +92,9 @@ public class PostController extends BaseController { Pageable pageable = PageRequest.of(page, size, sort); Page posts = postService.findPostByStatus(status, PostType.POST_TYPE_POST.getDesc(), pageable); model.addAttribute("posts", posts); - model.addAttribute("publishCount", postService.findPostByStatus(PostStatus.PUBLISHED.getCode(), PostType.POST_TYPE_POST.getDesc(), pageable).getTotalElements()); - model.addAttribute("draftCount", postService.findPostByStatus(PostStatus.DRAFT.getCode(), PostType.POST_TYPE_POST.getDesc(), pageable).getTotalElements()); - model.addAttribute("trashCount", postService.findPostByStatus(PostStatus.RECYCLE.getCode(), PostType.POST_TYPE_POST.getDesc(), pageable).getTotalElements()); + model.addAttribute("publishCount", postService.getCountByStatus(PostStatus.PUBLISHED.getCode())); + model.addAttribute("draftCount", postService.getCountByStatus(PostStatus.DRAFT.getCode())); + model.addAttribute("trashCount", postService.getCountByStatus(PostStatus.RECYCLE.getCode())); model.addAttribute("status", status); return "admin/admin_post"; } diff --git a/src/main/java/cc/ryanc/halo/web/controller/front/FrontCommentController.java b/src/main/java/cc/ryanc/halo/web/controller/front/FrontCommentController.java index eb13991da..06717ebf8 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/front/FrontCommentController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/front/FrontCommentController.java @@ -68,9 +68,6 @@ public class FrontCommentController { Sort sort = new Sort(Sort.Direction.DESC, "commentDate"); Pageable pageable = PageRequest.of(0, 999, sort); List comments = commentService.findCommentsByPostAndCommentStatus(post.get(), pageable, CommentStatus.PUBLISHED.getCode()).getContent(); - if (null == comments) { - return null; - } return CommentUtil.getComments(comments); } @@ -133,6 +130,7 @@ public class FrontCommentController { commentService.saveByComment(comment); if(comment.getCommentParent()>0){ new EmailToParent(comment,lastComment,post).start(); + new EmailToAdmin(comment, post).start(); }else{ new EmailToAdmin(comment,post).start(); } @@ -148,13 +146,14 @@ public class FrontCommentController { class EmailToAdmin extends Thread{ private Comment comment; private Post post; - public EmailToAdmin(Comment comment,Post post){ + + private EmailToAdmin(Comment comment, Post post) { this.comment = comment; this.post = post; } @Override public void run(){ - if (StringUtils.equals(HaloConst.OPTIONS.get("smtp_email_enable"), "true") && StringUtils.equals(HaloConst.OPTIONS.get("new_comment_notice"), "true")) { + if (StringUtils.equals(HaloConst.OPTIONS.get(BlogProperties.SMTP_EMAIL_ENABLE.getProp()), "true") && StringUtils.equals(HaloConst.OPTIONS.get(BlogProperties.NEW_COMMENT_NOTICE.getProp()), "true")) { try { //发送邮件到博主 Map map = new HashMap<>(); @@ -182,7 +181,8 @@ public class FrontCommentController { private Comment comment; private Comment lastComment; private Post post; - public EmailToParent(Comment comment,Comment lastComment,Post post){ + + private EmailToParent(Comment comment, Comment lastComment, Post post) { this.comment = comment; this.lastComment = lastComment; this.post = post; @@ -191,7 +191,7 @@ public class FrontCommentController { @Override public void run() { //发送通知给对方 - if(StringUtils.equals(HaloConst.OPTIONS.get("smtp_email_enable"),"true") && StringUtils.equals(HaloConst.OPTIONS.get("comment_reply_notice"),"true")) { + if (StringUtils.equals(HaloConst.OPTIONS.get(BlogProperties.SMTP_EMAIL_ENABLE.getProp()), "true") && StringUtils.equals(HaloConst.OPTIONS.get(BlogProperties.NEW_COMMENT_NOTICE.getProp()), "true")) { if(Validator.isEmail(lastComment.getCommentAuthorEmail())){ Map map = new HashMap<>(); map.put("blogTitle",HaloConst.OPTIONS.get(BlogProperties.BLOG_TITLE.getProp()));