feat(singer): 添加歌手评论数和收藏数功能

- 在 SingerDetail.vue 中添加评论数和收藏数的格式化计算属性
- 更新后端 SingerServiceImpl 类,添加评论数和收藏数的查询逻辑
- 在前端页面中使用格式化的评论数和收藏数
This commit is contained in:
ikmkj
2025-07-29 00:06:48 +08:00
parent 28a5f451ca
commit 331245f8e6
2 changed files with 37 additions and 6 deletions

View File

@@ -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()) {