From f0027ee7daf2c53631e974fe433147777f990ea7 Mon Sep 17 00:00:00 2001
From: shicf <shi_chongfu@163.com>
Date: 星期日, 29 三月 2026 17:43:34 +0800
Subject: [PATCH] 列表模糊查询
---
src/main/java/com/product/face/service/FaceListSearchService.java | 39 ++++++++++++++++++++++++++++++---------
1 files changed, 30 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/product/face/service/FaceListSearchService.java b/src/main/java/com/product/face/service/FaceListSearchService.java
index 7a1f02e..faa980f 100644
--- a/src/main/java/com/product/face/service/FaceListSearchService.java
+++ b/src/main/java/com/product/face/service/FaceListSearchService.java
@@ -80,11 +80,13 @@
"product_sys_users": ["uuid1", "user_name", "user_id", "user_account", "status"],
"product_sys_job_posts": ["job_post_uuid"],
"product_sys_org_levels": ["uuid2", "uuid3", "org_level_uuid", "dept_uuid"]
- }
+ }
+ * @param unionSql 鏄惁鏄敱union 缁勬垚鐨勫琛ㄦ煡璇紝涓旀槸鏀惧湪鏈�澶栧眰鐨勬煡璇㈡潯浠讹紝鏄垯涓嶈兘鍦ㄥ瓧娈靛墠闈㈠姞琛ㄥ埆鍚嶏紝鍚﹀垯瑕佹坊鍔犺〃鍒悕,閫傜敤sql濡傦細
+ * select * from (select* from xxx a union all select * from xxx b) where 鏉′欢
* @return
* @throws BaseException
*/
- public String getFaceListSearchFilter(Map<String, List<String>> aliasTable, Map<String, List<String>> aliasField, String faceUuid, String faceNumber, String val, Map<String, List<String>> tableOfField) throws BaseException {
+ public String getFaceListSearchFilter(Map<String, List<String>> aliasTable, Map<String, List<String>> aliasField, String faceUuid, String faceNumber, String val, Map<String, List<String>> tableOfField,Boolean unionSql) throws BaseException {
if (StringUtils.isEmpty(val)) {
return "";
}
@@ -101,24 +103,43 @@
// if (t != null && t.size() > 0) {
// tableAlias = t.get(0);
// }
- Map<String, List<String>> params = face.getFilters(aliasTable, aliasField,tableOfField);
+ Map<String, List<String>> params = face.getFilters(aliasTable, aliasField,tableOfField,unionSql);
List<String> fieldNames = params.get("fields");
List<String> filters = params.get("filter");
- String filter = "";
+ StringBuilder filter = new StringBuilder();
for (int i = 0; i < fieldNames.size(); i++) {
if (i > 0) {
- filter += " or ";
+ filter.append(" or ");
}
- filter += " " + fieldNames.get(i) + " LIKE BINARY concat('%','" + val + "','%')";
+ filter.append(" ").append(fieldNames.get(i)).append( " LIKE BINARY concat('%','").append( val).append("','%')");
}
for (int i = 0; i < filters.size(); i++) {
if (!"".equals(filter)) {
- filter += " or ";
+ filter.append(" or ");
}
- filter += filters.get(i).replace("~val~", val);
+ filter.append(filters.get(i).replace("~val~", val));
}
- return "".equals(filter) ? "" : "( " + filter + " )";
+ return "".equals(filter) ? "" :filter.insert(0, "( ").append(" )").toString();
}
return "";
}
+ /**
+ * 鍒楄〃鍏抽敭瀛楁悳绱�
+ * @param aliasTable {"product_sys_staffs":["a"],"product_sys_users":["b"],"product_sys_job_posts":["e"],"product_sys_org_levels":["c","d"]}
+ * @param aliasField
+ * @param faceUuid
+ * @param faceNumber
+ * @param val
+ * @param tableOfField 琛ㄥ搴斿瓧娈� 濡傦細table_relate_fields = {
+ "product_sys_staffs": ["uuid", "staff_status", "staff_avatar", "show_name", "mobile_phone", "staff_status_save_value", "status_save_value"],
+ "product_sys_users": ["uuid1", "user_name", "user_id", "user_account", "status"],
+ "product_sys_job_posts": ["job_post_uuid"],
+ "product_sys_org_levels": ["uuid2", "uuid3", "org_level_uuid", "dept_uuid"]
+ }
+ * @return
+ * @throws BaseException
+ */
+ public String getFaceListSearchFilter(Map<String, List<String>> aliasTable, Map<String, List<String>> aliasField, String faceUuid, String faceNumber, String val, Map<String, List<String>> tableOfField) throws BaseException {
+ return getFaceListSearchFilter(aliasTable, aliasField, faceUuid, faceNumber, val, tableOfField,false);
+ }
}
--
Gitblit v1.9.2