/// <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);
        }
示例#3
0
        /// <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));
 }
示例#8
0
        /// <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));
        }