]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
add http_code. needs migrate origin/feature_smirnov_2025_04_15_log_http_result
authorAlexander Smirnov <fredeom@mail.ru>
Tue, 15 Apr 2025 12:01:41 +0000 (15:01 +0300)
committerAlexander Smirnov <fredeom@mail.ru>
Tue, 15 Apr 2025 12:01:41 +0000 (15:01 +0300)
erp24/jobs/SendBonusInfoToSiteJob.php
erp24/migrations/m250415_114901_add_column_http_code_to_table_user_bonus_send_to_tg_logs.php [new file with mode: 0755]
erp24/records/UserBonusSendToTgLogs.php
erp24/services/SiteService.php

index a287d41ade61ef7881b118a6cc402883780b9a2d..dee0687afd12b743d832bfd208dac62af2826514 100644 (file)
@@ -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 (executable)
index 0000000..69c8400
--- /dev/null
@@ -0,0 +1,41 @@
+<?php
+
+use yii\db\Migration;
+
+/**
+ * Class m250415_114901_add_column_http_code_to_table_user_bonus_send_to_tg_logs
+ */
+class m250415_114901_add_column_http_code_to_table_user_bonus_send_to_tg_logs extends Migration
+{
+    const TABLE_NAME = 'erp24.user_bonus_send_to_tg_logs';
+
+    /**
+     * {@inheritdoc}
+     */
+    public function safeUp()
+    {
+        $table = $this->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');
+        }
+    }
+}
index 7646ed4170d8363ba53f7b33a3fc9acf3d9aac8d..4f924023c87bee201d29d0edb334632be0b1181b 100644 (file)
@@ -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 код ответа',
         ];
     }
 }
index f5b44ef144954e85a95ae7c48b3d4820ea97634b..8e10d67b13b7f9aac5947fa94720635e2f92d2fc 100644 (file)
@@ -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;
     }
 }