/// <summary> /// 获取用户的游戏状态 /// </summary> /// <param name="key">UserID</param> /// <returns></returns> public GameInfo GetGameData(string key) { var data = new GameInfo(); try { //首先从服务端缓存获取 data = CacheExts <GameInfo> .GetValue(key); if (data == null) { //缓存不存在,则读取用户本地Cookie解析成游戏对象 var cookieStr = CookiesHelper.GetCookieValue(key); var json = EncryptAndDecrypt.Decrypt(cookieStr); data = JsonConvert.DeserializeObject <GameInfo>(json); } } catch {} if (data == null) { //如果都没有,则初始化一个游戏对象 data = new GameInfo(); RefNum(ref data); } return(data); }
public ActionResult Login(string uid, string pwd) { //登陆信息 var info = new LoginBLL().LoginIn(uid, pwd); //登陆前的游客游戏 var ykdata = CacheExts <GameInfo> .GetValue(LoginInfoModel.ykCookie); if (ykdata == null) { ykdata = new GameInfo(); new GameInfoBLL().RefNum(ref ykdata); } if (info != null) { var data = CacheExts <GameInfo> .GetValue(info.UserID); if (data == null || data.Score < ykdata.Score) { //如果此用户不存在游戏记录,或用户的游戏分数低于游客状态下的得分,则用游客的游戏状态覆盖用户的游戏状态 CacheExts <GameInfo> .SetValue(info.UserID, ykdata, noSlidingExpiration : false); } return(Json(new { Code = 2000, Msg = "登陆成功" }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { Code = 2001, Msg = "登陆失败" }, JsonRequestBehavior.AllowGet)); } }