/// <summary>
        /// 将IDataReader的当前记录读取到TransferMainEntity 对象
        /// </summary>
        /// <param name="reader"></param>
        /// <returns></returns>
        public TransferMainEntity LoadSingleRow(IDataReader reader)
        {
            var obj = new TransferMainEntity();

            obj.TransferId        = (System.Guid)reader["TransferId"];
            obj.DomainId          = (System.Int32)reader["DomainId"];
            obj.ItemCode          = (System.Int32)reader["ItemCode"];
            obj.ItemName          = (System.String)reader["ItemName"];
            obj.ItemProp          = (System.Byte[])reader["ItemProp"];
            obj.SellName          = (System.String)reader["SellName"];
            obj.SellId            = (System.Guid)reader["SellId"];
            obj.SellZoneName      = (System.String)reader["SellZoneName"];
            obj.Price             = (System.Int32)reader["Price"];
            obj.DealEndName       = (System.String)reader["DealEndName"];
            obj.DealEndZoneName   = (System.String)reader["DealEndZoneName"];
            obj.DealEndPrice      = (System.Int32)reader["DealEndPrice"];
            obj.DealEndId         = (System.Guid)reader["DealEndId"];
            obj.TransferStartTime = (System.DateTime)reader["TransferStartTime"];
            obj.TransferDuration  = (System.DateTime)reader["TransferDuration"];
            obj.Status            = (System.Int32)reader["Status"];
            obj.Poundage          = (System.Int32)reader["Poundage"];
            obj.GetPrice          = (System.Int32)reader["GetPrice"];
            obj.UpdateTime        = (System.DateTime)reader["UpdateTime"];
            obj.RowTime           = (System.DateTime)reader["RowTime"];

            return(obj);
        }
Example #2
0
        public TransferMainEntity GetInfo(Guid transferId)
        {
            TransferMainEntity entity = null;

            if (!_transferDic.ContainsKey(transferId))
            {
                entity = _tenTransferList.Find(r => r.TransferId == transferId);
            }
            else
            {
                entity = _transferDic[transferId];
            }
            return(entity);
        }
Example #3
0
        public bool Remove(Guid transferId)
        {
            TransferMainEntity outEntity = null;

            if (_transferDic.ContainsKey(transferId))
            {
                _transferDic.TryRemove(transferId, out outEntity);
                Sort();
                return(true);
            }
            outEntity = _tenTransferList.Find(r => r.TransferId == transferId);
            if (outEntity == null)
            {
                return(false);
            }
            _tenTransferList.Remove(outEntity);
            Sort();
            return(true);
        }
        /// <summary>
        /// 带事务的Update
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="trans">The trans.</param>
        /// <returns></returns>
        /// <remarks>2016/10/26 15:35:21</remarks>
        public bool Update(TransferMainEntity entity, DbTransaction trans)
        {
            var       database       = new SqlDatabase(this.ConnectionString);
            DbCommand commandWrapper = database.GetStoredProcCommand("dbo.P_TransferMain_Update");

            database.AddInParameter(commandWrapper, "@TransferId", DbType.Guid, entity.TransferId);
            database.AddInParameter(commandWrapper, "@DomainId", DbType.Int32, entity.DomainId);
            database.AddInParameter(commandWrapper, "@ItemCode", DbType.Int32, entity.ItemCode);
            database.AddInParameter(commandWrapper, "@ItemName", DbType.AnsiString, entity.ItemName);
            database.AddInParameter(commandWrapper, "@ItemProp", DbType.Binary, entity.ItemProp);
            database.AddInParameter(commandWrapper, "@SellName", DbType.AnsiString, entity.SellName);
            database.AddInParameter(commandWrapper, "@SellId", DbType.Guid, entity.SellId);
            database.AddInParameter(commandWrapper, "@SellZoneName", DbType.AnsiString, entity.SellZoneName);
            database.AddInParameter(commandWrapper, "@Price", DbType.Int32, entity.Price);
            database.AddInParameter(commandWrapper, "@DealEndName", DbType.AnsiString, entity.DealEndName);
            database.AddInParameter(commandWrapper, "@DealEndZoneName", DbType.AnsiString, entity.DealEndZoneName);
            database.AddInParameter(commandWrapper, "@DealEndPrice", DbType.Int32, entity.DealEndPrice);
            database.AddInParameter(commandWrapper, "@DealEndId", DbType.Guid, entity.DealEndId);
            database.AddInParameter(commandWrapper, "@TransferStartTime", DbType.DateTime, entity.TransferStartTime);
            database.AddInParameter(commandWrapper, "@TransferDuration", DbType.DateTime, entity.TransferDuration);
            database.AddInParameter(commandWrapper, "@Status", DbType.Int32, entity.Status);
            database.AddInParameter(commandWrapper, "@Poundage", DbType.Int32, entity.Poundage);
            database.AddInParameter(commandWrapper, "@GetPrice", DbType.Int32, entity.GetPrice);
            database.AddInParameter(commandWrapper, "@UpdateTime", DbType.DateTime, entity.UpdateTime);
            database.AddInParameter(commandWrapper, "@RowTime", DbType.DateTime, entity.RowTime);


            int results = 0;

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

            entity.TransferId = (System.Guid)database.GetParameterValue(commandWrapper, "@TransferId");

            return(Convert.ToBoolean(results));
        }
        /// <summary>
        /// GetById
        /// </summary>
        /// <param name="transferId">transferId</param>
        /// <returns>TransferMainEntity</returns>
        /// <remarks>2016/10/26 15:35:21</remarks>
        public TransferMainEntity GetById(System.Guid transferId)
        {
            var database = new SqlDatabase(this.ConnectionString);

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

            database.AddInParameter(commandWrapper, "@TransferId", DbType.Guid, transferId);


            TransferMainEntity obj = null;

            using (IDataReader reader = database.ExecuteReader(commandWrapper))
            {
                if (reader.Read())
                {
                    obj = LoadSingleRow(reader);
                }
            }
            return(obj);
        }
