ソースを参照

风控IP登录限制

marxjaw 1 ヶ月 前
コミット
1c194a66d2

+ 8 - 6
yt-risk/risk-manage/src/main/java/com/ytpm/service/impl/RiskServiceImpl.java

@@ -490,18 +490,20 @@ public class RiskServiceImpl implements RiskService {
                         s.getLoginTime().before(new Date())).collect(Collectors.toList());
         int intCount = 0;
         if(!dayLoginList.isEmpty()){
-            for (YtDyzLoginRecord loginRecord : dayLoginList) {
-                loginRecord.setLoginIp(loginRecord.getLoginIp()
-                        .substring(0,Integer.parseInt(configMap.get("ipPrefix"))));
+            List<String>  ipaddrList = dayLoginList.stream().map(
+                    YtDyzLoginRecord::getLoginIp).distinct().collect(Collectors.toList());
+            List<String> ipResult = new ArrayList<>();
+            for (String ipaddr : ipaddrList) {
+                ipResult.add(ipaddr.substring(0,Integer.parseInt(configMap.get("ipPrefix"))));
             }
-            intCount = Math.toIntExact(dayLoginList.stream().map(YtDyzLoginRecord::getLoginIp).distinct().count());
+            intCount = Math.toIntExact(ipResult.size());
         }
         int ipSameCount = Integer.parseInt(configMap.get("ipSameCount"));
         if(intCount > ipSameCount){//校验同IP登录次数大于预设值,锁定用户
             if (dyzUser.getIosId()!=null) {
-                riskLockUserForIos(dyzUser,"322","系统判定重复刷单用户限制",getTipsMsg());
+                riskLockUserForIos(dyzUser,dyzUser.getRiskCode(),"系统判定重复刷单用户限制",getTipsMsg());
             }  else {
-                riskLockUser(dyzUser,"322","系统判定重复刷单用户限制",getTipsMsg());
+                riskLockUser(dyzUser,dyzUser.getRiskCode(),"系统判定重复刷单用户限制",getTipsMsg());
             }
         }
     }