From b50ab8c04f6ae6097701a2a2b0f3cd9226ad77e3 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@iotlink.com>
Date: 星期三, 30 十月 2019 15:19:23 +0800
Subject: [PATCH] fix: change network settings
---
controllers/fileController.go | 193 +++++++++++++++++++++++++++++++----------------
1 files changed, 127 insertions(+), 66 deletions(-)
diff --git a/controllers/fileController.go b/controllers/fileController.go
index 876246e..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"
@@ -419,7 +420,7 @@
util.ResponseFormat(c, code.ComError, "鎶撴媿鏁版嵁涓嶅瓨鍦紝璇锋鏌�")
return
}
- logger.Debug("es person base64:",searchBase64Fea)
+
if searchBase64Fea !=""{
decodeF, err := base64.StdEncoding.DecodeString(searchBase64Fea)
if err !=nil {
@@ -525,78 +526,138 @@
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)
- // }
- //}
+type PersonId struct {
+ Id string `json:"id"`
+}
- //logger.Debug("GetCompareDataTwice.data:",resultList)
- //service.SortByScore(resultList)
- from := (arg.Page-1)*arg.Size
- to := from + arg.Size
- 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)
-
+func GetCompareDataTwice(co *service.CompareOnce,searchBody *models.EsSearch) map[string]interface{} {
m := make(map[string]interface{},0)
- m["total"] = total
- m["compareNum"] = arg.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]
- // }
+
+ from := (searchBody.Page-1)*searchBody.Size
+ to := from + searchBody.Size
+
+ var hasCompEsPerson = false
+ if searchBody.DataBases !=nil {
+ for idx,tableId :=range searchBody.DataBases {
+ if tableId == "esData" {
+ hasCompEsPerson = true
+ searchBody.DataBases = append(searchBody.DataBases[:idx], searchBody.DataBases[idx+1:]...)
+ 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
+ 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
+ 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
+ }
+ }
+ } 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 {
- // m["totalList"] = []CompareResult{}
+ // sCompResult.CompareResult = (*co.CompareData)[from:to]
//}
+ //resultList := FillDataToCompareResult(&sCompResult)
+
+
+ m["total"] = 0
+ m["compareNum"] = searchBody.CompareNum
+ m["totalList"] = []interface{}{}
+
return m
}
+func getTwiceSearchResult(co *service.CompareOnce, scopeIds *[]string) *service.CompareList{
+ m := make(map[string]string)
+ for _,capId :=range *scopeIds {
+ 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 {
--
Gitblit v1.8.0