This commit is contained in:
aaron 2025-03-13 23:59:21 +08:00
parent 6b258c669f
commit 7dcf5e5375
3 changed files with 8 additions and 3 deletions

View File

@ -86,6 +86,8 @@ def calculate_price(price_request: OrderPriceCalculateRequest,user: UserDB,db: S
coupon_discount_amount=0,
points_discount_amount=0,
original_amount=0,
base_delivery_price=0,
more_station_price=0,
final_amount=0
)
)
@ -107,8 +109,8 @@ def calculate_price(price_request: OrderPriceCalculateRequest,user: UserDB,db: S
# 是否有多驿站
more_station_price = float(community.more_station_price) * (len(price_request.packages) - 1) if len(price_request.packages) > 1 else 0
original_amount = round(more_station_price + (base_price + extra_package_price * max(0, package_count - extra_package_threshold)), 2)
base_delivery_price = round(base_price + extra_package_price * max(0, package_count - extra_package_threshold), 2)
original_amount = round(more_station_price + base_delivery_price, 2)
result.price_info.package_count = package_count
result.price_info.pickup_images_count = pickup_images_count
@ -116,6 +118,7 @@ def calculate_price(price_request: OrderPriceCalculateRequest,user: UserDB,db: S
result.price_info.original_amount = original_amount
result.price_info.more_station_price = more_station_price
result.price_info.final_amount = original_amount
result.price_info.base_delivery_price = base_delivery_price
remaining_amount = original_amount
@ -149,7 +152,7 @@ def calculate_price(price_request: OrderPriceCalculateRequest,user: UserDB,db: S
result.price_info.final_amount = round(remaining_amount, 2)
# 计算价格详情
result.price_detail_text = f"基础配送费{round(base_price, 1)}(含{extra_package_threshold}件包裹),超出部分{round(extra_package_price, 1)}元/件,多驿站费: {round(more_station_price, 1)}元/驿站"
result.price_detail_text = f"基础配送费 {round(base_price, 1)} (限 {extra_package_threshold} 件),超件 {round(extra_package_price, 1)} 元 / 件,多驿站每件加收 {round(more_station_price, 1)} 元 。"
return result
@ -508,6 +511,7 @@ async def get_order_detail(
"pickup_code_count": order.pickup_code_count,
"pickup_images_count": order.pickup_images_count,
"original_amount": order.original_amount,
"base_delivery_price": order.original_amount - order.more_station_price,
"coupon_discount_amount": order.coupon_discount_amount,
"point_discount_amount": order.point_discount_amount,
"more_station_price": order.more_station_price,

View File

@ -223,6 +223,7 @@ class OrderPriceInfo(BaseModel):
coupon_discount_amount: float = 0
points_discount_amount: float = 0
more_station_price: float = 0
base_delivery_price: float = 0
coupon_id: Optional[int] = None
final_amount: float = 0

Binary file not shown.