f ‘部分退款’

This commit is contained in:
2026-01-20 20:18:46 +08:00
parent ed8d311e02
commit 3dcef00566
10 changed files with 166 additions and 98 deletions

View File

@@ -92,8 +92,9 @@ func (l *AdminRefundOrderLogic) handleAlipayRefund(order *model.Order, req *type
return nil, err
}
// 退款成功后,更新代理佣金状态并扣除钱包金额
paylogic.HandleCommissionAndWalletDeduction(l.ctx, l.svcCtx, nil, order)
// 退款成功后,按本次退款金额更新代理佣金状态并扣除钱包金额
// 注意refundAmount 为本次实际退款金额,可以是部分退款
_ = paylogic.HandleCommissionAndWalletDeduction(l.ctx, l.svcCtx, nil, order, req.RefundAmount)
return &types.AdminRefundOrderResp{
Status: model.OrderStatusRefunded,
@@ -119,15 +120,13 @@ func (l *AdminRefundOrderLogic) handleWechatRefund(order *model.Order, req *type
}
// 微信退款是异步的创建pending状态的退款记录
// 注意:代理佣金扣除将在微信退款回调成功后再执行,不在此处提前扣除
refundNo := l.generateRefundNo(order.OrderNo)
err = l.createRefundRecordAndUpdateOrder(order, req, refundNo, "", model.OrderStatusRefunding, model.OrderRefundStatusPending)
if err != nil {
return nil, err
}
// 退款成功后,更新代理佣金状态并扣除钱包金额
paylogic.HandleCommissionAndWalletDeduction(l.ctx, l.svcCtx, nil, order)
return &types.AdminRefundOrderResp{
Status: model.OrderRefundStatusPending,
RefundNo: refundNo,