table_game/backend/app/routers/admin_order.py
2025-03-10 08:35:19 +08:00

59 lines
1.7 KiB
Python

from fastapi import APIRouter, HTTPException, Body, Depends
from typing import List
from ..schemas.order_info import OrderRangeQueryRequest, OrderCompleteRequest, OrderSettleRequest, OrderDetailRequest, OrderDetailResponse
from ..schemas.order_info import OrderInfo
from ..schemas.order_info import OrderListResponse
from ..services.admin_order_service import query_orders_by_status_and_range, complete_order, settle_order, get_order_details_service
router = APIRouter()
@router.post("/orders/query", response_model=OrderListResponse)
def query_orders(request: OrderRangeQueryRequest):
"""
管理员查询符合订单状态并限制范围的订单信息
"""
orders = query_orders_by_status_and_range(
token=request.token,
start=request.start,
end=request.end,
order_status=request.order_status
)
return orders
# 修正路由定义
@router.put("/orders/{order_id}/complete")
async def complete_order_api(
order_id: int,
request: OrderCompleteRequest = Body(...) # 使用正确的请求模型
):
return complete_order(
token=request.token,
order_id=order_id,
end_datetime=request.end_datetime
)
@router.put("/orders/{order_id}/settle")
async def settle_order_endpoint(
order_id: int,
request: OrderSettleRequest = Body(...)
):
return settle_order(
token=request.token,
order_id=order_id,
used_points=request.used_points,
coupon_id=request.coupon_id
)
@router.post("/orders/details", response_model=OrderDetailResponse)
def get_order_details(
request: OrderDetailRequest
):
"""
获取订单详细信息
"""
return get_order_details_service(token=request.token, order_id=request.order_id)