feat(playlist): 实现歌单收藏与取消收藏功能- 添加收藏状态检查逻辑

- 支持取消已收藏的歌单
- 更新歌单收藏计数- 保存用户收藏记录
- 返回收藏操作结果状态
This commit is contained in:
ikmkj
2025-10-10 22:30:49 +08:00
parent b771dbdf2d
commit 4a379bed83

View File

@@ -368,10 +368,16 @@ public class PlaylistServiceImpl implements PlaylistService {
// 检查是否已收藏 // 检查是否已收藏
if (userCollectPlaylistRepository.existsByUserAndPlaylist(user, playlist)) { if (userCollectPlaylistRepository.existsByUserAndPlaylist(user, playlist)) {
throw new BusinessException("已收藏该歌单"); // 已收藏则取消收藏
} userCollectPlaylistRepository.deleteByUserAndPlaylist(user, playlist);
// 收藏歌单 // 更新收藏数
playlist.setCollectCount((playlist.getCollectCount() == null ? 0 : playlist.getCollectCount()) - 1);
playlistRepository.save(playlist);
return false; // 表示取消收藏
} else {
// 未收藏则进行收藏
com.test.musichouduan.entity.UserCollectPlaylist userCollectPlaylist = new com.test.musichouduan.entity.UserCollectPlaylist(); com.test.musichouduan.entity.UserCollectPlaylist userCollectPlaylist = new com.test.musichouduan.entity.UserCollectPlaylist();
userCollectPlaylist.setUser(user); userCollectPlaylist.setUser(user);
userCollectPlaylist.setPlaylist(playlist); userCollectPlaylist.setPlaylist(playlist);
@@ -381,8 +387,10 @@ public class PlaylistServiceImpl implements PlaylistService {
playlist.setCollectCount((playlist.getCollectCount() == null ? 0 : playlist.getCollectCount()) + 1); playlist.setCollectCount((playlist.getCollectCount() == null ? 0 : playlist.getCollectCount()) + 1);
playlistRepository.save(playlist); playlistRepository.save(playlist);
return true; return true; // 表示收藏成功
} }
}
@Override @Override
@Transactional @Transactional