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