From 7e607c414de91474002774ebb409ebf52437fc20 Mon Sep 17 00:00:00 2001 From: sunty <1172534965@qq.com> Date: 星期三, 26 八月 2020 11:09:38 +0800 Subject: [PATCH] fix stay time --- EsClient.go | 51 +++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 39 insertions(+), 12 deletions(-) diff --git a/EsClient.go b/EsClient.go index 8481e19..9a19612 100644 --- a/EsClient.go +++ b/EsClient.go @@ -506,9 +506,9 @@ topAttentionHits := inf.(map[string]interface{})["top_attention_hits"].(map[string]interface{}) middleHits := topAttentionHits["hits"].(map[string]interface{}) finalHits := middleHits["hits"].([]interface{}) - tmpHitSource := make(map[string]interface{}) startTime := "" for _, in := range finalHits { + tmpHitSource := make(map[string]interface{}) tmpbuf, ok := in.(map[string]interface{}) if !ok { fmt.Println("change to source error!") @@ -532,19 +532,33 @@ stayTime := 0.0 if startTime != "" { sinTime, _ := time.ParseInLocation("2006-01-02 15:04:05", startTime, loc) - stayTime = math.Abs(sinTime.Sub(mTime).Seconds()) - if stayTime <= thresholdTime { + passTime := math.Abs(mTime.Sub(sinTime).Seconds()) + //fmt.Println("passTime: ", passTime) + if passTime <= thresholdTime { startTime = tmpTime hitsSources[len(hitsSources)-1]["endTime"] = tmpTime continue } else { + hitStartTime := hitsSources[len(hitsSources)-1]["startTime"].(string) + realStartTime, _ := time.ParseInLocation("2006-01-02 15:04:05", hitStartTime, loc) + //fmt.Println("hitStartTime: ",hitStartTime) + //fmt.Println("realStartTime: ",realStartTime) + //fmt.Println("mTime: ",mTime) + stayTime = math.Abs(mTime.Sub(realStartTime).Seconds()) + //fmt.Println("stayTime: ",stayTime) + hitsSources[len(hitsSources)-1]["endTime"] = tmpTime + //fmt.Println("stayTime",stayTime) if sinTime.Sub(mTime).Seconds() == 0 { sinTime.Add(time.Second * 1) sinTime.Format("2006-01-02 15:04:05") - hitsSources[len(hitsSources)-1]["endTime"] = sinTime + hitsSources[len(hitsSources)-1]["endTime"] = tmpTime + stayTime = stayTime + 1 } + hitsSources[len(hitsSources)-1]["stayTime"] = stayTime + //fmt.Println(hitsSources[len(hitsSources)-1]) } } + //fmt.Println("========================================================") startTime = tmpTime tmpHitSource["personId"] = baseInfo["targetId"].(string) tmpHitSource["cameraId"] = source["cameraId"].(string) @@ -565,7 +579,7 @@ tmpHitSource["endTBackGroundPicUrl"] = source["picMaxUrl"].([]interface{}) tmpHitSource["endTFacePicUrl"] = targetInfo["picSmUrl"].(string) if source["picWH"] != nil { - tmpHitSource["picWH"] = source["picWH"].(map[string]interface{}) + tmpHitSource["picWH"] = source["picWH"].(map[string]interface{}) } hitsSources = append(hitsSources, tmpHitSource) } @@ -610,9 +624,9 @@ topAttentionHits := inf.(map[string]interface{})["top_attention_hits"].(map[string]interface{}) middleHits := topAttentionHits["hits"].(map[string]interface{}) finalHits := middleHits["hits"].([]interface{}) - tmpHitSource := make(map[string]interface{}) startTime := "" for _, in := range finalHits { + tmpHitSource := make(map[string]interface{}) tmpbuf, ok := in.(map[string]interface{}) if !ok { fmt.Println("change to source error!") @@ -636,17 +650,30 @@ stayTime := 0.0 if startTime != "" { sinTime, _ := time.ParseInLocation("2006-01-02 15:04:05", startTime, loc) - stayTime = math.Abs(sinTime.Sub(mTime).Seconds()) - if stayTime <= thresholdTime { + passTime := math.Abs(mTime.Sub(sinTime).Seconds()) + //fmt.Println("passTime: ", passTime) + if passTime <= thresholdTime { startTime = tmpTime hitsSources[len(hitsSources)-1]["endTime"] = tmpTime continue } else { + hitStartTime := hitsSources[len(hitsSources)-1]["startTime"].(string) + realStartTime, _ := time.ParseInLocation("2006-01-02 15:04:05", hitStartTime, loc) + //fmt.Println("hitStartTime: ",hitStartTime) + //fmt.Println("realStartTime: ",realStartTime) + //fmt.Println("mTime: ",mTime) + stayTime = math.Abs(mTime.Sub(realStartTime).Seconds()) + //fmt.Println("stayTime: ",stayTime) + hitsSources[len(hitsSources)-1]["endTime"] = tmpTime + //fmt.Println("stayTime",stayTime) if sinTime.Sub(mTime).Seconds() == 0 { sinTime.Add(time.Second * 1) sinTime.Format("2006-01-02 15:04:05") - hitsSources[len(hitsSources)-1]["endTime"] = sinTime + hitsSources[len(hitsSources)-1]["endTime"] = tmpTime + stayTime = stayTime + 1 } + hitsSources[len(hitsSources)-1]["stayTime"] = stayTime + //fmt.Println(hitsSources[len(hitsSources)-1]) } } startTime = tmpTime @@ -673,9 +700,9 @@ } hitsSources = append(hitsSources, tmpHitSource) } - tmpSources["groupKey"] = groupKey - tmpSources["hits_sources"] = hitsSources - sources = append(sources, tmpSources) + tmpSources["groupKey"] = groupKey + tmpSources["hits_sources"] = hitsSources + sources = append(sources, tmpSources) } return sources, nil } -- Gitblit v1.8.0