From 6f023031f3f6f08ac441189be8b16838145edd3e Mon Sep 17 00:00:00 2001
From: sunty <1172534965@qq.com>
Date: 星期二, 14 一月 2020 15:31:27 +0800
Subject: [PATCH] add tools

---
 EsApi.go |  200 ++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 177 insertions(+), 23 deletions(-)

diff --git a/EsApi.go b/EsApi.go
index 7d64e23..189a85f 100644
--- a/EsApi.go
+++ b/EsApi.go
@@ -78,7 +78,7 @@
 }
 
 //鏍规嵁鐩爣id鏌ヨ宸茶拷鍔犳潯鏁�
-func GetLinkTagInfoSize(id string, indexName string, serverIp string, serverPort string) (size int,err error){
+func GetLinkTagInfoSize(id string, indexName string, serverIp string, serverPort string) (size int, err error) {
 	url := "http://" + serverIp + ":" + serverPort + "/" + indexName + "/_search"
 	queryDSL := `{
 		  	"query": {
@@ -87,20 +87,20 @@
 			}
 		}
 	}`
-	buf, err := EsReq("POST",url,[]byte(queryDSL))
+	buf, err := EsReq("POST", url, []byte(queryDSL))
 	if err != nil {
-		return -1,err
+		return -1, err
 	}
 	source, err := Sourcelist(buf)
 	if err != nil {
-		return -1,err
+		return -1, err
 	}
 	if source[0]["linkTagInfo"] != nil {
 		size = len(source[0]["linkTagInfo"].([]interface{}))
 	} else {
-		return -1,errors.New("璇ユ暟缁勪笉瀛樺湪")
+		return -1, errors.New("璇ユ暟缁勪笉瀛樺湪")
 	}
-	return size,nil
+	return size, nil
 }
 
 //鏍规嵁鐩爣id杩藉姞璺熻釜淇℃伅
@@ -118,7 +118,7 @@
   },
   "script": {
     "lang": "painless",
-    "inline": "ctx._source.linkTagInfo.add(params.newparam);ctx._source.updateTime='`+updateTime+`'",
+    "inline": "ctx._source.linkTagInfo.add(params.newparam);ctx._source.updateTime='` + updateTime + `'",
     "params": {
       "newparam": ` + targetInfo + `
     }
@@ -151,7 +151,7 @@
 }
 
 //鏍规嵁鎶撴媿浜哄憳id鏇存柊锛坴ideourl锛夋憚鍍忔満鍦板潃
-func UpdateVideourlById(id string, videoUrl string, indexName string, serverIp string, serverPort string, command int) (statu int,err error) {
+func UpdateVideourlById(id string, videoUrl string, indexName string, serverIp string, serverPort string, command int) (statu int, err error) {
 
 	var info interface{}
 	url := "http://" + serverIp + ":" + serverPort + "/" + indexName + "/_update_by_query?refresh=true"
@@ -176,7 +176,7 @@
 	if err != nil {
 		fmt.Println("http request videoUrlInfo info is err!")
 		statu = 500
-		return statu,err
+		return statu, err
 	}
 	json.Unmarshal(buf, &info)
 	//fmt.Println(info)
@@ -184,23 +184,23 @@
 	if !ok {
 		fmt.Println("http response interface can not change map[string]interface{}")
 		statu = 500
-		return statu,errors.New("http response interface can not change map[string]interface{}")
+		return statu, errors.New("http response interface can not change map[string]interface{}")
 	}
 	middle, ok := out["updated"].(float64)
 	if !ok {
 		fmt.Println("first updated change error!")
 		statu = 500
-		return statu,errors.New("first updated change error!")
+		return statu, errors.New("first updated change error!")
 	}
 	if middle == 1 {
 		statu = 200
-		return statu,nil
+		return statu, nil
 	}
 	if middle == 0 {
 		statu = 201
-		return statu,errors.New("宸茬粡淇敼")
+		return statu, errors.New("宸茬粡淇敼")
 	}
-	return statu,nil
+	return statu, nil
 }
 
 //鑾峰彇褰撳墠鑺傜偣鎶撴媿搴撴墍鏈変汉鍛業D*缂撳瓨*
@@ -661,6 +661,11 @@
 
 }
 
