---
panlei
2019-08-08 7f5c26c2fe27292d31c7c1b6285d415ce24e71a0
insertdata/insertDataToEs.go
@@ -7,7 +7,6 @@
   "fmt"
   "io/ioutil"
   "net"
   "os"
   "ruleprocess/cache"
   "ruleprocess/logger"
   "strings"
@@ -111,6 +110,7 @@
   AlarmLevel   string `json:"alarmLevel"`
   RuleText     string `json:"ruleText"`
   DefenceState bool   `json:"defenceState"`
   IsLink       bool   `json:"isLink"`
}
// 一个face对多个规则组的归置人脸的结构体
@@ -166,8 +166,8 @@
   if msg.RuleResult["face"] != nil && len(msg.RuleResult["face"].([]ruleserver.FaceResult)) > 0 {
      logger.Info("往ES插人脸数据")
      faces := []*FaceAndRules{}
      PutFace(faces,msg)
      logger.Info("整理后的数据:",faces)
      faces = PutFace(faces,msg)
      //logger.Info("整理后的数据:",faces)
      if faces != nil {
         for _,face := range faces {
            // 上传大图
@@ -178,10 +178,10 @@
            }
            alarmRules := []AlarmRule{}
            logger.Warn("人脸id为:",face.Id,"人脸的规则长度为:",len(face.rules))
            os.Exit(1)
            //os.Exit(1)
            for _,faceResult := range face.rules {
               alarm := ChangeToString(faceResult.DefenceState, faceResult.AlarmLevel)
               alarmRules = append(alarmRules, AlarmRule{faceResult.RuleGroupId, alarm, faceResult.RuleText, faceResult.DefenceState})
               alarmRules = append(alarmRules, AlarmRule{faceResult.RuleGroupId, alarm, faceResult.RuleText, faceResult.DefenceState,faceResult.IsLink})
            }
            i := protomsg.Image{}
            err = proto.Unmarshal(bdata, &i)
@@ -271,29 +271,48 @@
}
// 归置人脸
func PutFace(faces []*FaceAndRules,msg ruleserver.ResultMsg){
func PutFace(faces []*FaceAndRules,msg ruleserver.ResultMsg)[]*FaceAndRules{
   if msg.RuleResult["face"] != nil && len(msg.RuleResult["face"].([]ruleserver.FaceResult)) > 0 {
      logger.Info("整理人脸数据")
      for _, faceResult := range msg.RuleResult["face"].([]ruleserver.FaceResult) {
         hebingFace(faces, faceResult)
         faces = hebingFace(faces, faceResult)
      }
      return faces
   } else {
      return nil
   }
}
func hebingFace(faces []*FaceAndRules, faceResult ruleserver.FaceResult){
func hebingFace(faces []*FaceAndRules, faceResult ruleserver.FaceResult) []*FaceAndRules{
   for _, arg := range faceResult.Args {
      // 拿到每一张人脸
      logger.Info("归置人脸时相似者的数量:",len(arg.Liker))
      flag := false
      for _, face := range faces {
         for _,lik := range face.Liker {
            logger.Warn("--------合并人脸时相似者:",lik.PersonId,lik.TableName)
         }
         if arg.Id == face.Id {
            flag = true
            face.rules = append(face.rules,faceResult.Result)
            // 相似者去重归并
            for _,liker := range arg.Liker {
               flag1 := true
               for _,liker1 := range face.Liker {
                  if liker.PersonId == liker1.PersonId {
                     flag1 = false
                  }
               }
               if flag1 {
                  face.Liker = append(face.Liker,liker)
               }
            }
            //face.Liker = append(face.Liker,arg.Liker...)
         }
      }
      if !flag {
         faces = append(faces, &FaceAndRules{arg, []ruleserver.Result{faceResult.Result}})
      }
   }
   logger.Info("整理中的数据",faces)
   return faces
}
// 往es中插入yolo数据
@@ -318,7 +337,7 @@
               //logger.Info("应该进来才对的")
               sdkNames = sdkNames + yoloResult.SdkName
               alarm := ChangeToString(yoloResult.DefenceState, yoloResult.AlarmLevel)
               alarmRules = append(alarmRules, AlarmRule{yoloResult.RuleGroupId, alarm, yoloResult.RuleText, yoloResult.DefenceState})
               alarmRules = append(alarmRules, AlarmRule{yoloResult.RuleGroupId, alarm, yoloResult.RuleText, yoloResult.DefenceState,yoloResult.IsLink})
               // 上传缓存数据的图片拿到url
               if yoloResult.Others.CacheData != nil {
                  //InsertYolo(msg.RuleResult["cacheData"].(ruleserver.ResultMsg))