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)