From 63ddbfa884c336f0aa4a73bb134d3526cbf18802 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期六, 24 八月 2019 16:13:31 +0800
Subject: [PATCH] update protomsg

---
 labelFilter/ruleForLabel.go |   41 +++++++++++++++++++++++++++--------------
 1 files changed, 27 insertions(+), 14 deletions(-)

diff --git a/labelFilter/ruleForLabel.go b/labelFilter/ruleForLabel.go
index 0059e27..df28b40 100644
--- a/labelFilter/ruleForLabel.go
+++ b/labelFilter/ruleForLabel.go
@@ -30,7 +30,11 @@
 	for _, ruleGroup := range allRules {
 		if ruleGroup.Enable { // 澶ц鍒欏紑鍏冲紑鍚姸鎬�
 			// 鍏堣繃鏃堕棿瑙勫垯
-			timeJudge(label, ruleGroup)
+			timeFlag := timeJudge(label, ruleGroup)
+			if !timeFlag {
+				logger.Info("涓嶅湪瑙勫垯鐨勬椂闂磋寖鍥村唴锛屼笉鎺ㄩ�侊紒")
+				return
+			}
 			result := ""
 			var Connector string
 			if ruleGroup.IsSatisfyAll {
@@ -41,19 +45,19 @@
 			for _, rule := range ruleGroup.Rules {
 				// 杩囨瘡涓�涓皬瑙勫垯
 				if rule.TopicType == "camera" {
-					result = Connector + cameraJudge(label, rule)
+					result += Connector + cameraJudge(label, rule)
 				}
 				if rule.TopicType == "dbtable" {
-					result = Connector + baseJudge(label, rule)
+					result += Connector + baseJudge(label, rule)
 				}
 				if rule.TopicType == "task" {
-					result = Connector + taskJudge(label, rule)
+					result += Connector + taskJudge(label, rule)
 				}
 				if rule.TopicType == "person" {
-					result = Connector + taskJudge(label, rule)
+					result += Connector + taskJudge(label, rule)
 				}
 				if rule.TopicType == "alarmLevel" {
-					result = Connector + defenceJudge(label, rule)
+					result += Connector + defenceJudge(label, rule)
 				}
 			}
 			// 寰楀嚭鎬荤殑鍒ゆ柇缁撴灉
@@ -63,6 +67,7 @@
 				expression, err := govaluate.NewEvaluableExpression(result);
 				if err != nil {
 					logger.Error("琛ㄨ揪寮忔湁璇紝璇锋鏌ワ紒")
+					return
 				}
 				result, err1 := expression.Evaluate(nil)
 				if err1 != nil {
@@ -85,15 +90,16 @@
 }
 
 // 鏄惁绗﹀悎鏃堕棿瑙勫垯
-func timeJudge(label *Label, groupRule protomsg.EventPush) string {
+func timeJudge(label *Label, groupRule protomsg.EventPush) bool {
 	timeNow := time.Now().Format("2006-01-02 15:04:05")
+	logger.Info("鏍囩杩囨护鍣ㄨ捣濮嬫椂闂翠负锛�",groupRule.TimeStart,groupRule.TimeEnd)
 	flag1 := isBefore(groupRule.TimeStart, timeNow)
 	flag2 := isBefore(timeNow, groupRule.TimeEnd)
 	if flag1 && flag2 {
-		return "true"
+		return true
 	} else {
 		logger.Info("涓嶅湪瑙勫畾鐨勬椂闂磋寖鍥村唴锛�")
-		return "false"
+		return false
 	}
 }
 
@@ -102,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
@@ -122,6 +129,7 @@
 	if rule.TopicArg == "addr" {
 		formula = "'" + label.CameraAddr + "'" + rule.Operator + "'" + rule.RuleValue + "'"
 	}
+	logger.Info("-------鎵撳嵃鎽勫儚鏈鸿鍒欏叕寮忥細",formula)
 	expression, err := govaluate.NewEvaluableExpression(formula);
 	if err != nil {
 		logger.Error("琛ㄨ揪寮忔湁璇紝璇锋鏌ワ紒", formula)
@@ -158,9 +166,10 @@
 				for _, liker := range arg.Liker {
 					formula := "'" + liker.TableId + "'" + rule.Operator + "'" + rule.RuleValue + "'"
 					expression, err := govaluate.NewEvaluableExpression(formula);
+					logger.Info("-------鎵撳嵃搴曞簱瑙勫垯鍏紡锛�",formula)
 					if err != nil {
 						logger.Error("琛ㄨ揪寮忔湁璇紝璇锋鏌ワ紒", formula)
-						//return "false"
+						return "false"
 					}
 					result, err1 := expression.Evaluate(nil)
 					if err1 != nil {
@@ -197,10 +206,11 @@
 				// 鍏朵粬杩欎釜鍊煎厛杩欎箞澶勭悊
 				return "true"
 			}
+			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 {
@@ -220,10 +230,11 @@
 				}
 			} else {
 				formula := strconv.Itoa(int(personGroup.AlarmLevel)) + rule.Operator + formate(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 {
@@ -255,11 +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 {
@@ -280,6 +292,7 @@
 func taskJudge(label *Label, rule *protomsg.EventPushRule) string {
 	formula := "'"+label.TaskId +"'"+ rule.Operator +"'"+ rule.RuleValue+"'"
 	expression, err := govaluate.NewEvaluableExpression(formula);
+	logger.Info("-------鎵撳嵃浠诲姟瑙勫垯鍏紡锛�",formula)
 	if err != nil {
 		logger.Error("琛ㄨ揪寮忔湁璇紝璇锋鏌ワ紒", formula)
 		return "false"

--
Gitblit v1.8.0