From 26fcec6210ad689aca2d09162fed5ab41b8b4ee4 Mon Sep 17 00:00:00 2001 From: Alexander Smirnov Date: Tue, 15 Apr 2025 15:01:41 +0300 Subject: [PATCH] add http_code. needs migrate --- erp24/jobs/SendBonusInfoToSiteJob.php | 5 ++- ...de_to_table_user_bonus_send_to_tg_logs.php | 41 +++++++++++++++++++ erp24/records/UserBonusSendToTgLogs.php | 6 ++- erp24/services/SiteService.php | 6 +-- 4 files changed, 51 insertions(+), 7 deletions(-) create mode 100755 erp24/migrations/m250415_114901_add_column_http_code_to_table_user_bonus_send_to_tg_logs.php diff --git a/erp24/jobs/SendBonusInfoToSiteJob.php b/erp24/jobs/SendBonusInfoToSiteJob.php index a287d41a..dee0687a 100644 --- a/erp24/jobs/SendBonusInfoToSiteJob.php +++ b/erp24/jobs/SendBonusInfoToSiteJob.php @@ -38,10 +38,11 @@ class SendBonusInfoToSiteJob extends \yii\base\BaseObject implements JobInterfac LogService::apiErrorLog(json_encode(["error_id" => 100.021, "error" => $userBonusSendToTgLogs->getErrors()], JSON_UNESCAPED_UNICODE)); } try { - $result = SiteService::notifySiteAboutBonuses($phone, $bonusCount, $purchaseDate, $orderId); + $results = SiteService::notifySiteAboutBonuses($phone, $bonusCount, $purchaseDate, $orderId); - $userBonusSendToTgLogs->output = Json::encode($result); + $userBonusSendToTgLogs->output = Json::encode($results[0]); $userBonusSendToTgLogs->status ++; + $userBonusSendToTgLogs->http_code = $results[1]; $userBonusSendToTgLogs->save(); if ($userBonusSendToTgLogs->getErrors()) { LogService::apiErrorLog(json_encode(["error_id" => 100.321, "error" => $userBonusSendToTgLogs->getErrors()], JSON_UNESCAPED_UNICODE)); diff --git a/erp24/migrations/m250415_114901_add_column_http_code_to_table_user_bonus_send_to_tg_logs.php b/erp24/migrations/m250415_114901_add_column_http_code_to_table_user_bonus_send_to_tg_logs.php new file mode 100755 index 00000000..69c8400c --- /dev/null +++ b/erp24/migrations/m250415_114901_add_column_http_code_to_table_user_bonus_send_to_tg_logs.php @@ -0,0 +1,41 @@ +db->schema->getTableSchema(self::TABLE_NAME); + if ($table === null) { + return; + } + + if (!$this->db->schema->getTableSchema(self::TABLE_NAME, true)->getColumn('http_code')) { + $this->addColumn( + self::TABLE_NAME, + 'http_code', + $this->integer()->null()->comment('Http код ответа') + ); + } + + } + + /** + * {@inheritdoc} + */ + public function safeDown() + { + if ($this->db->schema->getTableSchema(self::TABLE_NAME, true)->getColumn('http_code')) { + $this->dropColumn(self::TABLE_NAME, 'http_code'); + } + } +} diff --git a/erp24/records/UserBonusSendToTgLogs.php b/erp24/records/UserBonusSendToTgLogs.php index 7646ed41..4f924023 100644 --- a/erp24/records/UserBonusSendToTgLogs.php +++ b/erp24/records/UserBonusSendToTgLogs.php @@ -16,6 +16,7 @@ use Yii; * @property string $phone телефон * @property int $bonusCount число бонусов * @property string $date + * @property int|null $http_code Http код ответа */ class UserBonusSendToTgLogs extends \yii\db\ActiveRecord { @@ -35,8 +36,8 @@ class UserBonusSendToTgLogs extends \yii\db\ActiveRecord return [ [['input_hash', 'check_id', 'phone', 'bonusCount', 'date'], 'required'], [['input', 'output', 'date'], 'string'], - [['status', 'bonusCount'], 'default', 'value' => null], - [['status', 'bonusCount'], 'integer'], + [['status', 'bonusCount', 'http_code'], 'default', 'value' => null], + [['status', 'bonusCount', 'http_code'], 'integer'], [['input_hash', 'phone'], 'string', 'max' => 255], [['check_id'], 'string', 'max' => 36], ]; @@ -57,6 +58,7 @@ class UserBonusSendToTgLogs extends \yii\db\ActiveRecord 'phone' => 'Phone', 'bonusCount' => 'Bonus Count', 'date' => 'Дата и Время создания записи', + 'http_code' => 'Http код ответа', ]; } } diff --git a/erp24/services/SiteService.php b/erp24/services/SiteService.php index f5b44ef1..8e10d67b 100644 --- a/erp24/services/SiteService.php +++ b/erp24/services/SiteService.php @@ -7,7 +7,7 @@ use GuzzleHttp\Client; class SiteService { public static function notifySiteAboutBonuses($phone, $bonusCount, $purchaseDate, $orderId) { $client = new Client(); - $result = null; + $results = [null, 500]; try { $url = getenv('SITE_API_URL') . '/v1/order-logs'; $result = $client->post($url, [ @@ -18,11 +18,11 @@ class SiteService { 'orderId' => $orderId, ], ]); - $result = $result->getBody()->getContents(); + $results = [$result->getBody()->getContents(), $result->getStatusCode()]; } catch (\Exception $e) { LogService::apiErrorLog(json_encode(["error_id" => 7, "error" => "Ошибка отправки сообщения на сайт: " . $e->getMessage()], JSON_UNESCAPED_UNICODE)); } - return $result; + return $results; } } -- 2.39.5