feat(comment): 添加音乐评论功能并优化热门音乐相关逻辑
- 在 CommentServiceImpl 中增加针对音乐的评论计数逻辑 - 在 Home.vue 中添加热门音乐推荐模块 - 修改 Music.vue 中的热门音乐获取逻辑,支持分页 - 在 MusicDetail.vue 中实现评论列表展示和评论提交功能 - 更新 MusicList.vue,增加音乐详情查看按钮 - 在 MusicServiceImpl 中同步更新播放次数和点赞数
This commit is contained in:
@@ -8,6 +8,7 @@ import com.test.musichouduan.entity.Comment;
|
||||
import com.test.musichouduan.entity.User;
|
||||
import com.test.musichouduan.exception.BusinessException;
|
||||
import com.test.musichouduan.repository.CommentRepository;
|
||||
import com.test.musichouduan.repository.MusicRepository;
|
||||
import com.test.musichouduan.repository.UserRepository;
|
||||
import com.test.musichouduan.service.CommentService;
|
||||
import org.springframework.messaging.simp.SimpMessagingTemplate; // 添加导入
|
||||
@@ -38,6 +39,9 @@ public class CommentServiceImpl implements CommentService {
|
||||
@Autowired
|
||||
private UserRepository userRepository;
|
||||
|
||||
@Autowired
|
||||
private MusicRepository musicRepository;
|
||||
|
||||
@Autowired
|
||||
private SimpMessagingTemplate messagingTemplate; // 注入 SimpMessagingTemplate
|
||||
|
||||
@@ -100,6 +104,16 @@ 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);
|
||||
});
|
||||
}
|
||||
|
||||
// 将新评论转换为DTO
|
||||
CommentDTO savedCommentDTO = convertToDTO(savedComment);
|
||||
|
||||
|
||||
@@ -537,7 +537,10 @@ public class MusicServiceImpl implements MusicService {
|
||||
Music music = musicOpt.get();
|
||||
|
||||
// 增加播放次数
|
||||
music.setPlayCount(music.getPlayCount() + 1);
|
||||
long currentPlayCount = music.getPlayCount() != null ? music.getPlayCount() : 0;
|
||||
music.setPlayCount(currentPlayCount + 1);
|
||||
// 根据要求,将点赞数与播放次数同步
|
||||
music.setLikeCount((int) (currentPlayCount + 1));
|
||||
musicRepository.save(music);
|
||||
|
||||
// 如果用户已登录,记录播放历史
|
||||
|
||||
Reference in New Issue
Block a user