From c4c2ce6ffbc66fe518118e506a46b1fd73502f62 Mon Sep 17 00:00:00 2001 From: fomichev Date: Mon, 18 Nov 2024 13:47:35 +0300 Subject: [PATCH] =?utf8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD?= =?utf8?q?=D0=B8=D0=B5=20=D0=BA=D0=B0=D0=BD=D0=B0=D0=BB=D0=B0=20=D0=B4?= =?utf8?q?=D0=BB=D1=8F=20=D0=BF=D1=80=D0=BE=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- erp24/actions/log/CollectAction.php | 7 ++++++- erp24/log/TelegramTarget.php | 7 +++++-- erp24/services/InfoLogService.php | 8 +++++--- erp24/services/LogService.php | 8 ++++++-- erp24/services/TelegramService.php | 13 +++++++++++-- 5 files changed, 33 insertions(+), 10 deletions(-) diff --git a/erp24/actions/log/CollectAction.php b/erp24/actions/log/CollectAction.php index d055c886..d763be9d 100755 --- a/erp24/actions/log/CollectAction.php +++ b/erp24/actions/log/CollectAction.php @@ -3,6 +3,7 @@ declare(strict_types = 1); namespace yii_app\actions\log; +use Yii; use yii\base\Action; use yii_app\records\ErrorLog; use yii_app\services\TelegramService; @@ -35,12 +36,16 @@ class CollectAction extends Action return; }*/ + $currentUrl = Yii::$app->request->getHostInfo(); + $isDev = !str_contains($currentUrl, 'erp.erp-flowers.ru'); + // Формируем сообщение для отправки в Telegram с использованием MarkdownV2 $errorMessage = "⚠️*Ошибка JavaScript Обнаружена*⚠️\n\n"; if ($url = $this->controller->request->getReferrer()) { $errorMessage .= "*URL:*\n```" . TelegramService::escapeMarkdownLog($url) . "```\n\n"; + $isDev = !str_contains($url, 'erp.erp-flowers.ru'); } if ($createdAt = date('Y-m-d H:i:s', $log->log_time)) { @@ -80,7 +85,7 @@ class CollectAction extends Action $disableNotification = false; // Отправляем сообщение об ошибке в Telegram через TelegramService - TelegramService::sendErrorToTelegramMessage($errorMessage, $disableNotification); + TelegramService::sendErrorToTelegramMessage($errorMessage, $disableNotification, $isDev); } } diff --git a/erp24/log/TelegramTarget.php b/erp24/log/TelegramTarget.php index 1a9ba738..d544fe07 100644 --- a/erp24/log/TelegramTarget.php +++ b/erp24/log/TelegramTarget.php @@ -107,7 +107,10 @@ class TelegramTarget extends \yii\log\Target $message = new Message($this->messages[0]); - $errorText = $message->getText(); + + + $errorUrl = $message->getUrl(); + $isDev = !str_contains($errorUrl, 'erp.erp-flowers.ru'); // Проверка наличия подобных сообщений @@ -140,7 +143,7 @@ class TelegramTarget extends \yii\log\Target // Отправка сообщения через TelegramService try { - TelegramService::sendErrorToTelegramMessage($formattedMessage, $disableNotification); + TelegramService::sendErrorToTelegramMessage($formattedMessage, $disableNotification, $isDev); } catch (\Exception $e) { throw new InvalidValueException( 'Unable to send logs to Telegram: ' . $e->getMessage(), $e->getCode() diff --git a/erp24/services/InfoLogService.php b/erp24/services/InfoLogService.php index d9a0b706..889a11cd 100644 --- a/erp24/services/InfoLogService.php +++ b/erp24/services/InfoLogService.php @@ -2,6 +2,7 @@ namespace yii_app\services; +use Yii; use yii\db\Expression; use yii_app\records\InfoLog; @@ -33,11 +34,12 @@ class InfoLogService /* if (!self::shouldSendToTelegram($file, $line, $messageText, $context)) { return; }*/ - - + $currentUrl = Yii::$app->request->getHostInfo(); + $isDev = !str_contains($currentUrl, 'erp.erp-flowers.ru'); $telegramMessage = "⚠️*Сообщение из InfoLog*⚠️\n\n"; + if ($file) { $telegramMessage .= "*File:*\n```" . TelegramService::escapeMarkdownLog($file) . "```\n\n"; } @@ -57,7 +59,7 @@ class InfoLogService $disableNotification = false; // Отправляем сообщение в Telegram - TelegramService::sendErrorToTelegramMessage($telegramMessage, $disableNotification); + TelegramService::sendErrorToTelegramMessage($telegramMessage, $disableNotification, $isDev); } } diff --git a/erp24/services/LogService.php b/erp24/services/LogService.php index 35cc19e2..1bd860ac 100644 --- a/erp24/services/LogService.php +++ b/erp24/services/LogService.php @@ -67,13 +67,17 @@ class LogService return; }*/ + $currentUrl = Yii::$app->request->getHostInfo(); + $isDev = !str_contains($currentUrl, 'erp.erp-flowers.ru'); - // Форматирование сообщения об ошибке с условным добавлением строк + // Форматирование сообщения об ошибке с условным добавлением строк $errorMessage = "⚠️*Ошибка API Обнаружена*⚠️\n\n"; // Добавляем строки только если параметры присутствуют if ($url = $apiErrorLog->url) { $errorMessage .= "*URL:*\n```" . TelegramService::escapeMarkdownLog($url) . "```\n\n"; + $errorUrl = $apiErrorLog->url; + $isDev = !str_contains($errorUrl, 'erp.erp-flowers.ru'); } if ($createdAt = $apiErrorLog->created_at) { @@ -91,7 +95,7 @@ class LogService $disableNotification = false; // Отправляем сообщение об ошибке в Telegram через TelegramService - TelegramService::sendErrorToTelegramMessage($errorMessage, $disableNotification); + TelegramService::sendErrorToTelegramMessage($errorMessage, $disableNotification, $isDev); } else { diff --git a/erp24/services/TelegramService.php b/erp24/services/TelegramService.php index e44af0cb..110f5f09 100644 --- a/erp24/services/TelegramService.php +++ b/erp24/services/TelegramService.php @@ -11,6 +11,7 @@ class TelegramService { const TELEGRAM_API_URL = "8063257458:AAGnMf4cxwJWlYLF1wS_arn4PrOaLs9ERQQ"; const CHAT_CHANNEL_ID ="-1001861631125"; + const CHAT_CHANNEL_ERP_ID ="-1002338329426"; public static function sendMessage($admin_id, $message, $reply_markup = null) { $url = "https://api2.bazacvetov24.ru/telegram/send-message?admin_id=$admin_id&message=$message"; if ($reply_markup) { @@ -20,12 +21,20 @@ class TelegramService { return $client->request('GET', $url); } -public static function sendErrorToTelegramMessage($message,$disableNotification) +public static function sendErrorToTelegramMessage($message,$disableNotification, $isDev) { $botToken = self::TELEGRAM_API_URL; - $chatId = self::CHAT_CHANNEL_ID; + $chatIdDefault = self::CHAT_CHANNEL_ID; + $chatIdErp = self::CHAT_CHANNEL_ERP_ID; $apiURL = "https://api.telegram.org/bot{$botToken}/sendMessage"; + + if ($isDev) { + $chatId = $chatIdDefault; + } else { + $chatId = $chatIdErp; + } + $client = new Client(); try { $client->post($apiURL, [ -- 2.39.5