Przeglądaj źródła

fix:风控删除IOS区别

zack 1 miesiąc temu
rodzic
commit
3bfa43c1b4

+ 10 - 88
yt-risk/risk-manage/src/main/java/com/ytpm/service/impl/RiskServiceImpl.java

@@ -395,11 +395,7 @@ public class RiskServiceImpl implements RiskService {
         if(1==view.getEnabled()){
             checkDefaultRiskConfig(dyzUser, view.getConfigList());
         }
-        if (dyzUser.getIosId()!=null) {
-            checkRisk322ForIos(dyzUser);
-        } else {
-            checkRisk322(dyzUser);
-        }
+        checkRisk322(dyzUser);
         //查询用户所在app是否配置其他风控规则
 //        checkCustomRisk(dyzUser,EffectNodeEnum.LOGIN.getNode(),null);
         return Result.resultOk(RepMessage.QUERY_SUCCESS);
@@ -417,37 +413,12 @@ public class RiskServiceImpl implements RiskService {
         //根据用户所属应用查询该应用母包openid查询用户信息
         YtApp ytApp = appMapper.selectRiskApp(dyzUser.getAppId());
         YtPlatformUserApp userApp =  appMapper.selectParentApp(ytApp.getSuperiorId());
-        Object o = feignInvoker.invoke(userApp.getServiceName(),"queryByOpenid",dyzUser.getWxOpenId());
-        List<YtDyzUser> dyzUsers = JSONArray.parseArray(JSON.toJSONString(o), YtDyzUser.class);
-
-        List<RiskConfigView> configList = view.getConfigList();
-        Map<String, String> configMap = configList.stream().collect(
-                Collectors.toMap(RiskConfigView::getFieldName, RiskConfigView::getConfigVal));
-        //判断同应用 UID生成数如果不小于配置数则触发规则校验
-        int uidCount = Integer.parseInt(configMap.get("uidCount"));
-        int days = Integer.parseInt(configMap.get("days"));
-        //过滤该用户注册时间在三天内的渠道数
-        long ditchCount = dyzUsers.stream().filter(
-                s->(days>DateUtil.between(new Date(), s.getRegistryTime(),DateUnit.DAY))
-        ).count();
-        //三天内注册的渠道数小于预设的渠道数通过校验,否则风控锁定用户
-        if(ditchCount<uidCount)return;
-        if (dyzUser.getIosId()!=null) {
-            riskLockUserForIos(dyzUser,"322","系统判定重复刷单用户限制",getTipsMsg());
-        }  else {
-            riskLockUser(dyzUser,"322","系统判定重复刷单用户限制",getTipsMsg());
+        Object o;
+        if (dyzUser.getIosId() != null) {
+            o = feignInvoker.invoke(userApp.getServiceName(),"queryByIosId",dyzUser.getIosId());
+        } else {
+            o = feignInvoker.invoke(userApp.getServiceName(),"queryByOpenid",dyzUser.getWxOpenId());
         }
-    }
-
-    /**
-     * 校验风控规则322
-     */
-    private void checkRisk322ForIos(YtDyzUser dyzUser) {
-        RiskTemplateView view = configMapper.getByCode("322");
-        //根据用户所属应用查询该应用母包openid查询用户信息
-        YtApp ytApp = appMapper.selectRiskApp(dyzUser.getAppId());
-        YtPlatformUserApp userApp =  appMapper.selectParentApp(ytApp.getSuperiorId());
-        Object o = feignInvoker.invoke(userApp.getServiceName(),"queryByIosId",dyzUser.getIosId());
         List<YtDyzUser> dyzUsers = JSONArray.parseArray(JSON.toJSONString(o), YtDyzUser.class);
 
         List<RiskConfigView> configList = view.getConfigList();
@@ -462,11 +433,7 @@ public class RiskServiceImpl implements RiskService {
         ).count();
         //三天内注册的渠道数小于预设的渠道数通过校验,否则风控锁定用户
         if(ditchCount<uidCount)return;
-        if (dyzUser.getIosId()!=null) {
-            riskLockUserForIos(dyzUser,"322","系统判定重复刷单用户限制",getTipsMsg());
-        }  else {
-            riskLockUser(dyzUser,"322","系统判定重复刷单用户限制",getTipsMsg());
-        }
+        riskLockUser(dyzUser,"322","系统判定重复刷单用户限制",getTipsMsg());
     }
 
     /**
@@ -500,11 +467,7 @@ public class RiskServiceImpl implements RiskService {
         }
         int ipSameCount = Integer.parseInt(configMap.get("ipSameCount"));
         if(intCount > ipSameCount){//校验同IP登录次数大于预设值,锁定用户
-            if (dyzUser.getIosId()!=null) {
-                riskLockUserForIos(dyzUser,dyzUser.getRiskCode(),"系统判定重复刷单用户限制",getTipsMsg());
-            }  else {
-                riskLockUser(dyzUser,dyzUser.getRiskCode(),"系统判定重复刷单用户限制",getTipsMsg());
-            }
+            riskLockUser(dyzUser,dyzUser.getRiskCode(),"系统判定重复刷单用户限制",getTipsMsg());
         }
     }
 
@@ -716,11 +679,7 @@ public class RiskServiceImpl implements RiskService {
             BigDecimal reduce = revenues.stream().map(YtDyzAdRecord::getRevenue).reduce(BigDecimal.ZERO, BigDecimal::add);
             if(reduce.compareTo(income)<0){
                 log.warn(StrUtil.format("[risk 746] reduce{}  income {}", reduce, income));
-                if (dyzUser.getIosId()!=null) {
-                    riskLockUserForIos(dyzUser,"746","系统判定小于最低收益限制",getTipsMsg());
-                }  else {
-                    riskLockUser(dyzUser, "746","系统判定小于最低收益限制",getTipsMsg());
-                }
+                riskLockUser(dyzUser, "746","系统判定小于最低收益限制",getTipsMsg());
             }
         }
     }
@@ -748,11 +707,7 @@ public class RiskServiceImpl implements RiskService {
             int haveCount = Integer.parseInt(limitMap.get("haveCount"));
             if(exact>haveCount){
                 log.warn(StrUtil.format("[risk 742] exact{} > haveCount {}", exact, haveCount));
-                if (dyzUser.getIosId()!=null) {
-                    riskLockUserForIos(dyzUser,"742","系统判定激励视频ecpm值过低",getTipsMsg());
-                }  else {
-                    riskLockUser(dyzUser,"742","系统判定激励视频ecpm值过低",getTipsMsg());
-                }
+                riskLockUser(dyzUser,"742","系统判定激励视频ecpm值过低",getTipsMsg());
             }
         }
     }
@@ -790,39 +745,6 @@ public class RiskServiceImpl implements RiskService {
         throw new CustomerException(errMsg);
     }
 
-    /**
-     * 风控锁定用户
-     */
-    private void riskLockUserForIos(YtDyzUser dyzUser,String riskCode, String tempName, String errMsg) {
-        //增加用户风控记录
-        RiskBannedParam param = new RiskBannedParam();
-        param.setUserId(dyzUser.getUserId());
-        param.setAppId(dyzUser.getAppId());
-        param.setDitChId(dyzUser.getDitchId());
-        param.setBannedLimit(1*24);
-        param.setOperator("系统风控");
-        param.setBannedReason(tempName);
-        param.setOperatorName("系统风控");
-        param.setAgentId(configMapper.getApplicationOwner(dyzUser.getAppId()));
-        addBannedRecord(Collections.singletonList(dyzUser.getUserId()),param);
-
-        YtPlatformUserApp appInfo = appMapper.selectParentApp(dyzUser.getAppId());
-
-        ScheduledExecutorService scheduled  = Executors.newSingleThreadScheduledExecutor();
-        scheduled.schedule(()->{
-            YtDyzUser next = new YtDyzUser();
-            next.setUserId(dyzUser.getUserId());
-            next.setUserStatus(UserStatusEnum.LOCK.getCode());
-            next.setRiskCode(riskCode);
-            next.setRiskReason(tempName);
-            feignInvoker.invoke(appInfo.getServiceName(), "updateUserInfo",next);
-        },300, TimeUnit.MILLISECONDS);
-        //修改为解锁用户存入redis 24小时后进行解锁
-        redisService.setTimeOutHoursStr("unlock_"+dyzUser.getUserId(),dyzUser.getAppId(), 24);
-        scheduled.shutdown();
-        throw new CustomerException(errMsg);
-    }
-
     /**
      * 修改用户信息
      */