jsonconf.go 5.09 KB
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
}