package svc import ( "backend/internal/config" "backend/internal/middleware" "backend/pkg/library/errs" "backend/pkg/library/errs/code" vi "backend/pkg/library/validator" memberUC "backend/pkg/member/domain/usecase" tokenUC "backend/pkg/permission/domain/usecase" "github.com/zeromicro/go-zero/core/stores/redis" "github.com/zeromicro/go-zero/rest" ) type ServiceContext struct { Config config.Config AuthMiddleware rest.Middleware AccountUC memberUC.AccountUseCase Validate vi.Validate TokenUC tokenUC.TokenUseCase PermissionUC tokenUC.PermissionUseCase RoleUC tokenUC.RoleUseCase RolePermission tokenUC.RolePermissionUseCase UserRoleUC tokenUC.UserRoleUseCase Redis *redis.Redis } func NewServiceContext(c config.Config) *ServiceContext { rds, err := redis.NewRedis(c.RedisConf) if err != nil { panic(err) } errs.Scope = code.CloudEPPortalGW rp := NewPermissionUC(&c) tkUC := NewTokenUC(&c, rds) return &ServiceContext{ Config: c, AuthMiddleware: middleware.NewAuthMiddleware(middleware.AuthMiddlewareParam{ TokenSec: c.Token.AccessSecret, TokenUseCase: tkUC, }).Handle, AccountUC: NewAccountUC(&c, rds), Validate: vi.MustValidator(), TokenUC: tkUC, PermissionUC: rp.PermissionUC, RoleUC: rp.RoleUC, RolePermission: rp.RolePermission, UserRoleUC: rp.UserRole, Redis: rds, } }