From 86d9c6e9c7ca4427073ff515dfb372c7d63c029b Mon Sep 17 00:00:00 2001 From: shanshanzhong Date: Thu, 15 Jan 2026 17:15:34 -0800 Subject: [PATCH] =?UTF-8?q?fix(order):=20=E5=A4=84=E7=90=86finalizeCouponA?= =?UTF-8?q?ndOrder=E7=9A=84=E9=94=99=E8=AF=AF=E5=B9=B6=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在finalizeCouponAndOrder函数中添加错误返回并记录日志,确保错误能够被捕获和处理 --- queue/logic/order/activateOrderLogic.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/queue/logic/order/activateOrderLogic.go b/queue/logic/order/activateOrderLogic.go index 55dc284..dd0851d 100644 --- a/queue/logic/order/activateOrderLogic.go +++ b/queue/logic/order/activateOrderLogic.go @@ -81,7 +81,10 @@ func (l *ActivateOrderLogic) ProcessTask(ctx context.Context, task *asynq.Task) return nil } - l.finalizeCouponAndOrder(ctx, orderInfo) + if err := l.finalizeCouponAndOrder(ctx, orderInfo); err != nil { + logger.WithContext(ctx).Error("[ActivateOrderLogic] Finalize order failed", logger.Field("error", err.Error())) + return err + } return nil } @@ -140,7 +143,7 @@ func (l *ActivateOrderLogic) processOrderByType(ctx context.Context, orderInfo * // finalizeCouponAndOrder handles post-processing tasks including coupon updates // and order status finalization -func (l *ActivateOrderLogic) finalizeCouponAndOrder(ctx context.Context, orderInfo *order.Order) { +func (l *ActivateOrderLogic) finalizeCouponAndOrder(ctx context.Context, orderInfo *order.Order) error { // Update coupon if exists if orderInfo.Coupon != "" { if err := l.svc.CouponModel.UpdateCount(ctx, orderInfo.Coupon); err != nil { @@ -158,7 +161,9 @@ func (l *ActivateOrderLogic) finalizeCouponAndOrder(ctx context.Context, orderIn logger.Field("error", err.Error()), logger.Field("order_no", orderInfo.OrderNo), ) + return err } + return nil } // NewPurchase handles new subscription purchase including user creation,