panlei
2019-07-05 4749d09f155ccffeff8e473aa1a9d021be7dfcba
ruleserver/ruleToformula.go
@@ -348,7 +348,7 @@
            }
         }
         if flag {
            logger.Info("___________________________________________________________________________终于走完万里长征")
            logger.Warn("___________________________________________________________________________终于走完万里长征")
            // 如果成功了我应该找到规则中涉及到的sdk,记录下他们的sdkname
            sdkName := ""
            for j := 0; j < len(groupRule.Rules); j++ {
@@ -595,7 +595,7 @@
      if rule.SdkId == am.sdkId && rule.PolygonId == am.areaId { // 算法和区域都得对的上
         if rule.SdkId == "812b674b-2375-4589-919a-5c1c3278a971" {
         if rule.SdkId == "812b674b-2375-4589-919a-5c1c3278a971" && rule.SdkArgAlias != "time_rule"{
            // 只需要过滤阈值,过滤完后数组长度大于0即为报警,但要考虑如何对每一张都报警呢
            argValue, err := strconv.ParseFloat(rule.SdkArgValue, 64)
            if err != nil {
@@ -606,7 +606,7 @@
            for _, obj := range am.filterData {
               for index := 0; index < len(obj.Liker); {
                  // 将达不到阈值的相似者从相似者数组中删除
                  if float64(obj.Liker[index].CompareScore) < argValue {
                  if float64(obj.Liker[index].CompareScore * 100) < argValue {
                     // Go 语言中切片删除元素的本质是:以被删除元素为分界点,将前后两个部分的内存重新连接起来。不用怀疑,数组删除元素就这么坑爹
                     obj.Liker = append(obj.Liker[:index], obj.Liker[index+1:]...)
                  } else {