/// <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); }
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); }
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); }
/// <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)); }
public static bool Update(TransferMainEntity transferMainEntity, DbTransaction trans = null, string zoneId = "") { var provider = new TransferMainProvider(zoneId); return(provider.Update(transferMainEntity, trans)); }