创建 已取货 的接口。
This commit is contained in:
parent
39362f2bc8
commit
a0e7309b69
@ -378,7 +378,7 @@ async def cancel_order(
|
||||
return error_response(code=404, message="订单不存在")
|
||||
|
||||
# 检查订单状态是否可取消
|
||||
if order.status not in [OrderStatus.CREATED, OrderStatus.ACCEPTED]:
|
||||
if order.status not in [OrderStatus.CREATED, OrderStatus.RECEIVED]:
|
||||
return error_response(code=400, message="当前订单状态不可取消")
|
||||
|
||||
try:
|
||||
@ -422,7 +422,7 @@ async def complete_order(
|
||||
return error_response(code=404, message="订单不存在")
|
||||
|
||||
# 检查订单状态
|
||||
if order.status != OrderStatus.ACCEPTED:
|
||||
if order.status != OrderStatus.RECEIVED:
|
||||
return error_response(code=400, message="只有已接单的订单才能标记为完成")
|
||||
|
||||
try:
|
||||
@ -441,8 +441,8 @@ async def complete_order(
|
||||
return error_response(code=500, message=f"完成订单失败: {str(e)}")
|
||||
|
||||
|
||||
@router.post("/{orderid}/accept", response_model=ResponseModel)
|
||||
async def accept_order(
|
||||
@router.post("/{orderid}/receive", response_model=ResponseModel)
|
||||
async def receive_order(
|
||||
orderid: str,
|
||||
db: Session = Depends(get_db),
|
||||
deliveryman: UserDB = Depends(get_deliveryman_user)
|
||||
@ -466,7 +466,7 @@ async def accept_order(
|
||||
|
||||
try:
|
||||
# 更新订单状态和配送员ID
|
||||
order.status = OrderStatus.ACCEPTED
|
||||
order.status = OrderStatus.RECEIVED
|
||||
order.deliveryman_user_id = deliveryman.userid
|
||||
|
||||
db.commit()
|
||||
@ -476,4 +476,37 @@ async def accept_order(
|
||||
)
|
||||
except Exception as e:
|
||||
db.rollback()
|
||||
return error_response(code=500, message=f"接单失败: {str(e)}")
|
||||
return error_response(code=500, message=f"接单失败: {str(e)}")
|
||||
|
||||
@router.post("/{orderid}/pickup", response_model=ResponseModel)
|
||||
async def pickup_order(
|
||||
orderid: str,
|
||||
db: Session = Depends(get_db),
|
||||
deliveryman: UserDB = Depends(get_deliveryman_user)
|
||||
):
|
||||
"""标记订单为已取货(仅配送员可用)"""
|
||||
# 查询订单
|
||||
order = db.query(ShippingOrderDB).filter(
|
||||
ShippingOrderDB.orderid == orderid,
|
||||
ShippingOrderDB.deliveryman_user_id == deliveryman.userid # 必须是该配送员的订单
|
||||
).first()
|
||||
|
||||
if not order:
|
||||
return error_response(code=404, message="订单不存在")
|
||||
|
||||
# 检查订单状态
|
||||
if order.status != OrderStatus.RECEIVED:
|
||||
return error_response(code=400, message="只有已接单的订单才能标记为已取货")
|
||||
|
||||
try:
|
||||
# 更新订单状态为配送中
|
||||
order.status = OrderStatus.DELIVERING
|
||||
|
||||
db.commit()
|
||||
return success_response(
|
||||
message="已标记为取货",
|
||||
data=OrderInfo.model_validate(order)
|
||||
)
|
||||
except Exception as e:
|
||||
db.rollback()
|
||||
return error_response(code=500, message=f"操作失败: {str(e)}")
|
||||
Loading…
Reference in New Issue
Block a user