实现配送员分账
This commit is contained in:
parent
64e2f4a339
commit
8716233e29
@ -1,3 +1,4 @@
|
|||||||
|
from app.core.account import AccountManager
|
||||||
from fastapi import APIRouter, Depends
|
from fastapi import APIRouter, Depends
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
@ -432,6 +433,19 @@ async def complete_order(
|
|||||||
else:
|
else:
|
||||||
order.status = OrderStatus.COMPLETED # 无需支付,直接完成
|
order.status = OrderStatus.COMPLETED # 无需支付,直接完成
|
||||||
|
|
||||||
|
# 只有在订单完成状态时才进行分账
|
||||||
|
# 计算配送员分账金额
|
||||||
|
deliveryman_share = order.original_amount * settings.ORDER_DELIVERYMAN_SHARE_RATIO
|
||||||
|
|
||||||
|
# 使用账户管理器处理分账
|
||||||
|
account_manager = AccountManager(db)
|
||||||
|
account_manager.change_balance(
|
||||||
|
user_id=order.deliveryman_user_id,
|
||||||
|
amount=deliveryman_share,
|
||||||
|
description=f"订单 {orderid} 配送费分账",
|
||||||
|
transaction_id=orderid
|
||||||
|
)
|
||||||
|
|
||||||
# 保存完成图片
|
# 保存完成图片
|
||||||
if complete_data.images:
|
if complete_data.images:
|
||||||
order.complete_images = ",".join(complete_data.images)
|
order.complete_images = ",".join(complete_data.images)
|
||||||
|
|||||||
@ -12,6 +12,7 @@ class Settings(BaseSettings):
|
|||||||
ORDER_BASE_PRICE: float = 3.0 # 基础费用
|
ORDER_BASE_PRICE: float = 3.0 # 基础费用
|
||||||
ORDER_EXTRA_PACKAGE_PRICE: float = 0.5 # 额外包裹费用
|
ORDER_EXTRA_PACKAGE_PRICE: float = 0.5 # 额外包裹费用
|
||||||
ORDER_EXTRA_PACKAGE_THRESHOLD: int = 5 # 额外收费阈值
|
ORDER_EXTRA_PACKAGE_THRESHOLD: int = 5 # 额外收费阈值
|
||||||
|
ORDER_DELIVERYMAN_SHARE_RATIO: float = 0.8 # 配送员分账比例
|
||||||
|
|
||||||
# JWT 配置
|
# JWT 配置
|
||||||
SECRET_KEY: str = "s10GmiRMmplfYWXYZLSsE3X36Ld4gVZxHgAcdqFGC20v3llv7UdOeWLBEEP3e40p"
|
SECRET_KEY: str = "s10GmiRMmplfYWXYZLSsE3X36Ld4gVZxHgAcdqFGC20v3llv7UdOeWLBEEP3e40p"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user