• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/V2/Chat/OpenLineChat.php
  • Класс: BitrixImV2ChatOpenLineChat
  • Вызов: OpenLineChat::riseInRecent
public function riseInRecent(Message $message): void
{
	/** @var Relation $relation */
	foreach ($this->getRelations() as $relation)
	{
		if (!User::getInstance($relation->getUserId())->isActive())
		{
			continue;
		}

		$sessionId = 0;
		if ($this->getEntityType() == self::ENTITY_TYPE_LINE)
		{
			if (User::getInstance($relation->getUserId())->getExternalAuthId() == 'imconnector')
			{
				continue;
			}

			if ($this->getEntityData1())
			{
				//todo: replace it with method
				$fieldData = explode("|", $this->getEntityData1());
				$sessionId = (int)$fieldData[5];
			}
		}

		CIMContactList::SetRecent([
			'ENTITY_ID' => $this->getChatId(),
			'MESSAGE_ID' => $message->getMessageId(),
			'CHAT_TYPE' => $this->getType(),
			'USER_ID' => $relation->getUserId(),
			'CHAT_ID' => $relation->getChatId(),
			'RELATION_ID' => $relation->getId(),
			'SESSION_ID' => $sessionId,
		]);

		if ($relation->getUserId() == $message->getAuthorId())
		{
			$relation
				->setLastId($message->getMessageId())
				->save();
		}
	}
}