sunty
2020-08-24 a46931eb698575476d15f0af5cae4ebe7edc45a3
add auto param
1个文件已修改
174 ■■■■■ 已修改文件
EsApi.go 174 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
EsApi.go
@@ -161,32 +161,38 @@
//根据摄像机列表和时间查询人员浏览轨迹
func GetPersonDataByCameraIdAndTime(cameraId []string, startTime string, endTime string, serverIp string, ServerPort string, indexName string) (map[string]interface{}, error) {
    esCameraId := strings.Replace(strings.Trim(fmt.Sprint(cameraId), "[]"), " ", "\",\"", -1)
    var filterArr []string
    if cameraId != nil && len(cameraId) > 0{
        esCameraId := strings.Replace(strings.Trim(fmt.Sprint(cameraId), "[]"), " ", "\",\"", -1)
        filterArr = append(filterArr, `{
                            {
                            "terms": {
                            "cameraId": ["`+esCameraId+`"]
                        }
                }`)
    }
    filterArr = append(filterArr, `{
                    "range": {
                        "picDate": {
                            "gte": "`+startTime+`",
                            "lte": "`+endTime+`"
                        }
                    }
                }`)
    filterArr = append(filterArr, `                {
                    "term": {
                        "targetInfo.targetType.raw": "Yolo"
                    }
                }`)
    queryStr := strings.Join(filterArr, ",")
    personUrl := "http://" + serverIp + ":" + ServerPort + "/" + indexName + "/_search"
    personBody := `{
    "query": {
        "bool": {
            "filter": [
                {
                    "range": {
                        "picDate": {
                            "gte": "` + startTime + `",
                            "lte": "` + endTime + `"
                        }
                    }
                },
                {
                    "term": {
                        "targetInfo.targetType.raw": "Yolo"
                    }
                },
                {
                    "terms": {
                        "cameraId": [
                           "` + esCameraId + `"
                        ]
                    }
                }
                ` + queryStr + `
            ]
        }
    },
@@ -214,12 +220,12 @@
    if err != nil {
        return nil, err
    }
    queryUseTime := time.Now().Sub(queryStartTime).Seconds()*1000
    queryUseTime := time.Now().Sub(queryStartTime).Seconds() * 1000
    sources, err := Sourcelist(buf)
    if err != nil {
        return nil, err
    }
    resData,err := PerSonAnalysis(sources)
    resData, err := PerSonAnalysis(sources)
    source["result"] = resData
    source["total"] = len(resData)
    source["queryUseTime"] = queryUseTime
@@ -229,31 +235,45 @@
}
//根据时间范围,摄像机列表,分组聚合人脸列表,返回分组数据
func GetFaceDataBucketsByCameraIdAndTimeReturnByGrouped(cameraId []string, startTime string, endTime string, thresholdTime float64, serverIp string, ServerPort string, indexName string) (buckersDate map[string]interface{}, err error) {
    esCameraId := strings.Replace(strings.Trim(fmt.Sprint(cameraId), "[]"), " ", "\",\"", -1)
func GetFaceDataBucketsByCameraIdAndTimeReturnByGrouped(cameraId []string, personId []string, startTime string, endTime string, thresholdTime float64, serverIp string, ServerPort string, indexName string) (buckersDate map[string]interface{}, err error) {
    var filterArr []string
    if cameraId != nil && len(cameraId) > 0{
        esCameraId := strings.Replace(strings.Trim(fmt.Sprint(cameraId), "[]"), " ", "\",\"", -1)
        filterArr = append(filterArr, `{
                            "terms": {
                            "cameraId": ["`+esCameraId+`"]
                        }
                }`)
    }
    if personId != nil &&len(personId) > 0{
        esPersonId := strings.Replace(strings.Trim(fmt.Sprint(personId), "[]"), " ", "\",\"", -1)
        filterArr = append(filterArr, `{
            "terms": {
                "baseInfo.targetId": ["`+esPersonId+`"]
                }
            }`)
    }
    filterArr = append(filterArr, `{
                    "range": {
                        "picDate": {
                            "gte": "`+startTime+`",
                            "lte": "`+endTime+`"
                        }
                    }
                }`)
    filterArr = append(filterArr, `                {
                    "term": {
                        "targetInfo.targetType.raw": "FaceDetect"
                    }
                }`)
    queryStr := strings.Join(filterArr, ",")
    var buckersUrl = "http://" + serverIp + ":" + ServerPort + "/" + indexName + "/_search"
    var buckersBody = `{
    "query": {
        "bool": {
            "filter": [
                {
                    "range": {
                        "picDate": {
                            "gte": "` + startTime + `",
                            "lte": "` + endTime + `"
                        }
                    }
                },
                {
                    "term": {
                        "targetInfo.targetType.raw": "FaceDetect"
                    }
                },
                {
                    "terms": {
                        "cameraId": ["` + esCameraId + `"]
                    }
                }
                ` + queryStr + `
            ]
        }
    },
@@ -299,13 +319,15 @@
        }
    }
}`
    //fmt.Println(buckersUrl)
    //fmt.Println(buckersBody)
    sources := make(map[string]interface{})
    queryStartTime := time.Now()
    buf, err := EsReq("POST", buckersUrl, []byte(buckersBody))
    if err != nil {
        return nil, err
    }
    queryUseTime := time.Now().Sub(queryStartTime).Seconds()*1000
    queryUseTime := time.Now().Sub(queryStartTime).Seconds() * 1000
    //fmt.Println(queryUseTime)
    tmpSources, err := SourceAggregationsReturnByGrouped(buf, thresholdTime)
    if err != nil {
@@ -319,31 +341,45 @@
}
//根据时间范围,摄像机列表,分组聚合人脸列表
func GetFaceDataBucketsByCameraIdAndTime(cameraId []string, startTime string, endTime string, thresholdTime float64, serverIp string, ServerPort string, indexName string) (buckersDate map[string]interface{}, err error) {
    esCameraId := strings.Replace(strings.Trim(fmt.Sprint(cameraId), "[]"), " ", "\",\"", -1)
func GetFaceDataBucketsByCameraIdAndTime(cameraId []string, personId []string, startTime string, endTime string, thresholdTime float64, serverIp string, ServerPort string, indexName string) (buckersDate map[string]interface{}, err error) {
    var filterArr []string
    if cameraId != nil && len(cameraId) > 0{
        esCameraId := strings.Replace(strings.Trim(fmt.Sprint(cameraId), "[]"), " ", "\",\"", -1)
        filterArr = append(filterArr, `{
                            "terms": {
                            "cameraId": ["`+esCameraId+`"]
                        }
                }`)
    }
    if personId != nil &&len(personId) > 0{
        esPersonId := strings.Replace(strings.Trim(fmt.Sprint(personId), "[]"), " ", "\",\"", -1)
        filterArr = append(filterArr, `{
            "terms": {
                "baseInfo.targetId": ["`+esPersonId+`"]
                }
            }`)
    }
    filterArr = append(filterArr, `{
                    "range": {
                        "picDate": {
                            "gte": "`+startTime+`",
                            "lte": "`+endTime+`"
                        }
                    }
                }`)
    filterArr = append(filterArr, `                {
                    "term": {
                        "targetInfo.targetType.raw": "FaceDetect"
                    }
                }`)
    queryStr := strings.Join(filterArr, ",")
    var buckersUrl = "http://" + serverIp + ":" + ServerPort + "/" + indexName + "/_search"
    var buckersBody = `{
    "query": {
        "bool": {
            "filter": [
                {
                    "range": {
                        "picDate": {
                            "gte": "` + startTime + `",
                            "lte": "` + endTime + `"
                        }
                    }
                },
                {
                    "term": {
                        "targetInfo.targetType.raw": "FaceDetect"
                    }
                },
                {
                    "terms": {
                        "cameraId": ["` + esCameraId + `"]
                    }
                }
                ` + queryStr + `
            ]
        }
    },
@@ -396,9 +432,9 @@
    if err != nil {
        return nil, err
    }
    queryUseTime := time.Now().Sub(queryStartTime).Seconds()*1000
    queryUseTime := time.Now().Sub(queryStartTime).Seconds() * 1000
    sources, err := SourceAggregations(buf, thresholdTime,queryUseTime)
    sources, err := SourceAggregations(buf, thresholdTime, queryUseTime)
    if err != nil {
        return nil, err
    }
@@ -407,7 +443,7 @@
//根据抓拍人员id更新(picurl)图片地址
func UpdatePicUrlById(id string, picUrl string, indexName string, serverIp string, serverPort string) (err error) {
    updateTime := time.Now().Format("2006-01-02 15:04:05")
    updateTime := time.Now().Format("2006-01-02 15:04:05")
    tRes, err := AIOceaninfosbyid([]string{id}, indexName, serverIp, serverPort)
    if err != nil || len(tRes) == 0 {
        return err
@@ -415,10 +451,10 @@
    picMaxUrls := tRes[0].PicMaxUrl
    sourceStr := `        
        "lang":"painless",
        "inline": "ctx._source.picMaxUrl.add('` + picUrl + `');ctx._source.updateTime='`+updateTime+`'"
        "inline": "ctx._source.picMaxUrl.add('` + picUrl + `');ctx._source.updateTime='` + updateTime + `'"
`
    if len(picMaxUrls) >= 2 {
        sourceStr = `"source": "ctx._source.picMaxUrl[1]='` + picUrl + `';ctx._source.updateTime='`+updateTime+`'"`
        sourceStr = `"source": "ctx._source.picMaxUrl[1]='` + picUrl + `';ctx._source.updateTime='` + updateTime + `'"`
    }
    var info interface{}
    url := "http://" + serverIp + ":" + serverPort + "/" + indexName + "/_update_by_query?refresh=true"