|
7 | 7 | use App\Constants\Laboratory\GroupEvent; |
8 | 8 | use App\Foundation\Utils\GroupAvatar; |
9 | 9 | use App\Model\Auth\User; |
| 10 | +use App\Model\Laboratory\FriendChatHistory; |
10 | 11 | use App\Model\Laboratory\Group; |
11 | 12 | use App\Model\Laboratory\GroupChatHistory; |
12 | 13 | use App\Model\Laboratory\GroupRelation; |
@@ -337,27 +338,32 @@ function forwardMessage(array $groupInfo, array $user, array $content) |
337 | 338 | { |
338 | 339 | if (is_array($content)) { |
339 | 340 | foreach ($content as $item) { |
340 | | - var_dump($item); |
341 | | -// //添加聊天记录 |
342 | | -// $message = []; |
343 | | -// $message['id'] = generate_rand_id(); |
344 | | -// $message['from_uid'] = $user['id']; |
345 | | -// $message['to_group_id'] = $groupInfo['group_id']; |
346 | | -// $message['type'] = GroupChatHistory::GROUP_CHAT_MESSAGE_TYPE_FORWARD; |
347 | | -// $message['status'] = GroupChatHistory::GROUP_CHAT_MESSAGE_STATUS_SUCCEED; |
348 | | -// $message['sendTime'] = time() * 1000; |
349 | | -// $message['content'] = $content; |
350 | | -// $message['toContactId'] = $groupInfo['group_id']; |
351 | | -// $message['fromUser'] = $user; |
352 | | -// |
353 | | -// //获取不在线用户,并添加到未读历史消息中 |
354 | | -// $unOnlineUidList = GroupService::getInstance()->getUnOnlineGroupMember($groupInfo['group_id']); |
355 | | -// foreach ($unOnlineUidList as $uid) { |
356 | | -// Redis::getInstance()->sAdd(ChatRedisKey::GROUP_CHAT_UNREAD_MESSAGE_BY_USER . $uid, $groupInfo['group_id']); |
357 | | -// } |
358 | | -// $this->sendMessage($groupInfo['group_id'], $message, GroupEvent::FORWARD_MESSAGE); |
359 | | - return true; |
| 341 | + $messageSource = $item['is_group'] == true ? GroupChatHistory::query()->where('message_id', $item['id'])->first() : FriendChatHistory::query()->where('message_id', $item['id'])->first(); |
| 342 | + $messageSource = objToArray($messageSource); |
| 343 | + if (empty($messageSource)) continue; |
| 344 | + //添加聊天记录 |
| 345 | + $message = []; |
| 346 | + $message['id'] = generate_rand_id(); |
| 347 | + $message['from_uid'] = $user['id']; |
| 348 | + $message['to_group_id'] = $groupInfo['group_id']; |
| 349 | + $message['type'] = $messageSource['type']; |
| 350 | + $message['status'] = GroupChatHistory::GROUP_CHAT_MESSAGE_STATUS_SUCCEED; |
| 351 | + $message['sendTime'] = time() * 1000; |
| 352 | + $message['content'] = $messageSource['content']; |
| 353 | + $message['toContactId'] = $groupInfo['group_id']; |
| 354 | + $message['fromUser'] = $user; |
| 355 | + $message['fileSize'] = $messageSource['file_size']; |
| 356 | + $message['fileName'] = $messageSource['file_name']; |
| 357 | + $message['fileExt'] = $messageSource['file_ext']; |
| 358 | + |
| 359 | + //获取不在线用户,并添加到未读历史消息中 |
| 360 | + $unOnlineUidList = GroupService::getInstance()->getUnOnlineGroupMember($groupInfo['group_id']); |
| 361 | + foreach ($unOnlineUidList as $uid) { |
| 362 | + Redis::getInstance()->sAdd(ChatRedisKey::GROUP_CHAT_UNREAD_MESSAGE_BY_USER . $uid, $groupInfo['group_id']); |
| 363 | + } |
| 364 | + $this->sendMessage($groupInfo['group_id'], $message, GroupEvent::FORWARD_MESSAGE); |
360 | 365 | } |
| 366 | + return true; |
361 | 367 | } |
362 | 368 | } |
363 | 369 |
|
|
0 commit comments