diff --git a/music-houduan/src/main/java/com/test/musichouduan/dto/PlaylistDTO.java b/music-houduan/src/main/java/com/test/musichouduan/dto/PlaylistDTO.java index 830845d..28f58f7 100644 --- a/music-houduan/src/main/java/com/test/musichouduan/dto/PlaylistDTO.java +++ b/music-houduan/src/main/java/com/test/musichouduan/dto/PlaylistDTO.java @@ -98,4 +98,9 @@ public class PlaylistDTO { * 热度分 */ private double hotScore; + + /** + * 收藏时间 + */ + private LocalDateTime collectTime; } diff --git a/music-houduan/src/main/java/com/test/musichouduan/entity/UserCollectPlaylist.java b/music-houduan/src/main/java/com/test/musichouduan/entity/UserCollectPlaylist.java index 5d7b8e6..2af92b8 100644 --- a/music-houduan/src/main/java/com/test/musichouduan/entity/UserCollectPlaylist.java +++ b/music-houduan/src/main/java/com/test/musichouduan/entity/UserCollectPlaylist.java @@ -33,9 +33,8 @@ public class UserCollectPlaylist { private Playlist playlist; /** - * 创建时间 + * 收藏时间 */ - @CreationTimestamp @Column(nullable = false, updatable = false) - private LocalDateTime createTime; + private LocalDateTime collectTime; } diff --git a/music-houduan/src/main/java/com/test/musichouduan/repository/UserCollectPlaylistRepository.java b/music-houduan/src/main/java/com/test/musichouduan/repository/UserCollectPlaylistRepository.java index 8185c27..5b660f2 100644 --- a/music-houduan/src/main/java/com/test/musichouduan/repository/UserCollectPlaylistRepository.java +++ b/music-houduan/src/main/java/com/test/musichouduan/repository/UserCollectPlaylistRepository.java @@ -99,4 +99,6 @@ public interface UserCollectPlaylistRepository extends JpaRepository findCollectedPlaylist(Long userId, Pageable pageable); + + Optional findByUserIdAndPlaylistId(Long userId, Long playlistId); } diff --git a/music-houduan/src/main/java/com/test/musichouduan/service/impl/PlaylistServiceImpl.java b/music-houduan/src/main/java/com/test/musichouduan/service/impl/PlaylistServiceImpl.java index 76fef09..37f457c 100644 --- a/music-houduan/src/main/java/com/test/musichouduan/service/impl/PlaylistServiceImpl.java +++ b/music-houduan/src/main/java/com/test/musichouduan/service/impl/PlaylistServiceImpl.java @@ -372,7 +372,11 @@ public class PlaylistServiceImpl implements PlaylistService { } // 收藏歌单 - userCollectPlaylistRepository.collectPlaylist(user.getId(), playlist.getId()); + com.test.musichouduan.entity.UserCollectPlaylist userCollectPlaylist = new com.test.musichouduan.entity.UserCollectPlaylist(); + userCollectPlaylist.setUser(user); + userCollectPlaylist.setPlaylist(playlist); + userCollectPlaylist.setCollectTime(java.time.LocalDateTime.now()); + userCollectPlaylistRepository.save(userCollectPlaylist); // 更新收藏数 playlist.setCollectCount((playlist.getCollectCount() == null ? 0 : playlist.getCollectCount()) + 1); @@ -399,7 +403,7 @@ public class PlaylistServiceImpl implements PlaylistService { } // 取消收藏歌单 - userCollectPlaylistRepository.uncollectPlaylist(user.getId(), playlist.getId()); + userCollectPlaylistRepository.deleteByUserAndPlaylist(user, playlist); // 更新收藏数 playlist.setCollectCount((playlist.getCollectCount() == null ? 0 : playlist.getCollectCount()) - 1); @@ -430,7 +434,13 @@ public class PlaylistServiceImpl implements PlaylistService { // 转换为DTO List playlistDTOs = playlistPage.getContent().stream() - .map(this::convertToDTO) + .map(playlist -> { + PlaylistDTO dto = convertToDTO(playlist); + // 从收藏记录中获取收藏时间 + userCollectPlaylistRepository.findByUserIdAndPlaylistId(userId, playlist.getId()) + .ifPresent(ucp -> dto.setCollectTime(ucp.getCollectTime())); + return dto; + }) .collect(Collectors.toList()); return new PageResult<>(