From b14531e3b850fe6d2fa916ba7b88b3e2bd2ff30a Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期三, 11 九月 2024 16:47:48 +0800
Subject: [PATCH] OSD加标签

---
 ycl-server/src/main/java/com/ycl/utils/MongoUtil.java |   69 +++++++++++++++++++++++++++-------
 1 files changed, 54 insertions(+), 15 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..70ea00e 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宸ュ叿绫�
@@ -26,36 +28,73 @@
      * 鏋勯�犳暟鎹腑蹇冩悳绱㈢殑鏉′欢
      *
      * @param params 鏁版嵁涓績璇锋眰鍙傛暟
-     * @param gbFiled 鍥芥爣鐮佸瓧娈垫槸鍝竴涓�
      * @param timeFiled 鏃堕棿瀛楁鏄摢涓�涓�
-     * @param gbList 鍥芥爣鐮�
+     * @param dataAuth 鐐逛綅绫诲瀷锛歯ull 鎵�鏈�  1 閮ㄧ骇  2 鐪佸巺  3 閲嶇偣  4 閲嶇偣鎸囨尌  5 鏄惁鏂拌澶�
+     * @param likeFileds 浣跨敤like鏌ヨ鐨勫瓧娈�
      */
-    public static Query getQuery(DataCenterQuery params, String gbFiled, String timeFiled, List<String> gbList) {
+    public static Query getQuery(DataCenterQuery params, String timeFiled, List<String> likeFileds, Integer dataAuth) {
         // 鍏抽敭瀛�
-        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;
+        Criteria tag = null;
         // in
-        if (! CollectionUtils.isEmpty(gbList)) {
-            in = Criteria.where(gbFiled).in(gbList);
+        if (Objects.nonNull(dataAuth)) {
+            switch (dataAuth) {
+                case 1:
+                    tag = Criteria.where("deptTag").is(Boolean.TRUE);
+                    break;
+                case 2:
+                    tag = Criteria.where("provinceTag").is(Boolean.TRUE);
+                    break;
+                case 3:
+                    tag = Criteria.where("importantTag").is(Boolean.TRUE);
+                    break;
+                case 4:
+                    tag = Criteria.where("importantCommandImageTag").is(Boolean.TRUE);
+                    break;
+                case 5:
+                    tag = Criteria.where("newDevice").is(Boolean.TRUE);
+                    break;
+                default:
+                    break;
+            }
         }
 
         // 鏃堕棿
         Criteria time = Criteria.where(timeFiled).gte(params.getStartTime()).lte(params.getEndTime());
 
+        // 鏁版嵁绫诲瀷
+        Criteria dType = null;
+        if (params.getDataType().equals(1)) {
+            dType = Criteria.where("provinceTag").is(Boolean.TRUE);
+        }
+
         // 灏嗘煡璇㈡潯浠禷nd璧锋潵
         Criteria and = new Criteria();
         List<Criteria> qList = new ArrayList<>(3);
-        if (Objects.nonNull(text)) {
-            qList.add(Criteria.byExample(text));
-        }
-        if (Objects.nonNull(in)) {
-            qList.add(in);
-        }
         qList.add(time);
+        if (Objects.nonNull(tag)) {
+            qList.add(tag);
+        }
+        if (Objects.nonNull(or)) {
+            qList.add(or);
+        }
+        if (Objects.nonNull(dType)) {
+            qList.add(dType);
+        }
         and.andOperator(qList);
         // 杩斿洖鏌ヨ
         return Query.query(and);

--
Gitblit v1.8.0