From 178d9ac11afc4dddb447805d6e11c4e3045c95bb Mon Sep 17 00:00:00 2001 From: liuxiaolong <736321739@qq.com> Date: 星期六, 26 十月 2019 16:57:20 +0800 Subject: [PATCH] searchPhoto search again --- controllers/fileController.go | 133 +++++++++++++++++++++++++------------------- go.sum | 4 go.mod | 2 3 files changed, 79 insertions(+), 60 deletions(-) diff --git a/controllers/fileController.go b/controllers/fileController.go index f46d244..decd866 100644 --- a/controllers/fileController.go +++ b/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 {//浜屾妫�绱S姣斿缁撴灉 + arg := protomsg.CompareArgs{ + CompareThreshold: searchBody.Threshold, + } + localConf, err := cache.GetServerInfo() + if err ==nil && localConf.AlarmIp != "" && localConf.ServerId != "" { + arg.Source = true // 鏍囪瘑鏉ユ簮鏄痺eb + 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 { diff --git a/go.mod b/go.mod index d688aa3..f3ac428 100644 --- a/go.mod +++ b/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 diff --git a/go.sum b/go.sum index 907eb2b..4c32020 100644 --- a/go.sum +++ b/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= -- Gitblit v1.8.0