package auth import ( "context" "perms-system-server/internal/middleware" "perms-system-server/internal/response" "perms-system-server/internal/svc" "perms-system-server/internal/types" "github.com/zeromicro/go-zero/core/logx" ) type UserInfoLogic struct { logx.Logger ctx context.Context svcCtx *svc.ServiceContext } func NewUserInfoLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UserInfoLogic { return &UserInfoLogic{ Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx, } } // UserInfo 获取当前登录用户信息。返回当前 JWT 令牌对应用户的完整个人信息、成员类型和权限列表,用于前端初始化用户状态。 func (l *UserInfoLogic) UserInfo() (resp *types.UserInfo, err error) { ud := middleware.GetUserDetails(l.ctx) if ud == nil { return nil, response.ErrUnauthorized("未登录") } return &types.UserInfo{ UserId: ud.UserId, Username: ud.Username, Nickname: ud.Nickname, Avatar: ud.Avatar, Email: ud.Email, Phone: ud.Phone, IsSuperAdmin: ud.IsSuperAdminRaw, MustChangePassword: ud.MustChangePwdRaw, MemberType: ud.MemberType, Perms: ud.Perms, }, nil }