AI 3 months ago
parent
commit
9667c5ab5e
1 changed files with 13 additions and 1 deletions
  1. 13 1
      app/JsonRpc/ChatService.php

+ 13 - 1
app/JsonRpc/ChatService.php

@@ -349,7 +349,19 @@ class ChatService implements ChatServiceInterface
             ->get();
 
         // 合并未读消息和已读消息
-        $allMessages = array_merge($unreadMessages->toArray(), $readMessages->toArray());
+        // $allMessages = array_merge($unreadMessages->toArray(), $readMessages->toArray());
+        // 使用关联数组去重,并优先保留未读消息
+        $allMessages = [];
+        foreach ($unreadMessages as $message) {
+            $allMessages[$message['receiver_id']] = $message->toArray();
+        }
+
+        foreach ($readMessages as $message) {
+            if (!isset($allMessages[$message['receiver_id']])) {
+                $allMessages[$message['receiver_id']] = $message->toArray();
+            }
+        }
+
         // var_dump($allMessages);
         // 处理结果,判断是否是群聊
         $formattedMessages = [];