feat(playlist): 实现歌单收藏与取消收藏功能- 添加收藏状态检查逻辑
- 支持取消已收藏的歌单 - 更新歌单收藏计数- 保存用户收藏记录 - 返回收藏操作结果状态
This commit is contained in:
@@ -368,22 +368,30 @@ 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();
|
||||||
|
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
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public boolean uncollectPlaylist(Long id) {
|
public boolean uncollectPlaylist(Long id) {
|
||||||
|
|||||||
Reference in New Issue
Block a user