| | |
| | | func (controller FileController) SearchByPhoto(c *gin.Context) { |
| | | var condition SearchCondition |
| | | err := c.BindJSON(&condition) |
| | | if err !=nil || condition.PicUrl == "" { |
| | | if err !=nil || condition.PicUrl == "" || len(condition.Databases) == 0 { |
| | | util.ResponseFormat(c, code.RequestParamError, "参数有误") |
| | | return |
| | | } |
| | |
| | | return |
| | | } |
| | | if face,ok := faceExtractedMap[condition.PicUrl];!ok{ |
| | | util.ResponseFormat(c, code.RequestParamError, "参数有误") |
| | | util.ResponseFormat(c, code.RequestParamError, "请重新上传图片") |
| | | return |
| | | } else { |
| | | arg := protomsg.CompareArgs{ |
| | | TableIds:[]string{ captureTable }, |
| | | FaceFeature:face.FaceBytes, |
| | | CompareThreshold:float32(compThreshold), |
| | | TableIds: condition.Databases, |
| | | FaceFeature: face.FaceBytes, |
| | | CompareThreshold: float32(compThreshold), |
| | | } |
| | | if condition.Databases !=nil { |
| | | arg.TableIds = append(arg.TableIds, condition.Databases...) |
| | |
| | | |
| | | dbPersonM := make(map[string]*protomsg.Esinfo,0) |
| | | captureM := make(map[string]*protomsg.Esinfo,0) |
| | | var personIds []string |
| | | var captureIds []string |
| | | personIds :=make([]string,0) |
| | | captureIds := make([]string,0) |
| | | for _,v :=range rList{ |
| | | if v.Tableid == captureTable { |
| | | captureM[v.Id] = &v |
| | | personIds = append(personIds,v.Id) |
| | | captureIds = append(captureIds,v.Id) |
| | | } else { |
| | | dbPersonM[v.Id] = &v |
| | | captureIds = append(captureIds,v.Id) |
| | | personIds = append(personIds,v.Id) |
| | | } |
| | | } |
| | | logger.Debug("personIds:", personIds) |
| | | logger.Debug("captureIds:",captureIds) |
| | | esServerIp := config.EsInfo.Masterip |
| | | esServerPort := config.EsInfo.Httpport |
| | | index := config.EsInfo.EsIndex.Dbtablepersons.IndexName |
| | | dbpersons, e := esApi.Dbpersoninfosbyid(personIds, index, esServerIp, esServerPort) |
| | | if e !=nil { |
| | | logger.Debug("Dbpersoninfosbyid.err:",e) |
| | | } |
| | | logger.Debug("dbpersons:", dbpersons) |
| | | if e ==nil && dbpersons !=nil { |
| | | for _,p :=range dbpersons { |
| | | var dbP = DbPersonVo { |
| | | PersonId: p.Id, |
| | | IdCard: p.IdCard, |
| | | CompareScore: dbPersonM[p.Id].CompareScore, |
| | | CompareScore: util.ParseScore(dbPersonM[p.Id].CompareScore), |
| | | MonitorLevel: p.MonitorLevel, |
| | | PersonName: p.PersonName, |
| | | PersonPicUrl: p.PersonPicUrl, |