/// <summary> /// 追加资金 /// </summary> /// <param name="addCapital"></param> /// <param name="outMessage"></param> /// <returns></returns> public bool AddCapital(AddCapitalEntity addCapital, out string outMessage) { outMessage = string.Empty; //TransactionManager tm = TransactionFactory.GetTransactionManager(); //tm.BeginTransaction(); try { if (addCapital == null) { return(false); } UA_UserAccountAllocationTableDal userAccountDal = new UA_UserAccountAllocationTableDal(); // new SqlUaUserAccountAllocationTableProvider(TransactionFactory.RC_ConnectionString, true, ""); string findCodition = string.Format(" UserID='{0}' AND AccountTypeLogo='{1}'", addCapital.TraderID, 1); List <UA_UserAccountAllocationTableInfo> list = userAccountDal.GetListArray(findCodition); if (list == null || list.Count < 1) { outMessage = "该交易员的银行帐号不存在!"; return(false); } if (list[0].UserAccountDistributeLogo != addCapital.BankCapitalAccount) { outMessage = "银行帐号不正确!"; return(false); } UA_BankAccountTableDal _BankAccount = new UA_BankAccountTableDal(); //new SqlUaBankAccountTableProvider(TransactionFactory.RC_ConnectionString, true, ""); UA_CapitalFlowTableDal _UaCapitalFlow = new UA_CapitalFlowTableDal(); //new SqlUaCapitalFlowTableProvider(TransactionFactory.RC_ConnectionString, true, ""); Database db = DatabaseFactory.CreateDatabase(); using (DbConnection conn = db.CreateConnection()) { conn.Open(); DbTransaction trm = conn.BeginTransaction(); try { if (addCapital.AddRMBAmount > 0 && addCapital.AddRMBAmount != decimal.MaxValue) { #region 增加人民币 var _record = _BankAccount.GetModel((int)Types.CurrencyType.RMB, addCapital.BankCapitalAccount); if (_record == null) { outMessage = "币种为人民币的银行帐号不存在!"; return(false); } #region old code ////_record.CapitalRemainAmount = _record.CapitalRemainAmount + addCapital.AddRMBAmount; ////_record.AvailableCapital += addCapital.AddRMBAmount; ////_record.TodayOutInCapital += addCapital.AddRMBAmount; ////if (!_BankAccount.Update(tm, _record)) ////{ //// outMessage = "更新人民币银行帐号失败!"; //// return false; ////} //string sql = // string.Format( // "Update UA_BankAccountTable set CapitalRemainAmount=CapitalRemainAmount+{0},AvailableCapital=AvailableCapital+{0},TodayOutInCapital=TodayOutInCapital+{0} where TradeCurrencyTypeLogo={1} AND UserAccountDistributeLogo='{2}'", // addCapital.AddRMBAmount, (int)Types.CurrencyType.RMB, addCapital.BankCapitalAccount); //DataRepository.Provider.ExecuteNonQuery(tm, CommandType.Text, sql); #endregion _BankAccount.AddCapital(addCapital.AddRMBAmount, addCapital.BankCapitalAccount, Types.CurrencyType.RMB, db, trm); var _UaCapitalFlowTable = new UA_CapitalFlowTableInfo(); _UaCapitalFlowTable.TradeCurrencyType = (int)Types.CurrencyType.RMB; _UaCapitalFlowTable.FromCapitalAccount = string.Empty; _UaCapitalFlowTable.ToCapitalAccount = addCapital.BankCapitalAccount; _UaCapitalFlowTable.TransferAmount = addCapital.AddRMBAmount; _UaCapitalFlowTable.TransferTime = System.DateTime.Now; _UaCapitalFlowTable.TransferTypeLogo = (int)ReckoningCounter.Entity.Contants.Types.TransferType.AddCapital; _UaCapitalFlow.Add(_UaCapitalFlowTable, db, trm); //if (!_UaCapitalFlow.Insert(tm, _UaCapitalFlowTable)) //{ //outMessage = "记录资金流水失败"; //return false; //} #endregion } if (addCapital.AddHKAmount > 0 && addCapital.AddHKAmount != decimal.MaxValue) { #region 增加港币 var _record = _BankAccount.GetModel((int)Types.CurrencyType.HK, addCapital.BankCapitalAccount); //var _record = _BankAccount.GetByTradeCurrencyTypeLogoUserAccountDistributeLogo((int)Types.CurrencyType.HK, // addCapital.BankCapitalAccount); if (_record == null) { outMessage = "币种为港元的银行帐号不存在!"; return(false); } #region old code ////_record.CapitalRemainAmount += addCapital.AddHKAmount; ////_record.AvailableCapital += addCapital.AddHKAmount; ////_record.TodayOutInCapital += addCapital.AddHKAmount; ////if (!_BankAccount.Update(tm, _record)) ////{ //// outMessage = "更新港元银行帐号失败!"; //// return false; ////} //string sql = // string.Format( // "Update UA_BankAccountTable set CapitalRemainAmount=CapitalRemainAmount+{0},AvailableCapital=AvailableCapital+{0},TodayOutInCapital=TodayOutInCapital+{0} where TradeCurrencyTypeLogo={1} AND UserAccountDistributeLogo='{2}'", // addCapital.AddHKAmount, (int)Types.CurrencyType.HK, addCapital.BankCapitalAccount); //DataRepository.Provider.ExecuteNonQuery(tm, CommandType.Text, sql); #endregion _BankAccount.AddCapital(addCapital.AddHKAmount, addCapital.BankCapitalAccount, Types.CurrencyType.HK, db, trm); var _UaCapitalFlowTable = new UA_CapitalFlowTableInfo(); _UaCapitalFlowTable.TradeCurrencyType = (int)Types.CurrencyType.HK; _UaCapitalFlowTable.FromCapitalAccount = string.Empty; _UaCapitalFlowTable.ToCapitalAccount = addCapital.BankCapitalAccount; _UaCapitalFlowTable.TransferAmount = addCapital.AddHKAmount; _UaCapitalFlowTable.TransferTime = System.DateTime.Now; _UaCapitalFlowTable.TransferTypeLogo = (int)ReckoningCounter.Entity.Contants.Types.TransferType.AddCapital; _UaCapitalFlow.Add(_UaCapitalFlowTable, db, trm); //if (!_UaCapitalFlow.Insert(tm, _UaCapitalFlowTable)) //{ // outMessage = "记录资金流水失败"; // return false; //} #endregion } if (addCapital.AddUSAmount > 0 && addCapital.AddUSAmount != decimal.MaxValue) { #region 增加美元 //var _record = // _BankAccount.GetByTradeCurrencyTypeLogoUserAccountDistributeLogo((int)Types.CurrencyType.US, // addCapital.BankCapitalAccount); var _record = _BankAccount.GetModel((int)Types.CurrencyType.US, addCapital.BankCapitalAccount); if (_record == null) { outMessage = "币种为美元的银行帐号不存在!"; return(false); } //_record.CapitalRemainAmount += addCapital.AddUSAmount; //_record.AvailableCapital += addCapital.AddUSAmount; //_record.TodayOutInCapital += addCapital.AddUSAmount; //if (!_BankAccount.Update(tm, _record)) //{ // outMessage = "更新美元银行帐号失败!"; // return false; //} //string sql = // string.Format( // "Update UA_BankAccountTable set CapitalRemainAmount=CapitalRemainAmount+{0},AvailableCapital=AvailableCapital+{0},TodayOutInCapital=TodayOutInCapital+{0} where TradeCurrencyTypeLogo={1} AND UserAccountDistributeLogo='{2}'", // addCapital.AddUSAmount, (int)Types.CurrencyType.US, addCapital.BankCapitalAccount); //DataRepository.Provider.ExecuteNonQuery(tm, CommandType.Text, sql); _BankAccount.AddCapital(addCapital.AddUSAmount, addCapital.BankCapitalAccount, Types.CurrencyType.US, db, trm); var _UaCapitalFlowTable = new UA_CapitalFlowTableInfo(); _UaCapitalFlowTable.TradeCurrencyType = (int)Types.CurrencyType.US; _UaCapitalFlowTable.FromCapitalAccount = string.Empty; _UaCapitalFlowTable.ToCapitalAccount = addCapital.BankCapitalAccount; _UaCapitalFlowTable.TransferAmount = addCapital.AddUSAmount; _UaCapitalFlowTable.TransferTime = System.DateTime.Now; _UaCapitalFlowTable.TransferTypeLogo = (int)ReckoningCounter.Entity.Contants.Types.TransferType.AddCapital; _UaCapitalFlow.Add(_UaCapitalFlowTable, db, trm); //if (!_UaCapitalFlow.Insert(tm, _UaCapitalFlowTable)) //{ // outMessage = "记录资金流水失败"; // return false; //} #endregion } trm.Commit(); } catch (Exception ex) { trm.Rollback(); outMessage = ex.Message.ToString(); LogHelper.WriteError(outMessage, ex); return(false); } finally { trm.Dispose(); } } outMessage = "追加资金成功!"; return(true); } catch (Exception ex) { outMessage = ex.Message.ToString(); LogHelper.WriteError(outMessage, ex); return(false); } }
/// <summary> /// 初始化银行资金账户 /// </summary> /// <param name="account">账户实体对象</param> /// <param name="outMessage">返回信息</param> /// <param name="db">数据库对象</param> /// <param name="tm">事务对象</param> public void InitializationBankCapitalAccount(AccountEntity account, out string outMessage, Database db, DbTransaction tm) { outMessage = string.Empty; //account. if (account == null) { outMessage = "银行资金账户对象为空!"; return; } decimal _CurrencyAmount; //var _BKCapitalAccount = new SqlUaBankAccountTableProvider(TransactionFactory.RC_ConnectionString, true, ""); UA_BankAccountTableDal dal = new UA_BankAccountTableDal(); UA_BankAccountTableInfo model = new UA_BankAccountTableInfo(); model.UserAccountDistributeLogo = account.Account; model.TodayOutInCapital = 0; model.FreezeCapital = 0; //人民币 if (account.CurrencyRMB == decimal.MaxValue || account.CurrencyRMB == decimal.MinValue) { _CurrencyAmount = 0; } else { _CurrencyAmount = account.CurrencyRMB; } model.CapitalRemainAmount = _CurrencyAmount; model.BalanceOfTheDay = _CurrencyAmount; model.AvailableCapital = _CurrencyAmount; model.TradeCurrencyTypeLogo = (int)GTA.VTS.Common.CommonObject.Types.CurrencyType.RMB; dal.Add(model, db, tm); //港元 if (account.CurrencyHK == decimal.MaxValue || account.CurrencyHK == decimal.MinValue) { _CurrencyAmount = 0; } else { _CurrencyAmount = account.CurrencyHK; } model.CapitalRemainAmount = _CurrencyAmount; model.BalanceOfTheDay = _CurrencyAmount; model.AvailableCapital = _CurrencyAmount; model.TradeCurrencyTypeLogo = (int)GTA.VTS.Common.CommonObject.Types.CurrencyType.HK; dal.Add(model, db, tm); //美元 if (account.CurrencyUS == decimal.MaxValue || account.CurrencyUS == decimal.MinValue) { _CurrencyAmount = 0; } else { _CurrencyAmount = account.CurrencyUS; } model.CapitalRemainAmount = _CurrencyAmount; model.BalanceOfTheDay = _CurrencyAmount; model.AvailableCapital = _CurrencyAmount; model.TradeCurrencyTypeLogo = (int)GTA.VTS.Common.CommonObject.Types.CurrencyType.US; dal.Add(model, db, tm); }