From dfde28cd58daae9f51970f4434d0ab0a01a992a3 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期一, 01 七月 2019 18:14:43 +0800
Subject: [PATCH] 时间规则把==理解为满足,!= 理解为不满足
---
ruleserver/ruleToformula.go | 12 +++++++-----
1 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go
index aa16dd5..98fae4d 100644
--- a/ruleserver/ruleToformula.go
+++ b/ruleserver/ruleToformula.go
@@ -295,10 +295,10 @@
if completeFormula != "" {
log.Println("鐪嬬湅鍏紡-----------锛�", completeFormula)
expression, _ := govaluate.NewEvaluableExpression(completeFormula)
- result, err := expression.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋�
- if err != nil {
- panic("寰楀埌鐨勬暟瀛﹀叕寮忎笉鍙В鏋�")
+ if strings.HasPrefix(completeFormula,"&&") || strings.HasPrefix(completeFormula,"||"){
+ panic("瑙勫垯鏈夎锛屽緱鍒扮殑鏁板鍏紡涓嶅彲瑙f瀽")
}
+ result,_ := expression.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋�
if !result.(bool) {
// 缁欒繖甯ф暟鎹墦涓婅鍒欑粍鏍囩
//args.RuleResult = append(args.RuleResult, Result{TaskId: taskId, RuleGroupId: groupRule.GroupId})
@@ -720,11 +720,12 @@
now := time.Now()
index := getIndexOfWeek(now.Weekday().String())
timeList := GetTimeById(rule.SdkArgValue, index)
+ log.Println("褰撳ぉ鐨勬椂闂磋鍒欙細----------",timeList)
//fmt.Println("浠庢暟鎹簱涓煡鍑虹殑鏃堕棿瑙勫垯锛�", timeList)
// 鍒ゆ柇鍥剧墖鏁版嵁鐨勬椂闂存槸鍚︾鍚堝綋鍓嶈鍒� 鍦ㄤ竴涓嵆涓簍rue锛屽叏涓嶅湪涓篺alse
flag := "false"
for _, timeSlot := range timeList {
- if rule.Operator == "satisfy" { // 婊¤冻鎵�閫夌殑鏃堕棿瑙勫垯
+ if rule.Operator == "satisfy" || rule.Operator == "=="{ // 婊¤冻鎵�閫夌殑鏃堕棿瑙勫垯
formula := "'" + timeSlot.Start + "'" + "<" + "'" + am.time + "'"
expression, _ := govaluate.NewEvaluableExpression(formula) // 寰楀埌鏁板鍏紡
result, _ := expression.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋�
@@ -738,7 +739,7 @@
break
}
}
- if rule.Operator == "unsatisfy" { // 涓嶆弧瓒虫墍閫夌殑鏃堕棿瑙勫垯
+ if rule.Operator == "unsatisfy" || rule.Operator == "!="{ // 涓嶆弧瓒虫墍閫夌殑鏃堕棿瑙勫垯
formula := timeSlot.Start + "<" + am.time
expression, _ := govaluate.NewEvaluableExpression(formula) // 寰楀埌鏁板鍏紡
result, _ := expression.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋�
@@ -783,6 +784,7 @@
var cameraTimeRule protomsg.CameraTimerule
var api dbapi.CameraApi
_, rules := api.FindAllTimeRules()
+ log.Println("鏃堕棿闆嗗悎锛�----------------",rules)
for _, rule := range rules {
if rule.Id == id {
cameraTimeRule = rule
--
Gitblit v1.8.0