diff --git a/app/api/endpoints/order.py b/app/api/endpoints/order.py index 4002a7c..75754bb 100644 --- a/app/api/endpoints/order.py +++ b/app/api/endpoints/order.py @@ -273,7 +273,25 @@ async def get_order_detail( ).filter( ShippingOrderPackageDB.orderid == orderid ).all() - + + # 如果有配送员 id,则获取配送员信息 + if order.ShippingOrderDB.deliveryman_user_id: + deliveryman_user = db.query(UserDB).filter( + UserDB.userid == order.ShippingOrderDB.deliveryman_user_id + ).first() + deliveryman_user_name = deliveryman_user.nickname + deliveryman_user_avatar = deliveryman_user.optimized_avatar + deliveryman_user_phone = deliveryman_user.phone + delivery_count = db.query(ShippingOrderDB).filter( + ShippingOrderDB.deliveryman_user_id == order.ShippingOrderDB.deliveryman_user_id, + ShippingOrderDB.status == OrderStatus.COMPLETED + ).count() + else: + deliveryman_user_name = None + delivery_count = 0 + deliveryman_user_avatar = None + deliveryman_user_phone = None + # 构建响应数据 order_data = { "orderid": order.ShippingOrderDB.orderid, @@ -289,6 +307,10 @@ async def get_order_detail( "create_time": order.ShippingOrderDB.create_time, "delivery_method": order.ShippingOrderDB.delivery_method, "deliveryman_user_id": order.ShippingOrderDB.deliveryman_user_id, + "deliveryman_nickname": deliveryman_user_name, + "deliveryman_avatar": deliveryman_user_avatar, + "deliveryman_phone": deliveryman_user_phone, + "delivery_count": delivery_count, # 地址相关信息 "address_name": order.address_name, "address_phone": order.address_phone,