| | |
| | | "basic.com/pubsub/protomsg.git" |
| | | "bytes" |
| | | "encoding/base64" |
| | | "encoding/json" |
| | | "errors" |
| | | "fmt" |
| | | "github.com/gin-gonic/gin" |
| | |
| | | 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) |
| | | |
| | |
| | | |
| | | 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 |
| | | } |
| | | } |
| | |
| | | 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 |
| | | aList := getTwiceSearchResult(co, &captureIds) |
| | |
| | | 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 |