From 262c28082842d9f487f187075da0ce7a6ed3b31d Mon Sep 17 00:00:00 2001
From: liuxiaolong <736321739@qq.com>
Date: 星期二, 29 十月 2019 17:24:09 +0800
Subject: [PATCH] GetAllLocalVideopersonsId add alarmLevelTypes filter

---
 controllers/fileController.go |   69 +++++++++++++++++++++++++++-------
 1 files changed, 55 insertions(+), 14 deletions(-)

diff --git a/controllers/fileController.go b/controllers/fileController.go
index 3b6c238..ecdc766 100644
--- a/controllers/fileController.go
+++ b/controllers/fileController.go
@@ -6,6 +6,7 @@
 	"basic.com/pubsub/protomsg.git"
 	"bytes"
 	"encoding/base64"
+	"encoding/json"
 	"errors"
 	"fmt"
 	"github.com/gin-gonic/gin"
@@ -525,6 +526,10 @@
 	util.ResponseFormat(c,code.Success,m)
 }
 
+type PersonId struct {
+	Id string `json:"id"`
+}
+
 func GetCompareDataTwice(co *service.CompareOnce,searchBody *models.EsSearch) map[string]interface{} {
 	m := make(map[string]interface{},0)
 
@@ -533,9 +538,10 @@
 
 	var hasCompEsPerson = false
 	if searchBody.DataBases !=nil {
-		for _,tableId :=range searchBody.DataBases {
+		for idx,tableId :=range searchBody.DataBases {
 			if tableId == "esData" {
 				hasCompEsPerson = true
+				searchBody.DataBases = append(searchBody.DataBases[:idx], searchBody.DataBases[idx+1:]...)
 				break
 			}
 		}
@@ -555,7 +561,8 @@
 			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)))
+			alarmLevelTypes := strings.Replace(strings.Trim(fmt.Sprint(getAlarmLevel(searchBody.AlarmLevel)), "[]"), " ", "\",\"", -1)
+			captureIds := esApi.GetAllLocalVideopersonsId(arg, config.EsInfo.EsIndex.VideoPersons.IndexName, localConf.AlarmIp, strconv.Itoa(int(localConf.AlarmPort)), alarmLevelTypes)
 			logger.Debug("searchPhoto first Result.len:",len(*co.CompareData),"twice len(captureIds):",len(captureIds))
 			if captureIds !=nil {
 				var aResult protomsg.SdkCompareResult
@@ -578,29 +585,63 @@
 				return m
 			}
 		}
+	} else {//搴曞簱鏁版嵁鐨勪簩娆℃绱�
+		var dbpApi dbapi.DbPersonApi
+		personIds, _ := dbpApi.FindLikePersonIds(searchBody.DataBases, searchBody.InputValue)
+		logger.Debug("searchPhoto first Result.len:",len(*co.CompareData),"personIds:",personIds)
+		if personIds !=nil {
+			var pIds []PersonId
+			b, _ := json.Marshal(personIds)
+			json.Unmarshal(b, &pIds)
+			if len(pIds) >0 {
+				var personIdArr []string
+				for _,pid :=range pIds{
+					personIdArr = append(personIdArr, pid.Id)
+				}
+				var aResult protomsg.SdkCompareResult
+				aList := getTwiceSearchResult(co, &personIdArr)
+				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 {
-		sCompResult.CompareResult = (*co.CompareData)[from:total]
-	} else {
-		sCompResult.CompareResult = (*co.CompareData)[from:to]
-	}
-	resultList := FillDataToCompareResult(&sCompResult)
+	//var sCompResult protomsg.SdkCompareResult
+	//total := len(*co.CompareData)
+	//if total <= to {
+	//	sCompResult.CompareResult = (*co.CompareData)[from:total]
+	//} else {
+	//	sCompResult.CompareResult = (*co.CompareData)[from:to]
+	//}
+	//resultList := FillDataToCompareResult(&sCompResult)
 
 
-	m["total"] = total
+	m["total"] = 0
 	m["compareNum"] = searchBody.CompareNum
-	m["totalList"] = resultList
+	m["totalList"] = []interface{}{}
 
 	return m
 }
 
-func getTwiceSearchResult(co *service.CompareOnce, captureIds *[]string) *service.CompareList{
+func getTwiceSearchResult(co *service.CompareOnce, scopeIds *[]string) *service.CompareList{
 	m := make(map[string]string)
-	for _,capId :=range *captureIds {
+	for _,capId :=range *scopeIds {
 		m[capId] = capId
 	}
 	var totalData service.CompareList

--
Gitblit v1.8.0