|  | @@ -1,19 +1,119 @@
 | 
	
		
			
				|  |  |  package cn.com.ctop.alarm.modules.service.impl;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +import cn.com.ctop.alarm.modules.entity.RuleAccountTemplate;
 | 
	
		
			
				|  |  |  import cn.com.ctop.alarm.modules.entity.RuleGroup;
 | 
	
		
			
				|  |  | +import cn.com.ctop.alarm.modules.entity.RuleTemplate;
 | 
	
		
			
				|  |  | +import cn.com.ctop.alarm.modules.mapper.RuleAccountTemplateMapper;
 | 
	
		
			
				|  |  | +import cn.com.ctop.alarm.modules.mapper.RuleAccountThresholdMapper;
 | 
	
		
			
				|  |  | +import cn.com.ctop.alarm.modules.mapper.RuleBaseMapper;
 | 
	
		
			
				|  |  |  import cn.com.ctop.alarm.modules.mapper.RuleGroupMapper;
 | 
	
		
			
				|  |  | +import cn.com.ctop.alarm.modules.mapper.RuleIndicatorMapper;
 | 
	
		
			
				|  |  | +import cn.com.ctop.alarm.modules.mapper.RuleTemplateMapper;
 | 
	
		
			
				|  |  |  import cn.com.ctop.alarm.modules.service.IRuleGroupService;
 | 
	
		
			
				|  |  | +import cn.com.ctop.common.module.utils.Check;
 | 
	
		
			
				|  |  | +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 | 
	
		
			
				|  |  | +import org.json.JSONObject;
 | 
	
		
			
				|  |  | +import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  |  import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 | 
	
		
			
				|  |  | +import java.util.ArrayList;
 | 
	
		
			
				|  |  | +import java.util.HashMap;
 | 
	
		
			
				|  |  | +import java.util.List;
 | 
	
		
			
				|  |  | +import java.util.Map;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /**
 | 
	
		
			
				|  |  |   * 规则组
 | 
	
		
			
				|  |  | + *
 | 
	
		
			
				|  |  |   * @author jeecg-boot
 | 
	
		
			
				|  |  | - * @date   2020-11-15
 | 
	
		
			
				|  |  |   * @version V1.0
 | 
	
		
			
				|  |  | + * @date 2020-11-15
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  |  @Service
 | 
	
		
			
				|  |  |  public class RuleGroupServiceImpl extends ServiceImpl<RuleGroupMapper, RuleGroup> implements IRuleGroupService {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private RuleBaseMapper ruleBaseMapper;
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private RuleGroupMapper ruleGroupMapper;
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private RuleIndicatorMapper ruleIndicatorMapper;
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private RuleAccountThresholdMapper ruleAccountThresholdMapper;
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private RuleAccountTemplateMapper ruleAccountTemplateMapper;
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private RuleTemplateMapper ruleTemplateMapper;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @Override
 | 
	
		
			
				|  |  | +    public void checkRules() {
 | 
	
		
			
				|  |  | +        //账户绑定的规则模板
 | 
	
		
			
				|  |  | +        List<RuleAccountTemplate> ruleAccountTemplates = ruleAccountTemplateMapper.selectByMap(null);
 | 
	
		
			
				|  |  | +        //查询指标数据
 | 
	
		
			
				|  |  | +        List<JSONObject> dataList = getData();
 | 
	
		
			
				|  |  | +        //获取规则集
 | 
	
		
			
				|  |  | +        Map<Long, List<RuleGroup>> ruleGroupMap = getRuleGroupMap();
 | 
	
		
			
				|  |  | +        for (RuleAccountTemplate templates : ruleAccountTemplates) {
 | 
	
		
			
				|  |  | +            for (JSONObject data : dataList) {
 | 
	
		
			
				|  |  | +                if (templates.getAccountId() == data.getLong("accountId")) {
 | 
	
		
			
				|  |  | +                    List<RuleGroup> ruleGroups = ruleGroupMap.get(templates.getTemplateId());
 | 
	
		
			
				|  |  | +                    //TODO
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 整理规则模板的数据,根据模板ID获取模板具体规则内容
 | 
	
		
			
				|  |  | +     *
 | 
	
		
			
				|  |  | +     * @param
 | 
	
		
			
				|  |  | +     * @return MAP key为模板ID,value是规则集
 | 
	
		
			
				|  |  | +     * @throws
 | 
	
		
			
				|  |  | +     * @author ZHAOXA
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private Map<Long, List<RuleGroup>> getRuleGroupMap() {
 | 
	
		
			
				|  |  | +        Map<Long, List<RuleGroup>> map = new HashMap<>();
 | 
	
		
			
				|  |  | +        List<RuleTemplate> ruleTemplates = ruleTemplateMapper.selectByMap(null);
 | 
	
		
			
				|  |  | +        ruleTemplates.forEach(tem -> {
 | 
	
		
			
				|  |  | +            List<String> groupIds = strToList(tem.getGroupIds());
 | 
	
		
			
				|  |  | +            if (!Check.isNull(groupIds)) {
 | 
	
		
			
				|  |  | +                List<RuleGroup> ruleGroups = ruleGroupMapper.selectBatchIds(groupIds);
 | 
	
		
			
				|  |  | +                for (RuleGroup group : ruleGroups) {
 | 
	
		
			
				|  |  | +                    List<String> ruleIds = strToList(group.getRuleIds());
 | 
	
		
			
				|  |  | +                    if (!Check.isNull(ruleIds)) {
 | 
	
		
			
				|  |  | +                        group.setRuleBaseList(ruleBaseMapper.selectBatchIds(ruleIds));
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                map.put(tem.getId(), ruleGroups);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +        return null;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    //拆分逗号拼接数据
 | 
	
		
			
				|  |  | +    private List<String> strToList(String strings) {
 | 
	
		
			
				|  |  | +        if (Check.isNull(strings)) {
 | 
	
		
			
				|  |  | +            return null;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        List<String> ids = new ArrayList<>();
 | 
	
		
			
				|  |  | +        String[] idArray = strings.split(",");
 | 
	
		
			
				|  |  | +        for (String id : idArray) {
 | 
	
		
			
				|  |  | +            ids.add(id);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return ids;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * TODO 获取指标数据
 | 
	
		
			
				|  |  | +     *
 | 
	
		
			
				|  |  | +     * @param
 | 
	
		
			
				|  |  | +     * @return java.util.List<org.json.JSONObject>
 | 
	
		
			
				|  |  | +     * @throws
 | 
	
		
			
				|  |  | +     * @author ZHAOXA
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private List<JSONObject> getData() {
 | 
	
		
			
				|  |  | +        return null;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  }
 |