/// <summary>
        /// 带事务的Update
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="trans">The trans.</param>
        /// <returns></returns>
        /// <remarks>2016/11/16 18:12:20</remarks>
        public bool Update(ConfigCrossactivityprizeEntity entity, DbTransaction trans)
        {
            var       database       = new SqlDatabase(this.ConnectionString);
            DbCommand commandWrapper = database.GetStoredProcCommand("dbo.P_ConfigCrossactivityprize_Update");

            database.AddInParameter(commandWrapper, "@Idx", DbType.Int32, entity.Idx);
            database.AddInParameter(commandWrapper, "@ActivityId", DbType.Int32, entity.ActivityId);
            database.AddInParameter(commandWrapper, "@PrizeId", DbType.Int32, entity.PrizeId);
            database.AddInParameter(commandWrapper, "@PrizeType", DbType.Int32, entity.PrizeType);
            database.AddInParameter(commandWrapper, "@PrizeCode", DbType.Int32, entity.PrizeCode);
            database.AddInParameter(commandWrapper, "@PrizeCount", DbType.Int32, entity.PrizeCount);
            database.AddInParameter(commandWrapper, "@PrizeCount2", DbType.Int32, entity.PrizeCount2);
            database.AddInParameter(commandWrapper, "@Rate", DbType.Int32, entity.Rate);


            int results = 0;

            if (trans != null)
            {
                results = database.ExecuteNonQuery(commandWrapper, trans);
            }
            else
            {
                results = database.ExecuteNonQuery(commandWrapper);
            }


            return(Convert.ToBoolean(results));
        }
        /// <summary>
        /// 将IDataReader的当前记录读取到ConfigCrossactivityprizeEntity 对象
        /// </summary>
        /// <param name="reader"></param>
        /// <returns></returns>
        public ConfigCrossactivityprizeEntity LoadSingleRow(IDataReader reader)
        {
            var obj = new ConfigCrossactivityprizeEntity();

            obj.Idx         = (System.Int32)reader["Idx"];
            obj.ActivityId  = (System.Int32)reader["ActivityId"];
            obj.PrizeId     = (System.Int32)reader["PrizeId"];
            obj.PrizeType   = (System.Int32)reader["PrizeType"];
            obj.PrizeCode   = (System.Int32)reader["PrizeCode"];
            obj.PrizeCount  = (System.Int32)reader["PrizeCount"];
            obj.PrizeCount2 = (System.Int32)reader["PrizeCount2"];
            obj.Rate        = (System.Int32)reader["Rate"];

            return(obj);
        }
        /// <summary>
        /// GetById
        /// </summary>
        /// <param name="idx">idx</param>
        /// <returns>ConfigCrossactivityprizeEntity</returns>
        /// <remarks>2016/11/16 18:12:20</remarks>
        public ConfigCrossactivityprizeEntity GetById(System.Int32 idx)
        {
            var database = new SqlDatabase(this.ConnectionString);

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

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


            ConfigCrossactivityprizeEntity obj = null;

            using (IDataReader reader = database.ExecuteReader(commandWrapper))
            {
                if (reader.Read())
                {
                    obj = LoadSingleRow(reader);
                }
            }
            return(obj);
        }
예제 #4
0
        public ConfigCrossactivityprizeEntity Prize(int vipLevel)
        {
            ConfigCrossactivityprizeEntity result = null;
            int rate = 0;

            if (vipLevel < 2)
            {
                rate = RandomHelper.GetInt32(801, 10000);
            }
            else
            {
                rate = RandomHelper.GetInt32(0, 10000);
            }
            int index = 20;

            do
            {
                var prizeId = CacheFactory.TurntableCache.Prize(rate);
                result = CacheFactory.TurntableCache.GetPrize(prizeId);
                if (result != null)
                {
                    if (result.PrizeType == (int)EnumCrossActivityType.GoleBar)
                    {
                        if (_ActivityInfo.GoldBarNumber < result.PrizeCount)
                        {
                            rate = RandomHelper.GetInt32(801, 10000);
                        }
                        else
                        {
                            break;
                        }
                    }
                    else
                    {
                        break;
                    }
                }
                index--;
            } while (index > 0);
            return(result);
        }
