package utils import ( "context" "encoding/json" "fmt" "strconv" 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 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 DW_WX_Id string //微信原始ID DW_WX_APPID string // 东吴公众号appid DW_WX_APP_SECRET string TEMPLATE_ID_BY_PRODUCT string ) // 桥接服务 var ( ETA_MINI_BRIDGE_URL string ETA_MINI_APPID string ETA_MINI_APP_SECRET string ) var DesKey string // 接口返回加密KEY // 自定义的品种名称 var ( MINI_CUSTOM_PERMISSION_NAME string ZC_CUSTOM_PERMISSION_NAME string ) 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 = config["mysql_url"] MYSQL_URL_RDDP = config["mysql_url_rddp"] MYSQL_URL_MASTER = config["mysql_url_master"] 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"] DW_WX_Id = config["dw_wx_id"] DW_WX_APPID = config["dw_wx_appid"] DW_WX_APP_SECRET = config["dw_wx_app_secret"] TEMPLATE_ID_BY_PRODUCT = config["template_id_by_product"] ETA_MINI_BRIDGE_URL = config["eta_mini_bridge_url"] ETA_MINI_APPID = config["eta_mini_appid"] ETA_MINI_APP_SECRET = config["eta_mini_app_secret"] MINI_CUSTOM_PERMISSION_NAME = config["mini_custom_permission_name"] if MINI_CUSTOM_PERMISSION_NAME == "" { MINI_CUSTOM_PERMISSION_NAME = "PDF报告" } ZC_CUSTOM_PERMISSION_NAME = config["zc_custom_permission_name"] if ZC_CUSTOM_PERMISSION_NAME == "" { ZC_CUSTOM_PERMISSION_NAME = "PDF报告" } 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()) } //全局赋值redis链接 Redis = client }