fix: переместить commit в handler после conduct_draw для правильной работы транзакции
Some checks reported errors
continuous-integration/drone/push Build encountered an error

This commit is contained in:
2025-11-17 16:15:54 +09:00
parent 610d617602
commit 00fd8dbb07
2 changed files with 7 additions and 3 deletions

View File

@@ -358,9 +358,8 @@ class LotteryService:
'is_manual': info['is_manual'] 'is_manual': info['is_manual']
} }
logger.info(f"conduct_draw: коммитим изменения") # НЕ коммитим здесь - это должно сделать вызывающая функция
await session.commit() logger.info(f"conduct_draw: изменения подготовлены, победителей: {len(results)}")
logger.info(f"conduct_draw: успешно завершено, победителей: {len(results)}")
return results return results
@staticmethod @staticmethod

View File

@@ -2707,10 +2707,15 @@ async def conduct_lottery_draw(callback: CallbackQuery):
logger.info(f"Розыгрыш {lottery_id} проведён, победителей: {len(winners_dict)}") logger.info(f"Розыгрыш {lottery_id} проведён, победителей: {len(winners_dict)}")
except Exception as e: except Exception as e:
logger.error(f"Ошибка при проведении розыгрыша {lottery_id}: {e}", exc_info=True) logger.error(f"Ошибка при проведении розыгрыша {lottery_id}: {e}", exc_info=True)
await session.rollback()
await callback.answer(f"❌ Ошибка: {e}", show_alert=True) await callback.answer(f"❌ Ошибка: {e}", show_alert=True)
return return
if winners_dict: if winners_dict:
# Коммитим изменения в БД
await session.commit()
logger.info(f"Изменения закоммичены для розыгрыша {lottery_id}")
# Отправляем уведомления победителям # Отправляем уведомления победителям
from ..utils.notifications import notify_winners_async from ..utils.notifications import notify_winners_async
try: try: