feat(playlist): 实现歌单收藏与取消收藏功能- 添加收藏状态检查逻辑
- 支持取消已收藏的歌单 - 更新歌单收藏计数- 保存用户收藏记录 - 返回收藏操作结果状态
This commit is contained in:
@@ -368,22 +368,30 @@ public class PlaylistServiceImpl implements PlaylistService {
|
||||
|
||||
// 检查是否已收藏
|
||||
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();
|
||||
userCollectPlaylist.setUser(user);
|
||||
userCollectPlaylist.setPlaylist(playlist);
|
||||
userCollectPlaylistRepository.save(userCollectPlaylist);
|
||||
|
||||
// 更新收藏数
|
||||
playlist.setCollectCount((playlist.getCollectCount() == null ? 0 : playlist.getCollectCount()) + 1);
|
||||
playlistRepository.save(playlist);
|
||||
|
||||
return true; // 表示收藏成功
|
||||
}
|
||||
|
||||
// 收藏歌单
|
||||
com.test.musichouduan.entity.UserCollectPlaylist userCollectPlaylist = new com.test.musichouduan.entity.UserCollectPlaylist();
|
||||
userCollectPlaylist.setUser(user);
|
||||
userCollectPlaylist.setPlaylist(playlist);
|
||||
userCollectPlaylistRepository.save(userCollectPlaylist);
|
||||
|
||||
// 更新收藏数
|
||||
playlist.setCollectCount((playlist.getCollectCount() == null ? 0 : playlist.getCollectCount()) + 1);
|
||||
playlistRepository.save(playlist);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public boolean uncollectPlaylist(Long id) {
|
||||
|
||||
Reference in New Issue
Block a user