From 5ab130b3312dbe8aa9761f1c1587cc428384a1f4 Mon Sep 17 00:00:00 2001
From: sunty <1172534965@qq.com>
Date: 星期四, 30 五月 2024 10:08:19 +0800
Subject: [PATCH] 新增空字段判断
---
db/elastic.go | 64 +++++++++++++++++--------------
1 files changed, 35 insertions(+), 29 deletions(-)
diff --git a/db/elastic.go b/db/elastic.go
index b6195ea..de9734d 100644
--- a/db/elastic.go
+++ b/db/elastic.go
@@ -8,6 +8,7 @@
"ruleModelEngine/config"
"ruleModelEngine/util"
"strconv"
+ "strings"
)
func decodeDocumentInfos(docInfo []map[string]interface{}) ([]CaptureInfo, error) {
@@ -16,8 +17,6 @@
var captureInfo = CaptureInfo{}
captureInfo.DocumentNumber = info["key"].(string)
buckets := info["top_hits"].(map[string]interface{})["hits"].(map[string]interface{})["hits"].([]interface{})
- orgId := buckets[0].(map[string]interface{})["_source"].(map[string]interface{})["orgId"].(string)
- captureInfo.OrgId = orgId
for _, sourceInfo := range buckets {
rSourceInfo := sourceInfo.(map[string]interface{})
source := rSourceInfo["_source"].(map[string]interface{})
@@ -83,13 +82,6 @@
}
}
}
- ],
- "must_not": [
- {
- "term": {
- "alarmRules.ruleId": 4
- }
- }
]
}
},
@@ -105,7 +97,8 @@
"top_hits": {
"_source": [
"documentNumber",
- "id"
+ "id",
+ "alarmRules.ruleId"
],
"size": 1,
"sort": [
@@ -121,8 +114,8 @@
}
}
}`
- //fmt.Println(queryDSL)
//fmt.Println(esURL)
+ //fmt.Println(queryDSL)
docNumberMap := make(map[string]string)
buf, err := esutil.EsReq("POST", esURL, []byte(queryDSL))
if err != nil {
@@ -132,14 +125,30 @@
if err != nil {
return nil, err
}
- fmt.Println("source", source)
+ //fmt.Println("source", source)
for _, info := range source {
buckets := info["top_hits"].(map[string]interface{})["hits"].(map[string]interface{})["hits"].([]interface{})
for _, sourceInfo := range buckets {
rSourceInfo := sourceInfo.(map[string]interface{})
- source := rSourceInfo["_source"].(map[string]interface{})
- documentNumber := source["documentNumber"].(string)
- id := source["id"].(string)
+ rSource := rSourceInfo["_source"].(map[string]interface{})
+ //濡傛灉璇ュぉ鏈�鍚庝竴鏉″凡缁忛璀﹁繃杩涘嚭寮傚父锛屽皢杩囨护鎺変笉鍐嶉璀�
+ alarmFlag := false
+ if rSource["alarmRules"] != nil {
+ alarmRules := rSource["alarmRules"].([]interface{})
+ for _, alarmRule := range alarmRules {
+ ruleId := alarmRule.(map[string]interface{})["ruleId"].(string)
+ //fmt.Println("ruleId", ruleId,rSource["documentNumber"].(string),rSource["id"].(string))
+ if ruleId == "4" {
+ alarmFlag = true
+ break
+ }
+ }
+ }
+ if alarmFlag == true {
+ continue
+ }
+ documentNumber := rSource["documentNumber"].(string)
+ id := rSource["id"].(string)
docNumberMap[documentNumber] = id
}
}
@@ -259,8 +268,8 @@
logger.Info("鏈湁棰勮 id: ", id)
return true, nil
}
- fmt.Println("棰勮 id: ", id)
- fmt.Println("棰勮 AlarmRule: ", alarmRules)
+ logger.Info("棰勮 id: ", id)
+ logger.Info("棰勮 AlarmRule: ", alarmRules)
esURL := "http://" + config.Elastic.Host + ":" + config.Elastic.Port + "/" + config.Elastic.Index + "/_update_by_query"
newAlarmRulesJson, err := json.Marshal(alarmRules)
if err != nil {
@@ -307,9 +316,10 @@
return false, nil
}
-func Query1MDataByCommunityId(communityId string) ([]CaptureInfo, error) {
+func Query1MDataByCommunityId(communityId string, documentNumber []string, days int) ([]CaptureInfo, error) {
//fmt.Println(config.Elastic.DocumentSize)
//fmt.Println(config.Elastic.TopHitsSize)
+ documentNumberStr := strings.Replace(strings.Trim(fmt.Sprint(documentNumber), "[]"), " ", "\",\"", -1)
esURL := "http://" + config.Elastic.Host + ":" + config.Elastic.Port + "/" + config.Elastic.Index + "/_search"
queryDSL := `
{
@@ -319,7 +329,7 @@
{
"range": {
"picDate": {
- "gte": "now-30d/d",
+ "gte": "now-` + strconv.Itoa(days) + `d/d",
"lt": "now/d"
}
}
@@ -328,16 +338,13 @@
"term":{
"communityId":"` + communityId + `"
}
+ },
+ {
+ "terms":{
+ "documentNumber":["` + documentNumberStr + `"]
+ }
}
- ],
- "must_not": [
- {
- "term": {
- "documentNumber": ""
- }
- }
- ],
- "should": []
+ ]
}
},
"size": 0,
@@ -353,7 +360,6 @@
"_source": [
"documentNumber",
"picDate",
- "orgId",
"cameraLocation.building",
"cameraLocation.unit",
"cameraLocation.floor",
--
Gitblit v1.8.0