EntityDuplicateIndexRebuildAgent::getEntityTypeId

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. EntityDuplicateIndexRebuildAgent
  4. getEntityTypeId
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/agent/duplicate/automatic/entityduplicateindexrebuildagent.php
  • Класс: Bitrix\Crm\Agent\Duplicate\Automatic\EntityDuplicateIndexRebuildAgent
  • Вызов: EntityDuplicateIndexRebuildAgent::getEntityTypeId
public function getEntityTypeId(): int;

public function runUserDuplicateIndexAgents(): void
{
	if (!Integrity\AutoSearchUserSettings::isEnabled())
	{
		return;
	}

	$items = Integrity\Entity\AutosearchUserSettingsTable::query()
		->where('ENTITY_TYPE_ID', $this->getEntityTypeId())
		->where('NEXT_EXEC_TIME', '<', (new DateTime())->add('15 minutes'))
		->whereIn('STATUS_ID', [
			\Bitrix\Crm\Integrity\AutoSearchUserSettings::STATUS_NEW,
			\Bitrix\Crm\Integrity\AutoSearchUserSettings::STATUS_READY_TO_MERGE,
			\Bitrix\Crm\Integrity\AutoSearchUserSettings::STATUS_CONFLICTS_RESOLVING
		])
		->setOrder(['NEXT_EXEC_TIME' => 'asc'])
		->setOffset(0)
		->setLimit($this->getLimit())
		->exec();

	while ($userSettings = $items->fetchObject())
	{
		if ($userSettings->getStatusId() !== Integrity\AutoSearchUserSettings::STATUS_NEW)
		{
			$userSettings
				->setStatusId(Integrity\AutoSearchUserSettings::STATUS_NEW)
				->save();
		}
		if (!Integrity\AutoSearchUserSettings::hasAccess($userSettings->getEntityTypeId(), $userSettings->getUserId()))
		{
			$userSettings
				->setNextExecTime((new DateTime())->add('1 day'))
				->save();

			continue;
		}
		RebuildUserDuplicateIndexAgent::add((int)$userSettings->getEntityTypeId(), (int)$userSettings->getUserId());
	}
}

Добавить комментарий