github.com/lianghucheng/zrddz@v0.0.0-20200923083010-c71f680932e2/src/conf/json.go (about)

     1  package conf
     2  
     3  import (
     4  	"common"
     5  	"strings"
     6  	"time"
     7  
     8  	"github.com/BurntSushi/toml"
     9  	"github.com/name5566/leaf/log"
    10  )
    11  
    12  type Config struct {
    13  	CfgLeafSvr              LeafSvr
    14  	CfgMatchs               []CfgMatch
    15  	CfgTimeout              CfgTimeout
    16  	CfgDDZ                  CfgDDZ
    17  	CfgRank                 CfgRank
    18  	CfgActivityTimes        []CfgActivityTime
    19  	CfgRedpacketCode        CfgRedpacketCode
    20  	CfgCard                 CfgCard
    21  	CfgRedPacketItems       map[string]RedPacketItem
    22  	CfgLink                 CfgLink
    23  	CfgOneRedpacketInfo     CfgOneRedpacketInfo
    24  	CfgTenRedpacketInfo     CfgTenRedpacketInfo
    25  	CfgHundredRedpacketInfo CfgHundredRedpacketInfo
    26  	CfgDailySign			[]CfgDailySign
    27  }
    28  type LeafSvr struct {
    29  	LogLevel       string
    30  	LogPath        string
    31  	WSAddr         string
    32  	CertFile       string
    33  	KeyFile        string
    34  	TCPAddr        string
    35  	MaxConnNum     int
    36  	DBUrl          string
    37  	DBMaxConnNum   int
    38  	ConsolePort    int
    39  	ProfilePath    string
    40  	HTTPAddr       string
    41  	DBName         string
    42  	TaskFreeChange int64
    43  	Level          int
    44  	Chips          int
    45  	RebateRate     float64
    46  	FamilyActivity bool
    47  	RoomCard       int
    48  	FirstLogin     int
    49  	Model          bool //false :表示测试环境  true:表示正式环境
    50  	SubsidyTotal   int  //补助次数
    51  	SubsidyChip    int  //破产补助金额
    52  	SubsidyLine    int  //资产低于多少给予破产补助
    53  	GameHttpAddress string
    54  }
    55  type CfgDDZ struct {
    56  	DefaultAndroidDownloadUrl string
    57  	DefaultIOSDownloadUrl     string
    58  	DefaultSougouDownloadUrl  string
    59  	DefaultGoogleDownloadUrl  string
    60  	Gamename                  string
    61  	AndroidVersion            int
    62  	IOSVersion                int
    63  	SougouVersion             int
    64  	GoogleVersion  			  int
    65  	AndroidGuestLogin         bool
    66  	IOSGuestLogin             bool
    67  	SougouGuestLogin          bool
    68  	GoogleGuestLogin          bool
    69  	Notice                    string
    70  	Radio                     string
    71  	WeChatNumber              string
    72  	EnterAddress              bool
    73  	CardCodeDesc              string
    74  }
    75  type CfgRank struct {
    76  	ShowRankLen    int
    77  	UpdateRankTime int
    78  }
    79  type CfgMatch struct {
    80  	BaseScore int
    81  	MinScore  int
    82  	MaxScore  int
    83  	Tickets   int
    84  }
    85  
    86  type CfgTimeout struct {
    87  	ConnectTimeout         int
    88  	HeartTimeout           int
    89  	LandlordBid            int
    90  	LandlordGrab           int
    91  	LandlordDouble         int
    92  	LandlordShowCards      int
    93  	LandlordDiscard        int
    94  	LandlordDiscardNothing int
    95  }
    96  
    97  type CfgActivityTime struct {
    98  	TaskID   int    // 任务id
    99  	Start    string // 开始时间
   100  	End      string // 结束时间
   101  	Deadline string // 截至时间
   102  }
   103  type ActivityTime struct {
   104  	TaskID   int   // 任务id
   105  	Start    int64 // 开始时间
   106  	End      int64 // 结束时间
   107  	Deadline int64 // 截至时间
   108  }
   109  type CfgRedpacketCode struct {
   110  	Url        string
   111  	PartnerKey string
   112  	SecretKey  string
   113  	Method     string
   114  }
   115  type CfgCard struct {
   116  	PlayTimes int
   117  }
   118  type RedPacketItem struct {
   119  	Chips         int
   120  	Desc          string
   121  	RedPacketType int
   122  	IsPrivate     bool
   123  	Clock         []string
   124  }
   125  type CfgLink struct {
   126  	CircleLink string
   127  }
   128  
   129  //一元红包场的配置信息
   130  type CfgOneRedpacketInfo struct {
   131  	Chips int64 //入场金币数
   132  	Start int   //入场开始时间
   133  	End   int   //入场结束时间
   134  }
   135  
   136  //10元红包场的配置信息
   137  type CfgTenRedpacketInfo struct {
   138  	Chips int64 //入场金币数
   139  	Start int   //入场开始时间
   140  	End   int   //入场结束时间
   141  }
   142  
   143  //100元红包场的配置信息
   144  type CfgHundredRedpacketInfo struct {
   145  	Chips int64 //入场金币数
   146  	Start int   //入场开始时间
   147  	End   int   // 入场结束时间
   148  }
   149  
   150  type CfgDailySign struct {
   151  	Chips	int64
   152  }
   153  
   154  var Server LeafSvr
   155  var ServerConfig Config
   156  
   157  func init() {
   158  	ReadConfigure()
   159  	RedpacketTaskCfgInit()
   160  	ShareCfgInit()
   161  }
   162  func ReadConfigure() {
   163  	cfg := Config{}
   164  	_, err := toml.DecodeFile("conf/ddz-server.toml", &cfg)
   165  	if err != nil {
   166  		log.Error("读取server.toml失败,error:%v", err)
   167  	}
   168  	ServerConfig = cfg
   169  	Server = cfg.CfgLeafSvr
   170  	log.Release("*****************:%v", ServerConfig)
   171  
   172  }
   173  
   174  func GetCfgTimeout() CfgTimeout {
   175  	return ServerConfig.CfgTimeout
   176  }
   177  
   178  func GetCfgMatchs() []CfgMatch {
   179  	return ServerConfig.CfgMatchs
   180  }
   181  func GetCfgDDZ() CfgDDZ {
   182  	return ServerConfig.CfgDDZ
   183  }
   184  func GetCfgRank() CfgRank {
   185  	return ServerConfig.CfgRank
   186  }
   187  func GetCfgActivityTimes() []*ActivityTime {
   188  	activityTime := []*ActivityTime{}
   189  	for _, v := range ServerConfig.CfgActivityTimes {
   190  		start := strings.Split(v.Start, "-")
   191  		end := strings.Split(v.End, "-")
   192  		deadline := strings.Split(v.Deadline, "-")
   193  		activityTime = append(activityTime, &ActivityTime{
   194  			TaskID:   v.TaskID,
   195  			Start:    time.Date(common.Atoi(start[0]), time.Month(common.Atoi(start[1])), common.Atoi(start[2]), common.Atoi(start[3]), common.Atoi(start[4]), common.Atoi(start[5]), 0, time.Local).Unix(),
   196  			End:      time.Date(common.Atoi(end[0]), time.Month(common.Atoi(end[1])), common.Atoi(end[2]), common.Atoi(end[3]), common.Atoi(end[4]), common.Atoi(end[5]), 0, time.Local).Unix(),
   197  			Deadline: time.Date(common.Atoi(deadline[0]), time.Month(common.Atoi(deadline[1])), common.Atoi(deadline[2]), common.Atoi(deadline[3]), common.Atoi(deadline[4]), common.Atoi(deadline[5]), 0, time.Local).Unix(),
   198  		})
   199  	}
   200  	return activityTime
   201  }
   202  func GetCfgRedpacketCode() CfgRedpacketCode {
   203  	return ServerConfig.CfgRedpacketCode
   204  }
   205  func GetCfgCard() CfgCard {
   206  	return ServerConfig.CfgCard
   207  }
   208  
   209  func GetCfgRedPacketItems() map[string]RedPacketItem {
   210  	return ServerConfig.CfgRedPacketItems
   211  }
   212  
   213  func GetCfgLink() CfgLink {
   214  	return ServerConfig.CfgLink
   215  }
   216  
   217  //一元红包配置
   218  
   219  func GetOneRedpacketInfo() CfgOneRedpacketInfo {
   220  	return ServerConfig.CfgOneRedpacketInfo
   221  }
   222  
   223  //十元红包配置
   224  
   225  func GetTenRedpacketInfo() CfgTenRedpacketInfo {
   226  	return ServerConfig.CfgTenRedpacketInfo
   227  }
   228  
   229  //百元红包配置
   230  
   231  func GetHundredRedpacketInfo() CfgHundredRedpacketInfo {
   232  	return ServerConfig.CfgHundredRedpacketInfo
   233  }
   234  
   235  func GetCfgDailySign() []CfgDailySign {
   236  	return ServerConfig.CfgDailySign
   237  }