From: fomichev Date: Mon, 13 Jan 2025 10:20:43 +0000 (+0300) Subject: Сохранение в БД без транзакций X-Git-Tag: 1.7~67^2~5 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=072abe5659ce09770f83c76741a4b6f90af41d4d;p=erp24_rep%2Fyii-erp24%2F.git Сохранение в БД без транзакций --- diff --git a/erp24/services/TelegramService.php b/erp24/services/TelegramService.php index b434a275..321b6887 100644 --- a/erp24/services/TelegramService.php +++ b/erp24/services/TelegramService.php @@ -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