家庭组 权益修改
Build docker and publish / build (20.15.1) (push) Successful in 8m16s

This commit is contained in:
2026-03-04 22:02:42 -08:00
parent 3594097d47
commit 4349a7ea2f
28 changed files with 960 additions and 96 deletions
@@ -2,7 +2,9 @@ package user
import (
"context"
"strings"
logicCommon "github.com/perfect-panel/server/internal/logic/common"
"github.com/perfect-panel/server/internal/model/user"
"github.com/perfect-panel/server/internal/svc"
"github.com/perfect-panel/server/internal/types"
@@ -33,6 +35,9 @@ func (l *GetUserDetailLogic) GetUserDetail(req *types.GetDetailRequest) (*types.
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DatabaseQueryError), "get user detail error: %v", err.Error())
}
tool.DeepCopy(&resp, userInfo)
if referCode := strings.TrimSpace(resp.ReferCode); referCode != "" {
resp.ShareLink = logicCommon.NewInviteLinkResolver(l.ctx, l.svcCtx).ResolveInviteLink(referCode)
}
type familyRelation struct {
FamilyId int64
@@ -3,7 +3,10 @@ package user
import (
"context"
"fmt"
"strings"
"time"
logicCommon "github.com/perfect-panel/server/internal/logic/common"
"github.com/perfect-panel/server/internal/model/user"
"github.com/perfect-panel/server/internal/svc"
"github.com/perfect-panel/server/internal/types"
@@ -45,6 +48,16 @@ func (l *GetUserListLogic) GetUserList(req *types.GetUserListRequest) (*types.Ge
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DatabaseQueryError), "GetUserListLogic failed: %v", err.Error())
}
referCodes := make([]string, 0, len(list))
for _, item := range list {
referCode := strings.TrimSpace(item.ReferCode)
if referCode == "" {
continue
}
referCodes = append(referCodes, referCode)
}
inviteLinkMap := logicCommon.NewInviteLinkResolver(l.ctx, l.svcCtx).ResolveInviteLinksBatch(referCodes, 8, 3, 1500*time.Millisecond)
// Batch fetch active subscriptions
userIds := make([]int64, 0, len(list))
for _, u := range list {
@@ -171,6 +184,9 @@ func (l *GetUserListLogic) GetUserList(req *types.GetUserListRequest) (*types.Ge
u.FamilyRoleName = fmt.Sprintf("role_%d", relation.Role)
}
}
if referCode := strings.TrimSpace(item.ReferCode); referCode != "" {
u.ShareLink = inviteLinkMap[referCode]
}
userRespList = append(userRespList, u)
}