From 031d773855fb40ea7b6d9cffd860ba1006ef6af4 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期五, 16 八月 2019 17:55:18 +0800
Subject: [PATCH] 暂时写死sdkId与soName测试

---
 ruleserver/ruleToformula.go |    9 ++++
 algorithm/static/static.go  |   65 ++++++++++++++++++++++++++++++++
 2 files changed, 73 insertions(+), 1 deletions(-)

diff --git a/algorithm/static/static.go b/algorithm/static/static.go
new file mode 100644
index 0000000..774d97a
--- /dev/null
+++ b/algorithm/static/static.go
@@ -0,0 +1,65 @@
+package main
+
+import (
+	"basic.com/pubsub/protomsg.git"
+	"github.com/knetic/govaluate"
+	"ruleprocess/logger"
+	"ruleprocess/ruleserver"
+	"ruleprocess/structure"
+	"strconv"
+)
+//涓綋闈欐绠楁硶
+func Entrance(rule *protomsg.Rule, am *structure.AreaMap) structure.LittleRuleResult {
+	for _,obj := range am.FilterData {
+		var flag bool = true
+		for k, _ := range ruleserver.TimeEleList {
+			if k == rule.Id+""+strconv.Itoa(int(obj.Id)) {
+				flag = false // 鏈夊氨缃负false
+				logger.Info("鏈夎繖涓畾鏃跺櫒锛屼笉鍐嶅垱寤轰簡锛�")
+			}
+		}
+		if flag {
+			timeEle := ruleserver.TimeElement{N: 10, InitN: 10, AlarmFlag: false, BufferFlag: 5} // 鎵旇繘鍘讳竴涓畾鏃跺櫒鍏冪礌
+			ruleserver.TimeEleList[rule.Id+""+strconv.Itoa(int(obj.Id))] = &timeEle // 瀹氭椂鍣ㄥ厓绱犱互灏忚鍒檌d鍜岀洰鏍噄d涓洪敭
+		}
+	}
+	return structure.LittleRuleResult{}
+}
+
+// 杩囨护瑙勫垯鍏堢瓫閫夊嚭绗﹀悎鏉′欢鐨勭洰鏍囨暟閲�
+func filterRule(rule *protomsg.Rule, am *structure.AreaMap) structure.LittleRuleResult {
+	// 澶勭悊鐨勯兘鏄痽olo鏁版嵁
+	var args []*structure.Arg
+	if rule.RuleWithPre == "&&" {
+		args = am.FilterData
+	} else {
+		args = am.Args
+	}
+	// 鍏堟竻绌鸿繃婊ゅ悗鐨勬暟鎹紝鍐嶅線閲屽鏈杩囨护鍚庣殑鏁版嵁
+	am.FilterData = am.FilterData[0:0]
+	//logger.Debug("鐪嬬湅args锛氾細锛氾細锛�", args)
+	for _, arg := range args {
+		var formula string
+		if rule.SdkArgAlias == "score" {
+			formula = strconv.FormatFloat(arg.Score, 'f', -1, 64) + " " + rule.Operator + " " + rule.SdkArgValue // 寰楀埌瀛楃涓插叕寮�
+			logger.Info("褰撳墠鐩镐技搴﹀皬鍏紡锛�", formula)
+		} else if rule.SdkArgAlias == "proportion" {
+			formula = strconv.FormatFloat(arg.Proportion, 'f', -1, 64) + " " + rule.Operator + " " + rule.SdkArgValue // 寰楀埌瀛楃涓插叕寮�
+			logger.Info("褰撳墠鍗犳瘮灏忓叕寮忥細", formula)
+		} else {
+			formula = strconv.FormatFloat(arg.Size, 'f', -1, 64) + " " + rule.Operator + " " + rule.SdkArgValue // 寰楀埌瀛楃涓插叕寮�
+			logger.Info("褰撳墠灏哄灏忓叕寮忥細", formula)
+		}
+		expression, _ := govaluate.NewEvaluableExpression(formula) // 寰楀埌鏁板鍏紡
+		result, _ := expression.Evaluate(nil)                      // 寰楀埌鏁板鍏紡鐨勭粨鏋�
+		if result.(bool) {
+			am.FilterData = append(am.FilterData, arg) // 寰楀埌绗﹀悎鏉′欢鐨勮繃婊ゆ暟鎹�
+		}
+	}
+	am.TargetNum = len(am.FilterData) // 鎶婄鍚堟潯浠剁殑鐩爣鏁伴噺鏇存柊鍒皌argetNum瀛楁
+	if am.TargetNum > 0 {
+		return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "true", rule.Sort}
+	} else {
+		return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort}
+	}
+}
\ No newline at end of file
diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go
index 1305b1a..7f42130 100644
--- a/ruleserver/ruleToformula.go
+++ b/ruleserver/ruleToformula.go
@@ -117,7 +117,14 @@
 
 func CallSo(sdkId string,rule *protomsg.Rule, am *structure.AreaMap) structure.LittleRuleResult{
 	// 鏍规嵁sdkId鏌ュ嚭鍏跺搴旂殑sdk鐨剆oName锛岃皟鐢ㄧ浉搴攕o鐨凟ntrance鏂规硶
-	var soName = "intrusion.so"
+	var soName = ""
+	if sdkId == "812b674b-2375-4589-919a-5c1c3278a97e" {
+		soName = "face.so"
+	} else if sdkId == "812b674b-2375-4589-919a-5c1c3278a975"{
+		soName = "intrusion.so"
+	} else if sdkId == "812b674b-2375-4589-919a-5c1c3278a976" {
+		soName = "personUnsual.so"
+	}
 	p,err :=  plugin.Open("../algorithm/"+soName)
 	if err != nil {
 		panic(err)

--
Gitblit v1.8.0