From 59ec1051feb6cbff1e4b2937939213f8620a4f14 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期六, 13 七月 2019 16:54:30 +0800
Subject: [PATCH] 定时器位置变更
---
ruleserver/ruleToformula.go | 56 +++++++++++++++++++++++++++++++-------------------------
1 files changed, 31 insertions(+), 25 deletions(-)
diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go
index c392196..646f65a 100644
--- a/ruleserver/ruleToformula.go
+++ b/ruleserver/ruleToformula.go
@@ -2,6 +2,7 @@
import (
"encoding/json"
+ "fmt"
"ruleprocess/cache"
"ruleprocess/logger"
"sort"
@@ -406,22 +407,7 @@
}
}
}
- // 鏈�鍚庤繃鎸佺画鏃堕棿绛夋椂闂寸淮搴︾殑鏉′欢
- for j := 0; j < len(groupRule.Rules); j++ {
- for _, sdkData := range args.Sdkdata {
- sdk, err := cache.GetSdkById(groupRule.Rules[j].SdkId)
- if err != nil {
- logger.Error("娌℃煡鍒皊dk鐨勪俊鎭�---", err)
- }
- ipcId := sdk.IpcId
- if ipcId == sdkData.IpcId {
- for _, areaMap := range sdkData.AreaMapList {
- // 鍘诲紑鍚竴涓畾鏃跺櫒
- duration(groupRule.Rules[j], groupRule.GroupId, areaMap, args,message)
- }
- }
- }
- }
+
// 灏嗘暟缁勬寜sort鎺掑簭
sort.Sort(resultList(resultSplice))
// 鎺掑簭鍚庡彇鍚勮嚜鐨勭粨鏋滃拰杩炴帴绗︽嫾鍑鸿鍒欒〃杈惧紡寰楀嚭缁撴灉
@@ -449,9 +435,8 @@
panic("瑙勫垯鏈夎锛屽緱鍒扮殑鏁板鍏紡涓嶅彲瑙f瀽")
}
result, _ := expression.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋�
- // 杩涜瀹氭椂鍣ㄧ殑澶勭悊鍜屽垽鏂�
- timeFlag := TimerAlarm(args,groupRule.GroupId,result.(bool))
- if timeFlag == "01" || timeFlag == "10" || timeFlag == "11" {
+
+ if result.(bool) {
// 鏈�鍚庢垚鍔熸姤璀︽墠鎶婄鍚堟潯浠剁殑浜鸿劯鏁版嵁濉炶繘缁撴灉鏍囩閲�
// 閰嶄簡浜鸿劯鐨勭畻娉曟墠鎶婁汉鑴哥殑鏁版嵁鐢╁嚭鏉ユ墦鏍囩
faces := []Arg{}
@@ -489,14 +474,33 @@
if args.RuleResult["face"] != nil {
logger.Info("-------------------face缁撴灉鏍囩", len(args.RuleResult["face"].([]Arg)))
}
- // 缁欏畾鏃跺櫒閲岀紦瀛樼殑閭e抚鏁版嵁璧嬬粨鏋滄爣绛�
- for k, timeEle := range TimeEleList {
- if strings.Contains(k, groupRule.GroupId) {
- timeEle.CacheSdkData.RuleResult = args.RuleResult
+ // 鏈�鍚庤繃鎸佺画鏃堕棿绛夋椂闂寸淮搴︾殑鏉′欢 鎶婃椂闂磋鍒欎綅缃皟鏁村埌杩欎釜浣嶇疆鏄负浜嗙紦瀛樻暟鎹�
+ for j := 0; j < len(groupRule.Rules); j++ {
+ for _, sdkData := range args.Sdkdata {
+ sdk, err := cache.GetSdkById(groupRule.Rules[j].SdkId)
+ if err != nil {
+ logger.Error("娌℃煡鍒皊dk鐨勪俊鎭�---", err)
+ }
+ ipcId := sdk.IpcId
+ if ipcId == sdkData.IpcId {
+ for _, areaMap := range sdkData.AreaMapList {
+ // 鍘诲紑鍚竴涓畾鏃跺櫒
+ duration(groupRule.Rules[j], groupRule.GroupId, areaMap, args,message)
+ }
+ }
}
}
- return true
+ // 杩涜瀹氭椂鍣ㄧ殑澶勭悊鍜屽垽鏂�
+ timeFlag := TimerAlarm(args,groupRule.GroupId,result.(bool))
+ if timeFlag == "01" || timeFlag == "10" || timeFlag == "11" { // 婊¤冻瀹氭椂鍣ㄦ潯浠�
+ return true
+ } else {
+ return false
+ }
} else {
+ // 缁撴灉涓哄亣鏃朵篃瑕佽蛋锛屾湁鏃跺�欎负鍋囩殑鐘舵�佸弽杞暟鎹篃闇�瑕佽褰曚笅鏉�
+ timeFlag := TimerAlarm(args,groupRule.GroupId,result.(bool))
+ fmt.Println(timeFlag)
return false
}
} else {
@@ -532,6 +536,8 @@
}
if timeEle.N != 0 {
flagTime = "00"
+ // 鏈夊畾鏃跺櫒浣嗕笉涓�0鎶婂凡鎵撶殑鏍囩鍒犻櫎
+ args.RuleResult = nil
logger.Debug("------------------------缁撴灉涓虹湡浣嗚鏁板櫒涓嶅埌0锛屼笉鎶ヨ,姝ゆ椂鐨勮鏁板櫒鐨勫�间负锛�",timeEle.N)
}
}
@@ -879,7 +885,7 @@
if flag {
timeLength, _ := strconv.Atoi(rule.SdkArgValue)
- timeEle := TimeElement{N: timeLength, InitN: timeLength, AlarmFlag: false, CacheSdkData: ResultMsg{message,nil}} // 鎵旇繘鍘讳竴涓畾鏃跺櫒鍏冪礌锛堝苟缂撳瓨褰撳墠鐢婚潰甯ф暟鎹級
+ timeEle := TimeElement{N: timeLength, InitN: timeLength, AlarmFlag: false, CacheSdkData: ResultMsg{message,args.RuleResult}} // 鎵旇繘鍘讳竴涓畾鏃跺櫒鍏冪礌锛堝苟缂撳瓨褰撳墠鐢婚潰甯ф暟鎹級
//TimeEleList = make(map[string]timeElement)
TimeEleList[groupId+" "+rule.Id] = &timeEle // 瀹氭椂鍣ㄥ厓绱犱互鎽勫儚鏈篿d鎷兼帴鍖哄煙id涓洪敭
logger.Info("鍒涘缓浜嗚鏁板櫒骞朵笖璁℃暟鍣ㄩ泦鍚堜负锛�", TimeEleList)
--
Gitblit v1.8.0