From: Alexander Smirnov Date: Fri, 21 Mar 2025 14:46:59 +0000 (+0300) Subject: [ERP-326] test telegram error X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=fb19a799e17c5576d3a3a784f541a963ff168f53;p=erp24_rep%2Fyii-erp24%2F.git [ERP-326] test telegram error --- diff --git a/erp24/actions/infoTable/Test2Action.php b/erp24/actions/infoTable/Test2Action.php index c60277ff..402e8db2 100644 --- a/erp24/actions/infoTable/Test2Action.php +++ b/erp24/actions/infoTable/Test2Action.php @@ -4,6 +4,7 @@ namespace yii_app\actions\infoTable; use Yii; use yii\base\Action; +use yii\helpers\Json; use yii_app\services\TelegramService; use GuzzleHttp\Client; @@ -11,22 +12,25 @@ class Test2Action extends Action { public function run() { if (Yii::$app->request->isPost) { - $botToken = TelegramService::TELEGRAM_BOT_DEV; + $botToken = TelegramService::TELEGRAM_BOT_DEV . 'asdf'; $apiURL = "https://api.telegram.org/bot{$botToken}/sendMessage"; - $chats = ['337084327', '5489795686']; //Алексей - $message = TelegramService::escapeMarkdown("Тестовое сообщение для https://tracker.yandex.ru/ERP-326"); + $chats = [/*'337084327',*/ '5489795686']; //Алексей, Александр + $message = TelegramService::escapeMarkdown("Тестовое сообщение для https://tracker.yandex.ru/ERP-326 из test2"); $client = new Client(); foreach ($chats as $chatId) { try { - $client->post($apiURL, [ + $r = $client->post($apiURL, [ 'json' => [ 'chat_id' => $chatId, 'text' => $message, 'parse_mode' => 'MarkdownV2', ], ]); + return Json::encode($r); } catch (\Exception $e) { Yii::error("Ошибка отправки сообщения в Telegram: " . $e->getMessage(), 'telegram'); + $arr = preg_split("/response:/", $e->getMessage()); + return $arr[count($arr) - 1]; } } diff --git a/erp24/jobs/SendTelegramTestMessageJob.php b/erp24/jobs/SendTelegramTestMessageJob.php index 46fb009d..a3cdbbbd 100644 --- a/erp24/jobs/SendTelegramTestMessageJob.php +++ b/erp24/jobs/SendTelegramTestMessageJob.php @@ -31,7 +31,7 @@ class SendTelegramTestMessageJob extends \yii\base\BaseObject implements JobInte Yii::error("Ошибка отправки сообщения в Telegram: " . Json::encode($marketplaceOrders->getErrors()), 'site'); } - $botToken = TelegramService::TELEGRAM_BOT_DEV; + $botToken = TelegramService::TELEGRAM_BOT_DEV . 'ABCDCBA'; $apiURL = "https://api.telegram.org/bot{$botToken}/sendMessage"; $chats = ['337084327', '5489795686']; //Алексей $message = TelegramService::escapeMarkdown($message); @@ -52,6 +52,12 @@ class SendTelegramTestMessageJob extends \yii\base\BaseObject implements JobInte } } catch (\Exception $e) { Yii::error("Ошибка отправки сообщения в Telegram: " . $e->getMessage(), 'telegram'); + $arr = preg_split("/response:/", $e->getMessage()); + $marketplaceOrders->telegram_error = $arr[count($arr) - 1]; + $marketplaceOrders->save(); + if ($marketplaceOrders->getErrors()) { + Yii::error("Ошибка отправки сообщения в Telegram: " . Json::encode($marketplaceOrders->getErrors()), 'site'); + } } } } diff --git a/erp24/migrations/m250321_143531_alter_table_marketplace_orders_add_column_telegram_error.php b/erp24/migrations/m250321_143531_alter_table_marketplace_orders_add_column_telegram_error.php new file mode 100755 index 00000000..729a0b21 --- /dev/null +++ b/erp24/migrations/m250321_143531_alter_table_marketplace_orders_add_column_telegram_error.php @@ -0,0 +1,44 @@ +db->schema->getTableSchema(self::TABLE_NAME); + if ($table === null) { + return; + } + + if ($table->getColumn('telegram_error') === null) { + $this->addColumn( + self::TABLE_NAME, + 'telegram_error', + $this->text()->null()->comment('ошибка телеграмма') + ); + } + + } + + /** + * {@inheritdoc} + */ + public function safeDown() + { + if ($this->db->schema->getTableSchema(self::TABLE_NAME) === null) { + return; + } + + if ($this->db->schema->getTableSchema(self::TABLE_NAME)->getColumn('telegram_error') !== null) { + $this->dropColumn(self::TABLE_NAME, 'telegram_error'); + } + } +} diff --git a/erp24/records/MarketplaceOrders.php b/erp24/records/MarketplaceOrders.php index 3e202764..77e544ce 100644 --- a/erp24/records/MarketplaceOrders.php +++ b/erp24/records/MarketplaceOrders.php @@ -30,6 +30,7 @@ use Yii; * @property int|null $status_1c Статус заказа в 1С * @property int|null $marketplace_name Наименование маркетплейса 'ФлауВау' 'ЯндексМаркет' * @property int|null $marketplace_id ID маркетплейса: 1 - Flowwow, 2 - YandexMarket + * @property string|null $telegram_error ошибка телеграмма */ class MarketplaceOrders extends \yii\db\ActiveRecord { @@ -59,7 +60,7 @@ class MarketplaceOrders extends \yii\db\ActiveRecord [[ 'fake'], 'default', 'value' => 0], [['store_id', 'status_id', 'substatus_id', 'fake', 'cancel_requested', 'status_1c', 'marketplace_id', 'status_telegram'], 'integer'], [['creation_date', 'updated_at', 'returned_at'], 'safe'], - [['return_data', 'raw_data', 'marketplace_name'], 'string'], + [['return_data', 'raw_data', 'marketplace_name', 'telegram_error'], 'string'], [['total', 'delivery_total', 'buyer_total_before_discount'], 'number'], [['marketplace_order_id'], 'string', 'max' => 64], [['warehouse_guid', 'guid'], 'string', 'max' => 36], @@ -98,6 +99,7 @@ class MarketplaceOrders extends \yii\db\ActiveRecord 'marketplace_name' => 'Наименование маркетплейса', 'marketplace_id' => 'ID маркетплейса: 1 - Flowwow, 2 - YandexMarket', 'status_telegram' => 'Статус отправки в телеграм', + 'telegram_error' => 'Ошибка телеграмма', ]; }