From e7a12d882876c47dc4dafacee9ef33a36f64451f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Thu, 3 Sep 2026 11:15:01 +0800 Subject: [PATCH] =?UTF-8?q?fix(system):=20=E4=BF=AE=E5=A4=8D=E7=B4=A0?= =?UTF-8?q?=E6=9D=90=E7=AE=A1=E7=90=86=E6=90=9C=E7=B4=A2=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E5=88=97=E5=90=8D=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修正 FileRecordMapper.xml 中关键词搜索部分,将 b.name 和 b.comments 改为正确字段 - 搜索范围扩展至文件名、路径、注释及用户的用户名、昵称和真实姓名 - 添加关键词数字校验,避免非数字字符串误匹配 create_user_id - 防止因跨 Mapper 复制导致的表别名错误及字段不存在的问题 --- .workbuddy/memory/2026-09-03.md | 10 ++++++++++ .../system/mapper/xml/FileRecordMapper.xml | 20 ++++++++++++------- 2 files changed, 23 insertions(+), 7 deletions(-) create mode 100644 .workbuddy/memory/2026-09-03.md diff --git a/.workbuddy/memory/2026-09-03.md b/.workbuddy/memory/2026-09-03.md new file mode 100644 index 0000000..c2cd0ac --- /dev/null +++ b/.workbuddy/memory/2026-09-03.md @@ -0,0 +1,10 @@ +# 2026-09-03 + +## 修复:素材管理搜索报 Unknown column 'b.name' + +- 文件:`src/main/java/com/gxwebsoft/common/system/mapper/xml/FileRecordMapper.xml` +- 根因:`selectSql` 的 `keywords` 模糊搜索块(2024-11-25 提交 cf4f010 引入,疑似从 UserVerifyMapper 复制过来未改别名)写成了 `b.name` / `b.comments`。 + 该块中 `a` = sys_file_record,`b` = sys_user;sys_user **没有** `name` 字段(只有 username / nickname / real_name / phone),故 MySQL 报 `Unknown column 'b.name' in 'where clause'`。 +- 修复:关键词改为搜索文件侧字段 `a.name` / `a.path` / `a.comments`,加上传者 `b.username` / `b.nickname` / `b.real_name`; + `a.create_user_id = #{param.keywords}` 用 `` 包住,避免非数字关键词被 MySQL 隐式转成 0。 +- 教训:跨 mapper 复制动态 SQL 片段时,务必核对表别名与目标表字段(sys_user 无 name 列)。 diff --git a/src/main/java/com/gxwebsoft/common/system/mapper/xml/FileRecordMapper.xml b/src/main/java/com/gxwebsoft/common/system/mapper/xml/FileRecordMapper.xml index 6a08242..dddea41 100644 --- a/src/main/java/com/gxwebsoft/common/system/mapper/xml/FileRecordMapper.xml +++ b/src/main/java/com/gxwebsoft/common/system/mapper/xml/FileRecordMapper.xml @@ -59,13 +59,19 @@ AND a.content_type LIKE CONCAT('%', #{param.contentType}, '%') - - AND ( - a.create_user_id = #{param.keywords} - OR b.name LIKE CONCAT('%', #{param.keywords}, '%') - OR b.comments LIKE CONCAT('%', #{param.keywords}, '%') - ) - + + AND ( + a.`name` LIKE CONCAT('%', #{param.keywords}, '%') + OR a.path LIKE CONCAT('%', #{param.keywords}, '%') + OR a.comments LIKE CONCAT('%', #{param.keywords}, '%') + OR b.username LIKE CONCAT('%', #{param.keywords}, '%') + OR b.nickname LIKE CONCAT('%', #{param.keywords}, '%') + OR b.real_name LIKE CONCAT('%', #{param.keywords}, '%') + + OR a.create_user_id = #{param.keywords} + + ) +