feat: 支持从失败状态重新发起退款,添加相关逻辑和测试用例

This commit is contained in:
2025-12-23 13:07:12 +08:00
parent d70a33e4f9
commit 39b541accd
4 changed files with 124 additions and 2 deletions

View File

@@ -46,6 +46,10 @@ func (w *OrderRefundJobWorker) Work(ctx context.Context, job *Job[jobs_args.Orde
if err != nil {
// 业务层会返回可识别的“不可重试”错误由它内部完成状态落库failed这里直接 cancel。
if services.IsRefundJobNonRetryableError(err) {
// best-effort将订单标记为 failed便于管理员重新发起退款paid/failed -> refunding
if markErr := services.Order.MarkRefundFailed(ctx, args.TenantID, args.OrderID, time.Now().UTC()); markErr != nil {
logger.WithError(markErr).Warn("jobs.order_refund.mark_failed_failed")
}
logger.WithError(err).Warn("jobs.order_refund.cancel")
return JobCancel(err)
}