From f88a44f58396fb36a979cfe5640a36d6ac2d7289 Mon Sep 17 00:00:00 2001
From: liuxiaolong <736321739@qq.com>
Date: 星期四, 25 七月 2019 14:50:56 +0800
Subject: [PATCH] add discovery

---
 controllers/esSearch.go |   59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 56 insertions(+), 3 deletions(-)

diff --git a/controllers/esSearch.go b/controllers/esSearch.go
index 3a0c019..971857d 100644
--- a/controllers/esSearch.go
+++ b/controllers/esSearch.go
@@ -32,6 +32,34 @@
 	data := findEsData(searchBody)
 	util.ResponseFormat(c, code.Success, data)
 }
+//鑾峰彇鐩戞帶绛夌骇
+func getAlarmLevel(alarmlevel []int) ([]string) {
+	d := dbapi.DicApi{}
+        res,data := d.FindByType("ALARMLEVEL")
+        if data == nil {
+                fmt.Println("dsadasd")
+        }
+	fmt.Println(res)
+		// fmt.Println(data)
+	alarmLevel := make(map[int]string)
+	
+	tmp := data.(map[string]interface{})
+		for _,value := range tmp["ALARMLEVEL"].([]interface{}) {
+			// fmt.Println(value.(map[string]interface{})["value"],"		",value.(map[string]interface{})["name"]) 
+			val := value.(map[string]interface{})["value"].(string)
+			name := value.(map[string]interface{})["name"].(string)
+			vl,err := strconv.Atoi(val)
+			if err != nil {
+				fmt.Println("dsadas")
+			}
+			alarmLevel[vl] = name
+		}
+	alarmLevelRes := make([]string,len(alarmlevel))
+		for i,v := range  alarmlevel  {
+			alarmLevelRes[i] =  alarmLevel[v]
+		}
+	return alarmLevelRes	
+}
 
 func findEsData(searchBody map[string]interface{}) map[string]interface{} {
 	webPage := int(searchBody["page"].(float64))
@@ -47,7 +75,7 @@
 	queryBody := searchBody["inputValue"].(string)
 	//妫�绱㈡
 	if queryBody != "" {
-		queryStr = "\"must\":[{\"multi_match\":{\"query\":\"" + queryBody + "\",\"fields\":[\"alarmRules.alarmLevel^1.5\",\"ageDescription^1.5\",\"taskName^1.5\",\"tableName^1.5\",\"sex^2.0\",\"race^2.0\",\"content^1.0\",\"idCard^1.8\",\"cameraAddr^1.0\"]," +
+		queryStr = "\"must\":[{\"multi_match\":{\"query\":\"" + queryBody + "\",\"fields\":[\"alarmRules.alarmLevel^1.5\",\"ageDescription^1.5\",\"taskName^1.5\",\"baseInfo.tableName^1.5\",\"sex^2.0\",\"race^2.0\",\"content^1.0\",\"baseInfo.idCard^1.8\",\"cameraAddr^1.0\"]," +
 			"\"type\":\"cross_fields\",\"operator\":\"OR\",\"slop\":0,\"prefix_length\":0,\"max_expansions\":50,\"zero_terms_query\":\"NONE\",\"auto_generate_synonyms_phrase_query\":true,\"fuzzy_transpositions\":true,\"boost\":1}}],"
 	}
 	gteDate := searchBody["searchTime"].([]interface{})[0].(string)
@@ -74,14 +102,37 @@
 	if tableId != nil && len(tableId) > 0 {
 		esTableId = strings.Replace(strings.Trim(fmt.Sprint(tableId), "[]"), " ", "\",\"", -1)
 		index = config.EsInfo.EsIndex.VideoPersons.IndexName
-		esTableIdStr = "{\"terms\":{\"tableId\":[\"" + esTableId + "\"]}},"
+		esTableIdStr = "{\"terms\":{\"baseInfo.tableId\":[\"" + esTableId + "\"]}},"
 	}
+	//鍒ゆ柇鏀惰棌鐘舵��
 	isCollectStr := ""
 	isCollect := searchBody["collection"].(string)
 	if isCollect != "" {
 		isCollectStr = "{\"term\":{\"isCollect\":\"" + isCollect + "\"}},"
 	}
-
+	//鍒ゆ柇甯冮槻绛夌骇id
+	alarmLevelId :=searchBody["alarmlevel"].([]int)
+	alarmLevelStr := ""
+	defenceStateStr := ""
+	if len(alarmLevelId) > 0 {
+		flag := false
+		for i,v := range alarmLevelId {
+			if v == -1 {
+				alarmLevelId = append(alarmLevelId[:i], alarmLevelId[i+1:]...)
+				defenceStateStr = "{\"term\":{\"alarmRules.defenceState\":false}},"
+				flag = true
+				break
+			}
+		}
+		if len(alarmLevelId) > 0{
+			if flag == false {
+				defenceStateStr = "{\"term\":{\"alarmRules.defenceState\":true}},"
+			}
+			id := strings.Replace(strings.Trim(fmt.Sprint(getAlarmLevel(alarmLevelId)), "[]"), " ", "\",\"", -1)
+			alarmLevelStr = "{\"terms\":{\"alarmRules.alarmLevel\":[\"" + id + "\"]}},"		
+		}
+	}
+		
 	//浣跨敤es搴曞眰鏈哄埗澶勭悊鍒嗛〉
 	//璇锋眰澶�
 	url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
@@ -96,6 +147,8 @@
 		"\"query\":{\"bool\":{" + queryStr +
 		"\"filter\":[" +
 		cameraIdStr +
+		alarmLevelStr +
+		defenceStateStr +
 		taskIdStr +
 		isCollectStr +
 		esTableIdStr +

--
Gitblit v1.8.0