浏览代码

fix: 修复封禁列表用户处理可能的userId重复而导致的分组异常

hidewnd 2 周之前
父节点
当前提交
7e2ed15417
共有 1 个文件被更改,包括 6 次插入4 次删除
  1. 6 4
      yt-agent/agent-service/src/main/java/com/ytpm/service/impl/RiskServiceImpl.java

+ 6 - 4
yt-agent/agent-service/src/main/java/com/ytpm/service/impl/RiskServiceImpl.java

@@ -509,11 +509,13 @@ public class RiskServiceImpl implements RiskService {
     /**
      * 设置封禁用户信息
      */
-    private void setBannedLoginInfo(List<RiskBannedListView> bannedList,List<YtDyzUser> data) {
-        Map<String, YtDyzUser> collect = data.stream().collect(Collectors.toMap(YtDyzUser::getUserId, o->o));
+    private void setBannedLoginInfo(List<RiskBannedListView> bannedList, List<YtDyzUser> data) {
+        Map<String, YtDyzUser> collectMap = data.stream().collect(Collectors.toMap(
+                item-> StrUtil.format("{}_{}", item.getAppId(), item.getUserId()), o -> o));
         for (RiskBannedListView view : bannedList) {
-            if(!collect.containsKey(view.getUserId()))continue;
-            YtDyzUser dyzUser = collect.get(view.getUserId());
+            String key = StrUtil.format("{}_{}", view.getAppId(), view.getUserId());
+            if(!collectMap.containsKey(key))continue;
+            YtDyzUser dyzUser = collectMap.get(key);
             List<YtDyzLoginRecord> recordList = dyzUser.getLoginRecordList();
             if(CollUtil.isNotEmpty(recordList)){
                 view.setPhoneModel(recordList.get(0).getDeviceModel());