package logic import ( "HttpServer/jsonconf" "HttpServer/redishandler" "common/logger" "common/redis" "encoding/json" "strconv" "time" ) func SaveUserInfo(data *UserData, uniqueid string) error { savestr, err := json.Marshal(data) if err != nil { return err } err = redishandler.GetRedisClient().HSet(redis.USER_INFO__KEY, uniqueid, string(savestr)) return err } func GetUserInfo(uid string) (*UserData, error) { data, err := redishandler.GetRedisClient().HGet(redis.USER_INFO__KEY, uid) if err != nil { return nil, err } var tmp UserData err = json.Unmarshal([]byte(data), &tmp) if err != nil { return nil, err } return &tmp, nil } //初始化玩家信息 func InitUserInfo(data *UserLoginReq, resp *UserLoginResp, uuid int) { udata := new(UserData) udata.Gold = 0 udata.Love = 0 udata.InviteId = data.Fromid udata.Highestlv = 0 udata.CurBoxLv = 1 udata.IsDouble = 0 udata.IsAuto = 0 udata.IsBoxAcc = 0 udata.RandGiftDay = time.Now().Day() udata.RandGiftNum = 6 udata.RandGiftTime = int(time.Now().Unix()) udata.Redbag = 0 udata.IsFirstRedBgCat = 0 //初始化16个猫爬架 for i := 0; i < 16; i++ { var d1 PosData d1.Pos = i d1.Catlv = 0 udata.PosInfo = append(udata.PosInfo, d1) var d2 DataDesc d2.Pos = i d2.Catlv = 0 } udata.Goldrate = 0 udata.Loverate = 0 //初始化商店信息 initcatcfg := jsonconf.GetCatConfig(1) if initcatcfg == nil { logger.Error("get 1catcfg err") return } var info BuyCatInfoData info.Buytime = 0 info.CurPrice,_= strconv.ParseInt(initcatcfg.Price,10,64) info.IsMaxBuytime = 0 udata.BuyCatInfo = append(udata.BuyCatInfo, info) //初始化猫咖门店数据 udata.CatShopInfo.LeftTime = 0 udata.CatShopInfo.Chapter = 1 udata.CatShopInfo.DayNum = time.Now().Day() udata.CatShopInfo.IsPlaying = 0 udata.CatShopInfo.PlayTimes = 0 udata.CatShopInfo.Section = 1 udata.CatShopInfo.ThisIsWatch = 0 udata.CatShopInfo.TotalWatchNumLeft = 8 // logger.Info("Init user data=%v", udata) //保存redis SaveUserInfo(udata, strconv.Itoa(uuid)) //初始化玩家仓库信息 pware := new(UserWareHouseData) for i := 0; i < 15; i++ { var tmp WareHouseDesc tmp.Warelv = 0 pware.Info = append(pware.Info, tmp) } wares, err := json.Marshal(pware) if err != nil { logger.Info("InitUserInfo warehouse failed err=%v", err) } redishandler.GetRedisClient().HSet(redis.USER_WAREHOUSE_INFO, strconv.Itoa(uuid), string(wares)) //保存此次计算时间 nowtimestr := strconv.Itoa(int(time.Now().Unix())) redishandler.GetRedisClient().HSet(redis.USER_LAST_CALC_TIME, strconv.Itoa(uuid), nowtimestr) }