mh_server/config/config.go
2023-10-10 17:16:44 +08:00

161 lines
4.3 KiB
Go

package config
import (
"errors"
"fmt"
"github.com/fsnotify/fsnotify"
"github.com/spf13/viper"
)
type config struct {
Env string
ServerPort int
JwtUserAccessKey string
JwtUserRefreshKey string
JwtUserAccessExpire int64
JwtUserRefreshExpire int64
JwtAdminAccessKey string
JwtAdminRefreshKey string
JwtAdminAccessExpire int64
JwtAdminRefreshExpire int64
LogPath string
LogFile string
LogLevel int
DBDriver string
DBHost string
DBPort int
DBUser string
DBPassword string
DBName string
WxAppId string
WxAppSecret string
WxMchID string
WxMchSecret string
WxCertFile string
WxKeyFile string
WxRootCaFile string
ApplicationAppId string
ApplicationAppSecret string
ApplicationMchID string
ApplicationMchSecret string
WxPayCallBackUrl string
AliPayCallBackUrl string
SmsAccessKeyID string
SmsAccessKeySecret string
SmsSignName string
SmsTemplateCode string
RedisHost string
RedisPort int
RedisPassword string
RedisDB int
//LotteryHost string
//LotteryPort int
XianMaiBaseUrl string
}
var AppConfig config
func Init() {
viper.AutomaticEnv()
viper.SetDefault("ENV", "dev")
viper.SetDefault("CONFIG_PATH", "./configs")
viper.SetDefault("CONFIG_FILE_NAME", "server")
configPath := viper.GetString("CONFIG_PATH")
configFile := viper.GetString("CONFIG_FILE_NAME")
env := viper.GetString("ENV")
viper.AddConfigPath(fmt.Sprintf("%s/%s", configPath, env))
viper.SetConfigName(configFile)
viper.SetConfigType("json")
initConfig()
viper.WatchConfig()
viper.OnConfigChange(func(e fsnotify.Event) {
initConfig()
})
}
func initConfig() {
fmt.Println("initConfig....")
err := viper.ReadInConfig()
if err != nil {
panic(errors.New(fmt.Sprintf("Fatal error configs file: %s \n", err)))
}
AppConfig = config{
Env: viper.GetString("ENV"),
ServerPort: viper.GetInt("server.port"),
JwtUserAccessKey: viper.GetString("jwt.user.access_key"),
JwtUserRefreshKey: viper.GetString("jwt.user.refresh_key"),
JwtUserAccessExpire: viper.GetInt64("jwt.user.access_expire"),
JwtUserRefreshExpire: viper.GetInt64("jwt.user.refresh_expire"),
JwtAdminAccessKey: viper.GetString("jwt.admin.access_key"),
JwtAdminRefreshKey: viper.GetString("jwt.admin.refresh_key"),
JwtAdminAccessExpire: viper.GetInt64("jwt.admin.access_expire"),
JwtAdminRefreshExpire: viper.GetInt64("jwt.admin.refresh_expire"),
LogPath: viper.GetString("log.path"),
LogFile: viper.GetString("log.file"),
LogLevel: viper.GetInt("log.level"),
DBDriver: viper.GetString("db.driver"),
DBHost: viper.GetString("db.host"),
DBPort: viper.GetInt("db.port"),
DBUser: viper.GetString("db.user"),
DBPassword: viper.GetString("db.password"),
DBName: viper.GetString("db.db_name"),
WxAppId: viper.GetString("wx.app_id"),
WxAppSecret: viper.GetString("wx.app_secret"),
WxMchID: viper.GetString("wx.app_mchId"),
WxMchSecret: viper.GetString("wx.app_mchSecret"),
//WxCertFile: viper.GetString("wx.wx_pay.cert_file"),
//WxKeyFile: viper.GetString("wx.wx_pay.key_file"),
//WxRootCaFile: viper.GetString("wx.wx_pay.root_ca_file"),
//WxPayCallBackUrl: viper.GetString("wx.wx_pay.callback_url"),
WxCertFile: viper.GetString("wx_pay.cert_file"),
WxKeyFile: viper.GetString("wx_pay.key_file"),
WxRootCaFile: viper.GetString("wx_pay.root_ca_file"),
WxPayCallBackUrl: viper.GetString("wx_pay.callback_url"),
AliPayCallBackUrl: viper.GetString("ali_pay.callback_url"),
ApplicationAppId: viper.GetString("app.app_id"),
ApplicationAppSecret: viper.GetString("app.app_secret"),
ApplicationMchID: viper.GetString("app.app_mchId"),
ApplicationMchSecret: viper.GetString("app.app_mchSecret"),
SmsAccessKeyID: viper.GetString("sms.access_key_id"),
SmsAccessKeySecret: viper.GetString("sms.access_key_secret"),
SmsSignName: viper.GetString("sms.sign_name"),
SmsTemplateCode: viper.GetString("sms.template_code"),
RedisHost: viper.GetString("redis.host"),
RedisPort: viper.GetInt("redis.port"),
RedisPassword: viper.GetString("redis.password"),
RedisDB: viper.GetInt("redis.db"),
XianMaiBaseUrl: viper.GetString("xianmai_base_url"),
}
//fmt.Printf("%+v", AppConfig)
}