Update user.py

This commit is contained in:
Egor
2025-08-30 13:00:32 +03:00
committed by GitHub
parent 7f0ce61126
commit d39eb3f79f

View File

@@ -124,48 +124,10 @@ async def update_user(
async def add_user_balance(
db: AsyncSession,
user: User,
user_id: int,
amount_kopeks: int,
description: str = "Пополнение баланса"
) -> User:
try:
result = await db.execute(
select(User).where(User.id == user_id)
)
user = result.scalar_one_or_none()
if not user:
logger.error(f"Пользователь с ID {user_id} не найден")
return False
old_balance = user.balance_kopeks
user.balance_kopeks += amount_kopeks
user.updated_at = datetime.utcnow()
await db.commit()
await db.refresh(user)
logger.info(f"💰 Баланс пользователя {user.telegram_id} изменен: {old_balance}{user.balance_kopeks} (изменение: {amount_kopeks})")
return True
except Exception as e:
logger.error(f"Ошибка изменения баланса пользователя {user_id}: {e}")
await db.rollback()
return False
async def add_user_balance_by_id(
db: AsyncSession,
user_id: int,
amount_kopeks: int,
description: str = "Пополнение баланса"
) -> bool:
try:
user = await get_user_by_telegram_id(db, user_id)
if not user:
logger.error(f"❌ Пользователь с telegram_id {user_id} не найден")
return False
old_balance = user.balance_kopeks
user.balance_kopeks += amount_kopeks
user.updated_at = datetime.utcnow()
@@ -175,7 +137,7 @@ async def add_user_balance_by_id(
await create_transaction(
db=db,
user_id=user.id,
user_id=user.id,
type=TransactionType.DEPOSIT,
amount_kopeks=amount_kopeks,
description=description
@@ -184,9 +146,32 @@ async def add_user_balance_by_id(
await db.commit()
await db.refresh(user)
logger.info(f"💰 Пополнен баланс пользователя {user_id}: {old_balance} -> {user.balance_kopeks} коп (+{amount_kopeks})")
logger.info(f"💰 Баланс пользователя {user.telegram_id} изменен: {old_balance} {user.balance_kopeks} (изменение: +{amount_kopeks})")
return True
except Exception as e:
logger.error(f"Ошибка изменения баланса пользователя {user.id}: {e}")
await db.rollback()
return False
async def add_user_balance_by_id(
db: AsyncSession,
telegram_id: int,
amount_kopeks: int,
description: str = "Пополнение баланса"
) -> bool:
try:
user = await get_user_by_telegram_id(db, telegram_id)
if not user:
logger.error(f"Пользователь с telegram_id {telegram_id} не найден")
return False
return await add_user_balance(db, user, amount_kopeks, description)
except Exception as e:
logger.error(f"Ошибка пополнения баланса пользователя {telegram_id}: {e}")
return False
except Exception as e:
logger.error(f"❌ Ошибка пополнения баланса пользователя {user_id}: {e}")
await db.rollback()