From 615af82c9ea47993e78b00e9c64e887e063474f8 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期三, 04 九月 2024 22:08:50 +0800
Subject: [PATCH] 点位修改增加部级标签设置
---
ycl-server/src/main/java/com/ycl/utils/MongoUtil.java | 29 +++++++++++++++++++++--------
1 files changed, 21 insertions(+), 8 deletions(-)
diff --git a/ycl-server/src/main/java/com/ycl/utils/MongoUtil.java b/ycl-server/src/main/java/com/ycl/utils/MongoUtil.java
index 0089c62..316516c 100644
--- a/ycl-server/src/main/java/com/ycl/utils/MongoUtil.java
+++ b/ycl-server/src/main/java/com/ycl/utils/MongoUtil.java
@@ -13,6 +13,8 @@
import java.util.Date;
import java.util.List;
import java.util.Objects;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
/**
* mongo宸ュ叿绫�
@@ -29,12 +31,23 @@
* @param gbFiled 鍥芥爣鐮佸瓧娈垫槸鍝竴涓�
* @param timeFiled 鏃堕棿瀛楁鏄摢涓�涓�
* @param gbList 鍥芥爣鐮�
+ * @param likeFileds 浣跨敤like鏌ヨ鐨勫瓧娈�
*/
- public static Query getQuery(DataCenterQuery params, String gbFiled, String timeFiled, List<String> gbList) {
+ public static Query getQuery(DataCenterQuery params, String gbFiled, String timeFiled, List<String> likeFileds, List<String> gbList) {
// 鍏抽敭瀛�
- TextCriteria text = null;
- if (StringUtils.hasText(params.getKeyword())) {
- text = TextCriteria.forDefaultLanguage().matching(params.getKeyword());
+ List<Criteria> likeList = null;
+ if (StringUtils.hasText(params.getKeyword()) && !CollectionUtils.isEmpty(likeFileds)) {
+ // 杞箟
+ String keyword = Pattern.quote(params.getKeyword());
+ likeList = likeFileds.stream().map(filed -> {
+ return Criteria.where(filed).regex(".*?" + keyword + ".*");
+ }).collect(Collectors.toList());
+ }
+ // 灏唋ike瀛楁or璧锋潵
+ Criteria or = null;
+ if (! CollectionUtils.isEmpty(likeList)) {
+ or = new Criteria();
+ or.orOperator(likeList);
}
Criteria in = null;
@@ -49,13 +62,13 @@
// 灏嗘煡璇㈡潯浠禷nd璧锋潵
Criteria and = new Criteria();
List<Criteria> qList = new ArrayList<>(3);
- if (Objects.nonNull(text)) {
- qList.add(Criteria.byExample(text));
- }
+ qList.add(time);
if (Objects.nonNull(in)) {
qList.add(in);
}
- qList.add(time);
+ if (Objects.nonNull(or)) {
+ qList.add(or);
+ }
and.andOperator(qList);
// 杩斿洖鏌ヨ
return Query.query(and);
--
Gitblit v1.8.0