支付统计增加手机号

This commit is contained in:
2026-07-11 15:35:54 +08:00
parent 36e4bec90e
commit 18fe13dd9f
5 changed files with 32 additions and 11 deletions
+6 -2
View File
@@ -836,13 +836,14 @@ async def list_payment_orders(
page_size: int = Query(20, ge=1, le=500),
payment_method: str | None = Query(None),
status: str | None = Query(None),
phone: str | None = Query(None, description="按用户手机号模糊搜索"),
start_date: str | None = Query(None),
end_date: str | None = Query(None),
admin: User = Depends(get_admin_user),
db: AsyncSession = Depends(get_db),
):
"""Return paginated payment orders for admin dashboard."""
query = select(PaymentOrder, User.username).join(User, PaymentOrder.user_id == User.id)
query = select(PaymentOrder, User.username, User.phone).join(User, PaymentOrder.user_id == User.id)
count_query = select(func.count(PaymentOrder.id))
filters = []
@@ -850,6 +851,8 @@ async def list_payment_orders(
filters.append(PaymentOrder.payment_method == payment_method)
if status:
filters.append(PaymentOrder.status == status)
if phone:
filters.append(User.phone.ilike(f"%{phone.strip()}%"))
if start_date:
filters.append(PaymentOrder.created_at >= datetime.fromisoformat(start_date).replace(tzinfo=CST))
if end_date:
@@ -873,6 +876,7 @@ async def list_payment_orders(
"userId": o.user_id,
"user_id": o.user_id,
"username": username,
"phone": user_phone,
"amount": round(float(o.amount), 2),
"credits": round(float(o.credits), 2),
"paymentMethod": o.payment_method,
@@ -885,7 +889,7 @@ async def list_payment_orders(
"createdAt": o.created_at.isoformat() if o.created_at else None,
"created_at": o.created_at.isoformat() if o.created_at else None,
}
for o, username in rows
for o, username, user_phone in rows
]
return {"items": items, "total": total, "page": page, "page_size": page_size}