- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/lib/Configuration/Configuration.php
- Класс: BitrixImConfigurationConfiguration
- Вызов: Configuration::updateGroupForUsers
static function updateGroupForUsers(int $groupId, array $candidates, int $sort, string $groupType): void
{
$join = new ConditionTree();
if ($groupType === self::GENERAL_GROUP)
{
$join = Join::on('this.GENERAL_GROUP_ID', 'ref.ID');
}
elseif ($groupType === self::NOTIFY_GROUP)
{
$join = Join::on('this.NOTIFY_GROUP_ID', 'ref.ID');
}
$query =
OptionUserTable::query()
->addSelect('USER_ID')
->registerRuntimeField(
'OPTION_GROUP',
new Reference(
'OPTION_GROUP',
OptionGroupTable::class,
$join,
['join_type' => Join::TYPE_INNER]
)
)
->whereIn('USER_ID', $candidates)
->where('OPTION_GROUP.SORT', '<=', $sort)
;
$users = [];
foreach ($query->exec() as $row)
{
$users[] = $row["USER_ID"];
}
if ($groupType === self::GENERAL_GROUP)
{
OptionUserTable::updateMulti($users, ['GENERAL_GROUP_ID' => $groupId]);
}
elseif ($groupType === self::NOTIFY_GROUP)
{
OptionUserTable::updateMulti($users, ['NOTIFY_GROUP_ID' => $groupId]);
}
}