servicecontext.go 1007 B

123456789101112131415161718192021222324252627282930313233
  1. package svc
  2. import (
  3. "perms-system-server/internal/config"
  4. "perms-system-server/internal/loaders"
  5. "perms-system-server/internal/middleware"
  6. "perms-system-server/internal/model"
  7. "github.com/zeromicro/go-zero/core/stores/redis"
  8. "github.com/zeromicro/go-zero/core/stores/sqlx"
  9. "github.com/zeromicro/go-zero/rest"
  10. )
  11. type ServiceContext struct {
  12. Config config.Config
  13. JwtAuth rest.Middleware
  14. UserDetailsLoader *loaders.UserDetailsLoader
  15. *model.Models
  16. }
  17. func NewServiceContext(c config.Config) *ServiceContext {
  18. conn := sqlx.NewMysql(c.MySQL.DataSource)
  19. rds := redis.MustNewRedis(c.CacheRedis.Nodes[0].RedisConf)
  20. models := model.NewModels(conn, c.CacheRedis.Nodes, c.CacheRedis.KeyPrefix)
  21. udLoader := loaders.NewUserDetailsLoader(rds, c.CacheRedis.KeyPrefix, models)
  22. return &ServiceContext{
  23. Config: c,
  24. JwtAuth: middleware.NewJwtAuthMiddleware(c.Auth.AccessSecret, udLoader).Handle,
  25. UserDetailsLoader: udLoader,
  26. Models: models,
  27. }
  28. }