فهرست منبع

feat:优化风控生成逻辑;

hidewnd 1 ماه پیش
والد
کامیت
5e82d74415

+ 2 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/dao/RiskMapper.java

@@ -47,4 +47,6 @@ public interface RiskMapper {
     void relativeApp(@Param("appId")String appId,@Param("appName")String appName,
                      @Param("templateId")String templateId,
                      @Param("nickName")String nickName, @Param("userId")String userId);
+
+    List<YtRiskTemplate> selectByAppId(@Param("appId") String appId);
 }

+ 47 - 21
yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/ApkServiceImpl.java

@@ -196,15 +196,7 @@ public class ApkServiceImpl implements ApkService {
         //出包修改 default_config
         changeDefaultConfig(param);
         if(CharSequenceUtil.isNotBlank(param.getAppId())){
-            //修改时判断已生成风控配置,则说明出过包,仅需更换即可
-            YtRiskTemplate template = riskMapper.getTemplateByAppId(param.getAppId());
-            if(Objects.isNull(template)){
-                YtApp ytApp = appMapper.selectByPrimaryId(param.getAppId());
-                if (ytApp != null) {
-                    param.setAppType(ytApp.getAppType());
-                }
-                generateRiskDefaultConfig(param,loginUser);
-            }
+            generateRiskDefaultConfig(param,loginUser);
         }
         return Result.resultOk(RepMessage.SAVE_SUCCESS);
     }
@@ -302,19 +294,53 @@ public class ApkServiceImpl implements ApkService {
      * 给应用生成默认的风控配置
      */
     private void generateRiskDefaultConfig(AppParam param,MiddleUserInfo loginUser) {
-        addTemp742(param,loginUser);
-        addTemp746(param,loginUser);
-        // 游客用户风控
-        addTemp344(param, loginUser);
-        addTemp345(param, loginUser);
+        YtApp ytApp = appMapper.selectByPrimaryId(param.getAppId());
+        if (ytApp != null) {
+            param.setAppType(ytApp.getAppType());
+        }
+        List<YtRiskTemplate> templates = riskMapper.selectByAppId(param.getAppId());
+        Map<String, YtRiskTemplate> templateMap = templates.stream()
+                .filter(item -> StrUtil.isNotEmpty(item.getTemplateCode()))
+                .collect(Collectors.toMap(item -> item.getTemplateCode().split("-")[1], item -> item,
+                        (o1, o2) -> o2
+                ));
+        // 激励视频ecpm值控制
+        if(templateMap.get("742") == null){
+            addTemp742(param,loginUser);
+        }
+        // 最低收益限制
+        if(templateMap.get("746") == null) {
+            addTemp746(param,loginUser);
+        }
+        // 游客用户总预估收益限制
+        if (templateMap.get("344") == null) {
+            addTemp344(param, loginUser);
+        }
+        // 游客用户总ecpm限制
+        if (templateMap.get("345") == null) {
+            addTemp345(param, loginUser);
+        }
         // 平均收益风控
-        addTemp766(param, loginUser);
-        // 任务完成数风控
-        addTemp767(param, loginUser);
-        addTemp768(param, loginUser);
-        // 用户登陆IP限制风控
-        addTemp334(param, loginUser);
-        addTemp335(param, loginUser);
+        if (templateMap.get("766") == null) {
+            addTemp766(param, loginUser);
+        }
+        // 月区间任务完成数限制
+        if (templateMap.get("767") == null) {
+            addTemp767(param, loginUser);
+        }
+        // 小时区间任务数完成限制
+        if (templateMap.get("768") == null) {
+            addTemp768(param, loginUser);
+        }
+        // 同IP登陆限制
+        if (templateMap.get("334") == null) {
+            addTemp334(param, loginUser);
+        }
+        // 地区IP登陆用户限制
+        if (templateMap.get("335") == null) {
+            addTemp335(param, loginUser);
+        }
+
     }
 
     private void addTemp335(AppParam param, MiddleUserInfo loginUser) {

+ 7 - 0
yt-middle/middle-platform/src/main/resources/mapper/RiskMapper.xml

@@ -116,4 +116,11 @@
             and DATE_FORMAT(banned_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
         </if>
     </select>
+    <select id="selectByAppId" resultType="com.ytpm.risk.model.YtRiskTemplate">
+        select template_id, template_name, template_content, template_code, channel_id, effect_node, app_id,
+               all_satisfy, create_time, create_user_id, update_time, update_user_id, enabled, can_modify
+        from yt_risk_template yrt
+        where yrt.app_id =#{appId} or yrt.template_code like concat(#{appId},'%')
+        order by template_code
+    </select>
 </mapper>