159 lines
4.2 KiB
Go
159 lines
4.2 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
|
|
}
|
|
|
|
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"),
|
|
}
|
|
|
|
//fmt.Printf("%+v", AppConfig)
|
|
}
|