/** * 排行 * @param start 开始位置(包括) * @param end 结束位置(包括) * @param rankListData 排行数据 */ public void GC_RANK_LIST(InputMessage data) { int i, size; int start = data.GetInt(); int end = data.GetInt(); ArrayList rankListData = new ArrayList(); size = data.GetShort(); for (i = 0; i < size; i++) { RankListData rankListData_Datas = new RankListData(); rankListData_Datas.countries = data.GetString(); //国籍 rankListData_Datas.userId = data.GetLong(); rankListData_Datas.name = data.GetString(); //名字 rankListData_Datas.img = data.GetString(); //头像 rankListData_Datas.level = data.GetInt(); //玩家等级 rankListData_Datas.win = data.GetLong(); rankListData_Datas.rank = data.GetInt(); //排名 rankListData_Datas.vipLevel = data.GetInt(); //VIP等级 rankListData.Add(rankListData_Datas); } RanknewHandler.Instance().GC_RANK_LIST(start, end, rankListData); }
// GET: OnLinePlay public object GetOnLineUser([FromUri] string pageSize, [FromUri] string pageIndex) { ILog log = LogManager.GetLogger("OnLinePlay"); //默认分页配置 if (string.IsNullOrEmpty(pageSize)) { pageSize = "10"; } if (string.IsNullOrEmpty(pageIndex)) { pageIndex = "1"; } Cache ca = HttpContext.Current.Cache; List <RankModel> rankAll = new List <RankModel>(); try { rankAll = ca["onlineList"] as List <RankModel>; } catch (Exception ex) { log.Error("OnLinePlay(读取在线玩家):" + ex.Message); rankAll = new List <RankModel>(); } if (rankAll == null) { log.Error("OnLinePlay(读取在线玩家):读取的缓存转换为null"); string rJson = OnLineInfoBLL.GetNewJson(); rankAll = (List <RankModel>)JsonConvert.DeserializeObject <List <RankModel> >(rJson); } int onlineUserTotal = rankAll.Count(); if (onlineUserTotal == 0) { log.Error("OnLinePlay(读取在线玩家):读取的缓存转换为长度为0"); string rJson = OnLineInfoBLL.GetNewJson(); rankAll = (List <RankModel>)JsonConvert.DeserializeObject <List <RankModel> >(rJson); } int pageSizeInt = Convert.ToInt32(pageSize); //取多少行数据 int pageIndexInt = Convert.ToInt32(pageIndex); //取第几页 int pageTotal = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(onlineUserTotal * 1.0 / pageSizeInt))); //总页数 int skip = (pageIndexInt - 1) * pageSizeInt; //跳过多少行 //取需要的数据 IEnumerable <RankModel> onlineUser = ( from a in rankAll select a ).OrderByDescending(m => m.VipGrade).Skip(skip).Take(pageSizeInt); List <RankListData> ModelList = new List <RankListData>(); foreach (RankModel item in onlineUser) { string[] rs = item.Value.ToString().Split('_'); RankListData data = new RankListData(); data.dwFaceID = Convert.ToInt32(rs[2]); data.strFaceUrl = rs[1]; data.dwUserID = Convert.ToInt32(item.Name); data.gameID = GameId(rs[5]); data.isOnline = IsOnline(rs[5]); data.llValue = Convert.ToDouble(rs[3]); data.strRoleName = rs[0]; data.vipGrade = Convert.ToInt32(rs[4]); ModelList.Add(data); } return(Json(new { dwType = 0, list = ModelList, showNum = pageSizeInt, totalPage = pageTotal, curPage = pageIndex })); }
/// <summary> /// 获取排行榜信息 /// </summary> /// <param name="packet"></param> /// <returns></returns> public bool RankListHandle(CReadPacket packet) { Debug.Log("ranklist返回"); Dictionary <string, object> data = packet.data; int resolt = int.Parse(data["ret"].ToString()); if (resolt == 0) { int currentValue = 0; int currentRank = 0; int yesterdayRank = 0; currentRank = int.Parse(data["myRank"].ToString());//自己的当前排名 playerData.GetInstance().playerRankData.rankListType = (RankListType)data["typeid"]; if (data["rInfo"] != null) { object[][] rankInfoList = data["rInfo"] as object[][]; switch ((RankListType)data["typeid"]) { //case RankListType.Fight: // playerData.GetInstance().playerRankData.fightList.Clear(); // break; //case RankListType.StarSum: // playerData.GetInstance().playerRankData.starSumList.Clear(); // break; //case RankListType.DiamondUser: // playerData.GetInstance().playerRankData.diamondUserList.Clear(); // break; //case RankListType.BestFourPersons: // playerData.GetInstance().playerRankData.bestFourPersonsList.Clear(); // break; //case RankListType.Fortune: // playerData.GetInstance().playerRankData.fortuneList.Clear(); // break; //case RankListType.YesterdayRank: // playerData.GetInstance().playerRankData.yesterdayList.Clear(); // break; case RankListType.Level: if (playerData.GetInstance().playerRankData.levelList.Count >= 20) { playerData.GetInstance().playerRankData.levelList.Clear(); } break; case RankListType.RealTimeRank: if (playerData.GetInstance().playerRankData.realTimeRankList.Count >= 20) { playerData.GetInstance().playerRankData.realTimeRankList.Clear(); } break; default: break; } for (int i = 0; i < rankInfoList.Length; i++) { RankListData rankListData = new RankListData(); if (int.Parse(rankInfoList[i][1].ToString()) != 0) { rankListData.currentRank = int.Parse(rankInfoList[i][0].ToString());//当前排名 rankListData.playerId = int.Parse(rankInfoList[i][1].ToString()); rankListData.name = rankInfoList[i][2].ToString(); rankListData.iconId = long.Parse(rankInfoList[i][3].ToString()); rankListData.iconBoxId = long.Parse(rankInfoList[i][4].ToString()); rankListData.rankValue = int.Parse(rankInfoList[i][5].ToString()); //战斗力 rankListData.playerLv = int.Parse(rankInfoList[i][6].ToString()); //角色等级 } if (!string.IsNullOrEmpty(rankInfoList[i][7].ToString())) { string arenas = rankInfoList[i][7].ToString(); object [] aa = Jsontext.ReadeData(arenas) as object[]; for (int j = 0; j < aa.Length; j++) { string[] str = aa[j] as string[]; RankHeroList heroList = new RankHeroList(); heroList.iconId1 = long.Parse(str[0]); heroList.lv = int.Parse(str[1]); heroList.star = int.Parse(str[2]); heroList.iconIdFrame = int.Parse(str[3]); rankListData.arenaHeroList.Add(heroList); } } switch ((RankListType)data["typeid"]) { //case RankListType.Fight: // playerData.GetInstance().playerRankData.fightList.Add(rankListData); // playerData.GetInstance().playerRankData.fight = currentValue; // playerData.GetInstance().playerRankData.fightCurrentRank = currentRank; // playerData.GetInstance().playerRankData.fightYesterdayRank = yesterdayRank; // break; //case RankListType.StarSum: // playerData.GetInstance().playerRankData.starSumList.Add(rankListData); // playerData.GetInstance().playerRankData.startSum = currentValue; // playerData.GetInstance().playerRankData.starttSumCurrentRank = currentRank; // playerData.GetInstance().playerRankData.starttSumYesterday = yesterdayRank; // break; //case RankListType.DiamondUser: // playerData.GetInstance().playerRankData.diamondUserList.Add(rankListData); // break; //case RankListType.BestFourPersons: // playerData.GetInstance().playerRankData.bestFourPersonsList.Add(rankListData); // playerData.GetInstance().playerRankData.bestfourCurrentRank = currentRank; // playerData.GetInstance().playerRankData.bestfourYesterday = yesterdayRank; // break; //case RankListType.Fortune: // playerData.GetInstance().playerRankData.fortuneList.Add(rankListData); // break; //case RankListType.YesterdayRank: // playerData.GetInstance().playerRankData.yesterdayList.Add(rankListData); // playerData.GetInstance().playerRankData.yestterday = currentValue; // playerData.GetInstance().playerRankData.yestterdayCurrentRank = currentRank; // playerData.GetInstance().playerRankData.yestterday_yes = yesterdayRank; // break; case RankListType.Level: playerData.GetInstance().playerRankData.levelList.Add(rankListData); playerData.GetInstance().playerRankData.lv = currentValue; playerData.GetInstance().playerRankData.lvCurrentRank = currentRank; playerData.GetInstance().playerRankData.lvYesterday = yesterdayRank; break; case RankListType.RealTimeRank: playerData.GetInstance().playerRankData.realTimeRankList.Add(rankListData); playerData.GetInstance().playerRankData.realTime = currentValue; playerData.GetInstance().playerRankData.realTimeCurrentRank = currentRank; playerData.GetInstance().playerRankData.realTimeYesterday = yesterdayRank; break; default: break; } } int intCount = 20 / 4; int page = 20 % 4; if (page != 0) { intCount++; } playerData.GetInstance().playerRankData.page = intCount; // RankListManage.GetInstace().GetRankListData((int)playerData.GetInstance().playerRankData.rankListType); } return(true); } else { // Debug.Log(string.Format("返回信息失败:{0}", data["desc"].ToString())); Debug.Log("获取排行榜列表失败"); return(false); } }