From a49dcd9e6d0cca3cecaa520c06295666de9b9630 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期三, 10 七月 2019 16:48:07 +0800
Subject: [PATCH] 完善持续时间条件的判断
---
ruleserver/ruleToformula.go | 23 ++++++++++++++++++++---
1 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go
index 01a1d5d..7eed9d7 100644
--- a/ruleserver/ruleToformula.go
+++ b/ruleserver/ruleToformula.go
@@ -390,9 +390,17 @@
logger.Error("娌℃煡鍒皊dk鐨勪俊鎭�---", err)
}
ipcId := sdk.IpcId
+ sdkName := sdk.SdkName
if ipcId == sdkData.IpcId {
for _, areaMap := range sdkData.AreaMapList {
- duration(groupRule.Rules[j], &areaMap, args)
+ ruleResult := duration(groupRule.Rules[j], &areaMap, args)
+ if ruleResult.Result != "" {
+ logger.Info("鏃堕棿瑙勫垯缁撴灉锛�", ruleResult.Result)
+ if ruleResult.Result == "true" && !strings.Contains(sdkNames, sdkName) {
+ sdkNames = sdkName + ","
+ }
+ resultSplice = append(resultSplice, &ruleResult)
+ }
}
}
}
@@ -795,15 +803,22 @@
}
// 閮借繃婊ゅ畬鏉′欢涔嬪悗鐪嬬湅鏄惁瑕佸垱寤轰竴涓畾鏃跺櫒鍏冪礌 鍒涘缓瀹氭椂鍣ㄧ殑鏉′欢锛氭槸鍚︽湁闈犲彸琛岋紝涓綋闈欐绛夎嚜甯﹀畾鏃跺櫒鍚箟鐨勭畻娉曚互鍙婃槸鍚︽湁鎸佺画鏃堕棿
-func duration(rule *protomsg.Rule, am *AreaMap, args *SdkDatas) {
+func duration(rule *protomsg.Rule, am *AreaMap, args *SdkDatas) LittleRuleResult{
if rule.PolygonId == am.areaId { // 棣栧厛瑙勫垯鎵�瀵瑰簲鐨勫尯鍩焛d瑕佽窡鍖哄煙鏁版嵁鐨刬d瀵圭殑涓� 閰嶇疆鐨勭畻娉曡瀵圭殑涓�
if rule.SdkArgAlias == "duration" { //
// 鍏堢湅鐪嬪畾鏃跺櫒鍏冪礌闃熷垪涓槸鍚︽湁杩欎釜鎽勫儚鏈鸿繖涓尯鍩熺殑瀹氭椂鍣�,濡傛灉鏈夊氨涓嶈兘鍐嶆鍒涘缓浜�
var flag bool = true
- for k, _ := range TimeEleList {
+ for k,value := range TimeEleList {
if k == am.taskId+" "+am.sdkId+" "+am.areaId {
flag = false // 鏈夊氨缃负false
logger.Info("鏈夎繖涓畾鏃跺櫒锛屼笉鍐嶅垱寤轰簡锛�")
+ // 鐪嬬湅瀹氭椂鍣ㄤ腑鐨勫�兼槸鍚︿负0 濡傛灉涓�0搴旇鎶ヨ锛屽鏋滀笉涓�0杩斿洖false锛屾湭杈惧埌鎸佺画鏃堕棿鐨勮姹�
+ if value.N == 0 {
+ return LittleRuleResult{am.sdkName, "true" + "" + rule.RuleWithPre, rule.Sort}
+ }else {
+ logger.Info("------------------------------鎸佺画鏃堕棿鏉′欢涓嶆弧瓒�")
+ return LittleRuleResult{am.sdkName, "false" + "" + rule.RuleWithPre, rule.Sort}
+ }
}
}
@@ -813,9 +828,11 @@
//TimeEleList = make(map[string]timeElement)
TimeEleList[am.taskId+" "+am.sdkId+" "+am.areaId] = &timeEle // 瀹氭椂鍣ㄥ厓绱犱互鎽勫儚鏈篿d鎷兼帴鍖哄煙id涓洪敭
logger.Info("鍒涘缓浜嗚鏁板櫒骞朵笖璁℃暟鍣ㄩ泦鍚堜负锛�", TimeEleList)
+ return LittleRuleResult{am.sdkName, "false" + "" + rule.RuleWithPre, rule.Sort}
}
}
}
+ return LittleRuleResult{}
}
// 缁欐暟鎹簱鐨勮鍒欒〃杈惧紡浠e弬 args: 涓�鏉″瓙瑙勫垯锛屽尯鍩熸暟鎹�
--
Gitblit v1.8.0