]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Сохранение в БД без транзакций
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Mon, 13 Jan 2025 10:20:43 +0000 (13:20 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Mon, 13 Jan 2025 10:20:43 +0000 (13:20 +0300)
erp24/services/TelegramService.php

index b434a275ca8687e86419f2b280ea0f61982d8938..321b688747bbab92f62b515be67b4cff1b554c03 100644 (file)
@@ -122,7 +122,7 @@ class TelegramService
 
     public static function saveSentMessageToDB($messageData)
     {
-        /*$userMessage = new UsersTelegramMessage();
+        $userMessage = new UsersTelegramMessage();
         $userMessage->chat_id = $messageData['chat_id'];
         $userMessage->phone = $messageData['phone'];
         $userMessage->message = $messageData['message'];
@@ -130,57 +130,7 @@ class TelegramService
         $userMessage->target_date = $messageData['target_date'];
         $userMessage->type = $messageData['type'];
 
-        return $userMessage->save();*/
-
-        if (!extension_loaded('pdo_pgsql')) {
-            Yii::error("PDO PostgreSQL driver is not loaded. Невозможно сохранить сообщение.", 'telegram');
-            return false;
-        }
-
-        /** @var \yii\db\Connection $db */
-        $db = Yii::$app->db;
-
-        if (!$db->isActive) {
-            try {
-                $db->open();
-            } catch (\Exception $e) {
-                Yii::error("Не удалось открыть соединение с БД: " . $e->getMessage(), 'telegram');
-                return false;
-            }
-        }
-
-        // 3. Начинаем транзакцию
-        $transaction = $db->beginTransaction();
-        try {
-            $userMessage = new UsersTelegramMessage();
-            $userMessage->chat_id     = $messageData['chat_id'];
-            $userMessage->phone       = $messageData['phone'];
-            $userMessage->message     = $messageData['message'];
-            $userMessage->kogort_date = $messageData['kogort_date'];
-            $userMessage->target_date = $messageData['target_date'];
-            $userMessage->type        = $messageData['type'];
-
-            $saved = $userMessage->save();
-            if (!$saved) {
-                Yii::error("Ошибка сохранения сообщения: " . print_r($userMessage->getErrors(), true), 'telegram');
-                $transaction->rollBack();
-                return false;
-            }
-
-            $transaction->commit();
-            return true;
-
-        } catch (\Exception $e) {
-            // Если произошла ошибка — откатываем изменения
-            $transaction->rollBack();
-            Yii::error("Ошибка при сохранении сообщения: " . $e->getMessage(), 'telegram');
-            return false;
-        } catch (\Throwable $t) {
-            // PHP 7+ может пробрасывать Throwable (Error, TypeError и т.д.)
-            $transaction->rollBack();
-            Yii::error("Ошибка (Throwable) при сохранении сообщения: " . $t->getMessage(), 'telegram');
-            return false;
-        }
+        return $userMessage->save();
     }
 
 }
\ No newline at end of file