Selaa lähdekoodia

解决获取好友列表时,被删除的用户也能获取出来的BUG

wukai 1 vuosi sitten
vanhempi
commit
5bfa71dbee

+ 10 - 6
doc-biz/src/main/java/com/doc/chat/service/impl/ChatMsgServiceImpl.java

@@ -15,6 +15,7 @@ import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -136,8 +137,7 @@ public class ChatMsgServiceImpl implements IChatMsgService {
      */
     @Override
     public List<ChatMsg> selectFriendList(Long userId) {
-        List<ChatMsg> msgList = chatMsgMapper.selectFriendList(userId);
-        process(msgList);
+        List<ChatMsg> msgList = process(chatMsgMapper.selectFriendList(userId));
         return msgList;
     }
 
@@ -162,7 +162,8 @@ public class ChatMsgServiceImpl implements IChatMsgService {
      *
      * @param msgList 消息列表
      */
-    private void process(List<ChatMsg> msgList) {
+    private List<ChatMsg> process(List<ChatMsg> msgList) {
+        List<ChatMsg> list = new ArrayList<>();
         Map<Long, SysUser> userMap = userService.selectAllUser();
         msgList.forEach(msg -> {
             String type = "1";
@@ -174,15 +175,18 @@ public class ChatMsgServiceImpl implements IChatMsgService {
             }
             SysUser fromUser = userMap.get(msg.getFromId());
             SysUser toUser = userMap.get(msg.getToId());
-            if (fromUser != null) {
+            if (fromUser == null || toUser == null) {
+                //如果找不到该用户,证明有可能该用户已被删除,则删除该条记录
+            } else {
                 msg.setFromName(fromUser.getNickName());
                 msg.setFromAvatar(fromUser.getAvatar());
-            }
-            if (toUser != null) {
                 msg.setToName(toUser.getNickName());
                 msg.setToAvatar(toUser.getAvatar());
+                list.add(msg);
             }
         });
+        return list;
     }
 
+
 }