From 9d53afef9eba3eaa9680b34c23abcb5139cbc37a Mon Sep 17 00:00:00 2001 From: aaron <> Date: Fri, 7 Mar 2025 20:02:20 +0800 Subject: [PATCH] update --- app/api/endpoints/order.py | 7 +++---- app/api/endpoints/order_additional_fee.py | 4 ++-- app/models/order.py | 4 ++++ 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/app/api/endpoints/order.py b/app/api/endpoints/order.py index 964dd2e..3bbb0e4 100644 --- a/app/api/endpoints/order.py +++ b/app/api/endpoints/order.py @@ -397,7 +397,7 @@ async def get_order_detail( # 计算配送员分账金额 deliveryman_share = 0 if current_user.delivery_commission_rate is not None: - deliveryman_share = round(order.original_amount * (current_user.delivery_commission_rate / 100.0), 2) + deliveryman_share = round(order.original_amount_with_additional_fee * (current_user.delivery_commission_rate / 100.0), 2) if current_user.delivery_commission_fixed is not None: deliveryman_share = current_user.delivery_commission_fixed @@ -942,8 +942,7 @@ async def deliveryman_orders( UserDB.phone.label("deliveryman_phone"), UserDB.avatar.label("deliveryman_avatar")).join(UserDB, OrderAdditionalFeeDB.deliveryman_id == UserDB.userid).filter( - OrderAdditionalFeeDB.orderid == order.orderid, - OrderAdditionalFeeDB.result == AdditionalFeeResult.ACCEPTED + OrderAdditionalFeeDB.orderid == order.orderid ).all() order_additional_fees = [] @@ -1169,7 +1168,7 @@ async def deliveryman_complete_order( # 计算配送员分账金额 if current_user.delivery_commission_rate is not None: - deliveryman_share = order.original_amount * current_user.delivery_commission_rate / 100 + deliveryman_share = order.original_amount_with_additional_fee * current_user.delivery_commission_rate / 100 else: deliveryman_share = current_user.delivery_commission_fixed diff --git a/app/api/endpoints/order_additional_fee.py b/app/api/endpoints/order_additional_fee.py index 2dd9724..99ee1cf 100644 --- a/app/api/endpoints/order_additional_fee.py +++ b/app/api/endpoints/order_additional_fee.py @@ -137,8 +137,8 @@ async def accept_additional_fee( ).first() if order: - order.additional_fee_amount = float(fee_request.additional_fee_amount) - order.final_amount = float(order.final_amount) + float(fee_request.additional_fee_amount) + order.additional_fee_amount += float(fee_request.additional_fee_amount) + order.final_amount += float(fee_request.additional_fee_amount) try: db.commit() diff --git a/app/models/order.py b/app/models/order.py index 3bc7be5..db48449 100644 --- a/app/models/order.py +++ b/app/models/order.py @@ -103,6 +103,10 @@ class ShippingOrderDB(Base): if self.pickup_images: return [process_image(image).format(ImageFormat.WEBP).build() for image in self.pickup_images.split(",")] return [] + + @property + def original_amount_with_additional_fee(self): + return self.original_amount + self.additional_fee_amount class ShippingOrderPackageDB(Base): __tablename__ = "shipping_order_packages"