goProject/trunk/center/common/configsYaml/dbConfig.go
2025-01-08 17:48:14 +08:00

208 lines
4.7 KiB
Go

package configYaml
import (
"goutil/logUtilPlus"
"goutil/mysqlUtil"
"goutil/redisUtil"
"time"
)
// DbConfig
//
// @description: mysql配置对象
type DbConfig struct {
// 管理员数据库链接字符串
adminConfig *mysqlUtil.DBConfig
// 用户数据库链接字符串
userConfig *mysqlUtil.DBConfig
// 充值数据库链接字符串
payConfig *mysqlUtil.DBConfig
// 游戏模型数据库链接字符串
gameModelConfig *mysqlUtil.DBConfig
// 游戏数据库链接字符串
gameConfig *mysqlUtil.DBConfig
// 游戏数据库链接字符串
playerConfig *mysqlUtil.DBConfig
// redis配置对象
redisConfig *redisUtil.RedisConfig
}
var (
// 数据库配置对象
dbConfigObj *DbConfig
)
// GetAdminConfig
// @description: 获取admin库配置
// parameter:
//
// @receiver config:config
//
// return:
//
// @*mysqlUtil.DBConfig:admin库配置
func (config *DbConfig) GetAdminConfig() *mysqlUtil.DBConfig {
return config.adminConfig
}
// GetUserConfig
// @description: 获取user库配置
// parameter:
//
// @receiver config:config
//
// return:
//
// @*mysqlUtil.DBConfig:user库配置
func (config *DbConfig) GetUserConfig() *mysqlUtil.DBConfig {
return config.userConfig
}
// GetPayConfig
// @description: 获取pay库配置
// parameter:
//
// @receiver config:config
//
// return:
//
// @*mysqlUtil.DBConfig:user库配置
func (config *DbConfig) GetPayConfig() *mysqlUtil.DBConfig {
return config.payConfig
}
// GetGameModelConfig
// @description: 获取model库配置
// parameter:
//
// @receiver config:config
//
// return:
//
// @*mysqlUtil.DBConfig:model库配置
func (config *DbConfig) GetGameModelConfig() *mysqlUtil.DBConfig {
return config.gameModelConfig
}
// GetGameConfig
// @description: 获取Game库配置
// parameter:
//
// @receiver config:config
//
// return:
//
// @*mysqlUtil.DBConfig:Game库配置
func (config *DbConfig) GetGameConfig() *mysqlUtil.DBConfig {
return config.gameConfig
}
// GetPlayerConfig
// @description: 获取玩家库配置
// parameter:
//
// @receiver config:config
//
// return:
//
// @*mysqlUtil.DBConfig:玩家库配置
func (config *DbConfig) GetPlayerConfig() *mysqlUtil.DBConfig {
return config.playerConfig
}
// GetRedisConfig
// @description: 获取redis配置对象
// parameter:
//
// @receiver config:config
//
// return:
//
// @*redisUtil.RedisConfig:redis配置
func (config *DbConfig) GetRedisConfig() *redisUtil.RedisConfig {
return config.redisConfig
}
// newMysqlConfig
//
// @description: 创建新的Mysql配置对象
//
// parameter:
//
// @_gameModelConfig:
// @_gameConfig:
// @_playerConfig:
// @_redisConfig:
//
// return:
//
// @*DbConfig:
func newMysqlConfig(_adminConfig *mysqlUtil.DBConfig, _userConfig *mysqlUtil.DBConfig, _payConfig *mysqlUtil.DBConfig, _gameModelConfig *mysqlUtil.DBConfig,
_gameConfig *mysqlUtil.DBConfig,
_playerConfig *mysqlUtil.DBConfig,
_redisConfig *redisUtil.RedisConfig) *DbConfig {
return &DbConfig{
adminConfig: _adminConfig,
userConfig: _userConfig,
payConfig: _payConfig,
gameModelConfig: _gameModelConfig,
gameConfig: _gameConfig,
redisConfig: _redisConfig,
playerConfig: _playerConfig,
}
}
// initDbConfig
//
// @description: 初始化数据库配置
//
// parameter:
//
// @configObj: 数据库配置
//
// return:
//
// @error: 错误数据
func initDbConfig() error {
logUtilPlus.DebugLog("开始加载DbConfig")
redisConfig := ConfigYaml.Root.DbConfig.RedisConfig
dbConfig := ConfigYaml.Root.DbConfig
//if redisConfig == nil {
// logUtilPlus.DebugLog("redis配置为空")
// return nil
//}
// 初始化mysql配置对象
dbConfigObj = newMysqlConfig(
mysqlUtil.NewDBConfig(dbConfig.AdminDB.ConnectionString, dbConfig.AdminDB.MaxOpenConns, dbConfig.AdminDB.MaxIdleConns),
mysqlUtil.NewDBConfig(dbConfig.UserDB.ConnectionString, dbConfig.UserDB.MaxOpenConns, dbConfig.UserDB.MaxIdleConns),
mysqlUtil.NewDBConfig(dbConfig.PayDB.ConnectionString, dbConfig.PayDB.MaxOpenConns, dbConfig.PayDB.MaxIdleConns),
mysqlUtil.NewDBConfig(dbConfig.GameModel.ConnectionString, dbConfig.GameModel.MaxOpenConns, dbConfig.GameModel.MaxIdleConns),
mysqlUtil.NewDBConfig(dbConfig.GameDB.ConnectionString, dbConfig.GameDB.MaxOpenConns, dbConfig.GameDB.MaxIdleConns),
mysqlUtil.NewDBConfig(dbConfig.PlayerDB.ConnectionString, dbConfig.PlayerDB.MaxOpenConns, dbConfig.PlayerDB.MaxIdleConns),
redisUtil.NewRedisConfig2(redisConfig.ConnectionString, redisConfig.Password, redisConfig.Database, redisConfig.MaxActive, redisConfig.MaxIdle, time.Duration(redisConfig.IdleTimeout)*time.Second, time.Duration(redisConfig.DialConnectTimeout)*time.Second))
return nil
}
// GetDbConfig
//
// @description: 获取mysql配置
//
// parameter:
// return:
//
// @*DbConfig: mysql配置对象
func GetDbConfig() *DbConfig {
return dbConfigObj
}