Example #6
0
        /// <summary>
        /// 开始拍卖
        /// </summary>
        /// <param name="managerId"></param>
        /// <param name="zoneName"></param>
        /// <param name="itemId"></param>
        /// <param name="price"></param>
        /// <param name="transferDuration"></param>
        public AuctionItemResponse AuctionItem(Guid managerId, string zoneName, Guid itemId, int price, int transferDuration)
        {
            var response = new AuctionItemResponse();

            response.Data = new AuctionItemEntity();
            try
            {
                DateTime date    = DateTime.Now;
                var      manager = NbManagerMgr.GetById(managerId, zoneName);
                if (manager == null)
                {
                    return(ResponseHelper.Create <AuctionItemResponse>(MessageCode.AdMissManager));
                }
                if (!IsOpen(managerId, zoneName, manager))
                {
                    return(ResponseHelper.Create <AuctionItemResponse>(MessageCode.TransferNotOpen));
                }
                //已经挂牌了多少个
                var number = TransferMainMgr.GetTransferNumber(managerId);
                //最多可以挂牌多少个
                var gambleCountMax = CacheFactory.VipdicCache.GetEffectValue(manager.VipLevel, EnumVipEffect.TransferNumber);
                if (gambleCountMax <= number)
                {
                    return(ResponseHelper.Create <AuctionItemResponse>(MessageCode.TransferNumberMax));
                }
                var package = ItemCore.Instance.GetPackage(managerId, EnumTransactionType.Transfer, zoneName);
                if (package == null)
                {
                    return(ResponseHelper.Create <AuctionItemResponse>(MessageCode.NbNoPackage));
                }

                if (price < 2)
                {
                    return(ResponseHelper.Create <AuctionItemResponse>(MessageCode.StartPriceSmall));
                }
                var item = package.GetItem(itemId);
                if (item == null)
                {
                    return(ResponseHelper.Create <AuctionItemResponse>(MessageCode.ItemNotExists));
                }
                if (!item.IsDeal)
                {
                    return(ResponseHelper.Create <AuctionItemResponse>(MessageCode.NotDeal));
                }
                var strength = item.GetStrength();
                if (strength > 1)
                {
                    return(ResponseHelper.Create <AuctionItemResponse>(MessageCode.NotDeal));
                }
                var iteminfo = CacheFactory.ItemsdicCache.GetItem(item.ItemCode);
                if (iteminfo == null)
                {
                    return(ResponseHelper.Create <AuctionItemResponse>(MessageCode.ItemNotExists));
                }
                //默认86400秒  24小时
                TransferMainEntity entity = new TransferMainEntity(ShareUtil.GenerateComb(), _domainId, item.ItemCode, iteminfo.ItemName,
                                                                   new byte[0], manager.Name, managerId, zoneName, price, "",
                                                                   "", 0, Guid.Empty, date, date.AddDays(1), 0, 0, 0, date, date);

                var messageCode = package.Delete(itemId);
                if (messageCode != MessageCode.Success)
                {
                    return(ResponseHelper.Create <AuctionItemResponse>(messageCode));
                }
                if (!package.Save())
                {
                    return(ResponseHelper.Create <AuctionItemResponse>(MessageCode.NbUpdateFail));
                }
                if (!TransferMainMgr.Insert(entity))
                {
                    messageCode = package.AddItem(item.ItemCode);
                    if (messageCode != MessageCode.Success)
                    {
                        SystemlogMgr.Error("拍卖返还物品失败",
                                           "拍卖返还物品失败,managerId:" + managerId + ",zoneName:" + zoneName + "物品ID:" + item.ItemCode);
                    }
                    return(ResponseHelper.Create <AuctionItemResponse>(MessageCode.NbUpdateFail));
                }
                package.Shadow.Save();
                entity.TransferDurationTick = ShareUtil.GetTimeTick(entity.TransferDuration);
                entity.TransferDurationTick = ShareUtil.GetTimeTick(entity.TransferDuration);
                var modId = ShareUtil.GetTableMod(entity.TransferId);
                entity.ModId = modId;
                _tenTransferList.Add(entity);
                Sort();
                response.Data.MyTransferList     = GetMyTransfer(managerId);
                response.Data.MaxTransferNumber  = gambleCountMax;
                response.Data.HaveTransferNumber = number + 1;
                var goldBarEntity = ScoutingGoldbarMgr.GetById(managerId, zoneName);
                if (goldBarEntity != null)
                {
                    response.Data.MyGoldBar = goldBarEntity.GoldBarNumber;
                }
            }
            catch (Exception ex)
            {
                SystemlogMgr.Error("开始拍卖", ex);
                response.Code = (int)MessageCode.NbParameterError;
            }
            return(response);
        }
 /// <summary>
 /// Update
 /// </summary>
 /// <param name="entity"></param>
 /// <returns></returns>
 /// <remarks>2016/10/26 15:35:21</remarks>
 public bool Update(TransferMainEntity entity)
 {
     return(Update(entity, null));
 }
 /// <summary>
 /// Insert
 /// </summary>
 /// <param name="entity"></param>
 /// <param name="trans">The trans.</param>
 /// <returns></returns>
 /// <remarks>2016/10/26 15:35:21</remarks>
 public bool Insert(TransferMainEntity entity)
 {
     return(Insert(entity, null));
 }
Example #9
0
        public static bool Update(TransferMainEntity transferMainEntity, DbTransaction trans = null, string zoneId = "")
        {
            var provider = new TransferMainProvider(zoneId);

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