update
This commit is contained in:
parent
7312aedaaf
commit
5e8ba2203b
@ -103,12 +103,7 @@ def calculate_price(price_request: OrderPriceCalculateRequest,user: UserDB,db: S
|
|||||||
extra_package_price = float(community.extra_package_price)
|
extra_package_price = float(community.extra_package_price)
|
||||||
extra_package_threshold = int(community.extra_package_threshold)
|
extra_package_threshold = int(community.extra_package_threshold)
|
||||||
|
|
||||||
original_amount = base_price
|
original_amount = round(base_price + extra_package_price * (package_count - extra_package_threshold), 2)
|
||||||
|
|
||||||
# 超过阈值的包裹额外收费
|
|
||||||
if package_count > extra_package_threshold:
|
|
||||||
extra_count = package_count - extra_package_threshold
|
|
||||||
original_amount += extra_count * extra_package_price
|
|
||||||
|
|
||||||
result.price_info.package_count = package_count
|
result.price_info.package_count = package_count
|
||||||
result.price_info.pickup_images_count = pickup_images_count
|
result.price_info.pickup_images_count = pickup_images_count
|
||||||
@ -145,7 +140,7 @@ def calculate_price(price_request: OrderPriceCalculateRequest,user: UserDB,db: S
|
|||||||
remaining_amount -= points_discount_amount
|
remaining_amount -= points_discount_amount
|
||||||
|
|
||||||
# 计算最终金额
|
# 计算最终金额
|
||||||
result.price_info.final_amount = remaining_amount
|
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)}元/件"
|
result.price_detail_text = f"基础配送费{round(base_price, 1)}元 (含{extra_package_threshold}件包裹),超出部分{round(extra_package_price, 1)}元/件"
|
||||||
|
|||||||
@ -176,10 +176,11 @@ async def accept_additional_fee(
|
|||||||
# 更新加价请求
|
# 更新加价请求
|
||||||
@router.put("/{request_id}", response_model=ResponseModel)
|
@router.put("/{request_id}", response_model=ResponseModel)
|
||||||
async def update_additional_fee(
|
async def update_additional_fee(
|
||||||
|
background_tasks: BackgroundTasks,
|
||||||
request_id: int,
|
request_id: int,
|
||||||
new_fee_request: OrderAdditionalFeeUpdate,
|
new_fee_request: OrderAdditionalFeeUpdate,
|
||||||
db: Session = Depends(get_db),
|
db: Session = Depends(get_db),
|
||||||
current_user: UserDB = Depends(get_deliveryman_user)
|
deliveryman: UserDB = Depends(get_deliveryman_user)
|
||||||
):
|
):
|
||||||
"""更新加价请求"""
|
"""更新加价请求"""
|
||||||
# 获取加价请求
|
# 获取加价请求
|
||||||
@ -188,11 +189,18 @@ async def update_additional_fee(
|
|||||||
OrderAdditionalFeeDB.result == AdditionalFeeResult.PENDING
|
OrderAdditionalFeeDB.result == AdditionalFeeResult.PENDING
|
||||||
).first()
|
).first()
|
||||||
|
|
||||||
|
order = db.query(ShippingOrderDB).filter(
|
||||||
|
ShippingOrderDB.orderid == old_fee_request.orderid
|
||||||
|
).first()
|
||||||
|
|
||||||
|
if not order:
|
||||||
|
return error_response(code=404, message="订单不存在")
|
||||||
|
|
||||||
if not old_fee_request:
|
if not old_fee_request:
|
||||||
return error_response(code=404, message="加价请求不存在")
|
return error_response(code=404, message="加价请求不存在")
|
||||||
|
|
||||||
# 检查是否是订单用户
|
# 检查是否是订单用户
|
||||||
if old_fee_request.deliveryman_id != current_user.userid:
|
if old_fee_request.deliveryman_id != deliveryman.userid:
|
||||||
return error_response(code=403, message="您无权处理该加价请求")
|
return error_response(code=403, message="您无权处理该加价请求")
|
||||||
|
|
||||||
# 更新加价请求
|
# 更新加价请求
|
||||||
@ -203,6 +211,27 @@ async def update_additional_fee(
|
|||||||
try:
|
try:
|
||||||
db.commit()
|
db.commit()
|
||||||
db.refresh(old_fee_request)
|
db.refresh(old_fee_request)
|
||||||
|
|
||||||
|
# 发送通知给用户
|
||||||
|
user = db.query(UserDB).filter(UserDB.userid == order.userid).first()
|
||||||
|
if user:
|
||||||
|
await qcloud_manager.send_sms_code_additional_fee(user.phone)
|
||||||
|
|
||||||
|
if user.mp_openid:
|
||||||
|
#发送模板消息
|
||||||
|
data={
|
||||||
|
"character_string1": old_fee_request.orderid,
|
||||||
|
"thing2": deliveryman.nickname,
|
||||||
|
"time3": datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||||
|
}
|
||||||
|
background_tasks.add_task(
|
||||||
|
sent_order_status_change_message,
|
||||||
|
openid=user.mp_openid,
|
||||||
|
template_id=settings.ADDITIONAL_FEE_REQUEST_TEMPLATE_ID,
|
||||||
|
data=data,
|
||||||
|
orderid=old_fee_request.orderid
|
||||||
|
)
|
||||||
|
|
||||||
return success_response(data=OrderAdditionalFeeInfo.model_validate(old_fee_request))
|
return success_response(data=OrderAdditionalFeeInfo.model_validate(old_fee_request))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
db.rollback()
|
db.rollback()
|
||||||
|
|||||||
@ -44,6 +44,7 @@ class RequestLoggerMiddleware(BaseHTTPMiddleware):
|
|||||||
if body_bytes:
|
if body_bytes:
|
||||||
body = json.loads(body_bytes)
|
body = json.loads(body_bytes)
|
||||||
body = self.filter_sensitive_data(body, path)
|
body = self.filter_sensitive_data(body, path)
|
||||||
|
print(f"请求体: {body}")
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user