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); + } }); }