|
@@ -2,9 +2,12 @@ package cn.com.ctop.alarm.modules.service.impl;
|
|
|
|
|
|
import cn.com.ctop.alarm.modules.entity.*;
|
|
|
import cn.com.ctop.alarm.modules.mapper.*;
|
|
|
+import cn.com.ctop.alarm.modules.service.IRuleAccountTemplateService;
|
|
|
import cn.com.ctop.alarm.modules.service.IRuleGroupService;
|
|
|
import cn.com.ctop.common.module.utils.Check;
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -37,6 +40,10 @@ public class RuleGroupServiceImpl extends ServiceImpl<RuleGroupMapper, RuleGroup
|
|
|
private RuleAccountTemplateMapper ruleAccountTemplateMapper;
|
|
|
@Autowired
|
|
|
private RuleTemplateMapper ruleTemplateMapper;
|
|
|
+ @Autowired
|
|
|
+ private IRuleGroupService ruleGroupService;
|
|
|
+ @Autowired
|
|
|
+ private IRuleAccountTemplateService ruleAccountTemplateService;
|
|
|
|
|
|
@Override
|
|
|
public void checkRules() {
|
|
@@ -250,18 +257,85 @@ public class RuleGroupServiceImpl extends ServiceImpl<RuleGroupMapper, RuleGroup
|
|
|
* @param requestJson
|
|
|
* @return
|
|
|
*/
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
public JSONObject createRuleGroup(com.alibaba.fastjson.JSONObject requestJson) {
|
|
|
- JSONObject retureJson = new JSONObject();
|
|
|
+ JSONObject returnJson = new JSONObject();
|
|
|
try {
|
|
|
+ String templateId = requestJson.getString("templateId");
|
|
|
+ if (Check.isNull(templateId)) {
|
|
|
+ throw new Exception("请选择需要创建的规则模板id");
|
|
|
+ }
|
|
|
+ RuleTemplate template = ruleTemplateMapper.selectById(templateId);
|
|
|
+ if (Check.isNull(template)) {
|
|
|
+ throw new Exception("未获取到对应的规则模板详细情");
|
|
|
+ }
|
|
|
+
|
|
|
+ JSONArray ruleList = requestJson.getJSONArray("ruleList");
|
|
|
+ if (Check.isNull(ruleList)) {
|
|
|
+ throw new Exception("请传入具体规则");
|
|
|
+ }
|
|
|
+ QueryWrapper<RuleAccountTemplate> templateQueryWrapper = new QueryWrapper<>();
|
|
|
+ templateQueryWrapper.eq("template_id", templateId);
|
|
|
+ List<RuleAccountTemplate> accountList = ruleAccountTemplateService.list(templateQueryWrapper);
|
|
|
|
|
|
+ for (int i = 0; i < ruleList.size(); i++) {
|
|
|
+ JSONObject groupJson = ruleList.getJSONObject(i);
|
|
|
+ JSONArray ruleDetail = groupJson.getJSONArray("ruleDetail");
|
|
|
+ if (Check.isNull(ruleDetail)) {
|
|
|
+ throw new Exception("规则组下指标不能为空");
|
|
|
+ }
|
|
|
+ JSONArray ruleIds = new JSONArray();
|
|
|
+ for (int j = 0; j < ruleDetail.size(); j++) {
|
|
|
+ JSONObject ruleDetailJson = ruleDetail.getJSONObject(j);
|
|
|
+ RuleBase ruleBase = new RuleBase();
|
|
|
+ ruleBase.setRuleName(ruleDetailJson.getString("ruleName"));
|
|
|
+ ruleBase.setIndicatorCode(ruleDetailJson.getString("indicatorCode"));
|
|
|
+ ruleBase.setRuleCondition(ruleDetailJson.getString("ruleCondition"));
|
|
|
+ ruleBase.setThreshold(ruleDetailJson.getString("threshold"));
|
|
|
+ ruleBase.setVariableType(ruleDetailJson.getInteger("variableType"));
|
|
|
+ ruleBase.setRuleDimension(ruleDetailJson.getString("ruleDimension"));
|
|
|
+ int insert = ruleBaseMapper.insert(ruleBase); // 添加基础规则
|
|
|
+ if (insert > 0) {
|
|
|
+ if (!Check.isNull(accountList)) {
|
|
|
+ for (RuleAccountTemplate accountTemplate : accountList) {
|
|
|
+ Long accountId = accountTemplate.getAccountId();
|
|
|
+ RuleAccountThreshold threshold = new RuleAccountThreshold();
|
|
|
+ threshold.setAccountId(accountId);
|
|
|
+ threshold.setRuleId(ruleBase.getId());
|
|
|
+ // threshold.setThreshoId(ruleDetailJson.getString("threshold"));
|
|
|
+ ruleAccountThresholdMapper.insert(threshold); // 默认将新建的规则同步到已应用的账户下
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ruleIds.add(ruleBase.getId()); // 获取基本规则集
|
|
|
+ }
|
|
|
+ }
|
|
|
+ RuleGroup ruleGroup = new RuleGroup();
|
|
|
+ ruleGroup.setRuleIds(ruleIds.toJSONString());
|
|
|
+ ruleGroup.setRuleType(groupJson.getString("ruleType"));
|
|
|
+ ruleGroup.setRuleRelationship(groupJson.getString("ruleRelationship"));
|
|
|
+ ruleGroup.setGroupName(groupJson.getString("groupName"));
|
|
|
+ ruleGroup.setRemark(groupJson.getString("remark"));
|
|
|
+ boolean save = ruleGroupService.save(ruleGroup); // 新增规则组
|
|
|
+ if (save) {
|
|
|
+ JSONArray groupIds = JSONArray.parseArray(template.getGroupIds());
|
|
|
+ groupIds.add(ruleGroup.getId());
|
|
|
+ template.setGroupIds(groupIds.toJSONString());
|
|
|
+ ruleTemplateMapper.updateById(template); // 将新增的规则组id 添加到规则模板的规则组id下
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ returnJson.put("code", 0);
|
|
|
+ returnJson.put("message", "添加成功");
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
+ returnJson.put("code", -1);
|
|
|
+ returnJson.put("message", e.getMessage());
|
|
|
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- return null;
|
|
|
+ return returnJson;
|
|
|
}
|
|
|
|
|
|
|