public FreezeInfo QueryFreezeInfo(decimal applyformId) { FreezeInfo result = null; var sql = "SELECT Id,OrderId,TradeNo,Account,Amount,FreezeNo,RequestTime,Success,ProcessTime,Remark FROM dbo.T_OrderFreeze" + " WHERE ApplyformId=@ApplyformId AND [Type]=@Type"; using (var dbOperator = new DbOperator(Provider, ConnectionString)) { dbOperator.AddParameter("ApplyformId", applyformId); dbOperator.AddParameter("Type", (byte)FreezeType.Freeze); using (var reader = dbOperator.ExecuteReader(sql)) { if (reader.Read()) { result = new FreezeInfo(reader.GetGuid(0)) { OrderId = reader.GetDecimal(1), ApplyformId = applyformId, TradeNo = reader.GetString(2), Account = reader.GetString(3), Amount = reader.GetDecimal(4), No = reader.IsDBNull(5) ? string.Empty : reader.GetString(5), RequestTime = reader.GetDateTime(6), Success = reader.GetBoolean(7), Remark = reader.IsDBNull(9) ? string.Empty : reader.GetString(9) }; if (!reader.IsDBNull(8)) { result.ProcessedTime = reader.GetDateTime(8); } } } } return(result); }
public FreezeModifier(ModifierInfo info, Entity casterEntity, Entity targetEntity, Environment environment, CollectionOfInteractions modifierInteractionCollection) : base(info, casterEntity, targetEntity, environment, modifierInteractionCollection) { this.info = (FreezeInfo)info; targetAnimationComponent = targetEntity.GetComponent <AnimationComponent>(); targetMovementComponent = targetEntity.GetComponent <MovementComponent>(); }
protected override List <Lifetime> CreateLifetimes(ModifierInfo modifierInfo) { FreezeInfo fi = (FreezeInfo)modifierInfo; float duration = fi.Fmc.ShowDurationInSeconds(); StatsComponent casterStatsComponent = casterEntity.GetComponent <StatsComponent>(); Stats casterFreezeDurationUpScaleStats = casterStatsComponent.CharacterStats.FindStats(StatsType.FreezeDurationUpScale); StatsComponent targetStatsComponent = targetEntity.GetComponent <StatsComponent>(); Stats targetFreezeDurationDownScaleStats = targetStatsComponent.CharacterStats.FindStats(StatsType.FreezeDurationDownScale); return(new List <Lifetime>(new [] { new DurationBasedLifetime( duration * (1 + targetFreezeDurationDownScaleStats.BakedFloatValue) * (1 + casterFreezeDurationUpScaleStats.BakedFloatValue) ), })); }
public void Save(FreezeInfo info) { var sql = "INSERT INTO dbo.T_OrderFreeze(Id,OrderId,ApplyformId,TradeNo,Account,Amount,FreezeNo," + "RequestTime,Success,ProcessTime,[Type],Remark) VALUES (@Id,@OrderId,@ApplyformId,@TradeNo,@Account,@Amount,@FreezeNo," + "@RequestTime,@Success,@ProcessTime,@Type,@Remark)"; using (var dbOperator = new DbOperator(Provider, ConnectionString)) { dbOperator.AddParameter("Id", info.Id); dbOperator.AddParameter("OrderId", info.OrderId); dbOperator.AddParameter("ApplyformId", info.ApplyformId); dbOperator.AddParameter("TradeNo", info.TradeNo); dbOperator.AddParameter("Account", info.Account); dbOperator.AddParameter("Amount", info.Amount); if (string.IsNullOrWhiteSpace(info.No)) { dbOperator.AddParameter("FreezeNo", DBNull.Value); } else { dbOperator.AddParameter("FreezeNo", info.No); } dbOperator.AddParameter("RequestTime", info.RequestTime); dbOperator.AddParameter("Success", info.Success); if (info.ProcessedTime.HasValue) { dbOperator.AddParameter("ProcessTime", info.ProcessedTime.Value); } else { dbOperator.AddParameter("ProcessTime", DBNull.Value); } dbOperator.AddParameter("Type", (byte)FreezeType.Freeze); dbOperator.AddParameter("Remark", info.Remark ?? string.Empty); dbOperator.ExecuteNonQuery(sql); } }
public IEnumerable <FreezeBaseInfo> Query(FreezeQueryCondition condition, Pagination pagination) { var result = new List <FreezeBaseInfo>(); var fields = "[Type],Id,OrderId,ApplyformId,TradeNo,Account,Amount,FreezeNo,UnfreezeNo,RequestTime,Success,ProcessTime,Remark"; var catelog = "dbo.T_OrderFreeze"; var orderbyFiled = "ApplyformId DESC,RequestTime"; var where = new StringBuilder(); if (condition.OrderId.HasValue) { where.AppendFormat("OrderId={0} AND ", condition.OrderId.Value); } if (condition.ApplyformId.HasValue) { where.AppendFormat("ApplyformId={0} AND ", condition.ApplyformId.Value); } if (condition.Type.HasValue) { where.AppendFormat("[Type]={0} AND ", (byte)condition.Type.Value); } if (condition.Success.HasValue) { where.AppendFormat("Success={0} AND ", condition.Success.Value?1:0); } where.AppendFormat("RequestTime BETWEEN '{0}' AND '{1}'", condition.RequestDate.Lower.Date, condition.RequestDate.Upper.Date.AddDays(1).AddTicks(-1)); using (var dbOperator = new DbOperator(Provider, ConnectionString)) { dbOperator.AddParameter("@iField", fields); dbOperator.AddParameter("@iCatelog", catelog); dbOperator.AddParameter("@iCondition", where.ToString()); dbOperator.AddParameter("@iOrderBy", orderbyFiled); dbOperator.AddParameter("@iPagesize", pagination.PageSize); dbOperator.AddParameter("@iPageIndex", pagination.PageIndex); dbOperator.AddParameter("@iGetCount", pagination.GetRowCount); var totalCount = dbOperator.AddParameter("@oTotalCount"); totalCount.DbType = System.Data.DbType.Int32; totalCount.Direction = System.Data.ParameterDirection.Output; using (var reader = dbOperator.ExecuteReader("dbo.P_Pagination", System.Data.CommandType.StoredProcedure)) { while (reader.Read()) { FreezeBaseInfo item = null; var type = (FreezeType)reader.GetByte(0); if (type == FreezeType.Freeze) { item = new FreezeInfo(reader.GetGuid(1)) { TradeNo = getString(reader["TradeNo"]), No = getString(reader["FreezeNo"]) }; } else { item = new UnfreezeInfo(reader.GetGuid(1)) { FreezeNo = getString(reader["FreezeNo"]), No = getString(reader["UnfreezeNo"]) }; } item.OrderId = reader.GetDecimal(2); item.ApplyformId = reader.GetDecimal(3); item.Account = reader.GetString(5); item.Amount = reader.GetDecimal(6); item.RequestTime = reader.GetDateTime(9); item.Success = reader.GetBoolean(10); if (!reader.IsDBNull(11)) { item.ProcessedTime = reader.GetDateTime(11); } item.Remark = reader.IsDBNull(12) ? string.Empty : reader.GetString(12); result.Add(item); } } if (pagination.GetRowCount) { pagination.RowCount = (int)totalCount.Value; } } return(result); }
internal static void Freeze(BalanceRefundApplyform balanceRefundApplyform) { if (!balanceRefundApplyform.Order.Bill.PayBill.RoyaltySucceed) { return; } if (!balanceRefundApplyform.Applyform.RefundBill.Succeed) { return; } var providerPayBill = balanceRefundApplyform.Order.Bill.PayBill.Provider; var tradeNo = balanceRefundApplyform.Order.Bill.PayBill.Tradement.TradeNo; var freezeAccount = providerPayBill.Owner.Account; var freezeAmount = getFreezeAmount(balanceRefundApplyform, providerPayBill, balanceRefundApplyform.Applyform.RefundBill.Provider); var freezeRequest = string.Format("交易流水号:{0} 账号:{1} 金额:{2}", tradeNo, freezeAccount, freezeAmount); var freezeResponse = string.Empty; string freezeNo = null; var freezeSuccess = false; try { TradeFreezeRequestProcess request = new TradeFreezeRequestProcess(balanceRefundApplyform.OrderId, balanceRefundApplyform.Id, tradeNo, providerPayBill.Owner.Account, freezeAmount); if (request.Execute()) { freezeNo = request.FreezeNo; freezeResponse = "冻结号:" + freezeNo; freezeSuccess = true; } else { freezeResponse = "冻结号失败," + request.Message; freezeSuccess = false; } } catch (Exception ex) { freezeResponse = ex.Message; } finally { // 记录冻结记录 var freezeInfo = new FreezeInfo() { OrderId = balanceRefundApplyform.OrderId, ApplyformId = balanceRefundApplyform.Id, TradeNo = balanceRefundApplyform.Order.Bill.PayBill.Tradement.TradeNo, Account = freezeAccount, Amount = freezeAmount, No = freezeNo, RequestTime = DateTime.Now, Success = freezeSuccess }; if (freezeSuccess) { freezeInfo.ProcessedTime = DateTime.Now; freezeInfo.Remark = string.Empty; } else { freezeInfo.Remark = freezeResponse; } var repository = Order.Repository.Factory.CreateFreezeRepository(); repository.Save(freezeInfo); // 记录交互日志 Service.LogService.SaveTradementLog(new TradementLog() { OrderId = balanceRefundApplyform.OrderId, ApplyformId = balanceRefundApplyform.Id, Type = TradementBusinessType.Freeze, Request = freezeRequest, Response = freezeResponse, Time = DateTime.Now, Remark = "差额退款,冻结出票方票款" }); } }