]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
[ERP-326] test telegram error
authorAlexander Smirnov <fredeom@mail.ru>
Fri, 21 Mar 2025 14:46:59 +0000 (17:46 +0300)
committerAlexander Smirnov <fredeom@mail.ru>
Fri, 21 Mar 2025 14:46:59 +0000 (17:46 +0300)
erp24/actions/infoTable/Test2Action.php
erp24/jobs/SendTelegramTestMessageJob.php
erp24/migrations/m250321_143531_alter_table_marketplace_orders_add_column_telegram_error.php [new file with mode: 0755]
erp24/records/MarketplaceOrders.php

index c60277fff12e1181f9d7b5018f97b13f728da346..402e8db214dc569f6e2378806e6754220df2eed7 100644 (file)
@@ -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];
                 }
             }
 
index 46fb009de194fd26e5f8904bfd41fc61fe07814f..a3cdbbbd01818625370113ab0c64e8ad8f5016e3 100644 (file)
@@ -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 (executable)
index 0000000..729a0b2
--- /dev/null
@@ -0,0 +1,44 @@
+<?php
+
+use yii\db\Migration;
+
+/**
+ * Class m250321_143531_alter_table_marketplace_orders_add_column_telegram_error
+ */
+class m250321_143531_alter_table_marketplace_orders_add_column_telegram_error extends Migration
+{
+    const TABLE_NAME = 'erp24.marketplace_orders';
+    /**
+     * {@inheritdoc}
+     */
+    public function safeUp()
+    {
+        $table = $this->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');
+        }
+    }
+}
index 3e20276462d796449f08154442bb4f867f92b347..77e544ce3a3251afbb4ffd9ca8d49cff14888221 100644 (file)
@@ -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' => 'Ошибка телеграмма',
         ];
     }