/// <summary> /// 将IDataReader的当前记录读取到ArenaSeasoninfoEntity 对象 /// </summary> /// <param name="reader"></param> /// <returns></returns> public ArenaSeasoninfoEntity LoadSingleRow(IDataReader reader) { var obj = new ArenaSeasoninfoEntity(); obj.Idx = (System.Int32)reader["Idx"]; obj.PrepareTime = (System.DateTime)reader["PrepareTime"]; obj.StartTime = (System.DateTime)reader["StartTime"]; obj.EndTime = (System.DateTime)reader["EndTime"]; obj.ArenaType = (System.Int32)reader["ArenaType"]; obj.Status = (System.Int32)reader["Status"]; obj.IsPrize = (System.Boolean)reader["IsPrize"]; obj.PrizeTime = (System.DateTime)reader["PrizeTime"]; obj.OnChampionId = (System.Guid)reader["OnChampionId"]; obj.OnChampionName = (System.String)reader["OnChampionName"]; obj.OnChampionZoneName = (System.String)reader["OnChampionZoneName"]; obj.TheKingId = (System.Guid)reader["TheKingId"]; obj.TheKingName = (System.String)reader["TheKingName"]; obj.TheKingZoneName = (System.String)reader["TheKingZoneName"]; obj.TheKingChampionNumber = (System.Int32)reader["TheKingChampionNumber"]; obj.UpdateTime = (System.DateTime)reader["UpdateTime"]; obj.RowTime = (System.DateTime)reader["RowTime"]; obj.DomainId = (System.Int32)reader["DomainId"]; obj.SeasonId = (System.Int32)reader["SeasonId"]; return(obj); }
/// <summary> /// GetById /// </summary> /// <param name="idx">idx</param> /// <returns>ArenaSeasoninfoEntity</returns> /// <remarks>2016/9/1 18:45:31</remarks> public ArenaSeasoninfoEntity GetById(System.Int32 idx) { var database = new SqlDatabase(this.ConnectionString); DbCommand commandWrapper = database.GetStoredProcCommand("P_ArenaSeasoninfo_GetById"); database.AddInParameter(commandWrapper, "@Idx", DbType.Int32, idx); ArenaSeasoninfoEntity obj = null; using (IDataReader reader = database.ExecuteReader(commandWrapper)) { if (reader.Read()) { obj = LoadSingleRow(reader); } } return(obj); }
/// <summary> /// 计算赛季 /// </summary> /// <returns></returns> private MessageCode CalculateSeason(ArenaSeasoninfoEntity seasonInfo) { DateTime date = DateTime.Now; if (seasonInfo == null) { return(MessageCode.NbParameterError); } //上一赛季还未结束 if (seasonInfo.EndTime >= date.Date) { return(MessageCode.SeasonNotEnd); } //计算排名 数据导入记录表 if (!ArenaManagerinfoMgr.ImportRecord(seasonInfo.SeasonId, seasonInfo.ArenaType, _domainId)) { return(MessageCode.NbUpdateFail); } return(MessageCode.Success); }
/// <summary> /// 带事务的Update /// </summary> /// <param name="entity"></param> /// <param name="trans">The trans.</param> /// <returns></returns> /// <remarks>2016/9/1 18:45:31</remarks> public bool Update(ArenaSeasoninfoEntity entity, DbTransaction trans) { var database = new SqlDatabase(this.ConnectionString); DbCommand commandWrapper = database.GetStoredProcCommand("dbo.P_ArenaSeasoninfo_Update"); database.AddInParameter(commandWrapper, "@Idx", DbType.Int32, entity.Idx); database.AddInParameter(commandWrapper, "@PrepareTime", DbType.DateTime, entity.PrepareTime); database.AddInParameter(commandWrapper, "@StartTime", DbType.DateTime, entity.StartTime); database.AddInParameter(commandWrapper, "@EndTime", DbType.DateTime, entity.EndTime); database.AddInParameter(commandWrapper, "@ArenaType", DbType.Int32, entity.ArenaType); database.AddInParameter(commandWrapper, "@Status", DbType.Int32, entity.Status); database.AddInParameter(commandWrapper, "@IsPrize", DbType.Boolean, entity.IsPrize); database.AddInParameter(commandWrapper, "@PrizeTime", DbType.DateTime, entity.PrizeTime); database.AddInParameter(commandWrapper, "@OnChampionId", DbType.Guid, entity.OnChampionId); database.AddInParameter(commandWrapper, "@OnChampionName", DbType.AnsiString, entity.OnChampionName); database.AddInParameter(commandWrapper, "@OnChampionZoneName", DbType.AnsiString, entity.OnChampionZoneName); database.AddInParameter(commandWrapper, "@TheKingId", DbType.Guid, entity.TheKingId); database.AddInParameter(commandWrapper, "@TheKingName", DbType.AnsiString, entity.TheKingName); database.AddInParameter(commandWrapper, "@TheKingZoneName", DbType.AnsiString, entity.TheKingZoneName); database.AddInParameter(commandWrapper, "@TheKingChampionNumber", DbType.Int32, entity.TheKingChampionNumber); database.AddInParameter(commandWrapper, "@UpdateTime", DbType.DateTime, entity.UpdateTime); database.AddInParameter(commandWrapper, "@RowTime", DbType.DateTime, entity.RowTime); database.AddInParameter(commandWrapper, "@DomainId", DbType.Int32, entity.DomainId); database.AddInParameter(commandWrapper, "@SeasonId", DbType.Int32, entity.SeasonId); int results = 0; if (trans != null) { results = database.ExecuteNonQuery(commandWrapper, trans); } else { results = database.ExecuteNonQuery(commandWrapper); } entity.Idx = (System.Int32)database.GetParameterValue(commandWrapper, "@Idx"); return(Convert.ToBoolean(results)); }
/// <summary> /// GetSeasonInfo /// </summary> /// <param name="seasonId">seasonId</param> /// <param name="domainId">domainId</param> /// <returns>ArenaSeasoninfoEntity</returns> /// <remarks>2016/9/1 18:45:31</remarks> public ArenaSeasoninfoEntity GetSeasonInfo(System.Int32 seasonId, System.Int32 domainId) { var database = new SqlDatabase(this.ConnectionString); DbCommand commandWrapper = database.GetStoredProcCommand("C_ArenaSeason_GetSeasonInfo"); database.AddInParameter(commandWrapper, "@SeasonId", DbType.Int32, seasonId); database.AddInParameter(commandWrapper, "@DomainId", DbType.Int32, domainId); ArenaSeasoninfoEntity obj = null; using (IDataReader reader = database.ExecuteReader(commandWrapper)) { if (reader.Read()) { obj = LoadSingleRow(reader); } } return(obj); }
/// <summary> /// Update /// </summary> /// <param name="entity"></param> /// <returns></returns> /// <remarks>2016/9/1 18:45:31</remarks> public bool Update(ArenaSeasoninfoEntity entity) { return(Update(entity, null)); }
/// <summary> /// Insert /// </summary> /// <param name="entity"></param> /// <param name="trans">The trans.</param> /// <returns></returns> /// <remarks>2016/9/1 18:45:31</remarks> public bool Insert(ArenaSeasoninfoEntity entity) { return(Insert(entity, null)); }
/// <summary> /// 初始化赛季 /// </summary> /// <returns></returns> public MessageCode InitSeason() { try { DateTime date = DateTime.Now; _season = ArenaSeasonMgr.GetSeason(date.Date); if (_season == null) { return(MessageCode.NbParameterError); } _seasonInfo = ArenaSeasoninfoMgr.GetSeasonInfo(_season.SeasonId, _domainId); DateTime endTime = _season.EndTime.AddDays(1).AddSeconds(-1); this.ArenaType = _season.ArenaType; //新赛季 if (_seasonInfo == null) { if (_season.SeasonId == 1) { //第一个赛季 _seasonInfo = new ArenaSeasoninfoEntity(0, _season.PrepareTime, _season.StartTime, endTime, _season.ArenaType, 0, false, date, new Guid(), "", "", new Guid(), "", "", 0, date, date, _domainId, _season.SeasonId); } else { //上一赛季 var onSeasonInfo = ArenaSeasoninfoMgr.GetSeasonInfo(_season.SeasonId - 1, _domainId); #region 初始化赛季 var messageCode = CalculateSeason(onSeasonInfo); if (messageCode != MessageCode.Success) { return(messageCode); } #endregion //上届冠军 var onChampionId = new Guid(); var onChampionName = ""; var onChampionZoneName = ""; //王者之师 var theKingName = ""; var theKingZoneName = ""; var theKingId = new Guid(); var theKingChampionNumber = 0; //获取上届冠军 var onChampion = ArenaManagerrecordMgr.GetChampion(_season.SeasonId - 1, _domainId); if (onChampion != null) { onChampionId = onChampion.ManagerId; onChampionName = onChampion.ManagerName; onChampionZoneName = onChampion.ZoneName; //冠军次数+1 ArenaManagerinfoMgr.SetChampion(onChampion.ManagerId); } //获取得到冠军次数最多的人 var maxChampion = ArenaManagerinfoMgr.GetChampionMax(_domainId); if (maxChampion != null) { if (onSeasonInfo != null) { //上一届跟这一届是同一个人 if (onSeasonInfo.TheKingId == maxChampion.ManagerId) { theKingId = maxChampion.ManagerId; theKingName = maxChampion.ZoneName + "." + maxChampion.ManagerName; theKingZoneName = maxChampion.ZoneName; } else //不是同一人 { //获取上一届王者之师用户信息 var onTheKingInfo = ArenaManagerinfoMgr.GetById(onSeasonInfo.TheKingId); //先达到的为主 if (onTheKingInfo != null && onTheKingInfo.ChampionNumber >= maxChampion.ChampionNumber) { theKingId = onTheKingInfo.ManagerId; theKingName = onTheKingInfo.ZoneName + "." + onTheKingInfo.ManagerName; theKingZoneName = onTheKingInfo.ZoneName; } else { theKingId = maxChampion.ManagerId; theKingName = maxChampion.ZoneName + "." + maxChampion.ManagerName; theKingZoneName = maxChampion.ZoneName; } } } else { theKingId = maxChampion.ManagerId; theKingName = maxChampion.ZoneName + "." + maxChampion.ManagerName; theKingZoneName = maxChampion.ZoneName; } theKingChampionNumber = maxChampion.ChampionNumber; } _seasonInfo = new ArenaSeasoninfoEntity(0, _season.PrepareTime, _season.StartTime, endTime, _season.ArenaType, 0, false, date, onChampionId, onChampionName, onChampionZoneName, theKingId, theKingName, theKingZoneName, theKingChampionNumber, date, date, _domainId, _season.SeasonId); //达到开始条件 if (_seasonInfo.StartTime.Date <= date.Date && _seasonInfo.Status == 0) { _seasonInfo.Status = 1; ArenaManagerinfoMgr.ClearRecord(_seasonInfo.ArenaType, _domainId); } } if (!ArenaSeasoninfoMgr.Insert(_seasonInfo)) { return(MessageCode.NbUpdateFail); } Refresh(); } else { //达到开始条件 if (_seasonInfo.StartTime.Date <= date.Date && _seasonInfo.Status == 0) { _seasonInfo.Status = 1; ArenaManagerinfoMgr.ClearRecord(_seasonInfo.ArenaType, _domainId); if (!ArenaSeasoninfoMgr.Update(_seasonInfo)) { return(MessageCode.NbUpdateFail); } Refresh(); } } } catch (Exception ex) { SystemlogMgr.Error("竞技场初始化赛季", ex); return(MessageCode.NbParameterError); } return(MessageCode.Success); }
public static bool Update(ArenaSeasoninfoEntity arenaSeasoninfoEntity, DbTransaction trans = null, string zoneId = "") { var provider = new ArenaSeasoninfoProvider(zoneId); return(provider.Update(arenaSeasoninfoEntity, trans)); }