panlei
2019-07-12 2a7709d4ed9161f145631e2e49ffbde2ce44463f
ruleserver/ruleToformula.go
@@ -238,10 +238,19 @@
      if err1 != nil {
         logger.Error("查询底库人员信息出错", err1)
      }
      baseinfo.CompareScore = val
      baseinfo.CompareScore = Retain(val)
      arg.Liker = append(arg.Liker, &baseinfo)
   }
   //logger.Info("------------------第一次看args:",*arg)
}
// 保留四位小数
func Retain(f float32)(float32) {
   s:= strconv.FormatFloat(float64(f), 'f', 4, 64)
   v, err := strconv.ParseFloat(s, 32)
   if err != nil {
      logger.Error("保留四位小数转换错误")
   }
   return float32(v)
}
func Compare(args *SdkDatas, groupRule *protomsg.GroupRule) {
   compareFlag := 0
@@ -259,7 +268,7 @@
      }
   }
   // 为了测试作下弊,直接让其比对全部底库
   compareFlag = 1
   //compareFlag = 1
   if compareFlag == 0 {
      logger.Info("没有配置对比底库参数")
      return
@@ -273,12 +282,14 @@
                  logger.Info("-------------人脸比对之前目标数量",len(areaMap.args))
                  // 拿区域中每个人脸特征值去对比,填充其liker
                  if groupRule.Rules[j].PolygonId == areaMap.areaId {
                     logger.Info("--------------看看compareFlag的值:",compareFlag)
                     for _, arg := range areaMap.args {
                        if compareFlag == 1 {
                           arg.fillLiker()
                        }
                        if compareFlag == 2 {
                           array := strings.Split(tableIds, ",")
                           logger.Info("--------------------------看看对比底库的值;",array)
                           for i := 0; i < len(array)-1; i++ {
                              arg.fillLiker()
                           }
@@ -692,8 +703,7 @@
      //logger.Info("规则的算法id和区域的算法id:", rule.SdkId, "===", am.sdkId)
      if rule.PolygonId == am.areaId { // 算法和区域都得对的上
         if rule.SdkId == "812b674b-2375-4589-919a-5c1c3278a972" && rule.SdkArgAlias != "time_rule" {
            // 只需要过滤阈值,过滤完后数组长度大于0即为报警
         if rule.SdkId == "812b674b-2375-4589-919a-5c1c3278a972" && rule.SdkArgAlias != "time_rule" && rule.SdkArgAlias != "compareBase"{
            argValue, err := strconv.ParseFloat(rule.SdkArgValue, 64)
            if err != nil {
               logger.Error("规则配置的阈值非法")