From 4d59ac84878d58f098d1137ad215727e064ee337 Mon Sep 17 00:00:00 2001
From: sunty <1172534965@qq.com>
Date: 星期五, 28 八月 2020 21:38:19 +0800
Subject: [PATCH] add StatisticsEveryAreaPersonsNumber GetFaceDataByTimeAndId
---
EsApi.go | 145 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 143 insertions(+), 2 deletions(-)
diff --git a/EsApi.go b/EsApi.go
index 49bd181..487198a 100644
--- a/EsApi.go
+++ b/EsApi.go
@@ -256,20 +256,109 @@
if err != nil {
return nil, err
}
- fmt.Println(len(source))
faceSource := make([]map[string]interface{}, 0)
for index, info := range source {
if int(info["stayTime"].(float64)) > thresholdStayTime {
faceSource = append(faceSource, source[index])
}
}
- //fmt.Println(len(source))
if len(faceSource) > total {
mapsSort := MapsSort{}
mapsSort.Key = "endTime"
mapsSort.MapList = faceSource
sort.Sort(&mapsSort)
return mapsSort.MapList[:total], nil
+ }
+ return faceSource, nil
+}
+
+func GetFaceDataByTimeAndIds(startTime string, endTime string, id string, thresholdTime int, thresholdStayTime int, serverIp string, serverPort string, indexName string) (resData []map[string]interface{}, err error) {
+ var requestUrl = "http://" + serverIp + ":" + serverPort + "/" + indexName + "/_search"
+ var requestBody = `{
+ "query": {
+ "bool": {
+ "filter": [
+ {
+ "range": {
+ "picDate": {
+ "gte": "` + startTime + `",
+ "lte": "` + endTime + `"
+ }
+ }
+ },
+ {
+ "term":{
+ "targetInfo.targetType.raw": "FaceDetect"
+ }
+ },
+ {
+ "term":{
+ "baseInfo.targetId": "` + id + `"
+ }
+ }
+ ]
+ }
+ },
+ "size": 0,
+ "aggs": {
+ "buckets_aggs": {
+ "composite": {
+ "sources": [
+ {
+ "faceId": {
+ "terms": {
+ "field": "baseInfo.targetId"
+ }
+ }
+ },
+ {
+ "areaId": {
+ "terms": {
+ "field": "targetInfo.areaId"
+ }
+ }
+ }
+ ],
+ "size": 10000000
+ },
+ "aggs": {
+ "top_attention_hits": {
+ "top_hits": {
+ "size": 1000000,
+ "sort": [
+ {
+ "picDate": {
+ "order": "asc"
+ }
+ }
+ ],
+ "_source": {
+ "includes": [
+ "baseInfo.targetId",
+ "targetInfo.picSmUrl",
+ "targetInfo.areaId",
+ "picDate"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+}`
+ buf, err := EsReq("POST", requestUrl, []byte(requestBody))
+ if err != nil {
+ return nil, err
+ }
+ source, err := FaceSourceAggregations(buf, thresholdTime, thresholdStayTime)
+ if err != nil {
+ return nil, err
+ }
+ faceSource := make([]map[string]interface{}, 0)
+ for index, info := range source {
+ if int(info["stayTime"].(float64)) > thresholdStayTime {
+ faceSource = append(faceSource, source[index])
+ }
}
return faceSource, nil
}
@@ -327,6 +416,58 @@
return ids, nil
}
+//缁熻鍚勪釜鍖哄煙浜烘暟
+func StatisticsEveryAreaPersonsNumber(startTime string, endTime string, serverIp string, serverPort string, indexName string) ([]map[string]interface{},error){
+ var requestUrl = "http://" + serverIp + ":" + serverPort + "/" + indexName + "/_search"
+ var requestBody = `{
+ "query": {
+ "bool": {
+ "filter": [
+ {
+ "range": {
+ "picDate": {
+ "gte": "` + startTime + `",
+ "lte": "` + endTime + `"
+ }
+ }
+ },
+ {
+ "term": {
+ "targetInfo.targetType.raw": "Yolo"
+ }
+ }
+ ]
+ }
+ },
+ "size": 0,
+ "aggs": {
+ "buckets_aggs": {
+ "composite": {
+ "sources": [
+ {
+ "areaId": {
+ "terms": {
+ "field": "targetInfo.areaId"
+ }
+ }
+ }
+ ],
+ "size": 10000000
+ }
+ }
+ }
+}`
+ buf,err := EsReq("POST",requestUrl,[]byte(requestBody))
+ if err != nil{
+ return nil,err
+ }
+ result,err := SourceStatistics(buf)
+ if err != nil{
+ return nil,err
+ }
+ return result,nil
+}
+
/**************************************customer analysis util end**************************************/
//鏍规嵁鎽勫儚鏈哄垪琛ㄥ拰鏃堕棿鏌ヨ浜哄憳娴忚杞ㄨ抗
func GetPersonDataByCameraIdAndTime(cameraId []string, startTime string, endTime string, serverIp string, serverPort string, indexName string) (map[string]interface{}, error) {
--
Gitblit v1.8.0