/// <summary> /// 获取对冲信息 /// </summary> /// <param name="sqlCondition">查询条件</param> /// <param name="hedgingInfo"></param> /// <returns>对冲信息</returns> public static void GetHedgingList(string sqlCondition, ref HedgingInfo hedgingInfo) { System.Data.Common.DbDataReader dbreader = null; try { Dictionary<string, ProPrice> prodic = GetProPrice(); if (!(prodic != null && prodic.Count > 0)) { return ; } string data = string.Empty; foreach (var item in prodic) { data += string.Format("{0},{1}|",item.Key,item.Value.realprice); } if (data.Length > 1) { data = data.Substring(0, data.Length - 1); } else { return ; } dbreader = DbHelper.RunProcedureGetDataReader("proc_GetHedgingEx", new System.Data.Common.DbParameter[]{ DbHelper.CreateDbParameter(JinTong.Jyrj.Data.DataBase.Type, "@data",DbParameterType.String,data,ParameterDirection.Input), DbHelper.CreateDbParameter(JinTong.Jyrj.Data.DataBase.Type, "@SearchCondition",DbParameterType.String,sqlCondition,ParameterDirection.Input)}); while (dbreader.Read()) { Hedging hedging = new Hedging(); hedging.AvgOrderPrice = Convert.ToDouble(dbreader["avg_orderprice"]); hedging.HedgingProfitLoss = Convert.ToDouble(dbreader["hd_yingkui"]); hedging.HedgingQuantity = Convert.ToDouble(dbreader["hd_quantity"]); hedging.HedgingStorageFee = Convert.ToDouble(dbreader["hd_storagefee"]); hedging.HedgingTradeFee = Convert.ToDouble(dbreader["hd_tradefee"]); hedging.OrderType = dbreader["ordertype"].ToString(); hedging.ProductName = dbreader["productname"].ToString(); hedging.ProfitLoss = Convert.ToDouble(dbreader["yingkui"]); hedging.Quantity = Convert.ToDouble(dbreader["S_quantity"]); hedging.RealPrice = Convert.ToDouble(dbreader["realprice"]); hedging.StorageFee = Convert.ToDouble(dbreader["S_storagefee"]); hedging.TradeFee = Convert.ToDouble(dbreader["S_tradefee"]); hedgingInfo.HedgingList.Add(hedging); } if (dbreader.NextResult())//前进到下一结果集 { if (dbreader.Read()) //获取汇总数据 { hedgingInfo.Quantity = System.DBNull.Value != dbreader["S_quantity"] ? Convert.ToDouble(dbreader["S_quantity"]) : 0; hedgingInfo.ProfitValue = System.DBNull.Value != dbreader["yingkui"] ? Convert.ToDouble(dbreader["yingkui"]) : 0; hedgingInfo.StorageFee = System.DBNull.Value != dbreader["S_storagefee"] ? Convert.ToDouble(dbreader["S_storagefee"]) : 0; hedgingInfo.TradeFee = System.DBNull.Value != dbreader["S_tradefee"] ? Convert.ToDouble(dbreader["S_tradefee"]) : 0; } } } catch (Exception ex) { throw new Exception(ex.Message, ex); } finally { if (null != dbreader) { dbreader.Close(); dbreader.Dispose(); } } }
/// <summary> /// 获取交易对冲信息 /// </summary> /// <param name="LoginId">登陆标识</param> /// <param name="Starttime">开始时间</param> /// <param name="Endtime">结束时间</param> /// <returns>交易对冲信息</returns> public HedgingInfo GetHedgingInfo(string LoginId, DateTime Starttime, DateTime Endtime) { HedgingInfo hedgingInfo = new HedgingInfo(); try { TradeUser TdUser = new TradeUser(); #region 判断登陆标识是否过期 if (!ComFunction.ExistUserLoginID(LoginId, ref TdUser)) { hedgingInfo.Result = false; hedgingInfo.Desc = ResCode.UL003Desc; return hedgingInfo; } if (UserType.NormalType == TdUser.UType) { hedgingInfo.Result = false; hedgingInfo.Desc = ComFunction.NotRightUser; return hedgingInfo; } #endregion hedgingInfo.HedgingList = new List<Hedging>(); ComFunction.GetHedgingList(string.Format("where ordertime>='{0}' and ordertime<='{1}'", Starttime.ToString("yyyy-MM-dd HH:mm:ss"), Endtime.ToString("yyyy-MM-dd HH:mm:ss")), ref hedgingInfo); hedgingInfo.Result = true; hedgingInfo.Desc = "查询成功"; } catch (Exception ex) { ComFunction.WriteErr(ex); hedgingInfo.Result = false; hedgingInfo.Desc = "查询交易对冲信息失败"; } return hedgingInfo; }