From 35db37ca121cf3177f3afedaa37ea14bc3959f72 Mon Sep 17 00:00:00 2001 From: ikmkj <1@qq,com> Date: Sat, 26 Jul 2025 22:12:39 +0800 Subject: [PATCH] =?UTF-8?q?feat(music):=20=E4=BC=98=E5=8C=96=E9=9F=B3?= =?UTF-8?q?=E4=B9=90=E5=92=8C=E6=AD=8C=E6=89=8B=E7=9B=B8=E5=85=B3=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E7=BB=93=E6=9E=84=E5=92=8C=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 MusicDTO 中添加 typeName 和 releaseDate 字段 - 在 SingerDTO 中将 type 替换为 typeId 和 typeName - 更新 MusicServiceImpl 和 SingerServiceImpl 中的相关逻辑 - 在前端 SingerDetail 组件中使用 typeName 替换类型代码 --- .../com/test/musichouduan/dto/MusicDTO.java | 10 ++++++++++ .../com/test/musichouduan/dto/SingerDTO.java | 9 +++++++-- .../service/impl/MusicServiceImpl.java | 7 ++++++- .../service/impl/SingerServiceImpl.java | 13 ++++++------- music-qianduan/src/views/SingerDetail.vue | 17 +---------------- 5 files changed, 30 insertions(+), 26 deletions(-) diff --git a/music-houduan/src/main/java/com/test/musichouduan/dto/MusicDTO.java b/music-houduan/src/main/java/com/test/musichouduan/dto/MusicDTO.java index 46e29ea..616f9b6 100644 --- a/music-houduan/src/main/java/com/test/musichouduan/dto/MusicDTO.java +++ b/music-houduan/src/main/java/com/test/musichouduan/dto/MusicDTO.java @@ -86,6 +86,16 @@ public class MusicDTO { */ private List typeNames; + /** + * 音乐类型名称(字符串) + */ + private String typeName; + + /** + * 发行日期 + */ + private LocalDateTime releaseDate; + /** * 是否已收藏 */ 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 f173094..d13c330 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 @@ -33,9 +33,14 @@ public class SingerDTO { private String introduction; /** - * 歌手类型 + * 歌手类型ID */ - private SingerTypeDTO type; + private Long typeId; + + /** + * 歌手类型名称 + */ + private String typeName; /** * 音乐数量 diff --git a/music-houduan/src/main/java/com/test/musichouduan/service/impl/MusicServiceImpl.java b/music-houduan/src/main/java/com/test/musichouduan/service/impl/MusicServiceImpl.java index 0728a0d..b9ab3fb 100644 --- a/music-houduan/src/main/java/com/test/musichouduan/service/impl/MusicServiceImpl.java +++ b/music-houduan/src/main/java/com/test/musichouduan/service/impl/MusicServiceImpl.java @@ -650,10 +650,15 @@ public class MusicServiceImpl implements MusicService { // 设置类型ID和名称列表 if (!CollectionUtils.isEmpty(music.getTypes())) { + List typeNames = music.getTypes().stream().map(MusicType::getName).collect(Collectors.toList()); musicDTO.setTypeIds(music.getTypes().stream().map(MusicType::getId).collect(Collectors.toList())); - musicDTO.setTypeNames(music.getTypes().stream().map(MusicType::getName).collect(Collectors.toList())); + musicDTO.setTypeNames(typeNames); + musicDTO.setTypeName(String.join("、", typeNames)); } + // 设置发行日期 + musicDTO.setReleaseDate(music.getCreateTime()); + // 设置歌手ID和名称列表 if (!CollectionUtils.isEmpty(music.getSingers())) { musicDTO.setSingerIds(music.getSingers().stream().map(Singer::getId).collect(Collectors.toList())); 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 7b93e60..93bb2d8 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 @@ -217,8 +217,8 @@ public class SingerServiceImpl implements SingerService { singer.setCollectCount(0); // 设置歌手类型 - if (singerDTO.getType() != null && singerDTO.getType().getId() != null) { - SingerType type = singerTypeRepository.findById(singerDTO.getType().getId()) + if (singerDTO.getTypeId() != null) { + SingerType type = singerTypeRepository.findById(singerDTO.getTypeId()) .orElseThrow(() -> new BusinessException("歌手类型不存在")); singer.setType(type); } @@ -259,8 +259,8 @@ public class SingerServiceImpl implements SingerService { singer.setIntroduction(singerDTO.getIntroduction()); // 更新歌手类型 - if (singerDTO.getType() != null && singerDTO.getType().getId() != null) { - SingerType type = singerTypeRepository.findById(singerDTO.getType().getId()) + if (singerDTO.getTypeId() != null) { + SingerType type = singerTypeRepository.findById(singerDTO.getTypeId()) .orElseThrow(() -> new BusinessException("歌手类型不存在")); singer.setType(type); } @@ -441,9 +441,8 @@ public class SingerServiceImpl implements SingerService { // 设置类型信息 if (singer.getType() != null) { - SingerTypeDTO typeDTO = new SingerTypeDTO(); - BeanUtils.copyProperties(singer.getType(), typeDTO); - singerDTO.setType(typeDTO); + singerDTO.setTypeId(singer.getType().getId()); + singerDTO.setTypeName(singer.getType().getName()); } // 设置音乐数量 diff --git a/music-qianduan/src/views/SingerDetail.vue b/music-qianduan/src/views/SingerDetail.vue index 277cf30..8d52fd0 100644 --- a/music-qianduan/src/views/SingerDetail.vue +++ b/music-qianduan/src/views/SingerDetail.vue @@ -404,21 +404,6 @@ const formatFans = (count) => { } } -// 获取歌手类型名称 -const getSingerTypeName = (type) => { - const typeMap = { - 1: '华语男歌手', - 2: '华语女歌手', - 3: '华语组合', - 4: '欧美男歌手', - 5: '欧美女歌手', - 6: '欧美组合', - 7: '日韩男歌手', - 8: '日韩女歌手', - 9: '日韩组合' - } - return typeMap[type] || '未知' -} // WebSocket 订阅实例 let commentSubscription = null; @@ -480,7 +465,7 @@ onUnmounted(() => {

{{ singer.name }}

-
类型:{{ getSingerTypeName(singer.type) }}
+
类型:{{ singer.typeName }}
{{ singer.musicCount }}