/// <summary> /// 绑定数据 /// </summary> protected void BindRankData() { RankCache cache = Fetch.GetRankList(1); if (cache != null) { rptRank.DataSource = cache.CacheList; rptRank.DataBind(); } }
/// <summary> /// 获取排行榜信息 /// </summary> /// <param name="typeID">0 魅力排行榜 1 等级排行榜 2 游戏币排行榜</param> /// <returns></returns> public static RankCache GetRankList(int typeID) { //固定变量 string path = "/Cache/" + (typeID == 0 ? "LoveLinessRank.json" : typeID == 1 ? "ExperienceRank.json" : "GoldRank.json"); string key = typeID == 0 ? "LoveLinessRankCacheKey" : typeID == 1 ? "ExperienceRankCacheKey" : "GoldRankCacheKey"; int timeout = 60; string fullPath = TextUtility.GetFullPath(path); JavaScriptSerializer js = new JavaScriptSerializer(); RankCache cache = WHCache.Default.Get <AspNetCache>(key) as RankCache; //缓存查询 if (cache != null && cache.CacheTime.ToString("yyyyMMdd") == DateTime.Now.ToString("yyyyMMdd")) { return(cache); } //本地查询 if (cache == null || cache.CacheTime.ToString("yyyyMMdd") != DateTime.Now.ToString("yyyyMMdd")) { if (File.Exists(fullPath)) { string strData = File.ReadAllText(fullPath); RankCache local = js.Deserialize <RankCache>(strData); if (local != null && local.CacheTime.ToString("yyyyMMdd") == DateTime.Now.ToString("yyyyMMdd")) { local.CacheTime = DateTime.Now; WHCache.Default.Save <AspNetCache>(key, local, timeout); return(local); } } } //数据库查询 IList <RankInfo> rankList = FacadeManage.aideAccountsFacade.GetDataRanking(typeID); cache = new RankCache(); cache.CacheTime = DateTime.Now; cache.CacheList = rankList; WHCache.Default.Save <AspNetCache>(key, cache, timeout); System.IO.File.WriteAllText(fullPath, js.Serialize(cache)); return(cache); }
protected override IEnumerable <ScoreboardSortModel> GetEnumerable() { cats2 = Categories.ToDictionary(t => t.CategoryId); var rt = RankCache .Where(a => cats2.ContainsKey(a.Team.CategoryId)) .GroupBy(a => cats2[a.Team.CategoryId].SortOrder) .OrderBy(g => g.Key); foreach (var g in rt) { var prob = new ScoreboardProblemStatisticsModel[Problems.Length]; for (int i = 0; i < Problems.Length; i++) { prob[i] = new ScoreboardProblemStatisticsModel(); } yield return(new ScoreboardSortModel(GetViewModel(IsPublic, g, prob), prob)); } }
/// <summary> /// 绑定财富排行 /// </summary> private void BindScoreRank() { StringBuilder builderTopView = new StringBuilder(); StringBuilder builderOtherView = new StringBuilder(); RankCache cache = Fetch.GetRankList(2); if (cache != null && cache.CacheList != null) { List <RankInfo> list = cache.CacheList.ToList <RankInfo>(); if (list.Count > 10) { list.RemoveRange(10, (list.Count - 10)); } for (int i = 0; i < list.Count; i++) { RankInfo info = list[i]; if (i < 3) { //前三 builderTopView.AppendFormat("<li><p class=\"ui-rank-face\"><img src=\"{0}\"><i class=\"ui-rank-{1}\"></i></p><p>{2}</p><span>{3}</span></li>", FacadeManage.aideAccountsFacade.GetUserFaceUrl(info.UserID), i + 1, TextUtility.CutLeft(info.NickName, 5), GetChinaString(info.RankValue)); } else { //其他 builderOtherView.AppendFormat("<li class=\"fn-clear\"><span>{2}</span><strong>{0}</strong><p>{1}</p></li>", i + 1, TextUtility.CutLeft(info.NickName, 16), info.RankValue.ToString()); } } litRank.Text = "<ul class=\"ui-rank-topthree fn-clear\">" + builderTopView.ToString() + "</ul>" + "<ul class=\"ui-rank-list\">" + builderOtherView.ToString() + "</ul>"; } else { litRank.Text = ""; } }