Quellcode durchsuchen

添加规则组

yumeng vor 4 Jahren
Ursprung
Commit
e228c8fba8

+ 10 - 5
module-alarm/src/main/java/cn/com/ctop/alarm/modules/controller/RuleGroupController.java

@@ -75,12 +75,17 @@ public class RuleGroupController {
             }
 
             JSONObject returnJson = ruleGroupService.createRuleGroup(requestJson);
-
-
-            result.success("添加成功!");
+            if (returnJson.getInteger("code") == 0) {
+                result.setSuccess(true);
+                result.setMessage(returnJson.getString("message"));
+            } else {
+                result.setSuccess(false);
+                result.setMessage(returnJson.getString("message"));
+            }
         } catch (Exception e) {
-            log.error(e.getMessage(), e);
-            result.error500("操作失败");
+            e.printStackTrace();
+            result.setSuccess(false);
+            result.setMessage(e.getMessage());
         }
         return result;
     }

+ 1 - 0
module-alarm/src/main/java/cn/com/ctop/alarm/modules/controller/RuleTemplateController.java

@@ -112,6 +112,7 @@ public class RuleTemplateController {
                 result.setMessage(returnJson.getString("message"));
             }
         } catch (Exception e) {
+            e.printStackTrace();
             result.setSuccess(false);
             result.setMessage(e.getMessage());
         }

+ 77 - 3
module-alarm/src/main/java/cn/com/ctop/alarm/modules/service/impl/RuleGroupServiceImpl.java

@@ -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;
     }