/// <summary>
        /// 初始化港股资金账户
        /// </summary>
        /// <param name="account">账户实体对象</param>
        /// <param name="outMessage"></param>
        /// <param name="db"></param>
        /// <param name="tm">开启事务对象,如果为null不开启事务</param>
        public void InitializationHKCapitalAccount(AccountEntity account, out string outMessage, Database db, DbTransaction tm)
        {
            outMessage = string.Empty;
            if (account == null)
            {
                outMessage = "现货资金账户对象为空!";
                return;
            }

            HK_CapitalAccountDal  dal   = new HK_CapitalAccountDal();
            HK_CapitalAccountInfo model = new HK_CapitalAccountInfo();

            model.AvailableCapital          = 0;
            model.BalanceOfTheDay           = 0;
            model.FreezeCapitalTotal        = 0;
            model.TodayOutInCapital         = 0;
            model.UserAccountDistributeLogo = account.Account;
            model.CapitalBalance            = 0;
            model.TradeCurrencyType         = (int)GTA.VTS.Common.CommonObject.Types.CurrencyType.RMB;
            dal.Add(model, db, tm);
            model.TradeCurrencyType = (int)GTA.VTS.Common.CommonObject.Types.CurrencyType.HK;
            dal.Add(model, db, tm);
            model.TradeCurrencyType = (int)GTA.VTS.Common.CommonObject.Types.CurrencyType.US;
            dal.Add(model, db, tm);
        }
Beispiel #2
0
        /// <summary>
        /// 根据条件从数据库中获取相应的基础表数据
        /// </summary>
        /// <param name="where">条件</param>
        /// <returns></returns>
        public HK_CapitalAccountInfo GetBaseFromDBByWhere(string where)
        {
            try
            {
                HK_CapitalAccountDal dal = new HK_CapitalAccountDal();
                string sqlWhere          = "";

                if (where.Split('@').Length > 1)
                {
                    sqlWhere = string.Format("UserAccountDistributeLogo='{0}'  and  TradeCurrencyType='{1}' ", where.Split('@')[0], where.Split('@')[1]);
                }
                else
                {
                    sqlWhere = string.Format("UserAccountDistributeLogo='{0}' ", where.Split('@')[0]);
                }
                var data = dal.GetListArray(sqlWhere);
                if (data != null && data.Count > 0)
                {
                    return(data[0]);
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception ex)
            {
                LogHelper.WriteError("根据条件从数据库中获取相应的港股资金基础表数据异常:" + where + ex.Message, ex);
                return(null);
            }
        }
Beispiel #3
0
        /// <summary>
        /// 获取指定id的港股资金账户
        /// </summary>
        /// <param name="k"></param>
        /// <returns></returns>
        public HK_CapitalAccountInfo GetBaseTable(int k)
        {
            HK_CapitalAccountDal dal = new HK_CapitalAccountDal();
            var data = dal.GetModel(k);

            return(data);
        }
Beispiel #4
0
        /// <summary>
        /// 获取所有资金实体
        /// </summary>
        /// <returns></returns>
        public List <HK_CapitalAccountInfo> GetAllBaseTable()
        {
            HK_CapitalAccountDal         dal  = new HK_CapitalAccountDal();
            List <HK_CapitalAccountInfo> list = dal.GetAllListArray();

            return(list);
        }
Beispiel #5
0
        /// <summary>
        /// 同步更新数据库
        /// </summary>
        public void SyncChangeToBase()
        {
            HK_CapitalAccount_DeltaDal deltaInfoDal = new HK_CapitalAccount_DeltaDal();
            var deltaList = deltaInfoDal.GetAllSum();

            if (deltaList == null)
            {
                return;
            }

            if (deltaList.Count == 0)
            {
                return;
            }

            try
            {
                bool                 isSuccess = false;
                Database             database  = DatabaseFactory.CreateDatabase();
                HK_CapitalAccountDal dal       = new HK_CapitalAccountDal();

                using (DbConnection connection = database.CreateConnection())
                {
                    connection.Open();
                    DbTransaction transaction = connection.BeginTransaction();
                    try
                    {
                        foreach (var deltaInfo in deltaList)
                        {
                            dal.AddUpdate(deltaInfo.CapitalAccountLogo,
                                          deltaInfo.AvailableCapitalDelta,
                                          deltaInfo.FreezeCapitalTotalDelta,
                                          deltaInfo.TodayOutInCapital,
                                          deltaInfo.HasDoneProfitLossTotalDelta,
                                          database, transaction);
                        }

                        transaction.Commit();
                        isSuccess = true;
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        LogHelper.WriteError(ex.Message, ex);
                    }
                }

                //同步后清除增量表数据
                if (isSuccess)
                {
                    deltaInfoDal.Truncate();
                }

                /*DataManager.ExecuteInTransaction((database, transaction) =>
                 *                                   {
                 *                                       foreach (var deltaInfo in deltaList)
                 *                                       {
                 *                                           dal.AddUpdate(deltaInfo.CapitalAccountLogo,
                 *                                                         deltaInfo.AvailableCapitalDelta,
                 *                                                         deltaInfo.FreezeCapitalTotalDelta,
                 *                                                         deltaInfo.TodayOutInCapital,
                 *                                                         deltaInfo.HasDoneProfitLossTotalDelta,
                 *                                                         database, transaction);
                 *                                       }
                 *
                 *                                       //同步后清除增量表数据
                 *                                       CleanDeltaTable(database, transaction);
                 *                                       deltaList = null;
                 *                                   });*/
            }
            catch (Exception ex)
            {
                LogHelper.WriteError(ex.Message, ex);
            }
        }
Beispiel #6
0
        /// <summary>
        /// 批量更新资金账户事务
        /// </summary>
        /// <param name="baseList">港股资金账户实体</param>
        public void Commit(List <HK_CapitalAccountInfo> baseList)
        {
            try
            {
                bool isSuccess           = false;
                HK_CapitalAccountDal dal = new HK_CapitalAccountDal();

                Database database = DatabaseFactory.CreateDatabase();

                using (DbConnection connection = database.CreateConnection())
                {
                    connection.Open();
                    DbTransaction transaction = connection.BeginTransaction();
                    try
                    {
                        foreach (var data in baseList)
                        {
                            dal.Update(data.CapitalAccountLogo,
                                       data.AvailableCapital,
                                       data.FreezeCapitalTotal,
                                       data.TodayOutInCapital,
                                       data.HasDoneProfitLossTotal, database,
                                       transaction);
                        }

                        transaction.Commit();
                        isSuccess = true;
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        LogHelper.WriteError(ex.Message, ex);
                    }
                }

                //提交后清除增量表数据
                if (isSuccess)
                {
                    HK_CapitalAccount_DeltaDal deltaInfoDal = new HK_CapitalAccount_DeltaDal();
                    deltaInfoDal.Truncate();
                }

                /*DataManager.ExecuteInTransaction((database, transaction) =>
                 *                                   {
                 *                                       foreach (var data in baseList)
                 *                                       {
                 *                                           dal.Update(data.CapitalAccountLogo,
                 *                                                      data.AvailableCapital,
                 *                                                      data.FreezeCapitalTotal,
                 *                                                      data.TodayOutInCapital,
                 *                                                      data.HasDoneProfitLossTotal, database,
                 *                                                      transaction);
                 *                                       }
                 *
                 *                                       //提交后清除增量表数据
                 *                                       CleanDeltaTable(database, transaction);
                 *                                   });*/
            }
            catch (Exception ex)
            {
                LogHelper.WriteError(ex.Message, ex);
            }
        }