]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
[ERP-326] не пересылать повторно
authorAlexander Smirnov <fredeom@mail.ru>
Fri, 21 Mar 2025 09:27:41 +0000 (12:27 +0300)
committerAlexander Smirnov <fredeom@mail.ru>
Fri, 21 Mar 2025 09:27:41 +0000 (12:27 +0300)
erp24/jobs/SendTelegramTestMessageJob.php
erp24/records/MarketplaceOrders.php

index d6928136ca8fa47c10ac8cec0233ee7f8e3ba810..46fb009de194fd26e5f8904bfd41fc61fe07814f 100644 (file)
@@ -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');
             }
index 47d7523ecda7f8d0b03a79114952b3f2b9f9e54b..adbf09154a99b4c144ad4b4b46e5fdc32ad6e38a 100644 (file)
@@ -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,
         ]));
     }