Kaynağa Gözat

Merge remote-tracking branch 'origin/master_rule_engine' into master_rule_engine

# Conflicts:
#	module-alarm/src/main/java/cn/com/ctop/alarm/modules/service/impl/RuleGroupServiceImpl.java
yumeng 4 yıl önce
ebeveyn
işleme
bd168fc08c

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

@@ -3,10 +3,24 @@ package cn.com.ctop.alarm.modules.service.impl;
 import cn.com.ctop.alarm.modules.constant.MatchLogic;
 import cn.com.ctop.alarm.modules.entity.*;
 import cn.com.ctop.alarm.modules.mapper.*;
+import cn.com.ctop.alarm.modules.entity.AlarmEventRule;
+import cn.com.ctop.alarm.modules.entity.RuleAccountTemplate;
+import cn.com.ctop.alarm.modules.entity.RuleAccountThreshold;
+import cn.com.ctop.alarm.modules.entity.RuleBase;
+import cn.com.ctop.alarm.modules.entity.RuleGroup;
+import cn.com.ctop.alarm.modules.entity.RuleIndicator;
+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.IRuleAccountTemplateService;
 import cn.com.ctop.alarm.modules.service.IRuleGroupService;
 import cn.com.ctop.common.module.entity.CtopOauthToken;
 import cn.com.ctop.common.module.service.ICtopOauthTokenService;
+import cn.com.ctop.common.module.service.IRuleDataAccountService;
 import cn.com.ctop.common.module.service.ISendMessageService;
 import cn.com.ctop.common.module.utils.Check;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouUpdateService;
@@ -57,7 +71,8 @@ public class RuleGroupServiceImpl extends ServiceImpl<RuleGroupMapper, RuleGroup
     private IKuaiShouUpdateService kuaiShouUpdateService;
     @Autowired
     private ICtopOauthTokenService oauthTokenService;
-
+    @Autowired
+    private IRuleDataAccountService ruleDataAccountService;
 
     @Override
     public void checkRules() {
@@ -67,12 +82,6 @@ public class RuleGroupServiceImpl extends ServiceImpl<RuleGroupMapper, RuleGroup
             log.warn("查询账户绑定过的规则模板失败");
             return;
         }
-        //查询匹配数据
-        JSONObject dataList = getData();
-        if (Check.isNull(dataList)) {
-            log.warn("查询匹配数据失败");
-            return;
-        }
         //获取规则集
         Map<Long, List<RuleGroup>> ruleGroupMap = getRuleGroupMap();
         if (Check.isNull(ruleGroupMap)) {
@@ -87,7 +96,7 @@ public class RuleGroupServiceImpl extends ServiceImpl<RuleGroupMapper, RuleGroup
         }
         for (RuleAccountTemplate templates : ruleAccountTemplates) {
             List<RuleGroup> ruleGroups = ruleGroupMap.get(templates.getTemplateId());
-            matchAlarmRules(ruleGroups, getThreshold(ruleAccountThresholdMapper.selectByAccountId(templates.getAccountId())), dataList, indicators, templates.getAccountId());
+            matchAlarmRules(ruleGroups, getThreshold(ruleAccountThresholdMapper.selectByAccountId(templates.getAccountId())), indicators, templates.getAccountId());
         }
     }
 
@@ -96,19 +105,18 @@ public class RuleGroupServiceImpl extends ServiceImpl<RuleGroupMapper, RuleGroup
      *
      * @param ruleGroups   规则集
      * @param thresholdObj 规则id阈值
-     * @param matchData    匹配数据
      * @param indicators   指标码
      * @return void
      * @throws
      * @author ZHAOXA
      */
