diff --git a/internal/logic/admin/user/updateUserSubscribeLogic.go b/internal/logic/admin/user/updateUserSubscribeLogic.go index b521346..6ec2267 100644 --- a/internal/logic/admin/user/updateUserSubscribeLogic.go +++ b/internal/logic/admin/user/updateUserSubscribeLogic.go @@ -54,6 +54,7 @@ func (l *UpdateUserSubscribeLogic) UpdateUserSubscribe(req *types.UpdateUserSubs UUID: userSub.UUID, Status: userSub.Status, NodeGroupId: userSub.NodeGroupId, + GroupLocked: userSub.GroupLocked, }) if err != nil { diff --git a/internal/logic/common/inviteLinkResolver.go b/internal/logic/common/inviteLinkResolver.go index fa6ab9a..299e60a 100644 --- a/internal/logic/common/inviteLinkResolver.go +++ b/internal/logic/common/inviteLinkResolver.go @@ -215,18 +215,26 @@ func (r *InviteLinkResolver) generateShortLinkWithTimeout(referCode string, time } _, domain := r.resolveShareURLAndDomain() - requestCtx := r.ctx - var cancel context.CancelFunc - if timeout > 0 { - requestCtx, cancel = context.WithTimeout(r.ctx, timeout) - defer cancel() + const maxRetries = 3 + var lastErr error + for attempt := 0; attempt < maxRetries; attempt++ { + requestCtx := r.ctx + var cancel context.CancelFunc + if timeout > 0 { + requestCtx, cancel = context.WithTimeout(r.ctx, timeout) + } + + shortLink, err := r.createShortLink(requestCtx, longLink, domain) + if cancel != nil { + cancel() + } + if err == nil && strings.TrimSpace(shortLink) != "" { + return strings.TrimSpace(shortLink), nil + } + lastErr = err } - shortLink, err := r.createShortLink(requestCtx, longLink, domain) - if err != nil { - return "", err - } - return strings.TrimSpace(shortLink), nil + return "", lastErr } func (r *InviteLinkResolver) getCachedShortLink(referCode string) string {