package config import ( "github.com/BurntSushi/toml" "github.com/qit-team/snow-core/config" "os" ) const ( ProdEnv = "production" //线上环境 BetaEnv = "beta" //beta环境 DevEnv = "develop" //开发环境 LocalEnv = "local" //本地环境 ) var srvConf *Config // ------------------------配置文件解析 type Config struct { ServiceName string `toml:"ServiceName"` Env string `toml:"Env"` Debug bool `toml:"Debug"` PrometheusCollectEnable bool `toml:"PrometheusCollectEnable"` SkyWalkingOapServer string `toml:"SkyWalkingOapServer"` Log config.LogConfig `toml:"Log"` Redis config.RedisConfig `toml:"Redis"` Mns config.MnsConfig `toml:"AliMns"` Db config.DbConfig `toml:"Db"` Api config.ApiConfig `toml:"Api"` Admin config.ApiConfig `toml:"Admin"` Nacos Nacos `toml:"Nacas"` Rpc Rpc `toml:"Rpc"` AppKey string `toml:"AppKey"` Sm2 Sm2 `toml:"Sm2"` OpenApiMarketConfig MarketConfig `toml:"MarketConfig"` OpenApi OpenApi `toml:"OpenApi"` Jwt Jwt `toml:"Jwt"` AliOss AliOss `toml:"AliOss"` YouChu YouChuConfig `toml:"YouChu"` } type YouChuConfig struct { LoginHost string //登录地址 OrderHost string //订单地址 NotifyUrl string MilkUrl string //奶茶专区跳转链接 VoucherUrl string //代金券链接 MerchantId string //合作方编号 MchtNo string //上单商户号 AppID string //appid SopPublicKey string //服开公钥 SopPrivateKey string //服开私钥 } type AliOss struct { AccessKey string AccessKeySecret string EndPoint string BucKet string Domain string Dir string } type Jwt struct { SecretKey string } type OpenApi struct { MerchantId string SecretKey string IsProd bool NotifyUrl string TimeOut int } type MarketConfig struct { AppId string `json:"app_id"` //APP ID Sign string `json:"sign"` //签名 ReqCode string `json:"req_code"` //固定值:voucher.create MemId string `json:"mem_id"` //商户号 PosId string `json:"pos_id"` //商户方平台号 Host string `json:"-"` SecretKey string } type Sm2 struct { PublicKey string PrivateKey string } type Rpc struct { User string } type Nacos struct { Url string Port int64 } func newConfig() *Config { return new(Config) } // ------------------------ 加载配置 ------------------------// func Load(path string) (*Config, error) { _, err := os.Stat(path) if err != nil { return nil, err } conf := newConfig() if _, err := toml.DecodeFile(path, conf); err != nil { return nil, err } srvConf = conf return conf, nil } // 当前配置 func GetConf() *Config { return srvConf } // 是否调试模式 func IsDebug() bool { return srvConf.Debug } // 当前环境,默认本地开发 func GetEnv() string { if srvConf.Env == "" { return LocalEnv } return srvConf.Env } // 是否当前环境 func IsEnvEqual(env string) bool { return GetEnv() == env }