From c76b4d9281cf4e5056f8b0077ba3857715fb13c4 Mon Sep 17 00:00:00 2001 From: ikmkj Date: Sat, 21 Mar 2026 23:21:11 +0800 Subject: [PATCH] =?UTF-8?q?feat(singer):=20=E6=B7=BB=E5=8A=A0=E6=AD=8C?= =?UTF-8?q?=E6=89=8B=E6=94=B6=E8=97=8F=E6=97=B6=E9=97=B4=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在SingerDTO中新增collectTime字段用于显示收藏时间 - 修改SingerServiceImpl中的分页查询逻辑以填充收藏时间信息 - 修复UserCollectPlaylist实体中createTime字段的数据库映射注解 - 扩展UserSingerRepository添加findByUserIdAndSingerId方法支持收藏记录查询 --- .../java/com/test/musichouduan/dto/SingerDTO.java | 6 ++++++ .../test/musichouduan/entity/UserCollectPlaylist.java | 2 +- .../musichouduan/repository/UserSingerRepository.java | 11 +++++++++++ .../musichouduan/service/impl/SingerServiceImpl.java | 10 ++++++++-- 4 files changed, 26 insertions(+), 3 deletions(-) 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<>(