From 0577dce262fc6971f441251cb83b06c1d0461368 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 03 九月 2024 23:24:42 +0800
Subject: [PATCH] 车辆、人脸mongo重构
---
ycl-server/src/main/java/com/ycl/utils/MongoUtil.java | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 51 insertions(+), 7 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 4f88595..0089c62 100644
--- a/ycl-server/src/main/java/com/ycl/utils/MongoUtil.java
+++ b/ycl-server/src/main/java/com/ycl/utils/MongoUtil.java
@@ -1,11 +1,17 @@
package com.ycl.utils;
+import com.ycl.platform.domain.query.DataCenterQuery;
+import org.springframework.data.domain.Sort;
+import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.TextCriteria;
+import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.lang.reflect.Field;
+import java.util.ArrayList;
import java.util.Date;
+import java.util.List;
import java.util.Objects;
/**
@@ -17,16 +23,54 @@
public class MongoUtil {
/**
- * 鏋勯�犲叏鏂囩储寮曠殑鏉′欢
+ * 鏋勯�犳暟鎹腑蹇冩悳绱㈢殑鏉′欢
*
- * @param query
- * @param keyword
+ * @param params 鏁版嵁涓績璇锋眰鍙傛暟
+ * @param gbFiled 鍥芥爣鐮佸瓧娈垫槸鍝竴涓�
+ * @param timeFiled 鏃堕棿瀛楁鏄摢涓�涓�
+ * @param gbList 鍥芥爣鐮�
*/
- public static void fullText(Query query, String keyword) {
- if (StringUtils.hasText(keyword)) {
- TextCriteria criteria = TextCriteria.forDefaultLanguage().matching(keyword);
- query.addCriteria(criteria);
+ public static Query getQuery(DataCenterQuery params, String gbFiled, String timeFiled, List<String> gbList) {
+ // 鍏抽敭瀛�
+ TextCriteria text = null;
+ if (StringUtils.hasText(params.getKeyword())) {
+ text = TextCriteria.forDefaultLanguage().matching(params.getKeyword());
}
+
+ Criteria in = null;
+ // in
+ if (! CollectionUtils.isEmpty(gbList)) {
+ in = Criteria.where(gbFiled).in(gbList);
+ }
+
+ // 鏃堕棿
+ Criteria time = Criteria.where(timeFiled).gte(params.getStartTime()).lte(params.getEndTime());
+
+ // 灏嗘煡璇㈡潯浠禷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);
+ and.andOperator(qList);
+ // 杩斿洖鏌ヨ
+ return Query.query(and);
+ }
+
+ /**
+ * 鏋勯�犳暟鎹腑蹇冩悳绱㈢殑鏉′欢
+ *
+ * @param query 鏌ヨ鏉′欢
+ * @param timeFiled 鏃堕棿瀛楁鏄摢涓�涓�
+ * @param params 璇锋眰鍙傛暟
+ */
+ public static void setPage(Query query,DataCenterQuery params, String timeFiled) {
+ // 鎺掑簭鍒嗛〉
+ query.with(Sort.by(Sort.Order.desc(timeFiled))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize()));
}
}
--
Gitblit v1.8.0