59 lines
1.7 KiB
Python
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)
|
|
|