From 7006d2e6e6c0281e4effc7fc70719af91b0c4982 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 30 九月 2024 12:23:46 +0800
Subject: [PATCH] 工单取图片优化
---
ycl-server/src/main/java/com/ycl/utils/MongoUtil.java | 71 ++++++++++++++++++++++++++++-------
1 files changed, 56 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..3cff535 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,75 @@
* 鏋勯�犳暟鎹腑蹇冩悳绱㈢殑鏉′欢
*
* @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);
+ }else if(params.getDataType().equals(2)){
+ dType = Criteria.where("deptTag").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