From 974cacf0e76b1e41bcce0d6eae5cebcf2e266584 Mon Sep 17 00:00:00 2001 From: Alexander Smirnov Date: Fri, 21 Mar 2025 12:27:41 +0300 Subject: [PATCH] =?utf8?q?[ERP-326]=20=D0=BD=D0=B5=20=D0=BF=D0=B5=D1=80?= =?utf8?q?=D0=B5=D1=81=D1=8B=D0=BB=D0=B0=D1=82=D1=8C=20=D0=BF=D0=BE=D0=B2?= =?utf8?q?=D1=82=D0=BE=D1=80=D0=BD=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- erp24/jobs/SendTelegramTestMessageJob.php | 20 ++++++++++++++++++++ erp24/records/MarketplaceOrders.php | 3 ++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/erp24/jobs/SendTelegramTestMessageJob.php b/erp24/jobs/SendTelegramTestMessageJob.php index d6928136..46fb009d 100644 --- a/erp24/jobs/SendTelegramTestMessageJob.php +++ b/erp24/jobs/SendTelegramTestMessageJob.php @@ -5,16 +5,31 @@ namespace yii_app\jobs; use GuzzleHttp\Client; use Yii; +use yii\helpers\Json; use yii\queue\JobInterface; +use yii_app\records\MarketplaceOrders; use yii_app\services\TelegramService; class SendTelegramTestMessageJob extends \yii\base\BaseObject implements JobInterface { public $message; + public $guid; public function execute($queue) { $message = $this->message; + $guid = $this->guid; + + $marketplaceOrders = MarketplaceOrders::find()->where(['status_telegram' => MarketplaceOrders::STATUS_TELEGRAM_NOT_SENT, 'guid' => $guid])->one(); + if (!$marketplaceOrders) { + return; + } + /* @var MarketplaceOrders $marketplaceOrders */ + $marketplaceOrders->status_telegram = MarketplaceOrders::STATUS_TELEGRAM_PREPARED_TO_SEND; + $marketplaceOrders->save(); + if ($marketplaceOrders->getErrors()) { + Yii::error("Ошибка отправки сообщения в Telegram: " . Json::encode($marketplaceOrders->getErrors()), 'site'); + } $botToken = TelegramService::TELEGRAM_BOT_DEV; $apiURL = "https://api.telegram.org/bot{$botToken}/sendMessage"; @@ -30,6 +45,11 @@ class SendTelegramTestMessageJob extends \yii\base\BaseObject implements JobInte 'parse_mode' => 'MarkdownV2', ], ]); + $marketplaceOrders->status_telegram = MarketplaceOrders::STATUS_TELEGRAM_SENT; + $marketplaceOrders->save(); + if ($marketplaceOrders->getErrors()) { + Yii::error("Ошибка отправки сообщения в Telegram: " . Json::encode($marketplaceOrders->getErrors()), 'site'); + } } catch (\Exception $e) { Yii::error("Ошибка отправки сообщения в Telegram: " . $e->getMessage(), 'telegram'); } diff --git a/erp24/records/MarketplaceOrders.php b/erp24/records/MarketplaceOrders.php index 47d7523e..adbf0915 100644 --- a/erp24/records/MarketplaceOrders.php +++ b/erp24/records/MarketplaceOrders.php @@ -110,7 +110,8 @@ class MarketplaceOrders extends \yii\db\ActiveRecord parent::afterSave($insert, $changedAttributes); Yii::$app->queue->push(new \yii_app\jobs\SendTelegramTestMessageJob([ - 'message' => "Тестовое сообщение для https://tracker.yandex.ru/ERP-326 из afterSave " . $this->guid + 'message' => "Тестовое сообщение для https://tracker.yandex.ru/ERP-326 из afterSave", + 'guid' => $this->guid, ])); } -- 2.39.5