---
panlei
2019-07-11 fc400ad4be030014144ba2132f2799be81b2711e
ruleserver/ruleToformula.go
@@ -222,6 +222,25 @@
      }
   }
}
func (arg *Arg) fillLiker(){
   bytes := bigCache.Getdbpersonmsg("", arg.Feature, true)
   var m map[string]float32
   err1 := json.Unmarshal(bytes, &m)
   if err1 != nil {
      logger.Error("getBaseInfo解压错误", err1)
   }
   logger.Info("----------------------------------------map是", m)
   for key, val := range m {
      logger.Info("_______________________________________对比库的返回值", key, val)
      baseinfo, err1 := esutil.Dbpersoninfosbyid(key)
      if err1 != nil {
         logger.Error("查询底库人员信息出错", err1)
      }
      baseinfo.CompareScore = val
      arg.Liker = append(arg.Liker, &baseinfo)
   }
   //logger.Info("------------------第一次看args:",*arg)
}
func Compare(args *SdkDatas, groupRule *protomsg.GroupRule) {
   compareFlag := 0
   tableIds := ""
@@ -253,22 +272,7 @@
                  if groupRule.Rules[j].PolygonId == areaMap.areaId {
                     for _, arg := range areaMap.args {
                        if compareFlag == 1 {
                           bytes := bigCache.Getdbpersonmsg("", arg.Feature, true)
                           var m map[string]float32
                           err1 := json.Unmarshal(bytes, &m)
                           if err1 != nil {
                              logger.Error("getBaseInfo解压错误", err1)
                           }
                           logger.Info("----------------------------------------map是", m)
                           for key, val := range m {
                              logger.Info("_______________________________________对比库的返回值", key, val)
                              baseinfo, err1 := esutil.Dbpersoninfosbyid(key)
                              if err1 != nil {
                                 logger.Error("查询底库人员信息出错", err1)
                              }
                              baseinfo.CompareScore = val * 100
                              arg.Liker = append(arg.Liker, &baseinfo)
                           }
                           arg.fillLiker()
                        }
                        if compareFlag == 2 {
                           array := strings.Split(tableIds, ",")
@@ -289,8 +293,9 @@
                              }
                           }
                        }
                        logger.Info("-------------------成功给liker赋值:", arg.Liker)
                        logger.Info("-------------------成功给liker赋值,长度为:", len(arg.Liker))
                     }
                     //logger.Info("=======第一次看args:",areaMap.args)
                  }
               }
            }
@@ -318,7 +323,7 @@
         }
         ipcId := sdk.IpcId
         sdkName := sdk.SdkName
         logger.Info("规则的ipcId与sdkData的IpcId:",ipcId,"===",sdkData.IpcId)
         if ipcId == sdkData.IpcId {
            logger.Info("当前走的规则的算法是--:", sdkName, "---")
            for _, areaMap := range sdkData.AreaMapList {
@@ -682,7 +687,7 @@
      if rule.PolygonId == am.areaId { // 算法和区域都得对的上
         if rule.SdkId == "812b674b-2375-4589-919a-5c1c3278a972" && rule.SdkArgAlias != "time_rule" {
            // 只需要过滤阈值,过滤完后数组长度大于0即为报警,但要考虑如何对每一张都报警呢
            // 只需要过滤阈值,过滤完后数组长度大于0即为报警
            argValue, err := strconv.ParseFloat(rule.SdkArgValue, 64)
            if err != nil {
               logger.Error("规则配置的阈值非法")