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";
'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');
}
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,
]));
}