- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/lib/integration/ui/entityselector/chatuserprovider.php
- Класс: BitrixImIntegrationUIEntitySelectorChatUserProvider
- Вызов: ChatUserProvider::getDerivedTableQuery
static function getDerivedTableQuery(array $chatTypeList, string $searchQuery): Query
{
$query = RelationTable::query();
$query->addSelect('CHAT_ID');
$query->registerRuntimeField(
'USER',
(new Reference(
'USER',
UserTable::class,
Join::on('this.USER_ID', 'ref.ID'),
))->configureJoinType(Join::TYPE_INNER)
);
$query->registerRuntimeField(
'USER_INDEX',
(new Reference(
'USER_INDEX',
UserIndexTable::class,
Join::on('this.USER_ID', 'ref.USER_ID'),
))->configureJoinType(Join::TYPE_INNER)
);
$query->whereIn('MESSAGE_TYPE', $chatTypeList);
$query->where('USER.IS_REAL_USER', 'Y');
$matchFilter = Query::filter();
static::addFilterBySearchQuery($matchFilter, $searchQuery);
$query->where($matchFilter);
$query->addGroup('CHAT_ID');
return $query;
}