package admin import ( "bindbox-game/internal/pkg/logger" "bindbox-game/internal/repository/mysql" "bindbox-game/internal/repository/mysql/dao" activitysvc "bindbox-game/internal/service/activity" adminsvc "bindbox-game/internal/service/admin" bannersvc "bindbox-game/internal/service/banner" channelsvc "bindbox-game/internal/service/channel" douyinsvc "bindbox-game/internal/service/douyin" gamesvc "bindbox-game/internal/service/game" livestreamsvc "bindbox-game/internal/service/livestream" productsvc "bindbox-game/internal/service/product" snapshotsvc "bindbox-game/internal/service/snapshot" syscfgsvc "bindbox-game/internal/service/sysconfig" titlesvc "bindbox-game/internal/service/title" usersvc "bindbox-game/internal/service/user" "github.com/redis/go-redis/v9" ) type handler struct { logger logger.CustomLogger writeDB *dao.Query readDB *dao.Query repo mysql.Repo svc adminsvc.Service activity activitysvc.Service product productsvc.Service userSvc usersvc.Service banner bannersvc.Service channel channelsvc.Service title titlesvc.Service syscfg syscfgsvc.Service snapshotSvc snapshotsvc.Service rollbackSvc snapshotsvc.RollbackService douyinSvc douyinsvc.Service livestream livestreamsvc.Service } func New(logger logger.CustomLogger, db mysql.Repo, rdb *redis.Client) *handler { userSvc := usersvc.New(logger, db) snapshotSvc := snapshotsvc.NewService(db) rollbackSvc := snapshotsvc.NewRollbackService(db, snapshotSvc) syscfgSvc := syscfgsvc.New(logger, db) ticketSvc := gamesvc.NewTicketService(logger, db) // 游戏资格服务 titleSvc := titlesvc.New(logger, db) // 称号服务 return &handler{ logger: logger, writeDB: dao.Use(db.GetDbW()), readDB: dao.Use(db.GetDbR()), repo: db, svc: adminsvc.New(logger, db), activity: activitysvc.New(logger, db, userSvc, rdb), product: productsvc.New(logger, db), userSvc: userSvc, banner: bannersvc.New(logger, db), channel: channelsvc.New(logger, db), title: titleSvc, syscfg: syscfgSvc, snapshotSvc: snapshotSvc, rollbackSvc: rollbackSvc, douyinSvc: douyinsvc.New(logger, db, syscfgSvc, ticketSvc, userSvc, titleSvc), livestream: livestreamsvc.New(logger, db, ticketSvc), // 传入ticketSvc } }