/// <summary>
        /// 根据委托单号,从今日委托和历史委托中查询相关的委托单数据
        /// 这里如果在历史委托表中的数据因为没有可撤标识,这里为了能转换回今日委托,所以直接转为不可撤0
        /// 通道号附为空字符串""
        /// </summary>
        /// <param name="entrustStr">委托单号</param>
        /// <returns></returns>
        public List <QH_TodayEntrustTableInfo> GetEntrustListByEnturstNo(string entrustStr)
        {
            QH_TodayEntrustTableDal dal = new QH_TodayEntrustTableDal();
            CommonDALOperate <QH_TodayEntrustTableInfo> com = new CommonDALOperate <QH_TodayEntrustTableInfo>();

            return(com.ExecuterReaderDataBind(string.Format(GetEntrustListByEnturstNoSqlScript(), entrustStr.ToString()), dal.ReaderBind));
        }
        /// <summary>
        /// 根据通道号返回要回道的所有委托数据,这里包含历史委托的数据
        /// </summary>
        /// <param name="channleID">通道号</param>
        /// <returns></returns>
        public List <QH_TodayEntrustTableInfo> GetEntrustListByChannleID(string channleID)
        {
            string sql = string.Format(GetDistincEntrustNumberSqlScript(), channleID);
            QH_TodayEntrustTableDal dal = new QH_TodayEntrustTableDal();
            CommonDALOperate <QH_TodayEntrustTableInfo> com = new CommonDALOperate <QH_TodayEntrustTableInfo>();

            return(com.ExecuterReaderDataBind(string.Format(GetEntrustListByEnturstNoSqlScript(), sql), dal.ReaderBind));
        }
        /// <summary>
        /// 根据通道号返回当日成交数据,这里包括清算后移动到历史表中还是当日的数据
        /// </summary>
        /// <param name="channleID">通道Id</param>
        /// <returns></returns>
        public List <QH_TodayTradeTableInfo> GetTodayTradeListByChannleID(string channleID)
        {
            StringBuilder sb = new StringBuilder("");

            sb.Append("	SELECT [TradeNumber],[EntrustNumber],[PortfolioLogo],[TradePrice],[EntrustPrice],[TradeAmount] ");
            sb.Append("	,[TradeProceduresFee],[Margin],[ContractCode],[TradeAccount],[CapitalAccount],[BuySellTypeId] ");
            sb.Append("	,[OpenCloseTypeId],[TradeUnitId],[TradeTypeId],[CurrencyTypeId],[TradeTime],[MarketProfitLoss]  FROM [dbo].[QH_TodayTradeTable] ");
            sb.AppendFormat("	where  TradeNumber in(select TradeNumber from dbo.QH_PushBackOrderTable where channelID='{0}') ", channleID);
            sb.Append("	union  all  ");
            sb.Append("	SELECT [TradeNumber],[EntrustNumber],[PortfolioLogo],[TradePrice],[EntrustPrice],[TradeAmount] ");
            sb.Append("	,[TradeProceduresFee],[Margin],[ContractCode],[TradeAccount],[CapitalAccount],[BuySellTypeId] ");
            sb.Append("	,[OpenCloseTypeId],[TradeUnitId],[TradeTypeId],[CurrencyTypeId],[TradeTime],[MarketProfitLoss]   from QH_HistoryTradeTable   ");
            sb.AppendFormat("	where  TradeNumber in( select TradeNumber from dbo.QH_PushBackOrderTable where channelID='{0}') ", channleID);
            QH_TodayTradeTableDal dal = new QH_TodayTradeTableDal();
            CommonDALOperate <QH_TodayTradeTableInfo> com = new CommonDALOperate <QH_TodayTradeTableInfo>();

            return(com.ExecuterReaderDataBind(sb.ToString(), dal.ReaderBind));
        }
        /// <summary>
        /// 根据通道号返回当日成交数据,这里包括清算后移动到历史表中还是当日的数据
        /// </summary>
        /// <param name="channleID">通道号</param>
        /// <returns></returns>
        public List <HK_TodayTradeInfo> GetTodayTradeListByChannleID(string channleID)
        {
            StringBuilder sb = new StringBuilder("");

            sb.Append("   SELECT [TradeNumber],[PortfolioLogo],[EntrustNumber],[TradePrice],[TradeAmount]");
            sb.Append(" ,[EntrustPrice],[StampTax],[Commission],[TransferAccountFee],[TradeProceduresFee],[MonitoringFee] ");
            sb.Append(" ,[TradingSystemUseFee],[TradeCapitalAmount],[ClearingFee],[HoldAccount],[CapitalAccount]");
            sb.Append(" ,[Code],[TradeTypeId],[TradeUnitId],[BuySellTypeId],[CurrencyTypeId],[TradeTime] ");
            sb.Append("  from HK_TodayTrade ");
            sb.AppendFormat(" where  TradeNumber in(select TradeNumber from dbo.HK_PushBackOrder where channelID='{0}')", channleID);
            sb.Append(" union  all");
            sb.Append("   SELECT [TradeNumber],[PortfolioLogo],[EntrustNumber],[TradePrice],[TradeAmount]");
            sb.Append(" ,[EntrustPrice],[StampTax],[Commission],[TransferAccountFee],[TradeProceduresFee],[MonitoringFee]");
            sb.Append(" ,[TradingSystemUseFee],[TradeCapitalAmount]=0.00,[ClearingFee],[HoldAccount],[CapitalAccount]");
            sb.Append(" ,[Code],[TradeTypeId],[TradeUnitId],[BuySellTypeId],[CurrencyTypeId],[TradeTime]  ");
            sb.Append("  from HK_HistoryTrade ");
            sb.AppendFormat(" where  TradeNumber in(select TradeNumber from dbo.HK_PushBackOrder where channelID='{0}')", channleID);
            HK_TodayTradeDal dal = new HK_TodayTradeDal();
            CommonDALOperate <HK_TodayTradeInfo> com = new CommonDALOperate <HK_TodayTradeInfo>();

            return(com.ExecuterReaderDataBind(sb.ToString(), dal.ReaderBind));
        }
