• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/V2/Message/ViewedService.php
  • Класс: BitrixImV2MessageViewedService
  • Вызов: ViewedService::addTo
public function addTo(Message $message): Result
{
	$lowerBound = $this->getLastViewedMessageId($message->getChatId());
	$includeBound = false;
	if ($lowerBound === null)
	{
		$lowerBound = $message->getChat()->getStartId($this->getContext()->getUserId());
		$includeBound = true;
	}

	$messageIds = $this->getLastMessageIdsBetween($message, $lowerBound, $includeBound);
	$dateViewed = new DateTime();
	$userId = $this->getContext()->getUserId();
	$chatId = $message->getChatId();
	$insertFields = [];

	foreach ($messageIds as $messageId)
	{
		$insertFields[] = [
			'USER_ID' => $userId,
			'CHAT_ID' => $chatId,
			'MESSAGE_ID' => $messageId,
			'DATE_CREATE' => $dateViewed,
		];
	}

	MessageViewedTable::multiplyInsertWithoutDuplicate($insertFields, ['DEADLOCK_SAFE' => true]);

	return (new Result())->setResult(['VIEWED_MESSAGES' => $messageIds]);
}