| | |
| | | import ( |
| | | esApi "basic.com/pubsub/esutil.git" |
| | | "basic.com/pubsub/protomsg.git" |
| | | "basic.com/valib/deliver.git" |
| | | "encoding/json" |
| | | "github.com/gogo/protobuf/proto" |
| | | "github.com/satori/go.uuid" |
| | | "nanomsg.org/go-mangos" |
| | | "nanomsg.org/go-mangos/protocol/req" |
| | | "nanomsg.org/go-mangos/transport/ipc" |
| | | "nanomsg.org/go-mangos/transport/tcp" |
| | | "sort" |
| | | "strconv" |
| | | "sync" |
| | |
| | | resultList :=make([]CompareResult,0) |
| | | for _,str :=range compServerList{ |
| | | reqUrl := "tcp://"+str |
| | | reqClient := deliver.NewClient(deliver.ReqRep, reqUrl) |
| | | err = reqClient.Send(b) |
| | | if err !=nil{ |
| | | logger.Debug("reqClient.Send err:",err) |
| | | continue |
| | | } |
| | | resultB, err := reqClient.Recv() |
| | | if err !=nil{ |
| | | logger.Debug("reqClient.Recv err:",err) |
| | | resultB := doCompareRequest(reqUrl,b) |
| | | if resultB == nil || len(*resultB) ==0 { |
| | | continue |
| | | } |
| | | rList :=make([]protomsg.Esinfo,0) |
| | | err = json.Unmarshal(resultB, &rList) |
| | | err = json.Unmarshal(*resultB, &rList) |
| | | if err !=nil{ |
| | | logger.Debug("recv result Unmarshal err:", err) |
| | | logger.Debug("comp recv result Unmarshal err:", err) |
| | | continue |
| | | } |
| | | logger.Debug("len(rList):", len(rList)) |
| | | logger.Debug("comp len(rList):", len(rList)) |
| | | if len(rList) >0 { |
| | | resultList = append(resultList, FillDataToCompareResult(&rList)...) |
| | | } |
| | | } |
| | | logger.Debug("comp totalList.len:", len(resultList)) |
| | | |
| | | //2.缓存比对结果 |
| | | co := &CompareOnce{ |
| | |
| | | SetCompResultByNum(co) |
| | | |
| | | return co |
| | | } |
| | | |
| | | func doCompareRequest(url string,args []byte) *[]byte{ |
| | | logger.Debug("comp reqUrl:",url) |
| | | var sock mangos.Socket |
| | | var err error |
| | | var msg []byte |
| | | |
| | | if sock,err = req.NewSocket();err !=nil { |
| | | logger.Debug("comp can't new req socket:%s",err.Error()) |
| | | return nil |
| | | } |
| | | sock.AddTransport(ipc.NewTransport()) |
| | | sock.AddTransport(tcp.NewTransport()) |
| | | if err = sock.Dial(url);err !=nil { |
| | | logger.Debug("comp can't dial on req socket:%s",err.Error()) |
| | | return nil |
| | | } |
| | | sock.SetOption(mangos.OptionMaxRecvSize, 1024*1024*100) |
| | | //sock.SetOption(mangos.OptionRecvDeadline, time.Second*10) |
| | | if err = sock.Send(args);err !=nil { |
| | | logger.Debug("comp can't send message on push socket:%s",err.Error()) |
| | | return nil |
| | | } |
| | | if msg,err = sock.Recv();err !=nil { |
| | | logger.Debug("comp sock.Recv receive err:%s",err.Error()) |
| | | return nil |
| | | } |
| | | sock.Close() |
| | | return &msg |
| | | } |
| | | |
| | | //填充向前端返回的数据 |
| | |
| | | personIds = append(personIds,v.Id) |
| | | } |
| | | } |
| | | logger.Debug("personIds:", personIds) |
| | | logger.Debug("captureIds:",captureIds) |
| | | logger.Debug("comp personIds:", personIds) |
| | | logger.Debug("comp captureIds:",captureIds) |
| | | esServerIp := config.EsInfo.Masterip |
| | | esServerPort := config.EsInfo.Httpport |
| | | index := config.EsInfo.EsIndex.Dbtablepersons.IndexName |
| | |
| | | dbpersons, _ = esApi.Dbpersoninfosbyid(personIds, index, esServerIp, esServerPort) |
| | | } |
| | | |
| | | logger.Debug("dbpersons:", dbpersons) |
| | | logger.Debug("comp dbpersons.len:", len(dbpersons)) |
| | | if dbpersons !=nil { |
| | | for _,p :=range dbpersons { |
| | | var dbP = DbPersonVo { |
| | |
| | | } |
| | | var capturePersons []protomsg.Videopersons |
| | | if len(captureIds) >0 { |
| | | logger.Debug("capturePersons:", capturePersons) |
| | | logger.Debug("comp capturePersons.len:", len(capturePersons)) |
| | | videopersons, _ := esApi.Videopersonsinfosbyid(captureIds, config.EsInfo.EsIndex.VideoPersons.IndexName, config.EsInfo.Masterip, config.EsInfo.Httpport) |
| | | logger.Debug("videoPersons.len:",len(videopersons)) |
| | | logger.Debug("comp videoPersons.len:",len(videopersons)) |
| | | for _,vp :=range videopersons { |
| | | isAlarmInt, _ := strconv.Atoi(vp.IsAlarm) |
| | | var bi []DbPersonVo |
| | | bi := make([]DbPersonVo,0) |
| | | for _,p :=range vp.BaseInfo { |
| | | bi = append(bi, DbPersonVo{ |
| | | PersonId: p.PersonId, |
| | |
| | | CameraAddr: vp.CameraAddr, |
| | | PicDate: vp.PicDate, |
| | | PicMaxUrl: vp.PicMaxUrl, |
| | | PicSmUrl: []string{ vp.PicSmUrl }, |
| | | PicSmUrl: vp.PicSmUrl, |
| | | IsAlarm: isAlarmInt, |
| | | Sex: vp.Sex, |
| | | AgeDescription: vp.AgeDescription, |