panlei
2019-08-08 67e09fc4e714b67d0bcc1b942cf547d88e80d3f5
防止拼出的表达式有误出现的宕机
1个文件已修改
12 ■■■■■ 已修改文件
labelFilter/ruleForLabel.go 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
labelFilter/ruleForLabel.go
@@ -67,6 +67,7 @@
                expression, err := govaluate.NewEvaluableExpression(result);
                if err != nil {
                    logger.Error("表达式有误,请检查!")
                    return
                }
                result, err1 := expression.Evaluate(nil)
                if err1 != nil {
@@ -107,6 +108,7 @@
    expression, err := govaluate.NewEvaluableExpression("t1 < t2");
    if err != nil {
        logger.Error("表达式有误,请检查!")
        return false
    }
    parameters := make(map[string]interface{}, 8)
    parameters["t1"] = time1
@@ -167,7 +169,7 @@
                    logger.Info("-------打印底库规则公式:",formula)
                    if err != nil {
                        logger.Error("表达式有误,请检查!", formula)
                        //return "false"
                        return "false"
                    }
                    result, err1 := expression.Evaluate(nil)
                    if err1 != nil {
@@ -208,7 +210,7 @@
            expression, err := govaluate.NewEvaluableExpression(formula);
            if err != nil {
                logger.Error("表达式有误,请检查!", formula)
                //return "false"
                return "false"
            }
            result, err1 := expression.Evaluate(nil)
            if err1 != nil {
@@ -232,7 +234,7 @@
                expression, err := govaluate.NewEvaluableExpression(formula);
                if err != nil {
                    logger.Error("表达式有误,请检查!", formula)
                    //return "false"
                    return "false"
                }
                result, err1 := expression.Evaluate(nil)
                if err1 != nil {
@@ -264,12 +266,12 @@
        }
    } else {
        for _, def := range label.DefenceLevel {
            formula := strconv.Itoa(int(def)) + rule.Operator + formate(rule.RuleValue)
            formula := strconv.Itoa(int(def)) + rule.Operator + rule.RuleValue
            logger.Info("-------打印布防等级规则公式:",formula)
            expression, err := govaluate.NewEvaluableExpression(formula);
            if err != nil {
                logger.Error("表达式有误,请检查!", formula)
                //return "false"
                return "false"
            }
            result, err1 := expression.Evaluate(nil)
            if err1 != nil {