feat: 支持从失败状态重新发起退款,添加相关逻辑和测试用例
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user