From 6225f722fd54187b18f6b1a97d044e6918c8ce3b Mon Sep 17 00:00:00 2001
From: sunty <1172534965@qq.com>
Date: 星期四, 21 十一月 2019 17:46:59 +0800
Subject: [PATCH] fix StatisticsComprehensive

---
 EsApi.go |   92 ++++++++++++++++++++++++++--------------------
 1 files changed, 52 insertions(+), 40 deletions(-)

diff --git a/EsApi.go b/EsApi.go
index 6061321..09cd5e7 100644
--- a/EsApi.go
+++ b/EsApi.go
@@ -294,34 +294,48 @@
 }
 
 //鍒濆鍖栧疄鏃舵姄鎷�
-func InitRealTimeCapture(serverIp string, serverPort string, indexName string, isAlarm bool, quantity int) ([]protomsg.AIOcean, error) {
+func InitRealTimeCapture(serverIp string, serverPort string, indexName string, isAlarm string, category string, quantity int) ([]protomsg.AIOcean, error) {
 	var aIOceanInfo []protomsg.AIOcean
 	url := "http://" + serverIp + ":" + serverPort +
 		"/" + indexName + "/_search"
-	queryStr := ""
-	if isAlarm == true {
-		queryStr = `"query":{
-		"match_all":{}
-	},`
-	} else {
-		queryStr = `"query":{
+	isAlarmStr := ""
+	if isAlarm != "all" {
+		isAlarmStr = `				{
+					"term":{
+						"isAlarm":"` + isAlarm + `"
+					}
+				}`
+
+	}
+
+	categoryStr := ""
+	if category != "all" {
+		categoryStr = `				{
+					"term":{
+						"targetInfo.targetType":"` + category + `"
+					}
+				}`
+
+	}
+	if categoryStr != "" && isAlarmStr != "" {
+		isAlarmStr = isAlarmStr+","
+	}
+ 	queryStr := `"query":{
 		"bool":{
 			"filter":[
-				{
-					"term":{
-						"isAlarm":true
-					}
-				}
+				` + isAlarmStr + `
+				` + categoryStr + `
 			]
 		}
 	},`
-	}
+
 	DSLJson := `{
 	"size":` + strconv.Itoa(quantity) + `,
 	` + queryStr + `
 	"sort":[{"picDate":{"order":"desc"}}],
 	"_source": {"includes":[],"excludes":["*.feature"]}
 	}`
+	fmt.Println(DSLJson)
 	buf, err := EsReq("POST", url, []byte(DSLJson))
 	if err != nil {
 		return aIOceanInfo, err
@@ -342,18 +356,6 @@
 	var aIOceanInfo []protomsg.AIOcean
 	url := "http://" + serverIp + ":" + serverPort +
 		"/" + indexName + "/_search"
-	queryStr := ""
-	if isAlarm == true {
-		fmt.Println("continue")
-	} else {
-		queryStr = `
-				{
-					"term":{
-						"isAlarm":1
-					}
-				}
-					`
-	}
 	DSLJson := `{
 	"size":20,
 	"query":{
@@ -367,11 +369,15 @@
 						}		
 					}
 				},
-			` + queryStr + `
+				{
+					"term":{
+						"isAlarm":` + strconv.FormatBool(isAlarm) + `
+					}
+				}
 			]
 		}
 	},
-	"_source": ["baseInfo", "alarmRules", "sex", "analyServerName", "sdkName", "ageDescription", "content", "id", "cameraAddr", "picMaxUrl", "picDate", "race", "videoUrl", "picSmUrl", "taskName", "personIsHub", "isAlarm", "analyServerIp", "cameraId", "isAckAlarm"]
+	"_source": {"includes":[],"excludes":["*.feature"]}
 	}`
 
 	buf, err := EsReq("POST", url, []byte(DSLJson))
@@ -390,25 +396,31 @@
 }
 
 //缁煎悎缁熻
-func StatisticsComprehensive(serverIp string, serverPort string, indexName string, isAlarm bool) (total int, err error) {
-	isAlarmStr := ""
-	if isAlarm == true {
-		isAlarmStr = `,{"term":{"isAlarm":true}}`
-	}
+func StatisticsComprehensive(serverIp string, serverPort string, indexName string, isAlarm string) (total int, err error) {
 	url := "http://" + serverIp + ":" + serverPort +
 		"/" + indexName + "/_search"
+	isAlarmStr := ""
+	if isAlarm != "all" {
+		isAlarmStr = `				{
+					"term":{
+						"isAlarm":"` + isAlarm + `"
+					}
+				}`
+
+	}
 	DSLJson := `{
 	"size":0,
 	"query":{
 		"bool":{
-			"filter":[{
+			"filter":[
+				` + isAlarmStr + `
+				{
 				"range":{
 					"picDate":{
 						"gte":"now+8h/d"
 						}
 					}
 				}
-				` + isAlarmStr + `
 				]
 			}
 		}
@@ -451,9 +463,9 @@
 		}
 	},
 	"aggs":{
-		"sdkId_status":{
+		"sdkName_status":{
 			"terms":{
-				"field":"taskId"
+				"field":"sdkName.raw"
 			}
 		}
 	}
@@ -472,7 +484,7 @@
 	if !ok {
 		return nil, errors.New("first hits change error!")
 	}
-	sdkName_status, ok := middle["sdkId_status"].(map[string]interface{})
+	sdkName_status, ok := middle["sdkName_status"].(map[string]interface{})
 	if !ok {
 		return nil, errors.New("first hits change error!")
 	}
@@ -484,9 +496,9 @@
 			fmt.Println("change to source error!")
 			continue
 		}
-		sdkId := tmpbuf["key"].(string)
+		sdkName := tmpbuf["key"].(string)
 		count := int(tmpbuf["doc_count"].(float64))
-		source["id"] = sdkId
+		source["name"] = sdkName
 		source["value"] = count
 		sources = append(sources, source)
 	}

--
Gitblit v1.8.0