- Модуль: imbot
- Путь к файлу: ~/bitrix/modules/imbot/lib/bot/support24.php
- Класс: BitrixImBotBotSupport24
- Вызов: Support24::sendNotifyAboutChangeLevel
static function sendNotifyAboutChangeLevel($params)
{
if (self::isActivePartnerSupport())
{
return false;
}
$businessUsers = $params['BUSINESS_USERS'];
$isSupportLevelChange = (bool)$params['IS_SUPPORT_LEVEL_CHANGE'];
$isSupportCodeChange = (bool)$params['IS_SUPPORT_CODE_CHANGE'];
$isDemoLevelChange = (bool)$params['IS_DEMO_LEVEL_CHANGE'];
$isActiveFreeSupport = self::isActiveFreeSupport();
$users = [self::getBotId()];
$chats = [];
foreach (self::getRecentDialogs() as $dialog)
{
if ($dialog['MESSAGE_TYPE'] == IM_MESSAGE_CHAT && in_array($dialog['CHAT_ID'], $chats))
{
continue;
}
elseif ($dialog['MESSAGE_TYPE'] == IM_MESSAGE_PRIVATE && in_array($dialog['USER_ID'], $users))
{
continue;
}
$message = '';
if (self::getSupportLevel() == self::SUPPORT_LEVEL_PAID)
{
if ($isSupportLevelChange)
{
if (self::isActivePaidSupportForUser($dialog['USER_ID']))
{
$message = self::getMessage('CHANGE_ADMIN');
}
else
{
$message = self::getMessage('CHANGE_USER');
}
}
elseif ($isDemoLevelChange)
{
if (self::isActivePaidSupportForUser($dialog['USER_ID']))
{
$message = self::getMessage('CHANGE_DEMO');
}
}
elseif ($isSupportCodeChange)
{
if (self::isActivePaidSupportForUser($dialog['USER_ID']))
{
$message = self::getMessage('CHANGE_CODE');
}
}
}
else
{
if ($isSupportLevelChange)
{
if ($isActiveFreeSupport)
{
if (is_array($businessUsers) && in_array($dialog['USER_ID'], $businessUsers))
{
$message = self::getMessage('CHANGE_BUSINESS');
}
else
{
$message = self::getMessage('CHANGE_ADMIN');
}
}
else
{
$message = self::getMessage('CHANGE_END');
}
}
elseif ($isDemoLevelChange)
{
if ($isActiveFreeSupport)
{
$message = self::getMessage('CHANGE_DEMO');
}
}
elseif ($isSupportCodeChange)
{
if ($isActiveFreeSupport)
{
$message = self::getMessage('CHANGE_CODE');
}
}
}
if (!$message)
{
continue;
}
if ($dialog['MESSAGE_TYPE'] == IM_MESSAGE_CHAT)
{
$chats[] = $dialog['CHAT_ID'];
}
elseif ($dialog['MESSAGE_TYPE'] == IM_MESSAGE_PRIVATE)
{
$users[] = $dialog['USER_ID'];
}
if ($dialog['RECENTLY_TALK'] == 'Y' && $dialog['MESSAGE_TYPE'] == IM_MESSAGE_PRIVATE)
{
self::sendMessage([
'DIALOG_ID' => $dialog['USER_ID'],
'MESSAGE' => $message,
'SYSTEM' => 'N',
'URL_PREVIEW' => 'N'
]);
}
else
{
ImModelMessageTable::add([
'CHAT_ID' => $dialog['CHAT_ID'],
'AUTHOR_ID' => self::getBotId(),
'MESSAGE' => self::replacePlaceholders($message, $dialog['USER_ID'])
]);
}
}
return true;
}