From 3cb53bdbadedc1998fbf7107285cbba11fd0889c Mon Sep 17 00:00:00 2001 From: fomichev Date: Tue, 10 Dec 2024 11:07:54 +0300 Subject: [PATCH] =?utf8?q?=D0=94=D0=9E=D0=91=D0=90=D0=92=D0=9B=D0=AF=D0=95?= =?utf8?q?=D0=9C=20=D0=B2=D1=8B=D0=B2=D0=BE=D0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- erp24/controllers/TgController.php | 22 ++++++++++++++-------- erp24/jobs/SendTelegramMessageJob.php | 18 +++++++++++++++++- erp24/services/TelegramService.php | 4 ++++ 3 files changed, 35 insertions(+), 9 deletions(-) diff --git a/erp24/controllers/TgController.php b/erp24/controllers/TgController.php index a7385135..bcba88f3 100644 --- a/erp24/controllers/TgController.php +++ b/erp24/controllers/TgController.php @@ -23,9 +23,10 @@ class TgController extends Controller $chatIds = [ '730432579', '6207259989', - '337084327', - '923226593', - '5489795686', + '0000000000', + //'337084327', + //'923226593', + //'5489795686', ]; if ($request->isPost) { @@ -37,12 +38,17 @@ class TgController extends Controller } else { Yii::$app->session->setFlash('error', 'Сообщение не может быть пустым!'); } + //$chatIds = array_pad([], 100, $chatIds); + //$chatIds = array_merge(...$chatIds); + //var_dump($chatIds); die(); + foreach ($chatIds as $key => $chatId) { + for ($i = 0; $i < 1; $i++) { + Yii::$app->queue->push(new SendTelegramMessageJob([ + 'chatId' => $chatId, + 'message' => ($message . $i), + ])); + } - foreach ($chatIds as $chatId) { - Yii::$app->queue->push(new SendTelegramMessageJob([ - 'chatId' => $chatId, - 'message' => $message, - ])); } Yii::$app->session->setFlash('success', 'Сообщение добавлено в очередь для всех чатов.'); diff --git a/erp24/jobs/SendTelegramMessageJob.php b/erp24/jobs/SendTelegramMessageJob.php index 57c59517..9bab6ac5 100644 --- a/erp24/jobs/SendTelegramMessageJob.php +++ b/erp24/jobs/SendTelegramMessageJob.php @@ -3,6 +3,7 @@ namespace app\jobs; +use Yii; use yii\queue\JobInterface; use yii_app\services\TelegramService; @@ -30,7 +31,22 @@ class SendTelegramMessageJob extends \yii\base\BaseObject implements JobInterfac self::$messagesSent = 0; } - TelegramService::sendMessageToTelegramClient($this->chatId, $this->message); + try { + $result = TelegramService::sendMessageToTelegramClient($this->chatId, $this->message); + + if ($result == "OK") { + Yii::warning("Сообщение успешно отправлено пользователю с ID {$this->chatId} {$result}", 'telegram'); + } else { + Yii::warning("Сообщение не удалось отправить пользователю ID {$this->chatId} {$result}", 'telegram'); + } + + } catch (\Exception $e) { + Yii::error( + "Сообщение не удалось отправить пользователю ID {$this->chatId}: " . $e->getMessage(), + 'telegram' + ); + } + self::$messagesSent++; } diff --git a/erp24/services/TelegramService.php b/erp24/services/TelegramService.php index ede0a912..95ac43da 100644 --- a/erp24/services/TelegramService.php +++ b/erp24/services/TelegramService.php @@ -78,9 +78,13 @@ class TelegramService if ($response->getStatusCode() !== 200) { Yii::error("Ошибка при отправке сообщения в Telegram. Код ответа: " . $response->getStatusCode(), 'telegram'); + return $response->getStatusCode(); } + + return $response->getReasonPhrase(); } catch (\Exception $e) { Yii::error("Ошибка отправки сообщения в Telegram: " . $e->getMessage(), 'telegram'); + return $e->getMessage(); } } -- 2.39.5