From cb8f347ccc4964c4fc36c9b9c6c2f40766cd98a2 Mon Sep 17 00:00:00 2001 From: xiongxiaoyang <773861846@qq.com> Date: Fri, 20 May 2022 07:05:33 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E8=AF=84=E8=AE=BA=E5=8F=91=E8=A1=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/front/UserController.java | 14 +++++++++-- .../novel/dto/req/UserCommentReqDto.java | 24 +++++++++++++++++++ .../xxyopen/novel/service/BookService.java | 8 +++++++ .../novel/service/impl/BookServiceImpl.java | 18 ++++++++++++++ 4 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 src/main/java/io/github/xxyopen/novel/dto/req/UserCommentReqDto.java diff --git a/src/main/java/io/github/xxyopen/novel/controller/front/UserController.java b/src/main/java/io/github/xxyopen/novel/controller/front/UserController.java index c0ebf80..0c520c1 100644 --- a/src/main/java/io/github/xxyopen/novel/controller/front/UserController.java +++ b/src/main/java/io/github/xxyopen/novel/controller/front/UserController.java @@ -3,11 +3,12 @@ package io.github.xxyopen.novel.controller.front; import io.github.xxyopen.novel.core.auth.UserHolder; import io.github.xxyopen.novel.core.common.resp.RestResp; import io.github.xxyopen.novel.core.constant.ApiRouterConsts; -import io.github.xxyopen.novel.core.util.JwtUtils; +import io.github.xxyopen.novel.dto.req.UserCommentReqDto; import io.github.xxyopen.novel.dto.req.UserInfoUptReqDto; import io.github.xxyopen.novel.dto.req.UserLoginReqDto; import io.github.xxyopen.novel.dto.req.UserRegisterReqDto; import io.github.xxyopen.novel.dto.resp.UserLoginRespDto; +import io.github.xxyopen.novel.service.BookService; import io.github.xxyopen.novel.service.UserService; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; @@ -26,7 +27,7 @@ public class UserController { private final UserService userService; - private final JwtUtils jwtUtils; + private final BookService bookService; /** * 用户注册接口 @@ -70,4 +71,13 @@ public class UserController { return userService.deleteFeedback(UserHolder.getUserId(), id); } + /** + * 发表评论接口 + * */ + @PostMapping("comment") + public RestResp comment(@RequestBody UserCommentReqDto dto) { + dto.setUserId(UserHolder.getUserId()); + return bookService.saveComment(dto); + } + } diff --git a/src/main/java/io/github/xxyopen/novel/dto/req/UserCommentReqDto.java b/src/main/java/io/github/xxyopen/novel/dto/req/UserCommentReqDto.java new file mode 100644 index 0000000..0c62538 --- /dev/null +++ b/src/main/java/io/github/xxyopen/novel/dto/req/UserCommentReqDto.java @@ -0,0 +1,24 @@ +package io.github.xxyopen.novel.dto.req; + +import jakarta.validation.constraints.NotBlank; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +/** + * 用户发表评论 请求DTO + * @author xiongxiaoyang + * @date 2022/5/17 + */ +@Data +public class UserCommentReqDto { + + private Long userId; + + @NotBlank(message="小说ID不能为空!") + private Long bookId; + + @NotBlank(message="评论不能为空!") + @Length(min = 10,max = 512) + private String commentContent; + +} diff --git a/src/main/java/io/github/xxyopen/novel/service/BookService.java b/src/main/java/io/github/xxyopen/novel/service/BookService.java index ecf8552..4353609 100644 --- a/src/main/java/io/github/xxyopen/novel/service/BookService.java +++ b/src/main/java/io/github/xxyopen/novel/service/BookService.java @@ -3,6 +3,7 @@ package io.github.xxyopen.novel.service; import io.github.xxyopen.novel.core.common.resp.PageRespDto; import io.github.xxyopen.novel.core.common.resp.RestResp; import io.github.xxyopen.novel.dto.req.BookSearchReqDto; +import io.github.xxyopen.novel.dto.req.UserCommentReqDto; import io.github.xxyopen.novel.dto.resp.*; import java.security.NoSuchAlgorithmException; @@ -103,4 +104,11 @@ public interface BookService { * @return 分类列表 * */ RestResp> listCategory(Integer workDirection); + + /** + * 发表评论 + * @param dto 评论相关 DTO + * @return void + * */ + RestResp saveComment(UserCommentReqDto dto); } diff --git a/src/main/java/io/github/xxyopen/novel/service/impl/BookServiceImpl.java b/src/main/java/io/github/xxyopen/novel/service/impl/BookServiceImpl.java index 88ff33a..fbadb4d 100644 --- a/src/main/java/io/github/xxyopen/novel/service/impl/BookServiceImpl.java +++ b/src/main/java/io/github/xxyopen/novel/service/impl/BookServiceImpl.java @@ -6,10 +6,13 @@ import io.github.xxyopen.novel.core.common.resp.PageRespDto; import io.github.xxyopen.novel.core.common.resp.RestResp; import io.github.xxyopen.novel.core.constant.DatabaseConsts; import io.github.xxyopen.novel.dao.entity.BookChapter; +import io.github.xxyopen.novel.dao.entity.BookComment; import io.github.xxyopen.novel.dao.entity.BookInfo; import io.github.xxyopen.novel.dao.mapper.BookChapterMapper; +import io.github.xxyopen.novel.dao.mapper.BookCommentMapper; import io.github.xxyopen.novel.dao.mapper.BookInfoMapper; import io.github.xxyopen.novel.dto.req.BookSearchReqDto; +import io.github.xxyopen.novel.dto.req.UserCommentReqDto; import io.github.xxyopen.novel.dto.resp.*; import io.github.xxyopen.novel.manager.*; import io.github.xxyopen.novel.service.BookService; @@ -19,6 +22,7 @@ import org.springframework.stereotype.Service; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -49,6 +53,8 @@ public class BookServiceImpl implements BookService { private final BookChapterMapper bookChapterMapper; + private final BookCommentMapper bookCommentMapper; + private static final Integer REC_BOOK_COUNT = 4; @Override @@ -197,6 +203,18 @@ public class BookServiceImpl implements BookService { return RestResp.ok(bookCategoryCacheManager.listCategory(workDirection)); } + @Override + public RestResp saveComment(UserCommentReqDto dto) { + BookComment bookComment = new BookComment(); + bookComment.setBookId(dto.getBookId()); + bookComment.setUserId(dto.getUserId()); + bookComment.setCommentContent(dto.getCommentContent()); + bookComment.setCreateTime(LocalDateTime.now()); + bookComment.setUpdateTime(LocalDateTime.now()); + bookCommentMapper.insert(bookComment); + return RestResp.ok(); + } + @Override public RestResp getBookContentAbout(Long chapterId) { // 查询章节信息