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

	$viewedMessageResult = MessageViewedTable::query()
		->setSelect(['MESSAGE_ID'])
		->setDistinct()
		->whereIn('MESSAGE_ID', $messageIds) //todo index
		->exec()
	;

	$deliveredMessages = [];

	while ($row = $viewedMessageResult->fetch())
	{
		$deliveredMessages[(int)$row['MESSAGE_ID']] = IM_MESSAGE_STATUS_DELIVERED;
	}

	$messageStatuses = [];

	foreach ($messageIds as $messageId)
	{
		$messageStatuses[$messageId] = $deliveredMessages[$messageId] ?? IM_MESSAGE_STATUS_RECEIVED;
	}

	return $messageStatuses;
}