创建 已取货 的接口。
This commit is contained in:
parent
39362f2bc8
commit
a0e7309b69
@ -378,7 +378,7 @@ async def cancel_order(
|
|||||||
return error_response(code=404, message="订单不存在")
|
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="当前订单状态不可取消")
|
return error_response(code=400, message="当前订单状态不可取消")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -422,7 +422,7 @@ async def complete_order(
|
|||||||
return error_response(code=404, message="订单不存在")
|
return error_response(code=404, message="订单不存在")
|
||||||
|
|
||||||
# 检查订单状态
|
# 检查订单状态
|
||||||
if order.status != OrderStatus.ACCEPTED:
|
if order.status != OrderStatus.RECEIVED:
|
||||||
return error_response(code=400, message="只有已接单的订单才能标记为完成")
|
return error_response(code=400, message="只有已接单的订单才能标记为完成")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -441,8 +441,8 @@ async def complete_order(
|
|||||||
return error_response(code=500, message=f"完成订单失败: {str(e)}")
|
return error_response(code=500, message=f"完成订单失败: {str(e)}")
|
||||||
|
|
||||||
|
|
||||||
@router.post("/{orderid}/accept", response_model=ResponseModel)
|
@router.post("/{orderid}/receive", response_model=ResponseModel)
|
||||||
async def accept_order(
|
async def receive_order(
|
||||||
orderid: str,
|
orderid: str,
|
||||||
db: Session = Depends(get_db),
|
db: Session = Depends(get_db),
|
||||||
deliveryman: UserDB = Depends(get_deliveryman_user)
|
deliveryman: UserDB = Depends(get_deliveryman_user)
|
||||||
@ -466,7 +466,7 @@ async def accept_order(
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
# 更新订单状态和配送员ID
|
# 更新订单状态和配送员ID
|
||||||
order.status = OrderStatus.ACCEPTED
|
order.status = OrderStatus.RECEIVED
|
||||||
order.deliveryman_user_id = deliveryman.userid
|
order.deliveryman_user_id = deliveryman.userid
|
||||||
|
|
||||||
db.commit()
|
db.commit()
|
||||||
@ -476,4 +476,37 @@ async def accept_order(
|
|||||||
)
|
)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
db.rollback()
|
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