sunty
2019-07-31 d94f80d854d09e89715ca7c2361cd6057f98f396
service/FaceCompareService.go
@@ -3,7 +3,6 @@
import (
   esApi "basic.com/pubsub/esutil.git"
   "basic.com/pubsub/protomsg.git"
   "encoding/json"
   "github.com/gogo/protobuf/proto"
   "github.com/satori/go.uuid"
   "nanomsg.org/go-mangos"
@@ -13,7 +12,6 @@
   "sort"
   "strconv"
   "sync"
   "time"
   "webserver/extend/config"
   "webserver/extend/logger"
   "webserver/extend/util"
@@ -123,17 +121,20 @@
      if resultB == nil || len(*resultB) ==0 {
         continue
      }
      rList :=make([]protomsg.Esinfo,0)
      err = json.Unmarshal(*resultB, &rList)
      if err !=nil{
         logger.Debug("recv result Unmarshal err:", err)
      var sdkCompResult protomsg.SdkCompareResult
      //rList :=make([]protomsg.Esinfo,0)
      err = proto.Unmarshal(*resultB, &sdkCompResult)
      if err !=nil {
         logger.Debug("comp sdkCompareResult unmarshal err:", err)
         continue
      }
      logger.Debug("len(rList):", len(rList))
      if len(rList) >0 {
         resultList = append(resultList, FillDataToCompareResult(&rList)...)
      logger.Debug("comp len(rList):", len(sdkCompResult.CompareResult))
      if len(sdkCompResult.CompareResult) >0 {
         resultList = append(resultList, FillDataToCompareResult(&sdkCompResult)...)
      }
   }
   logger.Debug("comp totalList.len:", len(resultList))
   //2.缓存比对结果
   co := &CompareOnce{
@@ -146,29 +147,29 @@
}
func doCompareRequest(url string,args []byte) *[]byte{
   reqUrl := "tcp://"+url
   logger.Debug("reqUrl:",reqUrl)
   logger.Debug("comp reqUrl:",url)
   var sock mangos.Socket
   var err error
   var msg []byte
   if sock,err = req.NewSocket();err !=nil {
      logger.Debug("can't new req socket:%s",err.Error())
      logger.Debug("comp can't new req socket:%s",err.Error())
      return nil
   }
   sock.AddTransport(ipc.NewTransport())
   sock.AddTransport(tcp.NewTransport())
   sock.SetOption(mangos.OptionRecvDeadline, time.Second*10)
   if err = sock.Dial(url);err !=nil {
      logger.Debug("can't dial on req socket:%s",err.Error())
      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("can't send message on push socket:%s",err.Error())
      logger.Debug("comp can't send message on push socket:%s",err.Error())
      return nil
   }
   if msg,err = sock.Recv();err !=nil {
      logger.Debug("sock.Recv receive err:%s",err.Error())
      logger.Debug("comp sock.Recv receive err:%s",err.Error())
      return nil
   }
   sock.Close()
@@ -176,24 +177,24 @@
}
//填充向前端返回的数据
func FillDataToCompareResult(rList *[]protomsg.Esinfo) []CompareResult {
func FillDataToCompareResult(compResult *protomsg.SdkCompareResult) []CompareResult {
   resultList :=make([]CompareResult,0)
   dbPersonM := make(map[string]*protomsg.Esinfo,0)
   captureM := make(map[string]*protomsg.Esinfo,0)
   dbPersonM := make(map[string]*protomsg.SdkCompareEach, 0)
   captureM := make(map[string]*protomsg.SdkCompareEach, 0)
   personIds :=make([]string,0)
   captureIds := make([]string,0)
   for _,v :=range *rList{
   for _,v :=range compResult.CompareResult{
      if v.Tableid == CaptureTable {
         captureM[v.Id] = &v
         captureM[v.Id] = v
         captureIds = append(captureIds,v.Id)
      } else {
         dbPersonM[v.Id] = &v
         dbPersonM[v.Id] = v
         personIds = append(personIds,v.Id)
      }
   }
   logger.Debug("personIds:", personIds)
   logger.Debug("captureIds:",captureIds)
   logger.Debug("comp len(personIds):", len(personIds))
   logger.Debug("comp len(captureIds):", len(captureIds))
   esServerIp := config.EsInfo.Masterip
   esServerPort := config.EsInfo.Httpport
   index := config.EsInfo.EsIndex.Dbtablepersons.IndexName
@@ -202,7 +203,7 @@
      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 {
@@ -227,11 +228,9 @@
         resultList = append(resultList,cr)
      }
   }
   var capturePersons []protomsg.Videopersons
   if len(captureIds) >0 {
      logger.Debug("capturePersons:", 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)
         bi := make([]DbPersonVo,0)
@@ -255,7 +254,7 @@
            CameraAddr: vp.CameraAddr,
            PicDate: vp.PicDate,
            PicMaxUrl: vp.PicMaxUrl,
            PicSmUrl: []string{ vp.PicSmUrl },
            PicSmUrl: vp.PicSmUrl,
            IsAlarm: isAlarmInt,
            Sex: vp.Sex,
            AgeDescription: vp.AgeDescription,