• Модуль: imopenlines
  • Путь к файлу: ~/bitrix/modules/imopenlines/lib/update/chatindex.php
  • Класс: BitrixImopenlinesUpdateChatIndex
  • Вызов: ChatIndex::execute
public function execute(array &$result)
{
	if (!Loader::includeModule(self::$moduleId) || !Loader::includeModule('im'))
	{
		return self::FINISH_EXECUTION;
	}

	if (!isset($result['lastId']))
	{
		$queryResult = BitrixImModelChatTable::query()
			->setSelect([new ExpressionField('MAX_ID', 'MAX(%s)', ['ID'])])
			->where('TYPE', BitrixImV2Chat::IM_TYPE_OPEN_LINE)
			->fetch() ?: []
		;
		$maxId = (int)($queryResult['MAX_ID'] ?? 0);
		$result['lastId'] = $maxId + 1;
	}

	$openLineChatIdsWithTitles = $this->getOpenLineChatIdsWithTitles($result['lastId'] ?? 0);

	if (empty($openLineChatIdsWithTitles))
	{
		return self::FINISH_EXECUTION;
	}

	$ids = array_keys($openLineChatIdsWithTitles);
	$this->deleteFromCommonIndex($ids);
	$this->recordOpenLineIndex($openLineChatIdsWithTitles);
	$result['lastId'] = min($ids);

	return self::CONTINUE_EXECUTION;
}