fix
This commit is contained in:
@@ -114,6 +114,21 @@ func (l *WechatPayRefundCallbackLogic) handleQueryOrderRefund(orderNo string, st
|
||||
return errors.Wrapf(err, "更新订单和退款记录失败: %s", orderNo)
|
||||
}
|
||||
|
||||
// 退款成功后,检查并处理代理订单(在事务外执行,避免影响退款流程)
|
||||
if status == refunddomestic.STATUS_SUCCESS {
|
||||
// 检查代理订单是否已处理
|
||||
agentOrder, err := l.svcCtx.AgentOrderModel.FindOneByOrderId(l.ctx, order.Id)
|
||||
if err == nil && agentOrder != nil && agentOrder.ProcessStatus == 1 {
|
||||
// 代理订单已处理,需要撤销收益
|
||||
if cancelErr := l.svcCtx.AgentService.CancelAgentCommission(l.ctx, order.Id); cancelErr != nil {
|
||||
logx.Errorf("撤销代理收益失败,订单ID: %s, 错误: %v", order.Id, cancelErr)
|
||||
// 不阻断退款流程,只记录日志(退款已成功,不能回滚)
|
||||
} else {
|
||||
logx.Infof("成功撤销代理收益,订单ID: %s", order.Id)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user