• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/V2/Message/ReadService.php
  • Класс: BitrixImV2MessageReadService
  • Вызов: ReadService::getReadStatusesByMessageIds
public function getReadStatusesByMessageIds(array $messageIds): array
{
	if (empty($messageIds))
	{
		return [];
	}

	$query = MessageUnreadTable::query()
		->setSelect(['MESSAGE_ID'])
		->whereIn('MESSAGE_ID', $messageIds)
		->where('USER_ID', $this->getContext()->getUserId())
		->exec()
	; //todo add index

	$unreadMessages = [];

	while ($row = $query->fetch())
	{
		$unreadMessages[(int)$row['MESSAGE_ID']] = false;
	}

	$readStatuses = [];

	foreach ($messageIds as $messageId)
	{
		$readStatuses[$messageId] = $unreadMessages[$messageId] ?? true;
	}

	return $readStatuses;
}