diff --git a/app/api/endpoints/order.py b/app/api/endpoints/order.py index 39a78b3..119801d 100644 --- a/app/api/endpoints/order.py +++ b/app/api/endpoints/order.py @@ -15,6 +15,7 @@ from app.models.order import ( OrderComplete, OrderPriceResult ) +from app.models.order_additional_fee import OrderAdditionalFeeDB, OrderAdditionalFeeInfo from app.models.database import get_db from app.api.deps import get_current_user, get_deliveryman_user, get_admin_user from app.models.user import UserDB,UserRole @@ -440,6 +441,32 @@ async def get_order_detail( } for p in packages] else: package_list = [] + + + # 获取加价请求 + request = db.query(OrderAdditionalFeeDB, + UserDB.nickname.label("deliveryman_name"), + UserDB.phone.label("deliveryman_phone"), + UserDB.avatar.label("deliveryman_avatar")).join(UserDB, + OrderAdditionalFeeDB.deliveryman_id == UserDB.userid).filter( + OrderAdditionalFeeDB.orderid == order.orderid + ).first() + + order_additional_fee = None + if request: + order_additional_fee = { + "id": request.OrderAdditionalFeeDB.id, + "orderid": request.OrderAdditionalFeeDB.orderid, + "order_user_id": request.OrderAdditionalFeeDB.order_user_id, + "deliveryman_id": request.OrderAdditionalFeeDB.deliveryman_id, + "deliveryman_name": request.deliveryman_name, + "deliveryman_phone": request.deliveryman_phone, + "deliveryman_avatar": request.deliveryman_avatar, + "reason": request.OrderAdditionalFeeDB.reason, + "photo_urls": request.OrderAdditionalFeeDB.photo_urls, + "additional_fee_amount": request.OrderAdditionalFeeDB.additional_fee_amount, + "result": request.OrderAdditionalFeeDB.result, + } # 计算配送时间 delivery_time = "预计 今日 送达" @@ -476,6 +503,7 @@ async def get_order_detail( "packages": package_list, "is_first_order": order.is_first_order, "cancel_reason": order.cancel_reason, + "order_additional_fee": order_additional_fee, "create_time": order.create_time, "complete_time": order.completed_time, @@ -907,8 +935,33 @@ async def deliveryman_orders( PointProductOrderDB.delivery_order_id == order.orderid ).all() + # 获取加价请求 + request = db.query(OrderAdditionalFeeDB, + UserDB.nickname.label("deliveryman_name"), + UserDB.phone.label("deliveryman_phone"), + UserDB.avatar.label("deliveryman_avatar")).join(UserDB, + OrderAdditionalFeeDB.deliveryman_id == UserDB.userid).filter( + OrderAdditionalFeeDB.orderid == order.orderid + ).first() + + order_additional_fee = None + if request: + order_additional_fee = { + "id": request.OrderAdditionalFeeDB.id, + "orderid": request.OrderAdditionalFeeDB.orderid, + "order_user_id": request.OrderAdditionalFeeDB.order_user_id, + "deliveryman_id": request.OrderAdditionalFeeDB.deliveryman_id, + "deliveryman_name": request.deliveryman_name, + "deliveryman_phone": request.deliveryman_phone, + "deliveryman_avatar": request.deliveryman_avatar, + "reason": request.OrderAdditionalFeeDB.reason, + "photo_urls": request.OrderAdditionalFeeDB.photo_urls, + "additional_fee_amount": request.OrderAdditionalFeeDB.additional_fee_amount, + "result": request.OrderAdditionalFeeDB.result, + } + # 计算配送时间 - delivery_time = "预计 今日 送达" + delivery_time = None # 如果配送时段不为空,则使用配送时段的时间 if order.time_period_id: @@ -938,6 +991,7 @@ async def deliveryman_orders( "final_amount": order.final_amount, "is_first_order": order.is_first_order, "packages": package_list, + "order_additional_fee": order_additional_fee, "sub_orders": [PointProductOrderInfo.model_validate(sub_order) for sub_order in sub_orders], "address": { "name": order.address_customer_name, diff --git a/app/models/order_additional_fee.py b/app/models/order_additional_fee.py index 13ac3af..ba22eea 100644 --- a/app/models/order_additional_fee.py +++ b/app/models/order_additional_fee.py @@ -43,6 +43,9 @@ class OrderAdditionalFeeInfo(BaseModel): orderid: str order_user_id: int deliveryman_id: int + deliveryman_name: str + deliveryman_phone: str + deliveryman_avatar: str reason: str photo_urls: Optional[List[str]] additional_fee_amount: float