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 | 27 ++++++++++++++++++++++----- 1 files changed, 22 insertions(+), 5 deletions(-) diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go index 02209d4..7eed9d7 100644 --- a/ruleserver/ruleToformula.go +++ b/ruleserver/ruleToformula.go @@ -246,8 +246,8 @@ for j := 0; j < len(groupRule.Rules); j++ { if groupRule.Rules[j].SdkId == "812b674b-2375-4589-919a-5c1c3278a972" { for _, sdkData := range args.Sdkdata { - if sdkData.IpcId == "812b674b-2375-4589-919a-5c1c3278a97e" { // 鎼滅储鍒颁汉鑴告娴嬬殑sdkdata 鐜板湪鍏充簬浜鸿劯鐨勫彧鏈変粬涓�涓猻dk锛屽叏鎵句粬 - logger.Info("_____________________________________________绗竴鍏�") + if sdkData.IpcId == "A8B73405-373D-4F23-CED2-A617EBD7EC55" { // 鎼滅储鍒颁汉鑴告娴嬬殑sdkdata 鐜板湪鍏充簬浜鸿劯鐨勫彧鏈変粬涓�涓猻dk锛屽叏鎵句粬 + logger.Info("============================================绗竴鍏�") for _, areaMap := range sdkData.AreaMapList { // 鎷垮尯鍩熶腑姣忎釜浜鸿劯鐗瑰緛鍊煎幓瀵规瘮锛屽~鍏呭叾liker if groupRule.Rules[j].PolygonId == areaMap.areaId { @@ -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