1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package gmdata
- import (
- "encoding/json"
- "leafstalk/log"
- "os"
- "sort"
- )
- type KingSeasonDan struct {
- Id int `json:"id"`
- Type int `json:"type"`
- DanName string `json:"danName"`
- DanIcon string `json:"danIcon"`
- Count int64 `json:"count"`
- IsReducePoints int `json:"isReducePoints"`
- Reward []int `json:"reward"`
- }
- var (
- KingSeasonDans []*KingSeasonDan
- )
- type ByMasterScore []*KingSeasonDan
- func (a ByMasterScore) Len() int { return len(a) }
- func (a ByMasterScore) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
- func (a ByMasterScore) Less(i, j int) bool { return a[i].Count < a[j].Count }
- // LoadKingSeason 加载配置信息
- func LoadKingSeason(confPath string) {
- loadLoadKingSeasonFile(confPath+"/"+"KingSeasonDan.json", &KingSeasonDans)
- sort.Sort(sort.Reverse(ByMasterScore(KingSeasonDans)))
- }
- func loadLoadKingSeasonFile(filePath string, val interface{}) {
- ptrFile, err := os.Open(filePath)
- if err != nil {
- log.Fatalln("读取json文件失败", err)
- }
- defer ptrFile.Close()
- decoder := json.NewDecoder(ptrFile)
- if err = decoder.Decode(&val); err != nil {
- log.Fatalln("loadLoadKingSeasonFile Decoder failed ", filePath, err.Error())
- }
- }
- // GetDanByScore 通过段位积分获取当前段位
- func GetDanByScore(score int64) *KingSeasonDan {
- cnt := len(KingSeasonDans)
- i := sort.Search(cnt, func(i int) bool {
- return score >= KingSeasonDans[i].Count
- })
- if i < cnt {
- return KingSeasonDans[i]
- }
- return nil
- }
|