diff --git a/queue/logic/order/activateOrderLogic.go b/queue/logic/order/activateOrderLogic.go index ebbbafb..f8d84a5 100644 --- a/queue/logic/order/activateOrderLogic.go +++ b/queue/logic/order/activateOrderLogic.go @@ -229,9 +229,14 @@ func (l *ActivateOrderLogic) NewPurchase(ctx context.Context, orderInfo *order.O var userSub *user.Subscribe - // 单订阅模式下,优先兜底为“续费语义”:延长已购订阅,避免并发下重复创建 user_subscribe + // 单订阅模式下,优先兜底为”续费语义”:延长已购订阅,避免并发下重复创建 user_subscribe if l.svc.Config.Subscribe.SingleModel { - anchorSub, anchorErr := l.svc.UserModel.FindSingleModeAnchorSubscribe(ctx, orderInfo.UserId) + // 家庭组场景:订阅实际属于 SubscriptionUserId(成员/主),而非付款人 UserId + singleModeUserId := orderInfo.UserId + if orderInfo.SubscriptionUserId > 0 { + singleModeUserId = orderInfo.SubscriptionUserId + } + anchorSub, anchorErr := l.svc.UserModel.FindSingleModeAnchorSubscribe(ctx, singleModeUserId) switch { case anchorErr == nil && anchorSub != nil: if orderInfo.ParentId == 0 && anchorSub.OrderId > 0 && anchorSub.OrderId != orderInfo.Id {