| | |
| | | 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 { |
| | |
| | | } |
| | | 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) |
| | |
| | | } |
| | | return allSource, nil |
| | | } |
| | | |
| | | func SourceDeduplication(buf [] byte) ([]string,error) { |
| | | var info interface{} |
| | | json.Unmarshal(buf, &info) |
| | |
| | | } |
| | | return faceId,nil |
| | | } |
| | | |
| | | //解析聚合计数结构 |
| | | 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") |