diff --git a/music-houduan/src/main/java/com/test/musichouduan/dto/SingerDTO.java b/music-houduan/src/main/java/com/test/musichouduan/dto/SingerDTO.java index bdb9815..9187fba 100644 --- a/music-houduan/src/main/java/com/test/musichouduan/dto/SingerDTO.java +++ b/music-houduan/src/main/java/com/test/musichouduan/dto/SingerDTO.java @@ -70,6 +70,12 @@ public class SingerDTO { */ private Boolean isCollected; + /** + * 收藏时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + 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 61986e8..be2f520 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 @@ -36,6 +36,6 @@ public class UserCollectPlaylist { * 收藏时间 */ @CreationTimestamp - @Column(nullable = false, updatable = false) + @Column(name = "collect_time", nullable = false, updatable = false) private LocalDateTime createTime; } diff --git a/music-houduan/src/main/java/com/test/musichouduan/repository/UserSingerRepository.java b/music-houduan/src/main/java/com/test/musichouduan/repository/UserSingerRepository.java index eb021c1..bfabe36 100644 --- a/music-houduan/src/main/java/com/test/musichouduan/repository/UserSingerRepository.java +++ b/music-houduan/src/main/java/com/test/musichouduan/repository/UserSingerRepository.java @@ -12,6 +12,8 @@ import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; import org.springframework.transaction.annotation.Transactional; +import java.util.Optional; + /** * 用户歌手关联数据访问层 */ @@ -86,4 +88,13 @@ public interface UserSingerRepository extends JpaRepository { @Transactional @Query("DELETE FROM UserSinger us WHERE us.singer.id = :singerId") void deleteBySingerId(@Param("singerId") Long singerId); + + /** + * 根据用户ID和歌手ID查询收藏记录 + * + * @param userId 用户ID + * @param singerId 歌手ID + * @return 收藏记录 + */ + Optional findByUserIdAndSingerId(Long userId, Long singerId); } diff --git a/music-houduan/src/main/java/com/test/musichouduan/service/impl/SingerServiceImpl.java b/music-houduan/src/main/java/com/test/musichouduan/service/impl/SingerServiceImpl.java index e70b1fb..94e1afe 100644 --- a/music-houduan/src/main/java/com/test/musichouduan/service/impl/SingerServiceImpl.java +++ b/music-houduan/src/main/java/com/test/musichouduan/service/impl/SingerServiceImpl.java @@ -385,9 +385,15 @@ public class SingerServiceImpl implements SingerService { PageRequest.of(page - 1, size, Sort.by(Sort.Direction.DESC, "collectTime")) ); - // 转换为DTO + // 转换为DTO,并填充收藏时间 List singerDTOs = singerPage.getContent().stream() - .map(this::convertToDTO) + .map(singer -> { + SingerDTO dto = convertToDTO(singer); + // 从收藏记录中获取收藏时间 + userSingerRepository.findByUserIdAndSingerId(userId, singer.getId()) + .ifPresent(us -> dto.setCollectTime(us.getCollectTime())); + return dto; + }) .collect(Collectors.toList()); return new PageResult<>(