-    private void matchAlarmRules(List<RuleGroup> ruleGroups, JSONObject thresholdObj, JSONObject matchData, JSONObject indicators, Long accountId) {
-        //TODO 获取数据
-        JSONArray targetData = matchData.getJSONArray("target");
-        JSONArray planData = matchData.getJSONArray("plan");
-        JSONArray accountData = matchData.getJSONArray("account");
-        JSONArray creativeData = matchData.getJSONArray("creative");
-        JSONArray lostCostData = matchData.getJSONArray("lostCost");
+    private void matchAlarmRules(List<RuleGroup> ruleGroups, JSONObject thresholdObj, JSONObject indicators, Long accountId) {
+        //查询匹配数据
+        JSONObject matchData = getRuleData(accountId);
+        if (Check.isNull(matchData)) {
+            log.warn("查询匹配数据失败");
+            return;
+        }
         for (RuleGroup ruleGroup : ruleGroups) {
             List<RuleBase> ruleBaseList = ruleGroup.getRuleBaseList();
             boolean isBase = "base".equals(ruleGroup.getRuleType());
@@ -302,10 +310,8 @@ public class RuleGroupServiceImpl extends ServiceImpl<RuleGroupMapper, RuleGroup
      * @throws
      * @author ZHAOXA
      */
-    private JSONObject getData() {
-
-
-        return null;
+    private JSONObject getRuleData(Long accountId) {
+        return ruleDataAccountService.getRuleDataByAccountId(accountId);
     }
 
     /**

+ 3 - 1
module-common/src/main/java/cn/com/ctop/common/module/service/IRuleDataAccountService.java

@@ -1,14 +1,16 @@
 package cn.com.ctop.common.module.service;
 
 import cn.com.ctop.common.module.entity.RuleDataAccount;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 /**
  * @Description: 规则账户清洗数据
  * @Author: jeecg-boot
- * @Date:   2020-11-16
+ * @Date: 2020-11-16
  * @Version: V1.0
  */
 public interface IRuleDataAccountService extends IService<RuleDataAccount> {
 
+    JSONObject getRuleDataByAccountId(Long accountId);
 }

+ 35 - 1
module-common/src/main/java/cn/com/ctop/common/module/service/impl/RuleDataAccountServiceImpl.java

@@ -2,17 +2,51 @@ package cn.com.ctop.common.module.service.impl;
 
 import cn.com.ctop.common.module.entity.RuleDataAccount;
 import cn.com.ctop.common.module.mapper.RuleDataAccountMapper;
+import cn.com.ctop.common.module.mapper.RuleDataCreativeMapper;
+import cn.com.ctop.common.module.mapper.RuleDataPlanMapper;
+import cn.com.ctop.common.module.mapper.RuleDataTargetMapper;
 import cn.com.ctop.common.module.service.IRuleDataAccountService;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xxl.job.core.enums.NoEn;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
+import java.util.Map;
+
 /**
  * 规则账户清洗数据
+ *
  * @author jeecg-boot
- * @date   2020-11-16
  * @version V1.0
+ * @date 2020-11-16
  */
 @Service
 public class RuleDataAccountServiceImpl extends ServiceImpl<RuleDataAccountMapper, RuleDataAccount> implements IRuleDataAccountService {
 
+    @Autowired
+    private RuleDataAccountMapper ruleDataAccountMapper;
+
+    @Autowired
+    private RuleDataPlanMapper ruleDataPlanMapper;
+
+    @Autowired
+    private RuleDataTargetMapper ruleDataTargetMapper;
+
+    @Autowired
+    private RuleDataCreativeMapper ruleDataCreativeMapper;
+
+    @Override
+    public JSONObject getRuleDataByAccountId(Long accountId) {
+        JSONObject obj = new JSONObject();
+        Map<String, Object> map = new HashMap<>();
+        map.put("account_id", accountId);
+        map.put("status", NoEn.NO1.valueStr());
+        obj.put("account", ruleDataAccountMapper.selectByMap(map));
+        obj.put("plan", ruleDataPlanMapper.selectByMap(map));
+        obj.put("target", ruleDataTargetMapper.selectByMap(map));
+        obj.put("creative", ruleDataCreativeMapper.selectByMap(map));
+        return obj;
+    }
 }