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