Example #5
0
        /// <summary>
        ///  Title:根据用户和密码查询该用户所拥有的港股资金帐户今日期货委托信息
        ///  Des.:此方法因为一个用户(交易员)可能拥有多个港股资金账号(如:-商品港股资金帐号,-股指港股资金帐号)
        ///  所以返回的数据会回多个资金账号的数据
        /// </summary>
        /// <param name="userID">用户(交易员)ID</param>
        /// <param name="pwd">用户(交易员)密码--如果密码为空时不验证密码</param>
        /// <param name="accountType">账号类型(数据库中BD_AccountType的九种) 如果传为0时查询对应的港股持仓账号类别(3--证券股东代码,9--港股股东代码)</param>
        /// <param name="filter">过滤条件数据</param>
        /// <param name="pageInfo">分页信息</param>
        /// <param name="total">返回数页数</param>
        /// <param name="errorMsg">异常信息</param>
        /// <returns>返回当日期货委托信息</returns>
        public List <HK_TodayEntrustInfo> PagingHK_TodayEntrustByFilter(string userID, string pwd, int accountType, HKEntrustConditionFindEntity filter, PagingInfo pageInfo, out int total, out string errorMsg)
        {
            List <HK_TodayEntrustInfo> list = null;
            HK_TodayEntrustDal         dal  = new HK_TodayEntrustDal();

            errorMsg = "";
            total    = 0;

            #region 密码不为空时先验证用户
            if (string.IsNullOrEmpty(userID))
            {
                errorMsg = "查询失败!失败原因为:交易员ID不能为空!";
                return(list);
            }
            if (!string.IsNullOrEmpty(pwd))
            {
                #region 从数据库中判断
                //UA_UserBasicInformationTableDal usDal = new UA_UserBasicInformationTableDal();
                //if (!usDal.Exists(userID, pwd))
                //{
                //    errorMsg = "查询失败!失败原因为:交易员ID或密码输入错误 !";
                //    return list;
                //}
                #endregion

                #region 从缓存中判断
                UA_UserBasicInformationTableInfo userInfo = AccountManager.Instance.GetBasicUserByUserId(userID);
                if (userInfo == null)
                {
                    errorMsg = "交易员对应类型的帐号不存在";
                    return(list);
                }
                if (userInfo.Password != pwd)
                {
                    errorMsg = "交易员密码错误";
                    return(list);
                }
                #endregion
            }
            #endregion

            if (filter != null && !string.IsNullOrEmpty(filter.EntrustNumber))  //委托单号(当只根据委托单号查询时)
            {
                #region 如果有委托单号直接查询唯一记录
                try
                {
                    list = dal.GetListArray(" EntrustNumber='" + filter.EntrustNumber + "'");
                    if (!Utils.IsNullOrEmpty(list))
                    {
                        total = 1;
                    }
                }
                catch (Exception ex)
                {
                    errorMsg = ex.Message;
                    LogHelper.WriteError(ex.ToString(), ex);
                }
                #endregion
            }
            else //当不带委托单号时
            {
                #region 如果分页信息为空返回异常
                if (pageInfo == null)
                {
                    errorMsg = "分页信息不能为空!";
                    return(null);
                }
                #endregion

                #region 分页存储过程相关信息组装
                PagingProceduresInfo ppInfo = new PagingProceduresInfo();
                ppInfo.IsCount    = pageInfo.IsCount;
                ppInfo.PageNumber = pageInfo.CurrentPage;
                ppInfo.PageSize   = pageInfo.PageLength;
                ppInfo.Fields     = "  EntrustNumber,PortfolioLogo,EntrustPrice,EntrustAmount,Code,TradeAmount,TradeAveragePrice,CancelAmount,CancelLogo,BuySellTypeID,HoldAccount,CapitalAccount,OrderStatusID,OrderPriceType,OrderMessage,CurrencyTypeID,TradeUnitID,CallbackChannlID,McOrderID,HasDoneProfit,OfferTime,EntrustTime,IsModifyOrder,ModifyOrderNumber";

                ppInfo.PK = "EntrustNumber";
                if (pageInfo.Sort == 0)
                {
                    ppInfo.Sort = " EntrustTime asc ";
                }
                else
                {
                    ppInfo.Sort = " EntrustTime desc ";
                }
                ppInfo.Tables = "HK_TodayEntrust";
                #endregion

                #region 过滤条件组装
                ppInfo.Filter = BuildHKEntrustQueryWhere(filter, userID, accountType, true);
                #endregion

                #region 执行查询
                try
                {
                    CommonDALOperate <HK_TodayEntrustInfo> com = new CommonDALOperate <HK_TodayEntrustInfo>();
                    list = com.PagingQueryProcedures(ppInfo, out total, dal.ReaderBind);
                    //list = dal.PagingXH_TodayEntrustByFilter(ppInfo, out total);
                }
                catch (Exception ex)
                {
                    errorMsg = ex.Message;
                    LogHelper.WriteError(ex.ToString(), ex);
                }
                #endregion
            }
            return(list);
        }