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

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

	$viewedMessages = [];

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

	$viewStatuses = [];

	foreach ($messageIds as $messageId)
	{
		$viewStatuses[$messageId] = $viewedMessages[$messageId] ?? false;
	}

	return $viewStatuses;
}