+//娣诲姞鍗冲皢鍒犻櫎淇″彿
+func AddDeleteSignal() {
+
+}
+
 /****************************************浠ヤ笅涓簊dkCompare姣斿缂撳瓨浣跨敤鏂规硶*********************************************/
 //鑾峰彇鏌ヨ鎬绘暟 *缂撳瓨*
 func GetTotal(serverIp string, serverPort string, indexName string, shards string, targetType string) (total int) {
@@ -670,7 +675,7 @@
 		"bool": {
 			"filter": [{
 				"term": {
-					"targetInfo.targetType.raw": "`+targetType+`"
+					"targetInfo.targetType.raw": "` + targetType + `"
 				}
 			}]
 		}
@@ -704,9 +709,9 @@
 	var source []string
 	switch targetType {
 	case "face":
-		source = []string{"id","targetInfo.feature","analyServerId","cameraId"}
+		source = []string{"id", "targetInfo.feature", "analyServerId", "cameraId"}
 	case "track":
-		source = []string{"id","targetInfo.feature","analyServerId","cameraId","targetInfo.attachTarget.feature","targetInfo.targetLocation","linkTagInfo.targetInfo.feature","linkTagInfo.targetInfo.attachTarget.feature","linkTagInfo.cameraId","linkTagInfo.targetInfo.targetLocation"}
+		source = []string{"id", "targetInfo.feature", "analyServerId", "cameraId", "targetInfo.attachTarget.feature", "targetInfo.targetLocation", "linkTagInfo.targetInfo.feature", "linkTagInfo.targetInfo.attachTarget.feature", "linkTagInfo.cameraId", "linkTagInfo.targetInfo.targetLocation"}
 	}
 	JsonDSL := `
 				{
@@ -715,7 +720,7 @@
 				            "filter": [
 				                {
 				                    "term": {
-				                        "targetInfo.targetType.raw": "`+targetType+`"
+				                        "targetInfo.targetType.raw": "` + targetType + `"
 				                    }
 				                },
 				                {
@@ -730,7 +735,7 @@
 				        }
 				    },
 				    "size": 1000000,
-				    "_source": ["`+strings.Replace(strings.Trim(fmt.Sprint(source), "[]"), " ", "\",\"", -1)+`"]
+				    "_source": ["` + strings.Replace(strings.Trim(fmt.Sprint(source), "[]"), " ", "\",\"", -1) + `"]
 				}
     `
 	//logger.Debug(url)
@@ -761,9 +766,9 @@
 	var source []string
 	switch targetType {
 	case "face":
-		source = []string{"id","targetInfo.feature","analyServerId"}
+		source = []string{"id", "targetInfo.feature", "analyServerId"}
 	case "track":
-		source = []string{"id","targetInfo.feature","analyServerId","targetInfo.attachTarget.feature","targetInfo.targetLocation","linkTagInfo.targetInfo.feature","linkTagInfo.targetInfo.attachTarget.feature","linkTagInfo.targetInfo.targetLocation"}
+		source = []string{"id", "targetInfo.feature", "analyServerId", "targetInfo.attachTarget.feature", "targetInfo.targetLocation", "linkTagInfo.targetInfo.feature", "linkTagInfo.targetInfo.attachTarget.feature", "linkTagInfo.targetInfo.targetLocation"}
 	}
 
 	url := "http://" + serverIp + ":" + serverPort + "/" + indexName + "/_search?preference=_shards:" + shards + "|_only_local"
@@ -774,14 +779,14 @@
 							"filter": [
 								{
 									"term": {
-										"targetInfo.targetType.raw": "`+targetType+`"
+										"targetInfo.targetType.raw": "` + targetType + `"
 								}
 									}
 							]
 						}	
 					},
                      "size":` + number + `,
-                     "_source": ["`+strings.Replace(strings.Trim(fmt.Sprint(source), "[]"), " ", "\",\"", -1)+`"]
+                     "_source": ["` + strings.Replace(strings.Trim(fmt.Sprint(source), "[]"), " ", "\",\"", -1) + `"]
                     }`
 
 	buf, err := EsReq("POST", url, []byte(JsonDSL))
@@ -799,3 +804,152 @@
 	dbpersoninfos := Parsesources(sources)
 	return dbpersoninfos, nil
 }
