• Модуль: 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;
}