From ebe74e2f7f5d2e7eae960a61712c042eca66651e Mon Sep 17 00:00:00 2001 From: aaron <> Date: Wed, 5 Feb 2025 23:40:35 +0900 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E4=BB=98=E9=85=8D=E9=80=81=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E5=AE=8C=E6=88=90=EF=BC=8C=E5=A2=9E=E5=8A=A0=E9=85=8D?= =?UTF-8?q?=E9=80=81=E5=91=98=E5=88=86=E8=B4=A6=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/endpoints/order.py | 2 +- app/api/endpoints/wechat.py | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app/api/endpoints/order.py b/app/api/endpoints/order.py index 6f0ef8b..fdbf6df 100644 --- a/app/api/endpoints/order.py +++ b/app/api/endpoints/order.py @@ -568,7 +568,7 @@ async def complete_order( account_manager.change_balance( user_id=order.deliveryman_user_id, amount=deliveryman_share, - description=f"订单 {orderid} 配送费分账", + description=f"配送订单收益", transaction_id=orderid ) diff --git a/app/api/endpoints/wechat.py b/app/api/endpoints/wechat.py index d6aa2c8..385057c 100644 --- a/app/api/endpoints/wechat.py +++ b/app/api/endpoints/wechat.py @@ -19,6 +19,7 @@ from app.models.merchant_pay_order import MerchantPayOrderDB, MerchantPayOrderSt import enum from app.core.point_manager import PointManager from app.core.point_manager import PointRecordType +from app.core.account import AccountManager router = APIRouter() @@ -220,6 +221,19 @@ async def payment_notify( order.status = OrderStatus.COMPLETED # 支付成功后状态为已完成 order.transaction_id = transaction_id order.pay_time = datetime.fromisoformat(success_time.replace('Z', '+00:00')) + + # 计算配送员分账金额 + deliveryman_share = order.final_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"配送订单收益", + transaction_id=order.orderid + ) + elif out_trade_no.startswith("M"): # 商家商品订单 # 查询商户订单