From f67c6f226206f48367e7035071560406f9f38255 Mon Sep 17 00:00:00 2001 From: ikmkj <1@qq,com> Date: Tue, 29 Jul 2025 19:56:08 +0800 Subject: [PATCH] =?UTF-8?q?feat(singer):=20=E4=BC=98=E5=8C=96=E6=AD=8C?= =?UTF-8?q?=E6=89=8B=E6=90=9C=E7=B4=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改了前端 Singer.vue 文件,增加了对 keyword 的判断,以显示不同的标题 - 更新了后端 SingerServiceImpl 文件,改进了搜索逻辑,支持多字段查询 --- .../test/musichouduan/service/impl/SingerServiceImpl.java | 6 +++++- music-qianduan/src/views/Singer.vue | 5 +++-- 2 files changed, 8 insertions(+), 3 deletions(-) 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 8bf6fd1..5dcd0ff 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 @@ -93,10 +93,14 @@ public class SingerServiceImpl implements SingerService { // 构建查询条件 Specification spec = (root, query, cb) -> { List predicates = new ArrayList<>(); + query.distinct(true); // 添加 distinct 查询 // 关键字查询 if (StringUtils.hasText(keyword)) { - predicates.add(cb.like(root.get("name"), "%" + keyword + "%")); + Predicate p1 = cb.like(root.get("name"), "%" + keyword + "%"); + Predicate p2 = cb.like(root.get("introduction"), "%" + keyword + "%"); + Predicate p3 = cb.like(root.join("musics", jakarta.persistence.criteria.JoinType.LEFT).get("name"), "%" + keyword + "%"); + predicates.add(cb.or(p1, p2, p3)); } // 类型查询 diff --git a/music-qianduan/src/views/Singer.vue b/music-qianduan/src/views/Singer.vue index 850d099..3d6da4a 100644 --- a/music-qianduan/src/views/Singer.vue +++ b/music-qianduan/src/views/Singer.vue @@ -243,7 +243,7 @@ onMounted(() => { -
+

热门歌手

{
-

全部歌手

+

搜索结果

+

全部歌手