- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/lib/internals/counter/push/workgrouprequestssender.php
- Класс: BitrixSocialnetworkInternalsCounterPushWorkgroupRequestsSender
- Вызов: WorkgroupRequestsSender::getRecipients
protected function getRecipients(array $groupIdList = []): array
{
$result = [];
if (empty($groupIdList))
{
return $result;
}
$userIdList = [];
$res = WorkgroupTable::query()
->setSelect([
'ID',
'INITIATE_PERMS'
])
->setFilter([
'@ID' => $groupIdList,
])
->exec();
while ($workgroupFields = $res->fetch())
{
$roleFilterValue = $this->getRoleFilterValue($workgroupFields['INITIATE_PERMS']);
$resRelation = UserToGroupTable::query()
->setSelect([
'GROUP_ID',
'USER_ID',
])
->setFilter([
'@ROLE' => $roleFilterValue,
'GROUP_ID' => (int)$workgroupFields['ID'],
'USER.ACTIVE' => true,
])
->exec();
$userIdList[(int)$workgroupFields['ID']] = [];
while ($relationFields = $resRelation->fetch())
{
$userIdList[(int)$workgroupFields['ID']][] = (int)$relationFields['USER_ID'];
}
}
return $userIdList;
}