From 901a6ee8a5a70bbb6bd292df66c415071e795588 Mon Sep 17 00:00:00 2001 From: barney <15270405776@163.com> Date: Sun, 23 Oct 2022 22:01:04 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95=E5=8A=9F=E8=83=BD=E3=80=81?= =?UTF-8?q?=E5=90=8E=E5=8F=B0=E6=8E=A7=E5=88=B6=E5=8F=B0=E3=80=81=E8=AF=84?= =?UTF-8?q?=E8=AE=BA=E5=8A=9F=E8=83=BD=E5=AE=8C=E5=96=84=E3=80=81=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E9=82=AE=E4=BB=B6=E5=BC=82=E6=AD=A5=E5=8F=91=E9=80=81?= =?UTF-8?q?bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 4 + cache/.ehcache-diskstore.lock | 0 cache/blog-cache.data | Bin 15980 -> 0 bytes src/main/java/cc/bnblogs/Application.java | 2 + .../java/cc/bnblogs/common/MailHelper.java | 2 + src/main/java/cc/bnblogs/common/WebSite.java | 5 + .../java/cc/bnblogs/config/WebConfig.java | 23 +- .../bnblogs/controller/AdminController.java | 66 ++- .../bnblogs/controller/CommentController.java | 60 ++- .../bnblogs/interceptor/LoginInterceptor.java | 33 ++ .../java/cc/bnblogs/mapper/CommentMapper.java | 26 ++ .../cc/bnblogs/service/CommentService.java | 33 +- .../java/cc/bnblogs/utils/CookieUtil.java | 4 +- src/main/resources/application.yml | 2 + .../resources/templates/admin/article.html | 7 +- .../resources/templates/admin/banner.html | 12 +- .../resources/templates/admin/category.html | 11 +- .../resources/templates/admin/comment.html | 403 +++++++++--------- .../resources/templates/admin/common.html | 15 +- .../resources/templates/admin/friends.html | 10 +- src/main/resources/templates/admin/index.html | 51 +-- src/main/resources/templates/admin/login.html | 23 +- .../resources/templates/admin/navigation.html | 11 +- .../java/cc/bnblogs/test/TestMd5Password.java | 23 + 24 files changed, 512 insertions(+), 314 deletions(-) delete mode 100644 cache/.ehcache-diskstore.lock delete mode 100644 cache/blog-cache.data create mode 100644 src/main/java/cc/bnblogs/interceptor/LoginInterceptor.java create mode 100644 src/test/java/cc/bnblogs/test/TestMd5Password.java diff --git a/.gitignore b/.gitignore index 26eb1be..9d19433 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,13 @@ .idea/ +# 忽略生成的目标文件所在文件夹 target/ # 忽略上传图片的文件夹 upload/ # 忽略日志文件夹 logs/ +# 忽略缓存文件夹 +cache/ + # Compiled class file *.class diff --git a/cache/.ehcache-diskstore.lock b/cache/.ehcache-diskstore.lock deleted file mode 100644 index e69de29..0000000 diff --git a/cache/blog-cache.data b/cache/blog-cache.data deleted file mode 100644 index dfdf1f28cbd51d02cdec80dee755d41bf47c4000..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15980 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 list() { - return Result.success(commentService.list()); + public Result> list(@RequestParam(required = false) Boolean view, + @RequestParam(required = false,defaultValue = "1") Integer pageNumber, + @RequestParam(required = false,defaultValue = "1")Integer pageSize) { + pageNumber = Math.max(1,pageNumber); + pageSize = Math.max(1,pageSize); + return Result.success(commentService.list(view,pageNumber,pageSize)); } /** @@ -67,4 +84,37 @@ public class CommentController { commentService.delete(id); return Result.success(); } + + /** + * 一键已读所有评论 + */ + @GetMapping("/read") + public Result readAll(){ + commentService.readAll(); + return Result.success(); + } + + /** + * 回复评论 + * @param pid 父评论id + * @param aid 文章id + * @param message 回复内容 + * @return 操作结果 + */ + @PostMapping("/{pid}") + public Result reply(@PathVariable Integer pid,Integer aid,String message) { + // 构造一个comment对象 + // 填充站长的昵称、邮箱、网站地址、父评论id、文章id、回复内容 + Comment comment = Comment.builder() + .article(Article.builder().id(aid).build()) + .nickname(webSite.getNickname()) + .email(webSite.getMail()) + .url(webSite.getDomain()) + .pid(pid) + .content(message) + .build(); + // 保存评论 + commentService.save(comment); + return Result.success(); + } } diff --git a/src/main/java/cc/bnblogs/interceptor/LoginInterceptor.java b/src/main/java/cc/bnblogs/interceptor/LoginInterceptor.java new file mode 100644 index 0000000..be4535e --- /dev/null +++ b/src/main/java/cc/bnblogs/interceptor/LoginInterceptor.java @@ -0,0 +1,33 @@ +package cc.bnblogs.interceptor; + +import cc.bnblogs.common.WebSite; +import org.springframework.stereotype.Component; +import org.springframework.web.servlet.HandlerInterceptor; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import java.util.Objects; + +/** + * @author zfp@bnblogs.cc + * @createTime: 2022/10/23 + * @description: 登录拦截器 + */ +@Component +public class LoginInterceptor implements HandlerInterceptor { + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + HttpSession session = request.getSession(); + Boolean sign = (Boolean) session.getAttribute(WebSite.LOGIN_SIGN); + if (Objects.nonNull(sign) && sign) { + return true; + } + else { + request.setAttribute("errorMsg","请登录后再操作!"); + // 当Session中没有登录信息时我们直接转发到登录页面并给出请登录后再进行操作的提示 + request.getRequestDispatcher("/admin/login.html").forward(request,response); + return false; + } + } +} diff --git a/src/main/java/cc/bnblogs/mapper/CommentMapper.java b/src/main/java/cc/bnblogs/mapper/CommentMapper.java index 300758e..bfeff4c 100644 --- a/src/main/java/cc/bnblogs/mapper/CommentMapper.java +++ b/src/main/java/cc/bnblogs/mapper/CommentMapper.java @@ -5,6 +5,9 @@ import cc.bnblogs.pojo.Comment; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.transaction.annotation.Transactional; import java.util.List; @@ -35,4 +38,27 @@ public interface CommentMapper extends JpaRepository { * @return 该父评论下的所有评论 */ List findAllByPidOrderByCreatedDesc(Integer pid); + + /** + * 将所有未读评论改为已读 + */ + @Modifying + @Transactional(rollbackFor = {Exception.class}) + @Query(value = "update blog_comment set view=true where view=false ", nativeQuery = true) + void readAll(); + + /** + * 根据view选择不同的评论 + * @param view 是否已读 + * @param pageable 分页器 + * @return 评论列表 + */ + Page findAllByView(Boolean view, Pageable pageable); + + /** + * 根据view的值统计评论数 + * @param view 是否已读 + * @return 评论个数 + */ + Long countCommentByView(Boolean view); } diff --git a/src/main/java/cc/bnblogs/service/CommentService.java b/src/main/java/cc/bnblogs/service/CommentService.java index c48c8ae..150789d 100644 --- a/src/main/java/cc/bnblogs/service/CommentService.java +++ b/src/main/java/cc/bnblogs/service/CommentService.java @@ -10,7 +10,8 @@ import cc.bnblogs.pojo.Comment; import cc.bnblogs.utils.UpdateUtil; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; -import org.springframework.scheduling.annotation.Async; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; import java.util.Date; @@ -48,12 +49,13 @@ public class CommentService { } /** - * 获取评论总数 - * - * @return 评论总数 + * 根据是否view的取值返回评论数(null:表示所有) + * @param view 是否已读 + * @return 评论个数 */ - public long count() { - return commentMapper.count(); + public long count(Boolean view) { + return Objects.isNull(view) ? + commentMapper.count(): commentMapper.countCommentByView(view); } /** @@ -87,7 +89,9 @@ public class CommentService { comment.setPid(findCommentPid(comment.getPid())); } commentMapper.save(comment); - } else { + } + // 修改评论内容 + else { Comment one = detail(comment.getId()); UpdateUtil.copyNullProperties(comment, one); commentMapper.save(one); @@ -99,7 +103,6 @@ public class CommentService { * * @param id 文章id */ - @Async public void sendMailToWebsite(Integer id) { Article article = articleMapper.findById(id).orElse(null); if (Objects.isNull(article)) { @@ -119,7 +122,6 @@ public class CommentService { * @param cid 被评论的评论id * @param reply 回复内容 */ - @Async public void sendMailToComment(Integer id, Integer cid, String reply) { Article article = articleMapper.findById(id).orElse(null); if (Objects.isNull(article)) { @@ -170,4 +172,17 @@ public class CommentService { // 评论内容-当前页数-评论总数-总页数 return PageHelper.builder().rows(page.getContent().stream().peek(x -> x.setChildren(commentMapper.findAllByPidOrderByCreatedDesc(x.getId()))).collect(Collectors.toList())).currentPage(pageNumber).total(page.getTotalElements()).totalPages(page.getTotalPages()).build(); } + + public void readAll() { + commentMapper.readAll(); + } + + public PageHelper list(Boolean view, Integer pageNumber, Integer pageSize) { + Pageable pageable = PageRequest.of(pageNumber-1,pageSize, Sort.by(Sort.Direction.DESC,"created")); + Page page = Objects.isNull(view) ? commentMapper.findAll(pageable) : commentMapper.findAllByView(view,pageable); + return PageHelper.builder() + .rows(page.getContent()) + .total(page.getTotalElements()) + .build(); + } } diff --git a/src/main/java/cc/bnblogs/utils/CookieUtil.java b/src/main/java/cc/bnblogs/utils/CookieUtil.java index 250a2b2..7bf9f26 100644 --- a/src/main/java/cc/bnblogs/utils/CookieUtil.java +++ b/src/main/java/cc/bnblogs/utils/CookieUtil.java @@ -31,8 +31,8 @@ public class CookieUtil { } public static void setCookie(HttpServletResponse response, String cookieName, String value) { - // 有效期为7天 - setCookie(response, cookieName, value, 7 * 24 * 60 * 60); + // 有效期为1天 + setCookie(response, cookieName, value, 24 * 60 * 60); } public static void deleteCookie(HttpServletResponse response, String cookieName) { diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index f80f902..5835d20 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -73,6 +73,8 @@ website: domain: http://localhost:8080 #域名 avatar: https://hugo.bnblogs.cc/images/img/20220215001349.png nickname: barney + username: admin + password: 0192023a7bbd73250516f069df18b500 address: 广东 广州 tags: - java diff --git a/src/main/resources/templates/admin/article.html b/src/main/resources/templates/admin/article.html index aa7d2e4..7be2606 100644 --- a/src/main/resources/templates/admin/article.html +++ b/src/main/resources/templates/admin/article.html @@ -10,7 +10,7 @@
@@ -41,8 +41,8 @@
- - + +
@@ -60,6 +60,7 @@ pageSize: 5, // 每页5条数据 pageList: [5, 10, 15], // 可选页大小 responseHandler: function (res) { + console.log(res.data); return res.data }, //这个是查询参数,就是bootstrap-table请求后端时携带的参数 diff --git a/src/main/resources/templates/admin/banner.html b/src/main/resources/templates/admin/banner.html index c1a4c9c..bada408 100644 --- a/src/main/resources/templates/admin/banner.html +++ b/src/main/resources/templates/admin/banner.html @@ -10,10 +10,10 @@
- -
@@ -70,8 +70,8 @@
@@ -135,8 +135,8 @@ align: "center", width: 180, formatter: function (value) { - return ` - ` + return ` + ` } } ], diff --git a/src/main/resources/templates/admin/category.html b/src/main/resources/templates/admin/category.html index dd322b1..cb9f3dd 100644 --- a/src/main/resources/templates/admin/category.html +++ b/src/main/resources/templates/admin/category.html @@ -8,7 +8,8 @@
- +
@@ -36,8 +37,8 @@ @@ -75,8 +76,8 @@ align: "center", width: 180, formatter: function (value) { - return ` - ` + return ` + ` } } ], diff --git a/src/main/resources/templates/admin/comment.html b/src/main/resources/templates/admin/comment.html index e6b1a23..9344de0 100644 --- a/src/main/resources/templates/admin/comment.html +++ b/src/main/resources/templates/admin/comment.html @@ -1,232 +1,219 @@ - - 评论管理 + + 评论管理 +
-
- -
-
-
- - @@ -58,13 +58,12 @@ diff --git a/src/main/resources/templates/admin/friends.html b/src/main/resources/templates/admin/friends.html index df6aac6..48ca519 100644 --- a/src/main/resources/templates/admin/friends.html +++ b/src/main/resources/templates/admin/friends.html @@ -10,7 +10,7 @@
-
@@ -43,8 +43,8 @@
@@ -87,8 +87,8 @@ align: "center", width: 180, formatter: function (value) { - return ` - ` + return ` + ` } } ], diff --git a/src/main/resources/templates/admin/index.html b/src/main/resources/templates/admin/index.html index 5d80ffc..6d99b74 100644 --- a/src/main/resources/templates/admin/index.html +++ b/src/main/resources/templates/admin/index.html @@ -10,9 +10,9 @@

