From 59b6b251db137360ec9ca1c3b9b4079205768aa1 Mon Sep 17 00:00:00 2001 From: ikmkj <1@qq,com> Date: Fri, 25 Jul 2025 21:59:50 +0800 Subject: [PATCH] =?UTF-8?q?refactor(music-houduan):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E9=9F=B3=E4=B9=90=E8=AF=84=E8=AE=BA=E6=95=B0=E9=87=8F=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 引入 Optional 类以提高代码的可读性和健壮性 - 使用 countByTargetIdAndTargetType 方法直接统计评论数量,避免不必要的更新操作 - 添加类型判断,确保只处理音乐类型的评论 --- .../service/impl/CommentServiceImpl.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/music-houduan/src/main/java/com/test/musichouduan/service/impl/CommentServiceImpl.java b/music-houduan/src/main/java/com/test/musichouduan/service/impl/CommentServiceImpl.java index 2ae5398..412ed2e 100644 --- a/music-houduan/src/main/java/com/test/musichouduan/service/impl/CommentServiceImpl.java +++ b/music-houduan/src/main/java/com/test/musichouduan/service/impl/CommentServiceImpl.java @@ -5,6 +5,7 @@ import com.test.musichouduan.dto.CommentDTO; import com.test.musichouduan.dto.PageResult; import com.test.musichouduan.dto.UserDTO; import com.test.musichouduan.entity.Comment; +import com.test.musichouduan.entity.Music; import com.test.musichouduan.entity.User; import com.test.musichouduan.exception.BusinessException; import com.test.musichouduan.repository.CommentRepository; @@ -25,6 +26,7 @@ import jakarta.persistence.criteria.Predicate; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import java.util.stream.Collectors; /** @@ -104,13 +106,20 @@ public class CommentServiceImpl implements CommentService { // 保存评论 Comment savedComment = commentRepository.save(comment); + // 如果评论的是音乐 (targetType=1, 这个值需要与前端约定好) // 通常可以定义一个枚举或常量类来管理这些类型值 if (savedComment.getTargetType() == 1) { musicRepository.findById(savedComment.getTargetId()).ifPresent(music -> { - int currentCommentCount = music.getCommentCount() != null ? music.getCommentCount() : 0; - music.setCommentCount(currentCommentCount + 1); - musicRepository.save(music); + // 首先判断类型是否等于1 + if (savedComment.getTargetType() == 1) { + // 查询评论表,使用COUNT(id)统计该音乐的评论数量 + long commentCount = commentRepository.countByTargetIdAndTargetType(savedComment.getTargetId(), 1); + // 设置到音乐中 + music.setCommentCount((int) commentCount); + // 保存音乐实体 + musicRepository.save(music); + } }); }