From ee6d3c869ac19b842bb9b87926d2c9808143d3b4 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期一, 05 八月 2019 15:52:15 +0800
Subject: [PATCH] 改造试点摄像机和任务判断

---
 labelFilter/ruleForLabel.go |   53 ++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 36 insertions(+), 17 deletions(-)

diff --git a/labelFilter/ruleForLabel.go b/labelFilter/ruleForLabel.go
index b22f99d..2b31dcf 100644
--- a/labelFilter/ruleForLabel.go
+++ b/labelFilter/ruleForLabel.go
@@ -15,6 +15,11 @@
 	// 瑁呴厤鎴愯嚜宸卞彲浠ヨ瘑鍒殑鏁版嵁
 	label := new(Label)
 	label.DataFormatToLabel(result)
+	logger.Info("label鐨勪俊鎭細",label.CameraName,label.DefenceLevel,label.Time)
+	if label.CameraName == "" {
+		logger.Error("鏃犳晥鏁版嵁锛岀洿鎺ヨ繑鍥�")
+		return
+	}
 	//鎷垮埌鎵�鏈夎鍒欑粍
 	var api dbapi.EventPushApi
 	b,allRules := api.FindAllDetails()
@@ -54,6 +59,7 @@
 			}
 			// 寰楀嚭鎬荤殑鍒ゆ柇缁撴灉
 			if result != "" {
+				logger.Info("鎬荤殑鍒ゆ柇缁撴灉锛�",result)
 				result = result[2:] // 鎶婂墠涓や綅瀛楃鍘绘帀
 				expression, err:= govaluate.NewEvaluableExpression(result);
 				if err != nil {
@@ -63,7 +69,6 @@
 				if err1 != nil {
 					logger.Error("甯﹀叆鍙傛暟鏈夎")
 				}
-				logger.Warn("瑙勫垯鍒ゆ柇缁撴灉鏄細",)
 				if result.(bool) {
 					logger.Info("閫氳繃瑙勫垯锛岃〃杈惧紡涓猴細",result)
 					// 鎺ㄩ�佹湇鍔″櫒
@@ -109,25 +114,28 @@
 
 // 鏄惁绗﹀悎鎽勫儚鏈鸿鍒�
 func cameraJudge(label *Label,rule *protomsg.EventPushRule) string{
+	formula := ""
 	if rule.TopicArg == "cameraName" {
-		if label.CameraName == rule.RuleValue {
-			logger.Info("绗﹀悎鎽勫儚鏈哄悕绉拌鍒�")
-			return "true"
-		} else {
-			logger.Info("涓嶇鍚堟憚鍍忔満鍚嶇О瑙勫垯")
-			return "false"
-		}
+		formula = label.CameraName + rule.Operator + rule.RuleValue
 	}
 	if rule.TopicArg == "cameraLocation" {
-		if label.CameraAddr == rule.RuleValue {
-			logger.Info("绗﹀悎鎽勫儚鏈轰綅缃鍒�")
-			return "true"
-		} else {
-			logger.Info("涓嶇鍚堟憚鍍忔満浣嶇疆瑙勫垯")
-			return "false"
-		}
+		formula = label.CameraAddr + rule.Operator + rule.RuleValue
 	}
-	return ""
+	expression, err:= govaluate.NewEvaluableExpression(formula);
+	if err != nil {
+		logger.Error("琛ㄨ揪寮忔湁璇紝璇锋鏌ワ紒")
+		return "false"
+	}
+	result, err1:= expression.Evaluate(nil)
+	if err1 != nil {
+		logger.Error("甯﹀叆鍙傛暟鏈夎")
+		return "false"
+	}
+	if result.(bool) {
+		logger.Info("绗﹀悎鎽勫儚鏈鸿鍒�!")
+		return "true"
+	}
+	return "false"
 }
 
 // 鏄惁绗﹀悎搴曞簱瑙勫垯
@@ -189,7 +197,18 @@
 }
 // 鏄惁绗﹀悎浠诲姟瑙勫垯
 func taskJudge(label *Label,rule *protomsg.EventPushRule) string{
-	if label.TaskId == rule.RuleValue {
+	formula := label.TaskId + rule.Operator + rule.RuleValue
+	expression, err:= govaluate.NewEvaluableExpression(formula);
+	if err != nil {
+		logger.Error("琛ㄨ揪寮忔湁璇紝璇锋鏌ワ紒")
+		return "false"
+	}
+	result, err1:= expression.Evaluate(nil)
+	if err1 != nil {
+		logger.Error("甯﹀叆鍙傛暟鏈夎")
+		return "false"
+	}
+	if result.(bool) {
 		logger.Info("绗﹀悎浠诲姟瑙勫垯!")
 		return "true"
 	}

--
Gitblit v1.8.0