+
+//************************CORN TASK*******************************
+//鏌ヨ鏃ユ湡鑼冨洿鍐呮槸鍚﹁繕瀛樺湪鏁版嵁
+func QueryAnalyServerDate(serverIp string, serverPort string, indexName string, startTime string, endTime string, analyServerId string) (result bool, err error) {
+	url := "http://" + serverIp + ":" + serverPort + "/" + indexName + "/_search"
+	deleteJson := `{
+	"query":{
+		"bool":{
+			"filter":[{
+				"range":{
+					"updateTime":{
+						"gte":"` + startTime + `",
+						"lte":"` + endTime + `"
+					}
+				}
+			},
+			{
+				"term":{
+					"analyServerId":"` + analyServerId + `"
+				}
+			}
+			]
+		}
+	}
+}	`
+	buf, err := EsReq("POST", url, []byte(deleteJson))
+	if err != nil {
+		return false, errors.New("璇锋眰澶辫触")
+	}
+	resTotal, err := SourceTotal(buf)
+	if err != nil {
+		return false, errors.New("瑙g爜澶辫触")
+	}
+	if resTotal == -1 || resTotal == 0{
+		result = false
+	} else {
+		result = true
+	}
+	return result, nil
+}
+
+
+//鎸夋棩鏈熻寖鍥达紝鏈嶅姟鍣↖d鍒犻櫎鏁版嵁
+func DeleteAnalyServerDate(serverIp string, serverPort string, indexName string, startTime string, endTime string, analyServerId string) (result bool, err error) {
+	url := "http://" + serverIp + ":" + serverPort + "/" + indexName + "/_delete_by_query"
+	deleteJson := `{
+	"query":{
+		"bool":{
+			"filter":[{
+				"range":{
+					"updateTime":{
+						"gte":"` + startTime + `",
+						"lte":"` + endTime + `"
+					}
+				}
+			},
+			{
+				"term":{
+					"analyServerId":"` + analyServerId + `"
+				}
+			}
+			]
+		}
+	}
+}	`
+	buf, err := EsReq("POST", url, []byte(deleteJson))
+	if err != nil {
+		return false, errors.New("璇锋眰澶辫触")
+	}
+	deleteRes, err := SourceDeleted(buf)
+	if err != nil {
+		return false, errors.New("瑙g爜澶辫触")
+	}
+	if deleteRes == -1 {
+		result = false
+	} else {
+		result = true
+	}
+	return result, nil
+}
+
+//缁欐墍鏈夎妭鐐硅拷鍔犲垹闄や换鍔′俊鎭�
+func AddDelTask(serverIp string, serverPort string, indexName string, startTime string, endTime string, analyServerId string) (result bool, err error) {
+	url := "http://" + serverIp + ":" + serverPort + "/" + indexName + "/_update_by_query"
+	addJson := `{
+    "script": {
+    	"lang":"painless",
+        "inline": "ctx._source.instantTask.add(params.newtask)",
+        "params": {
+            "newtask": {
+                "instantClearId": "` + analyServerId + `",
+                "startTime": "` + startTime + `",
+                "endTime": "` + endTime + `"
+            }
+        }
+    },
+    "query": {
+        "match_all": {}
+    }
+}`
+	buf, err := EsReq("POST", url, []byte(addJson))
+	if err != nil {
+		return false, errors.New("璇锋眰澶辫触")
+	}
+	updateRes, err := SourceUpdated(buf)
+	if err != nil {
+		return false, errors.New("瑙g爜澶辫触")
+	}
+	if updateRes == -1 {
+		result = false
+	} else {
+		result = true
+	}
+	return result, nil
+}
+
+//绉婚櫎宸叉墽琛屽畬鐨勫垹闄や换鍔�
+func DeleteDelTask(serverIp string, serverPort string, indexName string, analyServerId string) (result bool, err error) {
+	url := "http://" + serverIp + ":" + serverPort + "/" + indexName + "/_update_by_query"
+	deleteJson := `{
+    "script": {
+    	"lang":"painless",
+        "inline": "ctx._source.instantTask.remove(0)"
+    },
+    "query": {
+        "bool": {
+        	"filter":[{
+        		"term":{
+        			"id":"` + analyServerId + `"
+        		}
+        	}]
+        }
+    }
+}`
+	buf, err := EsReq("POST", url, []byte(deleteJson))
+	if err != nil {
+		return false, errors.New("璇锋眰澶辫触")
+	}
+	updateRes, err := SourceUpdated(buf)
+	if err != nil {
+		return false, errors.New("瑙g爜澶辫触")
+	}
+	if updateRes == -1 {
+		result = false
+	} else {
+		result = true
+	}
+	return result, nil
+}

--
Gitblit v1.8.0