config.go 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. package utils
  2. import (
  3. "context"
  4. "encoding/json"
  5. "fmt"
  6. "strconv"
  7. "time"
  8. beeLogger "github.com/beego/bee/v2/logger"
  9. "github.com/beego/beego/v2/server/web"
  10. "github.com/go-redis/redis/v8"
  11. )
  12. // 数据库配置
  13. var (
  14. RunMode string
  15. MYSQL_URL_MASTER string
  16. MYSQL_URL_RDDP string
  17. MYSQL_URL_ETA string
  18. REDIS_CACHE string //缓存地址
  19. Redis *redis.Client //redis链接
  20. )
  21. // 日志配置
  22. var (
  23. LogPath string //调用过程中的日志存放地址
  24. LogFile string
  25. ApiLogPath string // 接口请求地址和接口返回值日志存放地址
  26. ApiLogFile string
  27. BinLogPath string // 数据库相关的日志存放地址
  28. BinLogFile string
  29. LogMaxDays int // 日志最大保留天数
  30. )
  31. var (
  32. SMS_TPLID string // 短信模板
  33. )
  34. var AlarmMsgUrl string // 报警地址
  35. // 微信相关
  36. var (
  37. WX_MINI_APPID string
  38. WX_MINI_APP_SECRET string
  39. //WX_ORIGIN_ID string
  40. //WX_APPID string
  41. //WX_APP_SECRET string
  42. )
  43. var SmsApiUrl string // 金瑞短信API调用地址
  44. var DesKey string // 接口返回加密KEY
  45. var BusinessConfReportChartExpiredTime time.Duration //图表有效期鉴权时间,单位:分钟
  46. func init() {
  47. tmpRunMode, err := web.AppConfig.String("run_mode")
  48. if err != nil {
  49. panic(any("配置文件读取run_mode错误 " + err.Error()))
  50. }
  51. RunMode = tmpRunMode
  52. fmt.Println("RunMode:", RunMode)
  53. if RunMode == "" {
  54. configPath := `/home/code/config/eta_mini_api/conf/app.conf`
  55. fmt.Println("configPath:", configPath)
  56. err = web.LoadAppConfig("ini", configPath)
  57. if err != nil {
  58. fmt.Println("web.LoadAppConfig Err:" + err.Error())
  59. }
  60. tmpRunMode, _ := web.AppConfig.String("run_mode")
  61. RunMode = tmpRunMode
  62. }
  63. config, err := web.AppConfig.GetSection(RunMode)
  64. if err != nil {
  65. panic(any("配置文件读取错误 " + err.Error()))
  66. }
  67. beeLogger.Log.Info(RunMode + " 模式")
  68. MYSQL_URL_RDDP = config["mysql_url_rddp"]
  69. MYSQL_URL_MASTER = config["mysql_url_master"]
  70. MYSQL_URL_ETA = config["mysql_url_eta"]
  71. SMS_TPLID = config["sms_tplId"]
  72. DesKey = config["des_key"]
  73. WX_MINI_APPID = config["wx_mini_appid"]
  74. WX_MINI_APP_SECRET = config["wx_mini_app_secret"]
  75. //WX_ORIGIN_ID = config["wx_origin_id"]
  76. //WX_APPID = config["wx_appid"]
  77. //WX_APP_SECRET = config["wx_app_secret"]
  78. SmsApiUrl = config["sms_api_url"]
  79. initRedis(config)
  80. }
  81. // initRedis 初始化redis配置
  82. func initRedis(config map[string]string) {
  83. REDIS_CACHE = config["beego_cache"]
  84. if len(REDIS_CACHE) <= 0 {
  85. panic("redis链接参数没有配置")
  86. }
  87. var redisConf map[string]string
  88. err := json.Unmarshal([]byte(REDIS_CACHE), &redisConf)
  89. if err != nil {
  90. panic("redis 配置异常失败:" + err.Error())
  91. }
  92. redisDb := 0 //默认使用redis的0库
  93. if dbStr, ok := redisConf["db"]; ok {
  94. redisDb, err = strconv.Atoi(dbStr)
  95. if err != nil {
  96. panic("redis 操作db库配置异常,db:" + dbStr)
  97. }
  98. }
  99. client := redis.NewClient(&redis.Options{
  100. Addr: redisConf["conn"],
  101. Password: redisConf["password"],
  102. DB: redisDb,
  103. //PoolSize: 10, //连接池最大socket连接数,默认为10倍CPU数, 10 * runtime.NumCPU(暂不配置)
  104. })
  105. _, err = client.Ping(context.TODO()).Result()
  106. if err != nil {
  107. panic("redis 链接失败:" + err.Error())
  108. }
  109. // 日志配置
  110. {
  111. LogPath = config["log_path"]
  112. LogFile = config["log_file"]
  113. BinLogPath = config["binlog_path"]
  114. BinLogFile = config["binlog_file"]
  115. ApiLogPath = config["apilog_path"]
  116. ApiLogFile = config["apilog_file"]
  117. logMaxDaysStr := config["log_max_day"]
  118. LogMaxDays, _ = strconv.Atoi(logMaxDaysStr)
  119. }
  120. //全局赋值redis链接
  121. Redis = client
  122. }