From e41df22644371efc13c845e9c21fdf00b8dd5886 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期六, 02 十一月 2019 16:49:01 +0800
Subject: [PATCH] ---

---
 labelFilter/ruleForLabel.go |   46 ++++++++++++++++++++++++++++++----------------
 1 files changed, 30 insertions(+), 16 deletions(-)

diff --git a/labelFilter/ruleForLabel.go b/labelFilter/ruleForLabel.go
index 3bc1592..71f30b0 100644
--- a/labelFilter/ruleForLabel.go
+++ b/labelFilter/ruleForLabel.go
@@ -3,14 +3,21 @@
 import (
 	"basic.com/dbapi.git"
 	"basic.com/pubsub/protomsg.git"
+	"basic.com/valib/logger.git"
+	"github.com/golang/protobuf/proto"
 	"github.com/knetic/govaluate"
-	"ruleprocess/logger"
-	"ruleprocess/ruleserver"
+	"ruleprocess/structure"
 	"strconv"
 	"time"
 )
 
-func Judge(msg ruleserver.ResultMsg) {
+func PushSomthing(msg structure.ResultMsg) {
+	defer func() {
+		if err := recover(); err != nil {
+			logger.Error("浜嬩欢鎺ㄩ�佹ā鍧楀効鐨勫紓甯告崟鑾凤細",err)
+		}
+	}()
+
 	// 瑁呴厤鎴愯嚜宸卞彲浠ヨ瘑鍒殑鏁版嵁
 	label := new(Label)
 	label.DataFormatToLabel(msg)
@@ -33,7 +40,7 @@
 			timeFlag := timeJudge(label, ruleGroup)
 			if !timeFlag {
 				logger.Info("涓嶅湪瑙勫垯鐨勬椂闂磋寖鍥村唴锛屼笉鎺ㄩ�侊紒")
-				return
+				continue
 			}
 			result := ""
 			var Connector string
@@ -45,19 +52,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)
 				}
 			}
 			// 寰楀嚭鎬荤殑鍒ゆ柇缁撴灉
@@ -67,6 +74,7 @@
 				expression, err := govaluate.NewEvaluableExpression(result);
 				if err != nil {
 					logger.Error("琛ㄨ揪寮忔湁璇紝璇锋鏌ワ紒")
+					return
 				}
 				result, err1 := expression.Evaluate(nil)
 				if err1 != nil {
@@ -107,6 +115,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 +176,7 @@
 					logger.Info("-------鎵撳嵃搴曞簱瑙勫垯鍏紡锛�",formula)
 					if err != nil {
 						logger.Error("琛ㄨ揪寮忔湁璇紝璇锋鏌ワ紒", formula)
-						//return "false"
+						return "false"
 					}
 					result, err1 := expression.Evaluate(nil)
 					if err1 != nil {
@@ -208,7 +217,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 +241,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 +273,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 {
@@ -309,10 +318,15 @@
 }
 
 // 璋冪敤鐩爣鏈嶅姟鍣ㄧ殑鎻掑叆鎺ュ彛
-func pushData(urls []*protomsg.PushUrl, data ruleserver.ResultMsg) {
+func pushData(urls []*protomsg.PushUrl, data structure.ResultMsg) {
 	for _, url := range urls {
 		logger.Debug("鐪嬬湅鎺ㄩ�佸湴鍧�锛�",url.Url)
-		Push("tcp://192.168.1.123:40012", data)
+		bytes,err1 := proto.Marshal(data)
+		if err1 != nil {
+			logger.Info("搴忓垪鍖栧け璐ワ細",err1)
+		}
+		urlPool[url.Url] <- bytes
+		logger.Info("urlPool澶у皬锛� ", urlPool[url.Url])
 	}
 }
 

--
Gitblit v1.8.0