feat: 统一列表模糊搜索行为

- 统一管理端和用户中心搜索参数及多字段包含匹配

- 修复聊天搜索竞态并优化部门重名路径展示

- 补充部门展开、模型空白词和聊天查询回归测试
This commit is contained in:
2026-08-13 22:29:59 +08:00
parent 765006747a
commit 64a85c6a5b
83 changed files with 1134 additions and 208 deletions

View File

@@ -1,5 +1,6 @@
package tech.easyflow.system.entity;
import com.mybatisflex.annotation.Column;
import tech.easyflow.system.entity.base.SysDeptBase;
import com.mybatisflex.annotation.Table;
@@ -12,4 +13,25 @@ import com.mybatisflex.annotation.Table;
@Table(value = "tb_sys_dept", comment = "部门表")
public class SysDept extends SysDeptBase {
@Column(ignore = true)
private String keyword;
/**
* 获取部门列表搜索关键字。
*
* @return 部门名称或编码关键字
*/
public String getKeyword() {
return keyword;
}
/**
* 设置部门列表搜索关键字。
*
* @param keyword 部门名称或编码关键字
*/
public void setKeyword(String keyword) {
this.keyword = keyword;
}
}

View File

@@ -1,5 +1,6 @@
package tech.easyflow.system.entity;
import tech.easyflow.common.util.SearchKeywordUtil;
import tech.easyflow.common.util.SpringContextUtil;
import tech.easyflow.common.dict.Dict;
import tech.easyflow.common.dict.DictItem;
@@ -81,7 +82,7 @@ public class SysDict extends SysDictBase {
QueryWrapper qw = QueryWrapper.create()
.eq(SysDictItem::getDictId, this.dictId)
.eq(SysDictItem::getStatus, 0)
.like(SysDictItem::getText, keyword);
.and("`text` LIKE ?", SearchKeywordUtil.literalContainsPattern(keyword));
List<SysDictItem> sysDictItems = itemService.list(qw);
Dict dict = new Dict();