From ead1a9a8a6692b48295896dbf63c3d4c30ed647b Mon Sep 17 00:00:00 2001 From: Chang lue Tsen Date: Mon, 5 May 2025 10:55:46 -0400 Subject: [PATCH] fix(subscribe): improve order details retrieval logic in resetUserSubscribeTokenLogic --- .../public/user/resetUserSubscribeTokenLogic.go | 17 +++++++++++++---- internal/model/user/subscribe.go | 1 - 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/internal/logic/public/user/resetUserSubscribeTokenLogic.go b/internal/logic/public/user/resetUserSubscribeTokenLogic.go index 239b293..edf9342 100644 --- a/internal/logic/public/user/resetUserSubscribeTokenLogic.go +++ b/internal/logic/public/user/resetUserSubscribeTokenLogic.go @@ -2,6 +2,7 @@ package user import ( "context" + "github.com/perfect-panel/server/internal/model/order" "time" "github.com/perfect-panel/server/pkg/constant" @@ -47,12 +48,20 @@ func (l *ResetUserSubscribeTokenLogic) ResetUserSubscribeToken(req *types.ResetU l.Errorw("UserSubscribeId does not belong to the current user") return errors.Wrapf(xerr.NewErrCode(xerr.InvalidAccess), "UserSubscribeId does not belong to the current user") } + + var orderDetails *order.Details // find order - orderDetails, err := l.svcCtx.OrderModel.FindOneDetails(l.ctx, userSub.OrderId) - if err != nil { - l.Errorw("FindOneDetails failed:", logger.Field("error", err.Error())) - return errors.Wrapf(xerr.NewErrCode(xerr.DatabaseQueryError), "FindOneDetails failed: %v", err.Error()) + if userSub.OrderId != 0 { + orderDetails, err = l.svcCtx.OrderModel.FindOneDetails(l.ctx, userSub.OrderId) + if err != nil { + l.Errorw("FindOneDetails failed:", logger.Field("error", err.Error())) + return errors.Wrapf(xerr.NewErrCode(xerr.DatabaseQueryError), "FindOneDetails failed: %v", err.Error()) + } + } else { + // if order id is 0, this a admin create user subscribe + orderDetails = &order.Details{} } + userSub.Token = uuidx.SubscribeToken(orderDetails.OrderNo + time.Now().Format("20060102150405.000")) userSub.UUID = uuid.New().String() var newSub user.Subscribe diff --git a/internal/model/user/subscribe.go b/internal/model/user/subscribe.go index 2e25bac..93fffd3 100644 --- a/internal/model/user/subscribe.go +++ b/internal/model/user/subscribe.go @@ -55,7 +55,6 @@ func (m *defaultUserModel) FindOneSubscribe(ctx context.Context, id int64) (*Sub return conn.Model(&Subscribe{}).Where("id = ?", id).First(&data).Error }) return &data, err - } func (m *defaultUserModel) FindUsersSubscribeBySubscribeId(ctx context.Context, subscribeId int64) ([]*Subscribe, error) {