Exemple #1
0
        /// <summary>
        /// 带事务的Update
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="trans">The trans.</param>
        /// <returns></returns>
        /// <remarks>2016/6/7 15:54:23</remarks>
        public bool Update(GambleRankrewardlogEntity entity, DbTransaction trans = null)
        {
            var       database       = new SqlDatabase(this.ConnectionString);
            DbCommand commandWrapper = database.GetStoredProcCommand("dbo.P_GambleRankrewardlog_Update");

            database.AddInParameter(commandWrapper, "@Idx", DbType.Int32, entity.Idx);
            database.AddInParameter(commandWrapper, "@Status", DbType.Int32, entity.Status);
            database.AddInParameter(commandWrapper, "@UpdateTime", DbType.DateTime, entity.UpdateTime);


            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));
        }
Exemple #2
0
        /// <summary>
        /// 将IDataReader的当前记录读取到GambleRankrewardlogEntity 对象
        /// </summary>
        /// <param name="reader"></param>
        /// <returns></returns>
        public GambleRankrewardlogEntity LoadSingleRow(IDataReader reader)
        {
            var obj = new GambleRankrewardlogEntity();

            obj.Idx        = (System.Int32)reader["Idx"];
            obj.Status     = (System.Int32)reader["Status"];
            obj.UpdateTime = (System.DateTime)reader["UpdateTime"];

            return(obj);
        }
Exemple #3
0
        /// <summary>
        /// 发排行榜奖励
        /// </summary>
        public bool GiveRankReward(string zoneId)
        {
            try
            {
                //获取最新的发奖操作日志
                GambleRankrewardlogEntity rewardEntity = GambleRankrewardlogMgr.GetLastestOne(zoneId);
                if (rewardEntity == null)
                {
                    GambleRankrewardlogMgr.AddNewOne(null, zoneId);
                    rewardEntity = GambleRankrewardlogMgr.GetLastestOne(zoneId);
                    //return false;
                }
                GiveReward(zoneId);
                if (CheckRewardIsFinished(zoneId))
                {
                    rewardEntity.Status = 2;
                    GambleRankMgr.MoveToHistory(rewardEntity.Idx, zoneId);
                    //GambleRankrewardlogMgr.AddNewOne(null, zoneId);
                }
                rewardEntity.UpdateTime = DateTime.Now;
                GambleRankrewardlogMgr.Update(rewardEntity, null, zoneId);
                //switch ((EnumGambleRankRewardStatus)rewardEntity.Status)
                //{
                //    //判断是否到了发奖时间,到了就改变状态为发奖中,没有就改变updateTime
                //    //发奖时间为过期后的1小时之内
                //    case EnumGambleRankRewardStatus.Init:
                //        if (IsInRewardTime())
                //        {
                //            rewardEntity.Status = 1;
                //        }
                //        break;
                //    //如果是到了发奖中,就执行发奖操作,全部操作完毕了状态改为发奖完成
                //    case EnumGambleRankRewardStatus.Rewarding:
                //        GiveReward();
                //        if(CheckRewardIsFinished())
                //            rewardEntity.Status = 2;
                //        break;
                //    //如果是发奖完成了,需要清数据,然后新增一条操作日志
                //    case EnumGambleRankRewardStatus.Rewarded:
                //        GambleRankrewardlogMgr.AddNewOne();
                //        break;
                //    default: break;
                //}

                rewardEntity.UpdateTime = DateTime.Now;
                GambleRankrewardlogMgr.Update(rewardEntity, null, zoneId);
                return(true);
            }
            catch (Exception ex)
            {
                SystemlogMgr.Error("GambleCore.GiveRankReward", ex);
            }
            return(false);
        }
Exemple #4
0
        /// <summary>
        /// GetLastestOne
        /// </summary>

        /// <returns>GambleRankrewardlogEntity</returns>
        /// <remarks>2016/6/7 15:54:23</remarks>
        public GambleRankrewardlogEntity GetLastestOne()
        {
            var database = new SqlDatabase(this.ConnectionString);

            DbCommand commandWrapper = database.GetStoredProcCommand("C_GambleRankRewardLog_GetLastestOne");



            GambleRankrewardlogEntity obj = null;

            using (IDataReader reader = database.ExecuteReader(commandWrapper))
            {
                if (reader.Read())
                {
                    obj = LoadSingleRow(reader);
                }
            }
            return(obj);
        }
Exemple #5
0
        /// <summary>
        /// GetById
        /// </summary>
        /// <param name="idx">idx</param>
        /// <returns>GambleRankrewardlogEntity</returns>
        /// <remarks>2016/6/7 15:54:23</remarks>
        public GambleRankrewardlogEntity GetById(System.Int32 idx)
        {
            var database = new SqlDatabase(this.ConnectionString);

            DbCommand commandWrapper = database.GetStoredProcCommand("P_GambleRankrewardlog_GetById");

            database.AddInParameter(commandWrapper, "@Idx", DbType.Int32, idx);


            GambleRankrewardlogEntity obj = null;

            using (IDataReader reader = database.ExecuteReader(commandWrapper))
            {
                if (reader.Read())
                {
                    obj = LoadSingleRow(reader);
                }
            }
            return(obj);
        }
Exemple #6
0
        /// <summary>
        /// 每个月发奖
        /// </summary>
        public void GiveMonthRankReward()
        {
            try
            {
                //如果没到发奖时间
                if (!IsInGiveMonthRewardTime())
                {
                    return;
                }
                //获取最新的发奖操作日志
                GambleRankrewardlogEntity rewardEntity = GambleRankrewardlogMgr.GetLastestOne(string.Empty);
                if (rewardEntity == null)
                {
                    GambleRankrewardlogMgr.AddNewOne();
                    rewardEntity = GambleRankrewardlogMgr.GetLastestOne();
                    return;
                }
                //如果上一次日志记录久远,需要重新创建一条
                if (rewardEntity.UpdateTime.AddMinutes(90) < DateTime.Now)
                {
                    GambleRankrewardlogMgr.AddNewOne();
                    rewardEntity = GambleRankrewardlogMgr.GetLastestOne();
                    return;
                }

                //如果已经发过奖了,直接返回
                if (rewardEntity.Status == 2)
                {
                    return;
                }
                //执行发奖操作
                GiveRankReward(string.Empty);
            }
            catch (Exception ex)
            {
                SystemlogMgr.Error("Gamble.GiveMonthRankReward", ex);
            }
        }
Exemple #7
0
        public static bool Update(GambleRankrewardlogEntity gambleRankrewardlogEntity, DbTransaction trans = null, string zoneId = "")
        {
            var provider = new GambleRankrewardlogProvider(zoneId);

            return(provider.Update(gambleRankrewardlogEntity, trans));
        }