package jsonconf import ( "common/logger" "encoding/json" "io/ioutil" "os" ) var ( g_jsonconf = new(GameConfig) ) type AchieveDesc struct { Type int `json:"type"` Id int `json:"id"` Desc string `json:"desc"` Aim int `json:"aim"` Coin int `json:"coin"` Is_video int `json:"is_video"` } type TaskDesc struct { Id int `json:"id"` Type int `json:"type"` Day_type int `json:"day_type"` Aims int `json:"aims"` Active int `json:"active"` Coin int `json:"coin"` Desc string `json:"desc"` } type TrunTableConfigDesc struct { Id int `json:"id"` Name string `json:"name"` Type int `json:"type"` Desc int `json:"desc"` Rate int `json:"rate"` } type RmbConfigDesc struct { Id int `json:"id"` Rmb_num float32 `json:"rmb_num"` Time int `json:"time"` Login_day int `json:"login_day"` } type SignConfigDesc struct { Id int `json:"id"` Sign_coin int `json:"sign_coin"` Video_coin int `json:"video_coin"` } type RedPackageConfigDesc struct { Id int `json:"id"` Point int `json:"point"` Free_coin int `json:"free_coin"` Video_coin int `json:"video_coin"` } type LuckyBagConfigDesc struct { Id int `json:"id"` Coin int `json:"coin"` Rate int `json:"rate"` } type RedpacketConfigDesc struct { Id int `json:"id"` Cash int `json:"cash"` } type GameConfig struct { AchieventConfig []AchieveDesc TaskConfig []TaskDesc SignConfig []SignConfigDesc RmbConfig []RmbConfigDesc TrunTableConfig []TrunTableConfigDesc RedPackageConfig []RedPackageConfigDesc LuckyBagConfig []LuckyBagConfigDesc RedpacketConfig []RedpacketConfigDesc } func GetRedpacketNum(id int) int { for _, val := range g_jsonconf.RedpacketConfig { if val.Id == id { return val.Cash } } return g_jsonconf.RedpacketConfig[len(g_jsonconf.RedpacketConfig)-1].Cash } func GetJsonConf() *GameConfig { return g_jsonconf } 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/AchievementConfig.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.AchieventConfig) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } path = "../jsonconf/TaskConfig.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.TaskConfig) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } path = "../jsonconf/RmbConfig.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.RmbConfig) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } path = "../jsonconf/SignConfig.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.SignConfig) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } path = "../jsonconf/TurntableConfig.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.TrunTableConfig) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } path = "../jsonconf/RedPackageConfig.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.RedPackageConfig) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } path = "../jsonconf/LuckyBagConfig.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.LuckyBagConfig) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } path = "../jsonconf/RedConfig.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.RedpacketConfig) if err != nil { logger.Info("loadJsonConf failed1,err=%v", err) return err } logger.Info("loadJsonConf success pconf=%v,err=%v", *g_jsonconf, err) logger.Info("loadJsonConf success turn=%+v,err=%v", g_jsonconf.TrunTableConfig, err) return err } func GetRedPackageConfig(id int) *RedPackageConfigDesc { for _, val := range g_jsonconf.RedPackageConfig { if val.Id == id { return &val } } return nil } func GetsignConfig(id int) *SignConfigDesc { for _, v := range g_jsonconf.SignConfig { if v.Id == id { return &v } } return nil }