private void LoadEraRankData() { MySqlDataReader sdr = null; try { this.EraRankList.V.Clear(); string strSql = string.Format("SELECT `juntuanid`, `stage`, `process`, `ranktm` FROM t_juntuan_era WHERE `eraid`={0} AND (`stage`>1 OR (`stage`=1 AND `process`>0))\r\n ORDER BY `stage` DESC, `process` DESC, `ranktm` ASC LIMIT {1};", this.RuntimeData.CurrentEraID, 5); sdr = DbHelperMySQL.ExecuteReader(strSql, false); int index = 1; while (sdr != null && sdr.Read()) { KFEraRankData data = new KFEraRankData(); data.RankValue = index; data.JunTuanID = Convert.ToInt32(sdr["juntuanid"].ToString()); data.EraStage = Convert.ToByte(sdr["stage"].ToString()); data.EraStageProcess = Convert.ToInt32(sdr["process"].ToString()); string strRankTm = sdr["ranktm"].ToString(); if (!string.IsNullOrEmpty(strRankTm)) { DateTime.TryParse(strRankTm, out data.RankTime); } this.EraRankList.V.Add(data); index++; } TimeUtil.AgeByNow(ref this.EraRankList.Age); } catch (Exception ex) { LogManager.WriteExceptionUseCache(ex.ToString()); } finally { if (null != sdr) { sdr.Close(); } } }
private bool HandleAddEraProcess(KuaFuData <KFEraData> data, EraTaskConfig taskConfig) { bool result; if (taskConfig.EraStage != (int)data.V.EraStage) { result = false; } else { int oldEraStageProcess = data.V.EraStageProcess; int oldEraStage = (int)data.V.EraStage; data.V.EraStageProcess = Math.Min(data.V.EraStageProcess + taskConfig.Reward, 100); if (data.V.EraStageProcess == 100 && data.V.EraStage < 4) { data.V.EraStage = (byte)Math.Min((int)(data.V.EraStage + 1), 4); data.V.EraStageProcess = 0; AsyncDataItem evItem = new AsyncDataItem(KuaFuEventTypes.JunTuanEraStage, new object[] { data.V.JunTuanID }); ClientAgentManager.Instance().BroadCastAsyncEvent(GameTypes.JunTuan, evItem, 0); data.V.EraTimePointList.Add(TimeUtil.NowDateTime()); } if (data.V.EraStageProcess == oldEraStageProcess && (int)data.V.EraStage == oldEraStage) { result = false; } else { if (data.V.EraStageProcess == 100 && data.V.EraStage == 4) { data.V.EraTimePointList.Add(TimeUtil.NowDateTime()); } this.HandleFastEraStage(data.V); bool needSort = false; KFEraRankData rankData = this.EraRankList.V.Find((KFEraRankData x) => x.JunTuanID == data.V.JunTuanID); if (null != rankData) { needSort = true; rankData.JunTuanID = data.V.JunTuanID; rankData.EraStage = data.V.EraStage; rankData.EraStageProcess = data.V.EraStageProcess; rankData.RankTime = TimeUtil.NowDateTime(); } else if (this.EraRankList.V.Count < 5) { needSort = true; rankData = new KFEraRankData(); rankData.JunTuanID = data.V.JunTuanID; rankData.EraStage = data.V.EraStage; rankData.EraStageProcess = data.V.EraStageProcess; rankData.RankTime = TimeUtil.NowDateTime(); this.EraRankList.V.Add(rankData); } else { KFEraRankData minRankData = this.EraRankList.V[this.EraRankList.V.Count - 1]; if (data.V.EraStage > minRankData.EraStage || (data.V.EraStage == minRankData.EraStage && data.V.EraStageProcess > minRankData.EraStageProcess)) { needSort = true; minRankData.JunTuanID = data.V.JunTuanID; minRankData.EraStage = data.V.EraStage; minRankData.EraStageProcess = data.V.EraStageProcess; minRankData.RankTime = TimeUtil.NowDateTime(); } } if (needSort) { this.EraRankList.V.Sort(delegate(KFEraRankData left, KFEraRankData right) { int result2; if (left.EraStage > right.EraStage) { result2 = -1; } else if (left.EraStage < right.EraStage) { result2 = 1; } else if (left.EraStageProcess > right.EraStageProcess) { result2 = -1; } else if (left.EraStageProcess < right.EraStageProcess) { result2 = 1; } else if (left.RankTime < right.RankTime) { result2 = -1; } else if (left.RankTime > right.RankTime) { result2 = 1; } else { result2 = 0; } return(result2); }); for (int loop = 0; loop < this.EraRankList.V.Count; loop++) { this.EraRankList.V[loop].RankValue = loop + 1; } TimeUtil.AgeByNow(ref this.EraRankList.Age); } result = true; } } return(result); }