Explorar el Código

fix: 消息一直加载的bug

xsx hace 2 años
padre
commit
c955e50d12

+ 6 - 2
im-platform/src/main/java/com/bx/implatform/service/impl/GroupMessageServiceImpl.java

@@ -206,12 +206,16 @@ public class GroupMessageServiceImpl extends ServiceImpl<GroupMessageMapper, Gro
         if(!imClient.isOnline(session.getUserId())){
             throw new GlobalException(ResultCode.PROGRAM_ERROR, "网络连接失败,无法拉取离线消息");
         }
-        // 开启加载中标志
-        this.sendLoadingMessage(true);
+
         // 查询用户加入的群组
         List<GroupMember> members = groupMemberService.findByUserId(session.getUserId());
         Map<Long, GroupMember> groupMemberMap = CollStreamUtil.toIdentityMap(members, GroupMember::getGroupId);
         Set<Long> groupIds = groupMemberMap.keySet();
+        if(CollectionUtil.isEmpty(groupIds)){
+            return;
+        }
+        // 开启加载中标志
+        this.sendLoadingMessage(true);
         // 只能拉取最近1个月的,最多拉取1000条
         Date minDate = DateUtils.addMonths(new Date(), -1);
         LambdaQueryWrapper<GroupMessage> wrapper = Wrappers.lambdaQuery();

+ 3 - 2
im-platform/src/main/java/com/bx/implatform/service/impl/PrivateMessageServiceImpl.java

@@ -182,13 +182,14 @@ public class PrivateMessageServiceImpl extends ServiceImpl<PrivateMessageMapper,
         if(!imClient.isOnline(session.getUserId())){
             throw new GlobalException(ResultCode.PROGRAM_ERROR, "网络连接失败,无法拉取离线消息");
         }
-        // 开启加载中标志
-        this.sendLoadingMessage(true);
+
         // 查询用户好友列表
         List<Friend> friends = friendService.findFriendByUserId(session.getUserId());
         if (friends.isEmpty()) {
             return;
         }
+        // 开启加载中标志
+        this.sendLoadingMessage(true);
         List<Long> friendIds = friends.stream().map(Friend::getFriendId).collect(Collectors.toList());
         // 获取当前用户的消息
         LambdaQueryWrapper<PrivateMessage> queryWrapper = Wrappers.lambdaQuery();