From efb0ddd9490567bb7f26fc34261ba4ca7961b073 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期五, 08 十一月 2019 11:22:28 +0800
Subject: [PATCH] 打成so的文件必须是main package
---
ruleserver/ruleToformula.go | 90 ++-------------------------------------------
1 files changed, 4 insertions(+), 86 deletions(-)
diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go
index 33e057d..bb78fda 100644
--- a/ruleserver/ruleToformula.go
+++ b/ruleserver/ruleToformula.go
@@ -1,19 +1,16 @@
package ruleserver
import (
+ "basic.com/pubsub/protomsg.git"
+ "github.com/knetic/govaluate"
"plugin"
"ruleprocess/cache"
- "ruleprocess/structure"
"ruleprocess/logger"
"ruleprocess/structure"
"sort"
"strconv"
"strings"
"sync"
- "time"
-
- "basic.com/pubsub/protomsg.git"
- "github.com/knetic/govaluate"
)
@@ -78,30 +75,6 @@
}
}
}
-}
-
-func CallSo(sdkId string,rule *protomsg.Rule, am *structure.AreaMap) structure.LittleRuleResult{
- // 鏍规嵁sdkId鏌ュ嚭鍏跺搴旂殑sdk鐨剆oName锛岃皟鐢ㄧ浉搴攕o鐨凟ntrance鏂规硶
- 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"
- } else if sdkId == "812b674b-2375-4589-919a-5c1c3278a972" {
- soName = "faceCompare.so"
- }
- p,err := plugin.Open("./algorithm/"+soName)
- if err != nil {
- panic(err)
- }
- f,err1 := p.Lookup("Entrance")
- if err1 != nil {
- panic("娌℃湁鎵惧埌鍏ュ彛鍑芥暟")
- }
- ruleResult := f.(func(rule *protomsg.Rule, am *structure.AreaMap)structure.LittleRuleResult)(rule,am)
- return ruleResult
}
func CallMiddleware(args *structure.SdkDatas,rule protomsg.GroupRule) ([]*structure.LittleRuleResult, string, string){
@@ -217,7 +190,7 @@
}
}
}
- //logger.Debug("------locations鐨勫唴瀹癸細", locations)
+ logger.Debug("------locations鐨勫唴瀹癸細", locations)
var islink bool
if groupRule.SetType == "linkTask" {
islink = true
@@ -457,6 +430,7 @@
// 濡傛灉鏈夋寔缁椂闂存潯浠剁淮鎶ゅ紑鍚竴涓畾鏃跺櫒
func duration(rule *protomsg.Rule, groupId string, am *structure.AreaMap, args *structure.SdkDatas, message *protomsg.SdkMessage) string{
+ cacheId := ""
if rule.PolygonId == am.AreaId { // 棣栧厛瑙勫垯鎵�瀵瑰簲鐨勫尯鍩焛d瑕佽窡鍖哄煙鏁版嵁鐨刬d瀵圭殑涓� 閰嶇疆鐨勭畻娉曡瀵圭殑涓�
if rule.SdkArgAlias == "duration" { //
//logger.Info("褰撳墠灏忚鍒欐槸锛�---------", rule)
@@ -484,59 +458,3 @@
return cacheId
}
-func timeRuleResult(rule *protomsg.Rule, am *structure.AreaMap) structure.LittleRuleResult {
- if rule.PolygonId == am.AreaId { // 棣栧厛瑙勫垯鎵�瀵瑰簲鐨勫尯鍩焛d瑕佽窡鍖哄煙鏁版嵁鐨刬d瀵圭殑涓�
- if rule.SdkArgAlias == "time_rule" { // 鍒ゆ柇鏄惁绗﹀悎鏃堕棿瑙�
- //logger.Info("----------褰撳墠鏃堕棿瑙勫垯锛�---------", rule)
- // 鏍规嵁鏀惧�煎瓧娈甸噷瀛樼殑鏃堕棿瑙勫垯鐨刬d鍘诲彟涓�涓〃閲屾煡闇�瑕佹瘮瀵圭殑鏃堕棿娈碉紙姣斿褰撳墠鏃堕棿鏄懆涓夛紝搴旀牴鎹尯鍩焛d鏌ュ嚭鍏跺懆涓夌殑鍑犱釜甯冮槻鏃堕棿娈碉紝鏁扮粍锛�
- //logger.Info("鏃堕棿瑙勫垯鐨勬祴璇�")
- now := time.Now()
- index := getIndexOfWeek(now.Weekday().String())
- timeList := GetTimeById(rule.SdkArgValue, index)
- //logger.Info("褰撳ぉ鐨勬椂闂存闆嗗悎锛�----------", timeList)
- //logger.Info("浠庢暟鎹簱涓煡鍑虹殑鏃堕棿瑙勫垯锛�", timeList)
- // 鍒ゆ柇鍥剧墖鏁版嵁鐨勬椂闂存槸鍚︾鍚堝綋鍓嶈鍒� 鍦ㄤ竴涓嵆涓簍rue锛屽叏涓嶅湪涓篺alse
-
- if rule.Operator == "satisfy" || rule.Operator == "==" { // 婊¤冻鎵�閫夌殑鏃堕棿瑙勫垯
- flag := "false"
- for _, timeSlot := range timeList {
- formula := "'" + timeSlot.Start + "'" + "<" + "'" + am.Time + "'"
- expression, _ := govaluate.NewEvaluableExpression(formula) // 寰楀埌鏁板鍏紡
- result, _ := expression.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋�
-
- formula1 := "'" + timeSlot.End + "'" + ">" + "'" + am.Time + "'"
- expression1, _ := govaluate.NewEvaluableExpression(formula1) // 寰楀埌鏁板鍏紡
- result1, _ := expression1.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋�
- //logger.Info("鐪嬬湅杩欎袱灏婂ぇ绁�", result, result1)
- if result.(bool) && result1.(bool) {
- flag = "true"
- break
- }
- }
- return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + flag, rule.Sort}
- }
-
- if rule.Operator == "unsatisfy" || rule.Operator == "!=" { // 涓嶆弧瓒虫墍閫夌殑鏃堕棿瑙勫垯
- flag := "true"
- for _, timeSlot := range timeList {
- formula := "'" + timeSlot.Start + "'" + " < " + "'" + am.Time + "'"
- //logger.Info("-----------------鏃堕棿瑙勫垯涓嶆弧瓒崇殑鍏紡start锛�", formula)
- expression, _ := govaluate.NewEvaluableExpression(formula) // 寰楀埌鏁板鍏紡
- result, _ := expression.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋�
-
- formula1 := "'" + timeSlot.End + "'" + " > " + "'" + am.Time + "'"
- //logger.Info("-----------------鏃堕棿瑙勫垯涓嶆弧瓒崇殑鍏紡end锛�", formula1)
- expression1, _ := govaluate.NewEvaluableExpression(formula1) // 寰楀埌鏁板鍏紡
- result1, _ := expression1.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋�
- if result.(bool) && result1.(bool) {
- flag = "false"
- break
- }
- }
- return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + flag, rule.Sort}
- }
-
- }
- }
- return structure.LittleRuleResult{}
-}
--
Gitblit v1.8.0