package order import ( "context" "hfb_sys/backend/internal/logging" "hfb_sys/backend/internal/model" "go.uber.org/zap" ) func (r *Repository) prepareRefund(order *model.RentalOrder, amountCent int64, bizType string, remark string) (*refundAction, error) { if amountCent <= 0 { return nil, nil } if r.refundStarter == nil { return nil, ErrDependencyUnavailable } order.RefundStatus = refundStatusPending order.RefundAmountCent = amountCent order.RefundedAt = nil return &refundAction{ OrderID: order.ID, RefundAmountCent: amountCent, BizType: bizType, Remark: remark, }, nil } func (r *Repository) startRefundBestEffort(ctx context.Context, action *refundAction) { if action == nil || r.refundStarter == nil { return } if _, err := r.refundStarter.StartRefund(ctx, action.OrderID, action.RefundAmountCent, action.BizType, action.Remark); err != nil { logging.FromContext(ctx).Error("订单退款提交失败", zap.String("module", "order"), zap.Uint64("order_id", action.OrderID), zap.String("biz_type", action.BizType), zap.Int64("amount_cent", action.RefundAmountCent), zap.Error(err), ) } }