package utils import ( "context" "encoding/json" "fmt" "strconv" "time" beeLogger "github.com/beego/bee/v2/logger" "github.com/beego/beego/v2/server/web" "github.com/go-redis/redis/v8" ) // 数据库配置 var ( RunMode string MYSQL_URL_MASTER string MYSQL_URL_RDDP string MYSQL_URL_ETA string REDIS_CACHE string //缓存地址 Redis *redis.Client //redis链接 ) // 日志配置 var ( LogPath string //调用过程中的日志存放地址 LogFile string ApiLogPath string // 接口请求地址和接口返回值日志存放地址 ApiLogFile string BinLogPath string // 数据库相关的日志存放地址 BinLogFile string LogMaxDays int // 日志最大保留天数 ) var ( SMS_TPLID string // 短信模板 ) var AlarmMsgUrl string // 报警地址 // 微信相关 var ( WX_MINI_APPID string WX_MINI_APP_SECRET string //WX_ORIGIN_ID string //WX_APPID string //WX_APP_SECRET string ) var SmsApiUrl string // 金瑞短信API调用地址 var DesKey string // 接口返回加密KEY var BusinessConfReportChartExpiredTime time.Duration //图表有效期鉴权时间,单位:分钟 func init() { tmpRunMode, err := web.AppConfig.String("run_mode") if err != nil { panic(any("配置文件读取run_mode错误 " + err.Error())) } RunMode = tmpRunMode fmt.Println("RunMode:", RunMode) if RunMode == "" { configPath := `/home/code/config/eta_mini_api/conf/app.conf` fmt.Println("configPath:", configPath) err = web.LoadAppConfig("ini", configPath) if err != nil { fmt.Println("web.LoadAppConfig Err:" + err.Error()) } tmpRunMode, _ := web.AppConfig.String("run_mode") RunMode = tmpRunMode } config, err := web.AppConfig.GetSection(RunMode) if err != nil { panic(any("配置文件读取错误 " + err.Error())) } beeLogger.Log.Info(RunMode + " 模式") MYSQL_URL_RDDP = config["mysql_url_rddp"] MYSQL_URL_MASTER = config["mysql_url_master"] MYSQL_URL_ETA = config["mysql_url_eta"] SMS_TPLID = config["sms_tplId"] DesKey = config["des_key"] WX_MINI_APPID = config["wx_mini_appid"] WX_MINI_APP_SECRET = config["wx_mini_app_secret"] //WX_ORIGIN_ID = config["wx_origin_id"] //WX_APPID = config["wx_appid"] //WX_APP_SECRET = config["wx_app_secret"] SmsApiUrl = config["sms_api_url"] initRedis(config) } // initRedis 初始化redis配置 func initRedis(config map[string]string) { REDIS_CACHE = config["beego_cache"] if len(REDIS_CACHE) <= 0 { panic("redis链接参数没有配置") } var redisConf map[string]string err := json.Unmarshal([]byte(REDIS_CACHE), &redisConf) if err != nil { panic("redis 配置异常失败:" + err.Error()) } redisDb := 0 //默认使用redis的0库 if dbStr, ok := redisConf["db"]; ok { redisDb, err = strconv.Atoi(dbStr) if err != nil { panic("redis 操作db库配置异常,db:" + dbStr) } } client := redis.NewClient(&redis.Options{ Addr: redisConf["conn"], Password: redisConf["password"], DB: redisDb, //PoolSize: 10, //连接池最大socket连接数,默认为10倍CPU数, 10 * runtime.NumCPU(暂不配置) }) _, err = client.Ping(context.TODO()).Result() if err != nil { panic("redis 链接失败:" + err.Error()) } // 日志配置 { LogPath = config["log_path"] LogFile = config["log_file"] BinLogPath = config["binlog_path"] BinLogFile = config["binlog_file"] ApiLogPath = config["apilog_path"] ApiLogFile = config["apilog_file"] logMaxDaysStr := config["log_max_day"] LogMaxDays, _ = strconv.Atoi(logMaxDaysStr) } //全局赋值redis链接 Redis = client }