网站概要

-

目前有 83 篇文章, 并有 5010 条关于你的评论在 9 个分类中.

-

其中有 12条 评论未查看:

-

点此查看

+

目前有 篇文章, 并有 条关于你的评论在 个分类中.

+

其中有 条 评论未查看:

+

点此查看

@@ -20,25 +20,9 @@
  • 最新文章
  • -
  • - 09-28 - Conda虚拟环境使用 -
  • -
  • - 05-26 - 关于我这些年的经历 -
  • -
  • - 04-28 - 我曾是少年 -
  • -
  • - 03-07 - 迷茫 -
  • -
  • - 02-10 - Spring Boot 3.0 M1 发布 +
  • + +
  • @@ -47,26 +31,11 @@
  • 最新评论
  • -
  • - 09-29 - 再度再度: 发现这个主题很特别! -
  • -
  • - 09-29 - 再度再度: 就OK间科技看 -
  • -
  • - 09-28 - duelex: 喜欢作者的这个风格,希望作者不断进步 -
  • -
  • - 09-27 - 蜘蛛: 阿巴阿巴 -
  • -
  • - 09-10 - 妄想: 需要插件 +
  • + +
  • +
    diff --git a/src/main/resources/templates/admin/login.html b/src/main/resources/templates/admin/login.html index 98539be..831508f 100644 --- a/src/main/resources/templates/admin/login.html +++ b/src/main/resources/templates/admin/login.html @@ -1,5 +1,5 @@ - + Title @@ -7,29 +7,36 @@ + diff --git a/src/main/resources/templates/admin/navigation.html b/src/main/resources/templates/admin/navigation.html index dc0c1d0..cbc101c 100644 --- a/src/main/resources/templates/admin/navigation.html +++ b/src/main/resources/templates/admin/navigation.html @@ -10,11 +10,11 @@
    - -
    @@ -74,8 +74,8 @@
    @@ -150,7 +150,8 @@ align: "center", width: 180, formatter: function (value) { - return `` + return ` + ` } } ] diff --git a/src/test/java/cc/bnblogs/test/TestMd5Password.java b/src/test/java/cc/bnblogs/test/TestMd5Password.java new file mode 100644 index 0000000..c010823 --- /dev/null +++ b/src/test/java/cc/bnblogs/test/TestMd5Password.java @@ -0,0 +1,23 @@ +package cc.bnblogs.test; + +import cc.bnblogs.Application; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.util.DigestUtils; + +import java.nio.charset.StandardCharsets; + +/** + * @author zfp@bnblogs.cc + * @createTime: 2022/10/23 + */ +@RunWith(SpringRunner.class) +@SpringBootTest(classes = {Application.class}, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +public class TestMd5Password { + @Test + public void testMd5() { + System.out.println(DigestUtils.md5DigestAsHex("admin123".getBytes(StandardCharsets.UTF_8))); + } +}