This commit is contained in:
aaron 2025-03-07 19:25:13 +08:00
parent 8eec62410d
commit 1829189e59
2 changed files with 58 additions and 1 deletions

View File

@ -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,

View File

@ -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