Files
life-echo/api/app/features/payment/repo.py

25 lines
775 B
Python
Raw Normal View History

"""Payment repository — Order data access."""
from sqlalchemy import select
from sqlalchemy.ext.asyncio import AsyncSession
from app.features.payment.models import Order
async def get_order_by_id(order_id: str, db: AsyncSession) -> Order | None:
return await db.get(Order, order_id)
async def get_orders_by_user(user_id: str, db: AsyncSession) -> list[Order]:
2026-03-19 14:36:14 +08:00
stmt = (
select(Order).where(Order.user_id == user_id).order_by(Order.created_at.desc())
)
result = await db.execute(stmt)
return list(result.scalars().all())
async def get_order_by_trade_no(out_trade_no: str, db: AsyncSession) -> Order | None:
stmt = select(Order).where(Order.id == out_trade_no)
result = await db.execute(stmt)
return result.scalar_one_or_none()