/// <summary> /// 更新一条数据 ///<param name="model"></param> /// </summary> public void Update(HK_TodayTradeInfo model) { StringBuilder strSql = new StringBuilder(); strSql.Append("update HK_TodayTrade set "); strSql.Append("EntrustNumber=@EntrustNumber,"); strSql.Append("PortfolioLogo=@PortfolioLogo,"); strSql.Append("TradePrice=@TradePrice,"); strSql.Append("TradeAmount=@TradeAmount,"); strSql.Append("EntrustPrice=@EntrustPrice,"); strSql.Append("StampTax=@StampTax,"); strSql.Append("Commission=@Commission,"); strSql.Append("TransferAccountFee=@TransferAccountFee,"); strSql.Append("TradeProceduresFee=@TradeProceduresFee,"); strSql.Append("MonitoringFee=@MonitoringFee,"); strSql.Append("TradingSystemUseFee=@TradingSystemUseFee,"); strSql.Append("TradeCapitalAmount=@TradeCapitalAmount,"); strSql.Append("ClearingFee=@ClearingFee,"); strSql.Append("HoldAccount=@HoldAccount,"); strSql.Append("CapitalAccount=@CapitalAccount,"); strSql.Append("Code=@Code,"); strSql.Append("TradeTypeId=@TradeTypeId,"); strSql.Append("TradeUnitId=@TradeUnitId,"); strSql.Append("BuySellTypeId=@BuySellTypeId,"); strSql.Append("CurrencyTypeId=@CurrencyTypeId,"); strSql.Append("TradeTime=@TradeTime"); strSql.Append(" where TradeNumber=@TradeNumber "); Database db = DatabaseFactory.CreateDatabase(); DbCommand dbCommand = db.GetSqlStringCommand(strSql.ToString()); db.AddInParameter(dbCommand, "TradeNumber", DbType.AnsiString, model.TradeNumber); db.AddInParameter(dbCommand, "PortfolioLogo", DbType.AnsiString, model.PortfolioLogo); db.AddInParameter(dbCommand, "EntrustNumber", DbType.AnsiString, model.EntrustNumber); db.AddInParameter(dbCommand, "TradePrice", DbType.Decimal, model.TradePrice); db.AddInParameter(dbCommand, "TradeAmount", DbType.Int32, model.TradeAmount); db.AddInParameter(dbCommand, "EntrustPrice", DbType.Decimal, model.EntrustPrice); db.AddInParameter(dbCommand, "StampTax", DbType.Decimal, model.StampTax); db.AddInParameter(dbCommand, "Commission", DbType.Decimal, model.Commission); db.AddInParameter(dbCommand, "TransferAccountFee", DbType.Decimal, model.TransferAccountFee); db.AddInParameter(dbCommand, "TradeProceduresFee", DbType.Decimal, model.TradeProceduresFee); db.AddInParameter(dbCommand, "MonitoringFee", DbType.Decimal, model.MonitoringFee); db.AddInParameter(dbCommand, "TradingSystemUseFee", DbType.Decimal, model.TradingSystemUseFee); db.AddInParameter(dbCommand, "TradeCapitalAmount", DbType.Decimal, model.TradeCapitalAmount); db.AddInParameter(dbCommand, "ClearingFee", DbType.Decimal, model.ClearingFee); db.AddInParameter(dbCommand, "HoldAccount", DbType.AnsiString, model.HoldAccount); db.AddInParameter(dbCommand, "CapitalAccount", DbType.AnsiString, model.CapitalAccount); db.AddInParameter(dbCommand, "Code", DbType.AnsiString, model.Code); db.AddInParameter(dbCommand, "TradeTypeId", DbType.Int32, model.TradeTypeId); db.AddInParameter(dbCommand, "TradeUnitId", DbType.Int32, model.TradeUnitId); db.AddInParameter(dbCommand, "BuySellTypeId", DbType.Int32, model.BuySellTypeId); db.AddInParameter(dbCommand, "CurrencyTypeId", DbType.Int32, model.CurrencyTypeId); db.AddInParameter(dbCommand, "TradeTime", DbType.DateTime, model.TradeTime); db.ExecuteNonQuery(dbCommand); }
/// <summary> /// 得到一个对象实体 ///<param name="tradeNumber"></param> /// </summary> public HK_TodayTradeInfo GetModel(string tradeNumber) { StringBuilder strSql = new StringBuilder(); strSql.Append("select TradeNumber,PortfolioLogo,EntrustNumber,TradePrice,TradeAmount,EntrustPrice,StampTax,Commission,TransferAccountFee,TradeProceduresFee,MonitoringFee,TradingSystemUseFee,TradeCapitalAmount,ClearingFee,HoldAccount,CapitalAccount,Code,TradeTypeId,TradeUnitId,BuySellTypeId,CurrencyTypeId,TradeTime from HK_TodayTrade "); strSql.Append(" where TradeNumber=@TradeNumber "); Database db = DatabaseFactory.CreateDatabase(); DbCommand dbCommand = db.GetSqlStringCommand(strSql.ToString()); db.AddInParameter(dbCommand, "TradeNumber", DbType.AnsiString, tradeNumber); HK_TodayTradeInfo model = null; using (IDataReader dataReader = db.ExecuteReader(dbCommand)) { if (dataReader.Read()) { model = ReaderBind(dataReader); } } return(model); }
/// <summary> /// 增加一条数据 ///<param name="model"></param> /// </summary> public void Add(HK_TodayTradeInfo model) { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into HK_TodayTrade("); strSql.Append("TradeNumber,PortfolioLogo,EntrustNumber,TradePrice,TradeAmount,EntrustPrice,StampTax,Commission,TransferAccountFee,TradeProceduresFee,MonitoringFee,TradingSystemUseFee,TradeCapitalAmount,ClearingFee,HoldAccount,CapitalAccount,Code,TradeTypeId,TradeUnitId,BuySellTypeId,CurrencyTypeId,TradeTime)"); strSql.Append(" values ("); strSql.Append("@TradeNumber,@PortfolioLogo,@EntrustNumber,@TradePrice,@TradeAmount,@EntrustPrice,@StampTax,@Commission,@TransferAccountFee,@TradeProceduresFee,@MonitoringFee,@TradingSystemUseFee,@TradeCapitalAmount,@ClearingFee,@HoldAccount,@CapitalAccount,@Code,@TradeTypeId,@TradeUnitId,@BuySellTypeId,@CurrencyTypeId,@TradeTime)"); Database db = DatabaseFactory.CreateDatabase(); DbCommand dbCommand = db.GetSqlStringCommand(strSql.ToString()); db.AddInParameter(dbCommand, "TradeNumber", DbType.AnsiString, model.TradeNumber); db.AddInParameter(dbCommand, "PortfolioLogo", DbType.AnsiString, model.PortfolioLogo); db.AddInParameter(dbCommand, "EntrustNumber", DbType.AnsiString, model.EntrustNumber); db.AddInParameter(dbCommand, "TradePrice", DbType.Decimal, model.TradePrice); db.AddInParameter(dbCommand, "TradeAmount", DbType.Int32, model.TradeAmount); db.AddInParameter(dbCommand, "EntrustPrice", DbType.Decimal, model.EntrustPrice); db.AddInParameter(dbCommand, "StampTax", DbType.Decimal, model.StampTax); db.AddInParameter(dbCommand, "Commission", DbType.Decimal, model.Commission); db.AddInParameter(dbCommand, "TransferAccountFee", DbType.Decimal, model.TransferAccountFee); db.AddInParameter(dbCommand, "TradeProceduresFee", DbType.Decimal, model.TradeProceduresFee); db.AddInParameter(dbCommand, "MonitoringFee", DbType.Decimal, model.MonitoringFee); db.AddInParameter(dbCommand, "TradingSystemUseFee", DbType.Decimal, model.TradingSystemUseFee); db.AddInParameter(dbCommand, "TradeCapitalAmount", DbType.Decimal, model.TradeCapitalAmount); db.AddInParameter(dbCommand, "ClearingFee", DbType.Decimal, model.ClearingFee); db.AddInParameter(dbCommand, "HoldAccount", DbType.AnsiString, model.HoldAccount); db.AddInParameter(dbCommand, "CapitalAccount", DbType.AnsiString, model.CapitalAccount); db.AddInParameter(dbCommand, "Code", DbType.AnsiString, model.Code); db.AddInParameter(dbCommand, "TradeTypeId", DbType.Int32, model.TradeTypeId); db.AddInParameter(dbCommand, "TradeUnitId", DbType.Int32, model.TradeUnitId); db.AddInParameter(dbCommand, "BuySellTypeId", DbType.Int32, model.BuySellTypeId); db.AddInParameter(dbCommand, "CurrencyTypeId", DbType.Int32, model.CurrencyTypeId); db.AddInParameter(dbCommand, "TradeTime", DbType.DateTime, model.TradeTime); db.ExecuteNonQuery(dbCommand); }
/// <summary> /// 构建港股成交回报 /// </summary> /// <param name="tet"></param> /// <param name="sdbe"></param> /// <param name="xhcr"></param> /// <param name="dealCapital"></param> /// <param name="tm"></param> /// <returns></returns> public static HK_TodayTradeInfo BuildHKDealRpt(HK_TodayEntrustInfo tet, HKDealBackEntity sdbe, HKCostResult xhcr, decimal dealCapital, ReckoningTransaction tm) { string result = string.Empty; //成交回报实体 var hkDealRpt = new HK_TodayTradeInfo(); //xhDealrpt.TradeNumber = this.BuildXHDealOrderNo(); hkDealRpt.TradeNumber = sdbe.ID; //不再自己构建id,使用成交回报的id,一一对应 //成交时间 hkDealRpt.TradeTime = sdbe.DealTime; //成交价 hkDealRpt.TradePrice = sdbe.DealPrice; //成交单位 hkDealRpt.TradeUnitId = tet.TradeUnitID; //成交量 hkDealRpt.TradeAmount = Convert.ToInt32(sdbe.DealAmount); //股东代码 hkDealRpt.HoldAccount = tet.HoldAccount; //资金帐户 hkDealRpt.CapitalAccount = tet.CapitalAccount; //成交回报类型 hkDealRpt.TradeTypeId = (int)Types.DealRptType.DRTDealed; //现货名称 hkDealRpt.Code = tet.Code; //印花税 hkDealRpt.StampTax = xhcr.StampDuty; //佣金 hkDealRpt.Commission = xhcr.Commision; //过户费 hkDealRpt.TransferAccountFee = xhcr.TransferToll; //交易系统使用费 hkDealRpt.TradingSystemUseFee = xhcr.TradeSystemFees; //交易手续费用(只有港股才有) hkDealRpt.TradeProceduresFee = xhcr.PoundageSingleValue; //监管费 hkDealRpt.MonitoringFee = xhcr.MonitoringFee; //结算费 hkDealRpt.ClearingFee = xhcr.ClearingFees; //委托价格 hkDealRpt.EntrustPrice = tet.EntrustPrice; //成交金额 hkDealRpt.TradeCapitalAmount = dealCapital; // xhDealrpt.TradePrice*xhDealrpt.TradeAmount;//TODO:是否正确?没有算比例 //投组标识 hkDealRpt.PortfolioLogo = tet.PortfolioLogo; //货币类型 hkDealRpt.CurrencyTypeId = tet.CurrencyTypeID; //买卖方向 hkDealRpt.BuySellTypeId = tet.BuySellTypeID; hkDealRpt.EntrustNumber = tet.EntrustNumber; HK_TodayTradeDal hkTodayTradeDal = new HK_TodayTradeDal(); if (hkTodayTradeDal.Exists(hkDealRpt.TradeNumber)) { string format = "BuildHKDealRpt数据库已经存在TradeNumber={0}"; string desc = string.Format(format, hkDealRpt.TradeNumber); LogHelper.WriteDebug(desc); //xhDealrpt = xhTodayTradeTableDal.GetModel(xhDealrpt.TradeNumber); return(null); } try { hkTodayTradeDal.Add(hkDealRpt, tm); } catch (Exception ex) { LogHelper.WriteError(ex.Message, ex); hkDealRpt = null; } return(hkDealRpt); }
/// <summary> /// 构建港股撤单成交回报 /// </summary> /// <param name="tet"></param> /// <param name="rde"></param> /// <param name="tm"></param> /// <param name="trade"></param> /// <param name="isInternalCancel"></param> /// <returns></returns> public static string BuildHKCancelRpt(HK_TodayEntrustInfo tet, CancelOrderEntity rde, ReckoningTransaction tm, out HK_TodayTradeInfo trade, bool isInternalCancel) { string result = string.Empty; //当为价格错误的撤单时,直接作为废单,不记录到数据库中。 if (rde.OrderVolume == -1) { trade = null; return(result); } //成交回报实体 var hkDealrpt = new HK_TodayTradeInfo(); //xhDealrpt.TradeNumber = this.BuildXHDealOrderNo(); hkDealrpt.TradeNumber = rde.Id; //不再自己构建id,使用撤单回报的id,一一对应 //成交时间 hkDealrpt.TradeTime = DateTime.Now; //成交价 hkDealrpt.TradePrice = 0; //成交单位 hkDealrpt.TradeUnitId = tet.TradeUnitID; //成交量 hkDealrpt.TradeAmount = Convert.ToInt32(rde.OrderVolume); //股东代码 hkDealrpt.HoldAccount = tet.HoldAccount; //资金帐户 hkDealrpt.CapitalAccount = tet.CapitalAccount; //成交回报类型 if (isInternalCancel) { hkDealrpt.TradeTypeId = (int)Types.DealRptType.DRTInternalCanceled; } else { hkDealrpt.TradeTypeId = (int)Types.DealRptType.DRTCanceled; } //现货名称 hkDealrpt.Code = tet.Code; //印花税 hkDealrpt.StampTax = 0; //佣金 hkDealrpt.Commission = 0; //过户费 hkDealrpt.TransferAccountFee = 0; //交易系统使用费 hkDealrpt.TradingSystemUseFee = 0; //监管费 hkDealrpt.MonitoringFee = 0; hkDealrpt.ClearingFee = 0; //委托价格 hkDealrpt.EntrustPrice = tet.EntrustPrice; //成交金额 hkDealrpt.TradeCapitalAmount = hkDealrpt.TradePrice * hkDealrpt.TradeAmount; //投组标识 hkDealrpt.PortfolioLogo = tet.PortfolioLogo; //货币类型 hkDealrpt.CurrencyTypeId = tet.CurrencyTypeID; //买卖方向 hkDealrpt.BuySellTypeId = tet.BuySellTypeID; hkDealrpt.EntrustNumber = tet.EntrustNumber; HK_TodayTradeDal hkTodayTradeDal = new HK_TodayTradeDal(); hkTodayTradeDal.Add(hkDealrpt, tm); result = hkDealrpt.TradeNumber; trade = hkDealrpt; return(result); }
/// <summary> /// 对象实体绑定数据 ///<param name="dataReader"></param> /// </summary> public HK_TodayTradeInfo ReaderBind(IDataReader dataReader) { HK_TodayTradeInfo model = new HK_TodayTradeInfo(); object ojb; model.TradeNumber = dataReader["TradeNumber"].ToString(); model.EntrustNumber = dataReader["EntrustNumber"].ToString(); model.PortfolioLogo = dataReader["PortfolioLogo"].ToString(); ojb = dataReader["TradePrice"]; if (ojb != null && ojb != DBNull.Value) { model.TradePrice = (decimal)ojb; } ojb = dataReader["TradeAmount"]; if (ojb != null && ojb != DBNull.Value) { model.TradeAmount = (int)ojb; } ojb = dataReader["EntrustPrice"]; if (ojb != null && ojb != DBNull.Value) { model.EntrustPrice = (decimal)ojb; } ojb = dataReader["StampTax"]; if (ojb != null && ojb != DBNull.Value) { model.StampTax = (decimal)ojb; } ojb = dataReader["Commission"]; if (ojb != null && ojb != DBNull.Value) { model.Commission = (decimal)ojb; } ojb = dataReader["TransferAccountFee"]; if (ojb != null && ojb != DBNull.Value) { model.TransferAccountFee = (decimal)ojb; } ojb = dataReader["TradeProceduresFee"]; if (ojb != null && ojb != DBNull.Value) { model.TradeProceduresFee = (decimal)ojb; } ojb = dataReader["MonitoringFee"]; if (ojb != null && ojb != DBNull.Value) { model.MonitoringFee = (decimal)ojb; } ojb = dataReader["TradingSystemUseFee"]; if (ojb != null && ojb != DBNull.Value) { model.TradingSystemUseFee = (decimal)ojb; } ojb = dataReader["TradeCapitalAmount"]; if (ojb != null && ojb != DBNull.Value) { model.TradeCapitalAmount = (decimal)ojb; } ojb = dataReader["ClearingFee"]; if (ojb != null && ojb != DBNull.Value) { model.ClearingFee = (decimal)ojb; } model.HoldAccount = dataReader["HoldAccount"].ToString(); model.CapitalAccount = dataReader["CapitalAccount"].ToString(); model.Code = dataReader["Code"].ToString(); ojb = dataReader["TradeTypeId"]; if (ojb != null && ojb != DBNull.Value) { model.TradeTypeId = (int)ojb; } ojb = dataReader["TradeUnitId"]; if (ojb != null && ojb != DBNull.Value) { model.TradeUnitId = (int)ojb; } ojb = dataReader["BuySellTypeId"]; if (ojb != null && ojb != DBNull.Value) { model.BuySellTypeId = (int)ojb; } ojb = dataReader["CurrencyTypeId"]; if (ojb != null && ojb != DBNull.Value) { model.CurrencyTypeId = (int)ojb; } ojb = dataReader["TradeTime"]; if (ojb != null && ojb != DBNull.Value) { model.TradeTime = (DateTime)ojb; } return(model); }