예제 #5
0
        public MessageCode AddPrize(ConfigCrossactivityprizeEntity prize, Guid managerId, string zoneName, ref ItemPackageFrame package, ref int addPoint, ref int addGoldBar, ref int itemCode, ref int itemCount)
        {
            switch (prize.PrizeType)
            {
            case (int)EnumCrossActivityType.Point:
                itemCount = RandomHelper.GetInt32(prize.PrizeCount, prize.PrizeCount2);
                addPoint  = itemCount;
                break;

            case (int)EnumCrossActivityType.Coin:
                break;

            case (int)EnumCrossActivityType.Item:
                if (package == null)
                {
                    package = ItemCore.Instance.GetPackage(managerId, EnumTransactionType.CrossActivity, zoneName);
                }
                if (package == null)
                {
                    return(MessageCode.NbParameterError);
                }
                itemCode  = prize.PrizeCode;
                itemCount = prize.PrizeCount;
                return(package.AddItems(prize.PrizeCode, prize.PrizeCount));

            case (int)EnumCrossActivityType.Random:
                itemCode = CacheFactory.LotteryCache.LotteryByLib(prize.PrizeCode);
                if (itemCode == 0)
                {
                    return(MessageCode.NbParameterError);
                }
                if (package == null)
                {
                    package = ItemCore.Instance.GetPackage(managerId, EnumTransactionType.CrossActivity, zoneName);
                }
                if (package == null)
                {
                    return(MessageCode.NbParameterError);
                }
                itemCount = prize.PrizeCount;
                return(package.AddItems(itemCode, prize.PrizeCount));

            case (int)EnumCrossActivityType.Equipment:
                itemCode = GetRandomDebris();;
                if (itemCode == 0)
                {
                    return(MessageCode.NbParameterError);
                }
                if (package == null)
                {
                    package = ItemCore.Instance.GetPackage(managerId, EnumTransactionType.CrossActivity, zoneName);
                }
                if (package == null)
                {
                    return(MessageCode.NbParameterError);
                }
                itemCount = prize.PrizeCount;
                return(package.AddItems(itemCode, prize.PrizeCount));

            case (int)EnumCrossActivityType.GoleBar:
                itemCount  = RandomHelper.GetInt32(prize.PrizeCount, prize.PrizeCount2);
                addGoldBar = itemCount;
                _ActivityInfo.GoldBarNumber = _ActivityInfo.GoldBarNumber - addGoldBar;
                if (_ActivityInfo.GoldBarNumber < 0)
                {
                    _ActivityInfo.GoldBarNumber = 0;
                }
                break;
            }
            return(MessageCode.Success);
        }
예제 #6
0
        public static bool Update(ConfigCrossactivityprizeEntity configCrossactivityprizeEntity, DbTransaction trans = null, string zoneId = "")
        {
            var provider = new ConfigCrossactivityprizeProvider(zoneId);

            return(provider.Update(configCrossactivityprizeEntity, trans));
        }
 /// <summary>
 /// Update
 /// </summary>
 /// <param name="entity"></param>
 /// <returns></returns>
 /// <remarks>2016/11/16 18:12:20</remarks>
 public bool Update(ConfigCrossactivityprizeEntity entity)
 {
     return(Update(entity, null));
 }
 /// <summary>
 /// Insert
 /// </summary>
 /// <param name="entity"></param>
 /// <param name="trans">The trans.</param>
 /// <returns></returns>
 /// <remarks>2016/11/16 18:12:20</remarks>
 public bool Insert(ConfigCrossactivityprizeEntity entity)
 {
     return(Insert(entity, null));
 }