package svc import ( "gorm.io/driver/mysql" "gorm.io/gorm" "gorm.io/gorm/logger" "live-service/app/user_center/model" "live-service/app/user_center/rpc/internal/config" "log" "os" "time" ) type ServiceContext struct { Config config.Config UserModel model.UserModel UserPlatformModel model.UserPlatformModel UserGiftModel model.UserGiftModel UserIntegralModel model.UserIntegralModel UserNobilityModel model.UserNobilityModel StatisticsPvpModel model.StatisticsPvpModel RankPvpModel model.RankPvpModel GiftModel model.GiftModel } func NewServiceContext(c config.Config) *ServiceContext { gormDb, err := gorm.Open(mysql.Open(c.DB.DataSource), &gorm.Config{ Logger: logger.New( log.New(os.Stdout, "\r\n", log.LstdFlags), logger.Config{ SlowThreshold: 5 * time.Second, LogLevel: logger.Warn, IgnoreRecordNotFoundError: true, Colorful: true, }, ), }) if err != nil { log.Fatal(err) } return &ServiceContext{ Config: c, UserModel: model.NewUserModel(gormDb), UserPlatformModel: model.NewUserPlatformModel(gormDb), UserGiftModel: model.NewUserGiftModel(gormDb), UserIntegralModel: model.NewUserIntegralModel(gormDb), UserNobilityModel: model.NewUserNobilityModel(gormDb), StatisticsPvpModel: model.NewStatisticsPvpModel(gormDb), RankPvpModel: model.NewRankPvpModel(gormDb), GiftModel: model.NewGiftModel(gormDb), } }