Browse Source

优化规则加载速度

gaodm 4 years ago
parent
commit
362a7d6b6c
1 changed files with 8 additions and 4 deletions
  1. 8 4
      src/main/java/com/diagbot/aggregate/RuleAggregate.java

+ 8 - 4
src/main/java/com/diagbot/aggregate/RuleAggregate.java

@@ -44,25 +44,29 @@ public class RuleAggregate {
             ruleDTO.setLibType(ruleInitZeroDTO.getLibType());
             ruleDTO.setRuleType(ruleInitZeroDTO.getRuleType());
             for (RuleInitDTO ruleInitDTO : ruleInits.get(ruleKey)) {
-                RuleConditionDTO ruleConditionDTO = new RuleConditionDTO();
-                ruleConditionDTO.setHasSubCond(ruleInitDTO.getHasSubCond());
-                ruleConditionDTO.setMsg(ruleInitDTO.getMsg());
                 if (ruleInitDTO.getHasSubCond().equals(1)) {
                     Map<String, List<RuleConditionInitDTO>> map = ruleConditionInits.get(ruleInitDTO.getRuleId());
                     for (String key : map.keySet()) {
+                        RuleConditionDTO ruleConditionDTO = new RuleConditionDTO();
+                        ruleConditionDTO.setHasSubCond(ruleInitDTO.getHasSubCond());
+                        ruleConditionDTO.setMsg(ruleInitDTO.getMsg());
                         ruleConditionDTO.setRuleGroup(key);
                         for (RuleConditionInitDTO ruleConditionInitDTO : map.get(key)) {
                             RuleBaseDTO ruleBaseDTO = new RuleBaseDTO();
                             BeanUtil.copyProperties(ruleBaseInits.get(ruleConditionInitDTO.getRuleBaseId()), ruleBaseDTO);
                             ruleConditionDTO.getRuleBaseDTOList().add(ruleBaseDTO);
                         }
+                        ruleDTO.getRuleConditionDTOList().add(ruleConditionDTO);
                     }
                 } else {
+                    RuleConditionDTO ruleConditionDTO = new RuleConditionDTO();
+                    ruleConditionDTO.setHasSubCond(ruleInitDTO.getHasSubCond());
+                    ruleConditionDTO.setMsg(ruleInitDTO.getMsg());
                     //无条件
                     ruleConditionDTO.setRuleGroup(ruleInitDTO.getRuleId() + "-1");
                     ruleConditionDTO.getRuleBaseDTOList().add(new RuleBaseDTO());
+                    ruleDTO.getRuleConditionDTOList().add(ruleConditionDTO);
                 }
-                ruleDTO.getRuleConditionDTOList().add(ruleConditionDTO);
             }
             res.put(RedisEnum.allRule.getName() + ruleDTO.getLibType() + "_" + ruleDTO.getLibName() + "_" + ruleDTO.getRuleType(), ruleDTO);
         }