package jsonconf import ( "common/logger" "encoding/json" "io/ioutil" "os" ) var ( g_jsonconf = new(GameConfig) ) type WithDrawDesc struct { Id int `json:"id"` Money float32 `json:"money"` Coin int `json:"coin"` Task int `json:"task"` Level int `json:"level"` Isnew int `json:"new"` Day int `json:"day"` } type ActiveWithdrawConfigDesc struct { Id int `json:"id"` Money float32 `json:"money"` Coin int `json:"coin"` Task int `json:"task"` Level int `json:"level"` Isnew int `json:"new"` Day int `json:"day"` } type GuanRedBagDesc struct { Ctype int `json:"type"` Id int `json:"id"` Cash int `json:"cash"` } type JiRedBagDesc struct { Ctype int `json:"type"` Id int `json:"id"` Cash int `json:"cash"` } type GunLevelConfigDesc struct { Id int `json:"id"` Gun_level int `json:"gun_level"` Luckybag float32 `json:"Luckybag"` RewardVideo int `json:"RewardVideo"` } type WinLevelConfigDesc struct { Id int `json:"id"` Win_Level int `json:"Win_Level"` LuckyBag float32 `json:"LuckyBag"` RewardVideo int `json:"RewardVideo"` } type OnlineRewardConfigDesc struct { Id int `json:"id"` Time int `json:"time"` Luckybag float32 `json:"Luckybag"` RewardVideo int `json:"RewardVideo"` } type GameConfig struct { WithDrawConfig []WithDrawDesc ActiveWithdrawConfig []ActiveWithdrawConfigDesc GuanRedBag []GuanRedBagDesc JiRedBag []JiRedBagDesc GunLevelConfig []GunLevelConfigDesc WinLevelConfig []WinLevelConfigDesc OnlineRewardConfig []OnlineRewardConfigDesc } func GetJsonConf() *GameConfig { return g_jsonconf } func GetOnlieRdNum(id int) *OnlineRewardConfigDesc { for _,v := range g_jsonconf.OnlineRewardConfig { if v.Id == id { return &v } } return nil } func GetWinLvRdNum(id int) *WinLevelConfigDesc { for _,v := range g_jsonconf.WinLevelConfig { if v.Id == id { return &v } } return nil } func GetGunLvRdNum(lv int) *GunLevelConfigDesc { for _,v := range g_jsonconf.GunLevelConfig { if v.Id == lv { return &v } } return nil } func GetJiConf(id int) *JiRedBagDesc { for _,val := range g_jsonconf.JiRedBag { if val.Id == id { return &val } } return nil } func GetGuanConf(id int) *GuanRedBagDesc { for _,val := range g_jsonconf.GuanRedBag { if val.Id == id { return &val } } return nil } func file_get_contents(path string) ([]byte, error) { f, err := os.Open(path) if err != nil { return nil, err } return ioutil.ReadAll(f) } func LoadJsonConf() error { //pconf := &GameConfig{} //加载第一个配置 path := "../jsonconf/ActiveWithdrawConfig.json" content, err := file_get_contents(path) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } err = json.Unmarshal([]byte(content), &g_jsonconf.ActiveWithdrawConfig) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } path = "../jsonconf/WithdrawConfig.json" content, err = file_get_contents(path) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } err = json.Unmarshal([]byte(content), &g_jsonconf.WithDrawConfig) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } path = "../jsonconf/GuanRedBag.json" content, err = file_get_contents(path) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } err = json.Unmarshal([]byte(content), &g_jsonconf.GuanRedBag) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } path = "../jsonconf/JiRedbag.json" content, err = file_get_contents(path) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } err = json.Unmarshal([]byte(content), &g_jsonconf.JiRedBag) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } path = "../jsonconf/GunLevelRewardConfig.json" content, err = file_get_contents(path) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } err = json.Unmarshal([]byte(content), &g_jsonconf.GunLevelConfig) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } path = "../jsonconf/OnlineRewardConfig.json" content, err = file_get_contents(path) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } err = json.Unmarshal([]byte(content), &g_jsonconf.OnlineRewardConfig) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } logger.Info("loadJsonConf success pconf=%v,err=%v", *g_jsonconf, err) return nil }