package Config import ( "github.com/bitly/go-simplejson" cmap "github.com/orcaman/concurrent-map" "src/Common/Request" "sync" "time" ) type Config struct { Ini map[string]string //Ini配置 Sys cmap.ConcurrentMap //Sys配置 Sps cmap.ConcurrentMap //Sp配置 } var config *Config var once sync.Once func GetInstance() *Config { once.Do(func() { config = new(Config) config.Ini = initIniConfig("./", "config.ini", "debug") initLogConfig(config.Ini["log_path"], config.Ini["log_filename"], 24*30*time.Hour, 1*time.Hour) config.Sys = cmap.New() config.Sps = cmap.New() }) return config } func (this *Config) InitSysConfig() error { url := this.Ini["api_conf_sys"] var data string = "" var err error data, err = Request.Get(url) if err == nil { jsonObj, err1 := simplejson.NewJson([]byte(data)) if err1 != nil { err = err1 } else { sysConf, err2 := jsonObj.Map() if err2 != nil { err = err2 } else { for k, v := range sysConf { //log.Infoln(k, v) this.Sys.Set(k, v) } } } } return err } func (this *Config) InitSpsConfig() error { url := this.Ini["api_conf_sps"] var data string = "" var err error data, err = Request.Get(url) if err == nil { jsonObj, err1 := simplejson.NewJson([]byte(data)) if err1 != nil { err = err1 } else { spsConf, err2 := jsonObj.Map() if err2 != nil { err = err2 } else { for k, v := range spsConf { //log.Infoln(k, v) this.Sps.Set(k, v) } } } } return err }