...Человеческий поиск в разработке...
- Модуль: 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()); } }