From c96af708df852f3010a47f4aeec7a6dc8333e1cf Mon Sep 17 00:00:00 2001 From: lihaiyang <3298329328@qq.com> Date: Tue, 23 Dec 2025 13:48:40 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=84=E8=AE=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 11 ++++- .../java/com/bao/dating/common/Comments.java | 19 ++++++++ src/main/java/com/bao/dating/common/Post.java | 16 +++++++ .../dating/controller/CommentController.java | 48 +++++++++++++++++++ .../com/bao/dating/mapper/CommentsMapper.java | 22 +++++++++ .../bao/dating/service/CommentsService.java | 20 ++++++++ .../service/impl/CommentsServiceImpl.java | 39 +++++++++++++++ 7 files changed, 173 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/bao/dating/common/Comments.java create mode 100644 src/main/java/com/bao/dating/common/Post.java create mode 100644 src/main/java/com/bao/dating/controller/CommentController.java create mode 100644 src/main/java/com/bao/dating/mapper/CommentsMapper.java create mode 100644 src/main/java/com/bao/dating/service/CommentsService.java create mode 100644 src/main/java/com/bao/dating/service/impl/CommentsServiceImpl.java diff --git a/pom.xml b/pom.xml index 2587f61..751755b 100644 --- a/pom.xml +++ b/pom.xml @@ -19,6 +19,13 @@ spring-boot-starter + + + org.mybatis + mybatis + 3.5.10 + + org.springframework.boot spring-boot-starter-web @@ -123,8 +130,8 @@ maven-compiler-plugin 3.8.1 - 1.8 - 1.8 + 9 + 9 UTF-8 diff --git a/src/main/java/com/bao/dating/common/Comments.java b/src/main/java/com/bao/dating/common/Comments.java new file mode 100644 index 0000000..45e30b4 --- /dev/null +++ b/src/main/java/com/bao/dating/common/Comments.java @@ -0,0 +1,19 @@ +package com.bao.dating.common; + + +import lombok.Data; + +import java.time.LocalDateTime; + + +/** + * 评论表 + */ +@Data +public class Comments { + private Long comment_id; // 评论ID + private String content; // 评论内容 + private Long user_id; // 评论人ID + private Long post_id; // 关联动态ID + private LocalDateTime created_at; // 评论时间 +} diff --git a/src/main/java/com/bao/dating/common/Post.java b/src/main/java/com/bao/dating/common/Post.java new file mode 100644 index 0000000..10293a3 --- /dev/null +++ b/src/main/java/com/bao/dating/common/Post.java @@ -0,0 +1,16 @@ +package com.bao.dating.common; + + +import lombok.Data; + +import java.time.LocalDateTime; +/** + * 动态表 + */ +@Data +public class Post { + private Long post_id; // 动态ID + private String content; // 动态内容 + private Long user_id; // 发布人ID + private LocalDateTime created_at; // 创建时间 +} diff --git a/src/main/java/com/bao/dating/controller/CommentController.java b/src/main/java/com/bao/dating/controller/CommentController.java new file mode 100644 index 0000000..d377897 --- /dev/null +++ b/src/main/java/com/bao/dating/controller/CommentController.java @@ -0,0 +1,48 @@ +package com.bao.dating.controller; + + +import com.bao.dating.common.Comments; +import com.bao.dating.service.CommentsService; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/comments") +@CrossOrigin // 解决跨域问题(前后端分离必加) +public class CommentController { + @Resource + private CommentsService commentsService; + + /** + * 添加评论 + * @param comment 评论对象(含content、userId、dynamicId) + */ + @PostMapping("/add") + public Map addComment(@RequestBody Comments comment) { + boolean success = commentsService.addComment(comment); + return success ? Map.of("code", 200, "msg", "评论成功") : Map.of("code", 500, "msg", "评论失败"); + } + + /** + * 删除评论 + * @param user_id 评论ID + */ + @DeleteMapping("/delete/{user_id}") + public Map deleteComment(@PathVariable Long user_id) { + boolean success = commentsService.deleteComment(user_id); + return success ? Map.of("code", 200, "msg", "删除成功") : Map.of("code", 500, "msg", "删除失败"); + } + + /** + * 根据动态ID查询评论列表 + * @param post_id 动态ID + */ + @GetMapping("/list/{post_id}") + public Map getCommentList(@PathVariable Long post_id) { + List commentList = commentsService.getCommentByPostId(post_id); + return Map.of("code", 200, "data", commentList); + } +} diff --git a/src/main/java/com/bao/dating/mapper/CommentsMapper.java b/src/main/java/com/bao/dating/mapper/CommentsMapper.java new file mode 100644 index 0000000..26acdb3 --- /dev/null +++ b/src/main/java/com/bao/dating/mapper/CommentsMapper.java @@ -0,0 +1,22 @@ +package com.bao.dating.mapper; + + +import com.bao.dating.common.Comments; +import com.bao.dating.common.Post; +import org.apache.ibatis.annotations.*; + +import java.util.List; + +public interface CommentsMapper { + // 添加评论 + @Insert("INSERT INTO comments(content, user_id, post_id, created_at) VALUES(#{content}, #{user_id}, #{post_id}, #{created_at})") + int addComment(Comments comments); + + // 删除评论 + @Delete("DELETE FROM comments WHERE user_id = #{user_id}") + int deleteComments(@Param("user_id") Long user_id); + + // 根据动态ID查询评论列表 + @Select("SELECT * FROM comments WHERE post_id = #{post_id} ORDER BY created_at DESC") + List getCommentsByPostId(@Param("post_id") Long post_id); +} diff --git a/src/main/java/com/bao/dating/service/CommentsService.java b/src/main/java/com/bao/dating/service/CommentsService.java new file mode 100644 index 0000000..202a362 --- /dev/null +++ b/src/main/java/com/bao/dating/service/CommentsService.java @@ -0,0 +1,20 @@ +package com.bao.dating.service; + + +import com.bao.dating.common.Comments; + +import java.util.List; + +public interface CommentsService{ + // 添加评论 + boolean addComment(Comments comments); + + // 删除评论 + boolean deleteComment(Long user_id); + + // 根据动态ID查询评论 + List getCommentByPostId(Long post_id); + + + +} diff --git a/src/main/java/com/bao/dating/service/impl/CommentsServiceImpl.java b/src/main/java/com/bao/dating/service/impl/CommentsServiceImpl.java new file mode 100644 index 0000000..f7248da --- /dev/null +++ b/src/main/java/com/bao/dating/service/impl/CommentsServiceImpl.java @@ -0,0 +1,39 @@ +package com.bao.dating.service.impl; + +import com.bao.dating.common.Comments; + +import com.bao.dating.mapper.CommentsMapper; + + +import com.bao.dating.service.CommentsService; +import org.springframework.stereotype.Service; + + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.List; + +@Service +public class CommentsServiceImpl implements CommentsService { + + + + @Resource + private CommentsMapper commentsMapper; + + @Override + public boolean addComment(Comments comments) { + // 设置创建时间 + comments.setCreated_at(LocalDateTime.now()); + return commentsMapper.addComment(comments) > 0; + } + @Override + public boolean deleteComment(Long user_id) { + return commentsMapper.deleteComments(user_id) > 0; + } + + @Override + public List getCommentByPostId(Long post_id) { + return commentsMapper.getCommentsByPostId(post_id); + } +}