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 1c8c6bd..d374954 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 @@ -12,6 +12,7 @@ import com.test.musichouduan.entity.Music; import com.test.musichouduan.exception.BusinessException; import com.test.musichouduan.repository.MusicRepository; import com.test.musichouduan.repository.SingerRepository; +import com.test.musichouduan.repository.CommentRepository; import com.test.musichouduan.repository.SingerTypeRepository; import com.test.musichouduan.repository.UserRepository; import com.fasterxml.jackson.core.type.TypeReference; @@ -78,6 +79,9 @@ public class SingerServiceImpl implements SingerService { @Autowired private FileService fileService; + @Autowired + private CommentRepository commentRepository; + @Override public SingerDTO getSingerById(Long id) { Singer singer = singerRepository.findById(id) @@ -452,12 +456,14 @@ public class SingerServiceImpl implements SingerService { Long musicCount = musicRepository.countBySingersContaining(singer); singerDTO.setMusicCount(musicCount); -// // 设置粉丝数量 -// Long fansCount = userSingerRepository.count(); -// singerDTO.setFansCount(fansCount); // 设置粉丝数量 Long fansCount = userSingerRepository.countBySingerId(singer.getId()); singerDTO.setFansCount(fansCount); + singerDTO.setCollectCount(fansCount.intValue()); + + // 设置评论数 + long commentCount = commentRepository.countByTargetIdAndTargetType(singer.getId(), 3); // 3 for singer + singerDTO.setCommentCount((int) commentCount); // 检查当前登录用户是否已收藏该歌手 if (StpUtil.isLogin()) { diff --git a/music-qianduan/src/views/SingerDetail.vue b/music-qianduan/src/views/SingerDetail.vue index 8d52fd0..3a7c4e5 100644 --- a/music-qianduan/src/views/SingerDetail.vue +++ b/music-qianduan/src/views/SingerDetail.vue @@ -125,6 +125,9 @@ const fetchComments = async () => { const res = await getCommentList(singerId.value, 3, 1, 20) // targetType 3 表示歌手 if (res.code === 200) { comments.value = res.data.list || res.data.records || [] + if (singer.value && res.data.total !== undefined) { + singer.value.commentCount = res.data.total + } // 处理用户头像 comments.value.forEach(comment => { @@ -393,6 +396,28 @@ const formatTime = (seconds) => { return `${mins.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}` } +// 格式化评论数 +const formattedCommentCount = computed(() => { + if (!singer.value || singer.value.commentCount === undefined) { + return 0; + } + if (singer.value.commentCount > 99) { + return '99+'; + } + return singer.value.commentCount; +}); + +// 格式化收藏数 +const formattedCollectCount = computed(() => { + if (!singer.value || singer.value.collectCount === undefined) { + return 0; + } + if (singer.value.collectCount > 99) { + return '99+'; + } + return singer.value.collectCount; +}); + // 格式化粉丝数 const formatFans = (count) => { if (count < 10000) { @@ -477,11 +502,11 @@ onUnmounted(() => {