From 788358c03d90f6371fa7a7d238850e2cb114a95f Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期一, 19 八月 2019 16:41:18 +0800
Subject: [PATCH] 对于或规则的一些改进
---
ruleserver/ruleToformula.go | 59 +++++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 41 insertions(+), 18 deletions(-)
diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go
index 36f6a12..6a5702d 100644
--- a/ruleserver/ruleToformula.go
+++ b/ruleserver/ruleToformula.go
@@ -545,24 +545,46 @@
if rule.PolygonId == am.areaId { // 绠楁硶鍜屽尯鍩熼兘寰楀鐨勪笂
if rule.SdkId == "812b674b-2375-4589-919a-5c1c3278a972" && rule.SdkArgAlias != "time_rule"{
- //logger.Debug("褰撳墠灏忚鍒欐槸锛�",rule)
- flag := "false"
- // 鎶婃病鏈夌浉浼艰�呯殑浜鸿劯浠巉ilterData涓垹闄�
- for index := 0; index < len(am.filterData); {
- // 灏嗚揪涓嶅埌闃堝�肩殑鐩镐技鑰呬粠鐩镐技鑰呮暟缁勪腑鍒犻櫎
- logger.Info("鐪嬬湅鐩镐技鑰呬汉鏁帮細",len(am.filterData[index].Liker))
- if len(am.filterData[index].Liker) == 0 {
- // Go 璇█涓垏鐗囧垹闄ゅ厓绱犵殑鏈川鏄細浠ヨ鍒犻櫎鍏冪礌涓哄垎鐣岀偣锛屽皢鍓嶅悗涓や釜閮ㄥ垎鐨勫唴瀛橀噸鏂拌繛鎺ヨ捣鏉ャ�備笉鐢ㄦ��鐤戯紝鏁扮粍鍒犻櫎鍏冪礌灏辫繖涔堝潙鐖�
- am.filterData = append(am.filterData[:index], am.filterData[index+1:]...)
- } else {
- index++
+ if rule.RuleWithPre == "||" {
+ // 濡傛灉鏄垨锛屼粠鍘熷鏁版嵁杩囨护骞剁洿鎺ユ坊鍔犲�掕繃婊ゆ暟鎹悗闈�
+ flag := "false"
+ // 鎶婃病鏈夌浉浼艰�呯殑浜鸿劯浠巉ilterData涓垹闄�
+ for index := 0; index < len(am.args); {
+ // 灏嗚揪涓嶅埌闃堝�肩殑鐩镐技鑰呬粠鐩镐技鑰呮暟缁勪腑鍒犻櫎
+ logger.Info("鐪嬬湅鐩镐技鑰呬汉鏁帮細",len(am.args[index].Liker))
+ if len(am.args[index].Liker) == 0 {
+ // Go 璇█涓垏鐗囧垹闄ゅ厓绱犵殑鏈川鏄細浠ヨ鍒犻櫎鍏冪礌涓哄垎鐣岀偣锛屽皢鍓嶅悗涓や釜閮ㄥ垎鐨勫唴瀛橀噸鏂拌繛鎺ヨ捣鏉ャ�備笉鐢ㄦ��鐤戯紝鏁扮粍鍒犻櫎鍏冪礌灏辫繖涔堝潙鐖�
+ am.args = append(am.args[:index], am.args[index+1:]...)
+ } else {
+ index++
+ }
}
+ if len(am.args) > 0 {
+ flag = "true"
+ }
+ logger.Info("---------浜鸿劯姣斿绗﹀悎鏉′欢鐨勬暟閲忎负锛�",len(am.args))
+ am.filterData = append(am.filterData,am.args...)
+ return LittleRuleResult{am.sdkName, rule.RuleWithPre + "" + flag, rule.Sort}
+ } else {
+ //logger.Debug("褰撳墠灏忚鍒欐槸锛�",rule)
+ flag := "false"
+ // 鎶婃病鏈夌浉浼艰�呯殑浜鸿劯浠巉ilterData涓垹闄�
+ for index := 0; index < len(am.filterData); {
+ // 灏嗚揪涓嶅埌闃堝�肩殑鐩镐技鑰呬粠鐩镐技鑰呮暟缁勪腑鍒犻櫎
+ logger.Info("鐪嬬湅鐩镐技鑰呬汉鏁帮細",len(am.filterData[index].Liker))
+ if len(am.filterData[index].Liker) == 0 {
+ // Go 璇█涓垏鐗囧垹闄ゅ厓绱犵殑鏈川鏄細浠ヨ鍒犻櫎鍏冪礌涓哄垎鐣岀偣锛屽皢鍓嶅悗涓や釜閮ㄥ垎鐨勫唴瀛橀噸鏂拌繛鎺ヨ捣鏉ャ�備笉鐢ㄦ��鐤戯紝鏁扮粍鍒犻櫎鍏冪礌灏辫繖涔堝潙鐖�
+ am.filterData = append(am.filterData[:index], am.filterData[index+1:]...)
+ } else {
+ index++
+ }
+ }
+ if len(am.filterData) > 0 {
+ flag = "true"
+ }
+ logger.Info("---------浜鸿劯姣斿绗﹀悎鏉′欢鐨勬暟閲忎负锛�",len(am.filterData))
+ return LittleRuleResult{am.sdkName, rule.RuleWithPre + "" + flag, rule.Sort}
}
- if len(am.filterData) > 0 {
- flag = "true"
- }
- logger.Info("---------浜鸿劯姣斿绗﹀悎鏉′欢鐨勬暟閲忎负锛�",len(am.filterData))
- return LittleRuleResult{am.sdkName, rule.RuleWithPre + "" + flag, rule.Sort}
}
if rule.SdkId == "812b674b-2375-4589-919a-5c1c3278a97e" { // 浜鸿劯妫�娴�
//logger.Debug("褰撳墠灏忚鍒欐槸锛�",rule)
@@ -573,13 +595,14 @@
var args []*Arg
if rule.RuleWithPre == "&&" {
args = am.filterData
+ // 鍏堟竻绌鸿繃婊ゅ悗鐨勬暟鎹紝鍐嶅線閲屽鏈杩囨护鍚庣殑鏁版嵁
+ am.filterData = am.filterData[0:0]
//logger.Info("杩囨护鍚庣殑args鐨勯暱搴︿负锛�",len(args))
} else {
args = am.args
+ //涓嶆竻绌轰箣鍓嶇殑杩囨护鏁版嵁锛岀户缁
//logger.Info("娌¤繃婊ょ殑args鐨勯暱搴︿负锛�",len(args))
}
- // 鍏堟竻绌鸿繃婊ゅ悗鐨勬暟鎹紝鍐嶅線閲屽鏈杩囨护鍚庣殑鏁版嵁
- am.filterData = am.filterData[0:0]
//logger.Info("-----------------------浜鸿劯杩囨护鐨刟rgs閲岀殑鏁伴噺锛�", len(args))
for _, arg := range args {
var formula string
--
Gitblit v1.8.0