/// <summary> /// 得到玩家数量信息 /// </summary> PlayerCountStatisticInfo[] GetPlayerCountInfo(DateTime startTime, DateTime endTime) { using (IBlazeDatabase db = DbFactory.GetDatabase()) { IBlazeTable table = db.GetTable(TableString.PlayerCountTableName); DataSet ds = new DataSet(); table.Get(ds, FilterFactory.CreateAndFilter( FilterFactory.CreateEqualFilter(TableString.PlayerCountFieldServerId, _server.Id), FilterFactory.CreateAndFilter( FilterFactory.CreateLargerEqualFilter(TableString.PlayerCountFieldRecordTime, startTime), FilterFactory.CreateLesserEqualFilter(TableString.PlayerCountFieldRecordTime, endTime) ) ) ); DataTable dt = ds.Tables[TableString.PlayerCountTableName]; int rowCount = dt.Rows.Count; PlayerCountStatisticInfo[] infos = new PlayerCountStatisticInfo[rowCount]; for (int i = 0; i < rowCount; i++) { DataRow row = dt.Rows[i]; PlayerCountStatisticInfo info = new PlayerCountStatisticInfo(); info.Time = (DateTime)row[TableString.PlayerCountFieldRecordTime]; info.MaxCount = (int)row[TableString.PlayerCountFieldMaxPlayerCount]; info.MinCount = (int)row[TableString.PlayerCountFieldMinPlayerCount]; info.AverageCount = (int)row[TableString.PlayerCountFieldAveragePlayerCount]; infos[i] = info; } return(infos); } }
/// <summary> /// 添加玩家数量信息 /// </summary> void AddPlayerCountInfo(PlayerCountStatisticInfo info) { if (info == null) { throw new ArgumentNullException("info"); } using (IBlazeDatabase db = DbFactory.GetDatabase()) { IBlazeTable table = db.GetTable(TableString.PlayerCountTableName); string[] fieldNames = { TableString.PlayerCountFieldServerId, TableString.PlayerCountFieldRecordTime, TableString.PlayerCountFieldMaxPlayerCount, TableString.PlayerCountFieldMinPlayerCount, TableString.PlayerCountFieldAveragePlayerCount }; object[] fieldValues = { _server.Id, info.Time, info.MaxCount, info.MinCount, info.AverageCount }; table.Add(fieldNames, fieldValues); } }
/// <summary> /// 获取某日的最大人数 /// </summary> /// <param name="day"></param> /// <returns></returns> int GetDayMaxPlayer(DateTime day) { DateTime startTime = DateTime.Parse(day.ToShortDateString() + " 00:00:00"); DateTime endTime = DateTime.Parse(day.ToShortDateString() + " 23:59:59"); int maxPlayer = 0; int rowMax = 0; using (IBlazeDatabase db = DbFactory.GetDatabase()) { IBlazeTable table = db.GetTable(TableString.PlayerCountTableName); DataSet ds = new DataSet(); table.Get(ds, FilterFactory.CreateAndFilter( FilterFactory.CreateEqualFilter(TableString.PlayerCountFieldServerId, _server.Id), FilterFactory.CreateAndFilter( FilterFactory.CreateLargerEqualFilter(TableString.PlayerCountFieldRecordTime, startTime), FilterFactory.CreateLesserEqualFilter(TableString.PlayerCountFieldRecordTime, endTime) ) ) ); DataTable dt = ds.Tables[TableString.PlayerCountTableName]; for (int i = 0; i < dt.Rows.Count; i++) { DataRow row = dt.Rows[i]; PlayerCountStatisticInfo info = new PlayerCountStatisticInfo(); rowMax = (int)row[TableString.PlayerCountFieldMaxPlayerCount]; if (maxPlayer < rowMax) { maxPlayer = rowMax; } } return(maxPlayer); } }
void DoPlayerCountStatistic(DateTime now) { PlayerCountStatisticInfo statisticInfo = new PlayerCountStatisticInfo(); if (_playerCountQueue.Count > 0) { foreach (PlayerCountInfo info in _playerCountQueue) { if (info.Count > statisticInfo.MaxCount) { statisticInfo.MaxCount = info.Count; } if (info.Count < statisticInfo.MinCount) { statisticInfo.MinCount = info.Count; } statisticInfo.AverageCount += info.Count; } statisticInfo.AverageCount /= _playerCountQueue.Count; } statisticInfo.Time = now; AddPlayerCountInfo(statisticInfo); _lastPlayerCountStatisticHour = now.Hour; }
/// <summary> /// 获取某日的最大人数 /// </summary> /// <param name="day"></param> /// <returns></returns> int GetDayMaxPlayer(DateTime day) { DateTime startTime = DateTime.Parse(day.ToShortDateString() + " 00:00:00"); DateTime endTime = DateTime.Parse(day.ToShortDateString() + " 23:59:59"); int maxPlayer = 0; int rowMax = 0; using (IBlazeDatabase db = DbFactory.GetDatabase()) { IBlazeTable table = db.GetTable(TableString.PlayerCountTableName); DataSet ds = new DataSet(); table.Get(ds, FilterFactory.CreateAndFilter( FilterFactory.CreateEqualFilter(TableString.PlayerCountFieldServerId, _server.Id), FilterFactory.CreateAndFilter( FilterFactory.CreateLargerEqualFilter(TableString.PlayerCountFieldRecordTime, startTime), FilterFactory.CreateLesserEqualFilter(TableString.PlayerCountFieldRecordTime, endTime) ) ) ); DataTable dt = ds.Tables[TableString.PlayerCountTableName]; for (int i = 0; i < dt.Rows.Count; i++) { DataRow row = dt.Rows[i]; PlayerCountStatisticInfo info = new PlayerCountStatisticInfo(); rowMax = (int)row[TableString.PlayerCountFieldMaxPlayerCount]; if (maxPlayer < rowMax) maxPlayer = rowMax; } return maxPlayer ; } }
/// <summary> /// 得到玩家数量信息 /// </summary> PlayerCountStatisticInfo[] GetPlayerCountInfo(DateTime startTime, DateTime endTime) { using (IBlazeDatabase db = DbFactory.GetDatabase()) { IBlazeTable table = db.GetTable(TableString.PlayerCountTableName); DataSet ds = new DataSet(); table.Get(ds, FilterFactory.CreateAndFilter( FilterFactory.CreateEqualFilter(TableString.PlayerCountFieldServerId, _server.Id), FilterFactory.CreateAndFilter( FilterFactory.CreateLargerEqualFilter(TableString.PlayerCountFieldRecordTime, startTime), FilterFactory.CreateLesserEqualFilter(TableString.PlayerCountFieldRecordTime, endTime) ) ) ); DataTable dt = ds.Tables[TableString.PlayerCountTableName]; int rowCount = dt.Rows.Count; PlayerCountStatisticInfo[] infos = new PlayerCountStatisticInfo[rowCount]; for (int i = 0; i < rowCount; i++) { DataRow row = dt.Rows[i]; PlayerCountStatisticInfo info = new PlayerCountStatisticInfo(); info.Time = (DateTime)row[TableString.PlayerCountFieldRecordTime]; info.MaxCount = (int)row[TableString.PlayerCountFieldMaxPlayerCount]; info.MinCount = (int)row[TableString.PlayerCountFieldMinPlayerCount]; info.AverageCount = (int)row[TableString.PlayerCountFieldAveragePlayerCount]; infos[i] = info; } return infos; } }
/// <summary> /// 添加玩家数量信息 /// </summary> void AddPlayerCountInfo(PlayerCountStatisticInfo info) { if (info == null) throw new ArgumentNullException("info"); using (IBlazeDatabase db = DbFactory.GetDatabase()) { IBlazeTable table = db.GetTable(TableString.PlayerCountTableName); string[] fieldNames = { TableString.PlayerCountFieldServerId, TableString.PlayerCountFieldRecordTime, TableString.PlayerCountFieldMaxPlayerCount, TableString.PlayerCountFieldMinPlayerCount, TableString.PlayerCountFieldAveragePlayerCount }; object[] fieldValues = { _server.Id, info.Time, info.MaxCount, info.MinCount, info.AverageCount }; table.Add(fieldNames, fieldValues); } }
void DoPlayerCountStatistic(DateTime now) { PlayerCountStatisticInfo statisticInfo = new PlayerCountStatisticInfo(); if (_playerCountQueue.Count > 0) { foreach (PlayerCountInfo info in _playerCountQueue) { if (info.Count > statisticInfo.MaxCount) statisticInfo.MaxCount = info.Count; if (info.Count < statisticInfo.MinCount) statisticInfo.MinCount = info.Count; statisticInfo.AverageCount += info.Count; } statisticInfo.AverageCount /= _playerCountQueue.Count; } statisticInfo.Time = now; AddPlayerCountInfo(statisticInfo); _lastPlayerCountStatisticHour = now.Hour; }