liuxiaolong
2019-10-26 178d9ac11afc4dddb447805d6e11c4e3045c95bb
searchPhoto search again
3个文件已修改
139 ■■■■■ 已修改文件
controllers/fileController.go 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
go.mod 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
go.sum 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/fileController.go
@@ -525,52 +525,61 @@
    util.ResponseFormat(c,code.Success,m)
}
func GetCompareDataTwice(co *service.CompareOnce,arg *models.EsSearch) map[string]interface{} {
    //camIds := arg.TreeNodes
    //tabIds := arg.Tabs
    //taskIds := arg.Tasks
    //alarmLevels := arg.AlarmLevel
    //timeArr := arg.SearchTime
    //input := arg.InputValue
    //resultList := make([]CompareResult,0)
    //for _,each :=range *co.CompareData {
    //    if each.Id !=""{
    //        n :=0
    //        if len(camIds) == 0 || isInArr(each.CameraId,camIds) {
    //            n++
    //        }
    //        if len(tabIds) == 0 {
    //            n++
    //        }
    //        if len(taskIds) == 0 || isInArr(each.TaskId, taskIds) {
    //            n++
    //        }
    //        //判断报警等级
    //        if len(alarmLevels) == 0 {
    //
    //        }
    //        n++
    //        //判断时间
    //        if len(timeArr) == 0 {
    //
    //        }
    //        n++
    //        if input == ""{
    //
    //        }
    //        n++
    //        if n == 6 {
    //            resultList = append(resultList,cr)
    //        }
    //    } else {
    //        resultList = append(resultList,cr)
    //    }
    //}
func GetCompareDataTwice(co *service.CompareOnce,searchBody *models.EsSearch) map[string]interface{} {
    m := make(map[string]interface{},0)
    //logger.Debug("GetCompareDataTwice.data:",resultList)
    //service.SortByScore(resultList)
    from := (arg.Page-1)*arg.Size
    to := from + arg.Size
    from := (searchBody.Page-1)*searchBody.Size
    to := from + searchBody.Size
    var hasCompEsPerson = false
    if searchBody.DataBases !=nil {
        for _,tableId :=range searchBody.DataBases {
            if tableId == "esData" {
                hasCompEsPerson = true
                break
            }
        }
    }
    if hasCompEsPerson {//二次检索ES比对结果
        arg := protomsg.CompareArgs{
            CompareThreshold: searchBody.Threshold,
        }
        localConf, err := cache.GetServerInfo()
        if err ==nil && localConf.AlarmIp != "" && localConf.ServerId != "" {
            arg.Source = true // 标识来源是web
            arg.AlarmLevel = searchBody.AlarmLevel
            arg.Tasks = searchBody.Tasks
            arg.TreeNodes = searchBody.TreeNodes
            arg.Tabs = searchBody.Tabs
            arg.SearchTime = searchBody.SearchTime
            arg.InputValue = searchBody.InputValue
            arg.Collection = searchBody.Collection
            arg.AnalyServerId = localConf.ServerId
            captureIds := esApi.GetAllLocalVideopersonsId(arg, config.EsInfo.EsIndex.VideoPersons.IndexName, localConf.AlarmIp, strconv.Itoa(int(localConf.AlarmPort)))
            if captureIds !=nil {
                var aResult protomsg.SdkCompareResult
                aList := getTwiceSearchResult(co, &captureIds)
                aTotal := aList.Len()
                if aTotal <= to {
                    aResult.CompareResult = (*aList)[from:aTotal]
                } else {
                    aResult.CompareResult = (*aList)[from:to]
                }
                out := FillDataToCompareResult(&aResult)
                m["total"] = aTotal
                m["compareNum"] = searchBody.CompareNum
                m["totalList"] = out
                return m
            } else {
                m["total"] = 0
                m["compareNum"] = searchBody.CompareNum
                m["totalList"] = []interface{}{}
                return m
            }
        }
    }
    var sCompResult protomsg.SdkCompareResult
    total := len(*co.CompareData)
    if total <= to {
@@ -580,23 +589,33 @@
    }
    resultList := FillDataToCompareResult(&sCompResult)
    m := make(map[string]interface{},0)
    m["total"] = total
    m["compareNum"] = arg.CompareNum
    m["compareNum"] = searchBody.CompareNum
    m["totalList"] = resultList
    //if from < len(resultList) {
    //    if to <= len(resultList) {
    //        m["totalList"] = resultList[from:to]
    //    } else {
    //        lte := len(resultList)
    //        m["totalList"] = resultList[from:lte]
    //    }
    //} else {
    //    m["totalList"] = []CompareResult{}
    //}
    return m
}
func getTwiceSearchResult(co *service.CompareOnce, captureIds *[]string) *service.CompareList{
    m := make(map[string]string)
    for _,capId :=range *captureIds {
        m[capId] = capId
    }
    var totalData service.CompareList
    for _,each :=range *co.CompareData {
        if _,ok :=m[each.Id];ok{
            totalData = append(totalData, each)
        }
    }
    if totalData != nil && totalData.Len() > 0{
        sort.Sort(totalData)
    }
    return &totalData
}
func isInArr(id string,arr []string) bool {
    for _,v :=range arr {
        if v == id {
go.mod
@@ -6,7 +6,7 @@
    basic.com/dbapi.git v0.0.0-20191025084729-a04db890e7b5 // indirect
    basic.com/fileServer/WeedFSClient.git v0.0.0-20190919054037-0182b6c3f5cb // indirect
    basic.com/pubsub/cache.git v0.0.0-20190718093725-6a413e1d7d48 // indirect
    basic.com/pubsub/esutil.git v0.0.0-20190807083318-4431a8860d47
    basic.com/pubsub/esutil.git v0.0.0-20191026081008-86655db5ef2c // indirect
    basic.com/pubsub/protomsg.git v0.0.0-20190829113947-eb5a5f99a745
    basic.com/valib/capture.git v0.0.0-20190924061718-7e98d8c98b3c // indirect
    basic.com/valib/deliver.git v0.0.0-20190531095353-25d8c3b20051
go.sum
@@ -4,8 +4,8 @@
basic.com/fileServer/WeedFSClient.git v0.0.0-20190919054037-0182b6c3f5cb/go.mod h1:FTryK8BsVLfUplx8a3+l8hJWub6VbAWZCUH7sPRZaso=
basic.com/pubsub/cache.git v0.0.0-20190718093725-6a413e1d7d48 h1:BBA30Rgljn6MRieC4gUncETJDyna3ObyubTo9HEQ2M0=
basic.com/pubsub/cache.git v0.0.0-20190718093725-6a413e1d7d48/go.mod h1:gHLJZz2ee1cGL0X0ae69fs56bAxkDgEQwDhhXZJNUcY=
basic.com/pubsub/esutil.git v0.0.0-20190807083318-4431a8860d47 h1:/c8JYWHOjxfrYMTLum6EHx3rcfz8oo0JUf9FGyfkCmk=
basic.com/pubsub/esutil.git v0.0.0-20190807083318-4431a8860d47/go.mod h1:yIvppFPFGC61DOdm71ujnsxZBMFUu2yKjr5O43bMWCw=
basic.com/pubsub/esutil.git v0.0.0-20191026081008-86655db5ef2c h1:quiJYXErNrSN43ydSC5G6s0ULUoeqTIow0WXOvJnCLk=
basic.com/pubsub/esutil.git v0.0.0-20191026081008-86655db5ef2c/go.mod h1:yIvppFPFGC61DOdm71ujnsxZBMFUu2yKjr5O43bMWCw=
basic.com/pubsub/protomsg.git v0.0.0-20190829113947-eb5a5f99a745 h1:NQ/172pylwH5BnVwt4vlrXVN+UDn8YJc+5V2ZPaC4P0=
basic.com/pubsub/protomsg.git v0.0.0-20190829113947-eb5a5f99a745/go.mod h1:un5NV5VWQoblVLZfx1Rt5vyLgwR0jI92d3VJhfrJhWU=
basic.com/valib/capture.git v0.0.0-20190924061718-7e98d8c98b3c h1:aNujtcGxq0cNLSK08cCamAiUYiQ2/ZsUMNXbX2w8Clc=