jsonconf.go 7.04 KB
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 AchieveDesc struct {
	Id       int    `json:"id"`
	Task     string `json:"task"`
	Num      int    `json:"num"`
	Reward   []int  `json:"reward"`
	TaskType int    `json:"type"`
}
type OnlineRewardConfigDesc struct {
	Id    int     `json:"id"`
	Time    int     `json:"time"`
	Luckybag  float32     `json:"Luckybag"`
	RewardVideo  int     `json:"RewardVideo"`
}

type SignConfigDesc struct {
	Id         int `json:"id"`
	Reward  []int `json:"reward"`
}

type InvestmentsConfigDesc struct {
	Id         int `json:"id"`
	Reward  []int `json:"reward"`
}

type GunBigBounceConfigDesc struct {
	Id    int     `json:"id"`
	Gun_level    int     `json:"gun_level"`
	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
	AchieventConfig      []AchieveDesc
	TaskConfig           []AchieveDesc
	SignConfig       []SignConfigDesc
	InvestmentsConfig       []InvestmentsConfigDesc
	GunBigBounceConfig       []GunBigBounceConfigDesc
}

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
	}

	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/InvestmentsConfig.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.InvestmentsConfig)
	if err != nil {
		logger.Info("loadJsonConf failed1,err=%v", err)
		return err
	}


	path = "../jsonconf/GunBigBounceConfig.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.GunBigBounceConfig)
	if err != nil {
		logger.Info("loadJsonConf failed1,err=%v", err)
		return err
	}

	path = "../jsonconf/DailyTaskConfig.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
	}

	logger.Info("loadJsonConf success pconf=%v,err=%v", g_jsonconf.TaskConfig, err)
	return nil
}

func GetGunBigBonusCfg(id int) *GunBigBounceConfigDesc {
	for _, v := range g_jsonconf.GunBigBounceConfig {
		if v.Id == id {
			return &v
		}
	}
	return nil
}

func GetsignConfig(id int) *SignConfigDesc {
	for _, v := range g_jsonconf.SignConfig {
		if v.Id == id {
			return &v
		}
	}
	return nil
}

func GetInvestConfig(id int) *InvestmentsConfigDesc {
	for _, v := range g_jsonconf.InvestmentsConfig {
		if v.Id == id {
			return &v
		}
	}
	return nil
}