package common import ( "context" "designs/config" "designs/global" "encoding/json" "fmt" "os" "strconv" "strings" "github.com/go-redis/redis/v8" "github.com/sirupsen/logrus" ) /* 初始游戏配置 */ func InitGameCfg() { //判读本地有没有数据 res, err := global.App.Redis.Exists(context.Background(), config.Get("app.province_table")).Result() if err != nil { logrus.Error("InitGameCfg err") } if res != 1 { //不存在数据 // 指定目录 filePath := "./config/json/city.json" bytes, err := os.ReadFile(filePath) if err != nil { fmt.Println("os.ReadFile err=", err) } data := []interface{}{} json.Unmarshal(bytes, &data) // dat := data[0].(map[string]interface{}) // fmt.Println(dat["hid"]) cityData := make(map[string]interface{}) for _, val := range data { res := val.(map[string]interface{}) // fmt.Println(res["hid"], res["hname"]) cityData[res["hname"].(string)] = res["hid"] } //设置数据 global.App.Redis.HMSet(context.Background(), config.Get("app.province_table"), cityData) } } /* 通过ip地址获取地址code */ func FindAddresscodeByIp(ip string) int { pro, _ := FindAddressByIp(ip) code := 999 res, err := global.App.Redis.HGetAll(context.Background(), config.Get("app.province_table")).Result() if err != nil { return code } for key, val := range res { code, _ := strconv.Atoi(val) if strings.Contains(pro, key) { return code } } return code } /* 通过hid获取地址code */ func FindAddresscodeByHid(hid int) (int, error) { res, _ := global.App.Redis.HGetAll(context.Background(), config.Get("app.province_table")).Result() for _, val := range res { code, _ := strconv.Atoi(val) if code == hid { return hid, nil } } return 0, redis.Nil } /* 通过hid获取地址 */ func FindAddressByHid(hid int) string { res, _ := global.App.Redis.HGetAll(context.Background(), config.Get("app.province_table")).Result() for key, val := range res { code, _ := strconv.Atoi(val) if code == hid { return key } } return "" }