From ebb9bb29798f4da68d6afb9edb40ab20789d5498 Mon Sep 17 00:00:00 2001
From: sunty <1172534965@qq.com>
Date: 星期五, 28 八月 2020 21:36:22 +0800
Subject: [PATCH] add ), done.

---
 EsClient.go |   32 +++++++++++++++++++++++++++++++-
 1 files changed, 31 insertions(+), 1 deletions(-)

diff --git a/EsClient.go b/EsClient.go
index a24b0e2..70c3073 100644
--- a/EsClient.go
+++ b/EsClient.go
@@ -476,6 +476,7 @@
 	return tmpinfos
 }
 
+
 func FaceSourceAggregations(buf []byte, thresholdTime int,thresholdStayTime int) (sources []map[string]interface{}, err error) {
 	loc, err := time.LoadLocation("Asia/Shanghai")
 	if err != nil {
@@ -571,7 +572,7 @@
 			}
 			tmpHitSource["areaId"] = targetInfo["areaId"].(string)
 			tmpHitSource["startTime"] = sTime
-			tmpHitSource["startFacePicUrl"] = targetInfo["picSmUrl"].(string)
+			tmpHitSource["faceImg"] = targetInfo["picSmUrl"].(string)
 			tmpHitSource["endTime"] = eTime
 			tmpHitSource["stayTime"] = stayTime
 			hitsSources = append(hitsSources, tmpHitSource)
@@ -580,6 +581,7 @@
 	}
 	return allSource, nil
 }
+
 func SourceDeduplication(buf [] byte)  ([]string,error) {
 	var info interface{}
 	json.Unmarshal(buf, &info)
@@ -602,6 +604,34 @@
 	}
 	return faceId,nil
 }
+
+//瑙f瀽鑱氬悎璁℃暟缁撴瀯
+func SourceStatistics(buf [] byte)  ([]map[string]interface{},error) {
+	var info interface{}
+	json.Unmarshal(buf, &info)
+	out, ok := info.(map[string]interface{})
+	if !ok {
+		return nil, errors.New("http response interface can not change map[string]interface{}")
+	}
+	middle, ok := out["aggregations"].(map[string]interface{})
+	if !ok {
+		return nil, errors.New("first hits change error!")
+	}
+	bucketsAggs := middle["buckets_aggs"].(map[string]interface{})
+	buckets := bucketsAggs["buckets"].([]interface{})
+	if len(buckets) == 0 {
+		return nil, nil
+	}
+	resultData := make([]map[string]interface{},0)
+	for _, pick := range buckets {
+		data := make(map[string]interface{},0)
+		data["areaId"] = pick.(map[string]interface{})["key"].(map[string]interface{})["areaId"].(string)
+		data["peopleNum"] = int(pick.(map[string]interface{})["doc_count"].(float64))
+		resultData = append(resultData, data)
+	}
+	return	resultData,nil
+}
+
 func SourceAggregations(buf [] byte, thresholdTime float64, queryUseTime float64) (sources map[string]interface{}, err error) {
 	s := make(map[string]interface{})
 	loc, err := time.LoadLocation("Asia/Shanghai")

--
Gitblit v1.8.0