package config import ( "errors" "fmt" "fonchain-fiee/pkg/common" "github.com/BurntSushi/toml" "gopkg.in/ini.v1" "os" "strconv" ) var ( AppMode string HttpPort string Key string Cert string IsHttps bool RunHttps bool Domain string OssDomain string ServerDM string Env string DriverUrl string AppointUrl string MaterialHost string BosAk string BosSk string Endpoint string BosBucketName string BosBaseDir string BosUrl string BosHttp string BosDomain string ProjectMapDir string JaegerHost string JaegerOpen bool Cron bool DingAccessToken string DingUrl string HolidayID string HolidaySecret string HolidaySingleUrl string HolidayMultiUrl string ErpAk string ErpSk string // rabbitmq RabbitmqUser string RabbitmqPassword string RabbitmqHost string RabbitmqPort int RabbitmqVhost string RabbitmqVhostArtwork string RedisDB int RedisAddr string RedisPw string //shop配置 ShopHost string //ShopDetail string // 地图 MapAppCode string // es ElasticHost string SendIndexesUrl string ChatGptHost string ApiHost string Level string Filename string MaxSize string MaxAge string MaxBackups string YearGiftCheckHost string Aliyun struct { AccessKeyId string AccessKeySecret string } Blockchain struct { Key string PubKey string } ) /********start-配置信息*********/ // Baiduco 百度上链 type Mysql struct { Db string DbHost string DbPort string DbUser string DbPassWord string DbName string } type Redis struct { RedisDB string RedisAddr string RedisPW string RedisDBNAme string } type System struct { Mode string Version string HttpPort string Host string RedirectUri string } type Mobile struct { SK string AK string URL string DingDingKey string } type Ai struct { Host string TelNum string Password string } type Config struct { Mysql Mysql `toml:"mysql"` Redis Redis `toml:"redis"` System System `toml:"system"` Mobile Mobile `toml:"mobile"` Ai Ai `toml:"ai"` } /********start-配置信息*********/ var AppConfig *Config func newConfig() *Config { return new(Config) } func LoadEnv(path string) (*Config, error) { _, err := os.Stat(path) if err != nil { return nil, err } AppConfig = newConfig() if _, err := toml.DecodeFile(path, AppConfig); err != nil { return nil, err } return AppConfig, nil } func LoadEnvFromFileInfo(data string) (*Config, error) { fmt.Println(data) if data == "" { return nil, errors.New("nacos 配置文件为空") } AppConfig = newConfig() if _, err := toml.Decode(data, AppConfig); err != nil { return nil, err } return AppConfig, nil } func GetOptions() { iniConf, err := common.GetConf() if err != nil { panic("iniConf error") } file, err := ini.Load(iniConf) if err != nil { fmt.Println("服务器配置文件读取错误,请检查文件路径:", err) } LoadServer(file) } func LoadServer(file *ini.File) { AppMode = file.Section("service").Key("AppMode").String() IsHttps, _ = file.Section("service").Key("IsHTTPS").Bool() RunHttps, _ = file.Section("service").Key("RunHTTPS").Bool() Key = file.Section("service").Key("Key").String() Cert = file.Section("service").Key("Cert").String() HttpPort = file.Section("service").Key("HttpPort").String() Domain = file.Section("service").Key("Domain").String() OssDomain = file.Section("service").Key("OssDomain").String() ServerDM = file.Section("service").Key("ServerDM").String() DriverUrl = file.Section("service").Key("DriverUrl").String() Env = file.Section("service").Key("Env").String() JaegerHost = file.Section("service").Key("JaegerHost").String() JaegerOpen, _ = file.Section("service").Key("JaegerOpen").Bool() Cron, _ = file.Section("service").Key("Cron").Bool() YearGiftCheckHost = file.Section("service").Key("YearGiftCheckHost").String() ProjectMapDir = file.Section("file").Key("ProjectMapDir").String() AppointUrl = file.Section("service").Key("AppointUrl").String() MaterialHost = file.Section("service").Key("MaterialHost").String() BosAk = file.Section("bos").Key("Ak").String() BosSk = file.Section("bos").Key("Sk").String() BosBucketName = file.Section("bos").Key("BucketName").String() BosBaseDir = file.Section("bos").Key("BosBaseDir").String() Endpoint = file.Section("bos").Key("Endpoint").String() BosUrl = file.Section("bos").Key("BosUrl").String() BosHttp = file.Section("bos").Key("BosHttp").String() BosDomain = file.Section("bos").Key("BosDomain").String() DingUrl = file.Section("ding").Key("Url").String() DingAccessToken = file.Section("ding").Key("AccessToken").String() //加载获取万年历配置 HolidayID = file.Section("holiday").Key("ID").String() HolidaySecret = file.Section("holiday").Key("Secret").String() HolidaySingleUrl = file.Section("holiday").Key("SingleUrl").String() HolidayMultiUrl = file.Section("holiday").Key("MultiUrl").String() // 加载 rabbitmq 配置 RabbitmqUser = file.Section("rabbitmq").Key("User").String() RabbitmqPassword = file.Section("rabbitmq").Key("Password").String() RabbitmqHost = file.Section("rabbitmq").Key("Host").String() RabbitmqPort, _ = file.Section("rabbitmq").Key("Port").Int() RabbitmqVhost = file.Section("rabbitmq").Key("Vhost").String() RabbitmqVhostArtwork = file.Section("rabbitmq").Key("VhostArtwork").String() //加载 redis dbStr := file.Section("redis").Key("RedisDBNAme").String() RedisDB, _ = strconv.Atoi(dbStr) RedisAddr = file.Section("redis").Key("RedisAddr").String() RedisPw = file.Section("redis").Key("RedisPW").String() ShopHost = file.Section("shop").Key("ShopHost").String() //ShopDetail = file.Section("shop").Key("ShopDetail").String() // 地图 MapAppCode = file.Section("service").Key("MapAppCode").String() // 地图 ElasticHost = file.Section("es").Key("ElasticHost").String() SendIndexesUrl = file.Section("api").Key("SendIndexesUrl").String() ChatGptHost = file.Section("api").Key("chatGptHost").String() ErpAk = file.Section("api").Key("erpak").String() ErpSk = file.Section("api").Key("erpsk").String() ApiHost = file.Section("service").Key("ApiHost").String() // zap Level = file.Section("zap").Key("Level").String() Filename = file.Section("zap").Key("Filename").String() MaxSize = file.Section("zap").Key("MaxSize").String() MaxAge = file.Section("zap").Key("MaxAge").String() MaxBackups = file.Section("zap").Key("MaxBackups").String() Aliyun.AccessKeyId = file.Section("aliyun").Key("accessKeyId").String() Aliyun.AccessKeySecret = file.Section("aliyun").Key("accessKeySecret").String() Blockchain.PubKey = file.Section("blockchain").Key("PubKey").String() Blockchain.Key = file.Section("blockchain").Key("Key").String() }