소스 검색

优化规则加载速度

gaodm 4 년 전
부모
커밋
362a7d6b6c
1개의 변경된 파일8개의 추가작업 그리고 4개의 파일을 삭제
  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.setLibType(ruleInitZeroDTO.getLibType());
             ruleDTO.setRuleType(ruleInitZeroDTO.getRuleType());
             ruleDTO.setRuleType(ruleInitZeroDTO.getRuleType());
             for (RuleInitDTO ruleInitDTO : ruleInits.get(ruleKey)) {
             for (RuleInitDTO ruleInitDTO : ruleInits.get(ruleKey)) {
-                RuleConditionDTO ruleConditionDTO = new RuleConditionDTO();
-                ruleConditionDTO.setHasSubCond(ruleInitDTO.getHasSubCond());
-                ruleConditionDTO.setMsg(ruleInitDTO.getMsg());
                 if (ruleInitDTO.getHasSubCond().equals(1)) {
                 if (ruleInitDTO.getHasSubCond().equals(1)) {
                     Map<String, List<RuleConditionInitDTO>> map = ruleConditionInits.get(ruleInitDTO.getRuleId());
                     Map<String, List<RuleConditionInitDTO>> map = ruleConditionInits.get(ruleInitDTO.getRuleId());
                     for (String key : map.keySet()) {
                     for (String key : map.keySet()) {
+                        RuleConditionDTO ruleConditionDTO = new RuleConditionDTO();
+                        ruleConditionDTO.setHasSubCond(ruleInitDTO.getHasSubCond());
+                        ruleConditionDTO.setMsg(ruleInitDTO.getMsg());
                         ruleConditionDTO.setRuleGroup(key);
                         ruleConditionDTO.setRuleGroup(key);
                         for (RuleConditionInitDTO ruleConditionInitDTO : map.get(key)) {
                         for (RuleConditionInitDTO ruleConditionInitDTO : map.get(key)) {
                             RuleBaseDTO ruleBaseDTO = new RuleBaseDTO();
                             RuleBaseDTO ruleBaseDTO = new RuleBaseDTO();
                             BeanUtil.copyProperties(ruleBaseInits.get(ruleConditionInitDTO.getRuleBaseId()), ruleBaseDTO);
                             BeanUtil.copyProperties(ruleBaseInits.get(ruleConditionInitDTO.getRuleBaseId()), ruleBaseDTO);
                             ruleConditionDTO.getRuleBaseDTOList().add(ruleBaseDTO);
                             ruleConditionDTO.getRuleBaseDTOList().add(ruleBaseDTO);
                         }
                         }
+                        ruleDTO.getRuleConditionDTOList().add(ruleConditionDTO);
                     }
                     }
                 } else {
                 } else {
+                    RuleConditionDTO ruleConditionDTO = new RuleConditionDTO();
+                    ruleConditionDTO.setHasSubCond(ruleInitDTO.getHasSubCond());
+                    ruleConditionDTO.setMsg(ruleInitDTO.getMsg());
                     //无条件
                     //无条件
                     ruleConditionDTO.setRuleGroup(ruleInitDTO.getRuleId() + "-1");
                     ruleConditionDTO.setRuleGroup(ruleInitDTO.getRuleId() + "-1");
                     ruleConditionDTO.getRuleBaseDTOList().add(new RuleBaseDTO());
                     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);
             res.put(RedisEnum.allRule.getName() + ruleDTO.getLibType() + "_" + ruleDTO.getLibName() + "_" + ruleDTO.getRuleType(), ruleDTO);
         }
         }