コード例 #1
0
        /// <summary>
        /// 根据条件从数据库中获取相应的基础表数据
        /// </summary>
        /// <param name="where">条件</param>
        /// <returns></returns>
        public XH_CapitalAccountTableInfo GetBaseFromDBByWhere(string where)
        {
            try
            {
                XH_CapitalAccountTableDal dal = new XH_CapitalAccountTableDal();
                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);
            }
        }
コード例 #2
0
        /// <summary>
        /// 初始化现货资金账户
        /// </summary>
        /// <param name="account">账户实体对象</param>
        /// <param name="outMessage"></param>
        /// <param name="db"></param>
        /// <param name="tm">开启事务对象,如果为null不开启事务</param>
        public void InitializationXHCapitalAccount(AccountEntity account, out string outMessage, Database db, DbTransaction tm)
        {
            outMessage = string.Empty;
            if (account == null)
            {
                outMessage = "现货资金账户对象为空!";
                return;
            }
            //var _XhCapitalAccount = new SqlXhCapitalAccountTableProvider(TransactionFactory.RC_ConnectionString, true, "");
            XH_CapitalAccountTableDal  dal   = new XH_CapitalAccountTableDal();
            XH_CapitalAccountTableInfo model = new XH_CapitalAccountTableInfo();

            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);
        }
コード例 #3
0
        /// <summary>
        /// 获取指定Id的资金表
        /// </summary>
        /// <param name="k"></param>
        /// <returns></returns>
        public XH_CapitalAccountTableInfo GetBaseTable(int k)
        {
            XH_CapitalAccountTableDal dal = new XH_CapitalAccountTableDal();
            var data = dal.GetModel(k);

            return(data);
        }
コード例 #4
0
        /// <summary>
        /// 获取所有资金内存表
        /// </summary>
        /// <returns></returns>
        public List <XH_CapitalAccountTableInfo> GetAllBaseTable()
        {
            XH_CapitalAccountTableDal         dal  = new XH_CapitalAccountTableDal();
            List <XH_CapitalAccountTableInfo> list = dal.GetAllListArray();

            return(list);
        }
コード例 #5
0
        public static void DoAction(object obj)
        {
            int i = (int)obj;
            XH_CapitalAccountTableDal dal = new XH_CapitalAccountTableDal();

            DataManager.ExecuteInTransaction((database, transaction) =>
            {
                dal.AddUpdate(2, 1, 1, 1, 1, database, transaction);
                Console.WriteLine("执行:" + i);
            });
        }
コード例 #6
0
        /// <summary>
        /// 更新分红记录
        /// </summary>
        /// <param name="tm">TransactionManager</param>
        /// <param name="cash">分红信息</param>
        /// <param name="tables">登记列表</param>
        private static bool UpdateCashCut(ReckoningTransaction tm, IList <XH_MelonCutRegisterTableInfo> tables)
        {
            bool issuss = true;
            List <XH_CapitalAccountTableInfo> capitalList = new List <XH_CapitalAccountTableInfo>();
            List <UA_CapitalFlowTableInfo>    flowList    = new List <UA_CapitalFlowTableInfo>();

            XH_CapitalAccountTableDal dal = new XH_CapitalAccountTableDal();

            try
            {
                foreach (XH_MelonCutRegisterTableInfo registerTable in tables)
                {
                    //分红的现金额
                    decimal num = registerTable.RegisterAmount;

                    UA_UserAccountAllocationTableInfo capitalAccount = Utils.GetCapitalAccountByHoldAccount(registerTable.UserAccountDistributeLogo, registerTable.Code);

                    XH_CapitalAccountTableInfo accountTable = dal.GetXHCapitalAccount(capitalAccount.UserAccountDistributeLogo, registerTable.TradeCurrencyType);

                    if (accountTable == null)
                    {
                        continue;
                    }


                    accountTable.TodayOutInCapital += num;


                    accountTable.AvailableCapital += num;

                    capitalList.Add(accountTable);


                    //更新资金流水表
                    UA_CapitalFlowTableInfo flowTable = GetFlowTable(registerTable, capitalAccount.UserAccountDistributeLogo, num);
                    flowList.Add(flowTable);


                    string format = "MelonCutService.UpdateCashCut进行现金分红[商品代码={0},持仓帐号={1},分红金额={2}]";
                    string desc   = string.Format(format, registerTable.Code, registerTable.UserAccountDistributeLogo, num);
                    LogHelper.WriteDebug(desc);
                }

                XH_CapitalAccountTableDal xh_AccountTableDal = new XH_CapitalAccountTableDal();

                if (capitalList.Count > 0)
                {
                    foreach (var accountTableInfo in capitalList)
                    {
                        xh_AccountTableDal.Update(accountTableInfo, tm.Database, tm.Transaction);
                    }
                }
                if (flowList.Count > 0)
                {
                    UA_CapitalFlowTableDal flowTableDal = new UA_CapitalFlowTableDal();
                    foreach (var historyTradeTableInfo in flowList)
                    {
                        flowTableDal.Add(historyTradeTableInfo, tm.Database, tm.Transaction);
                    }
                }
                if (tables.Count > 0)
                {
                    XH_MelonCutRegisterTableDal melonCutRegisterTableDal = new XH_MelonCutRegisterTableDal();
                    foreach (var registerTableInfo in tables)
                    {
                        melonCutRegisterTableDal.Delete(registerTableInfo, tm.Database, tm.Transaction);
                    }
                }
            }
            catch (Exception ex)
            {
                issuss = false;
                LogHelper.WriteError("分红出现问题 ", ex);
            }
            return(issuss);
        }
コード例 #7
0
        /// <summary>
        /// 构造函数
        /// </summary>
        public void SyncChangeToBase()
        {
            XH_CapitalAccountTable_DeltaInfoDal deltaInfoDal = new XH_CapitalAccountTable_DeltaInfoDal();
            var deltaList = deltaInfoDal.GetAllSum();

            if (deltaList == null)
            {
                return;
            }

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

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

                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);
            }
        }
コード例 #8
0
        /// <summary>
        /// 批量更新
        /// </summary>
        /// <param name="baseList"></param>
        public void Commit(List <XH_CapitalAccountTableInfo> baseList)
        {
            try
            {
                bool isSuccess = false;
                XH_CapitalAccountTableDal dal = new XH_CapitalAccountTableDal();

                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)
                {
                    XH_CapitalAccountTable_DeltaInfoDal deltaInfoDal = new XH_CapitalAccountTable_DeltaInfoDal();
                    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);
            }
        }