/// <summary> /// 商户提现功能检查数据合法性 /// </summary> /// <UpdateBy>hulingbo</UpdateBy> /// <UpdateTime>20150626</UpdateTime> /// <param name="withdrawBpm">参数实体</param> /// <param name="business">商户</param> /// <param name="businessFinanceAccount">商家金融账号信息</param> /// <returns></returns> private FinanceWithdrawB CheckWithdrawB(WithdrawBBackPM withdrawBpm, ref BusinessModel business, ref BusinessFinanceAccount businessFinanceAccount) { if (withdrawBpm == null) { return(FinanceWithdrawB.NoPara); } business = _businessDao.GetById(withdrawBpm.BusinessId); //获取商户信息 if (business == null || business.Status == null || business.Status != (byte)BusinessStatus.Status1.GetHashCode()) //商户状态为非 审核通过不允许 提现 { return(FinanceWithdrawB.BusinessError); } else if (business.AllowWithdrawPrice < withdrawBpm.WithdrawPrice)//可提现金额小于提现金额,提现失败 { return(FinanceWithdrawB.MoneyError); } else if (business.BalancePrice < business.AllowWithdrawPrice) //账户余额小于 可提现金额,提现失败 账号异常 { return(FinanceWithdrawB.FinanceAccountError); } businessFinanceAccount = _businessFinanceAccountDao.GetById(withdrawBpm.FinanceAccountId);//获取商户金融账号信息 if (businessFinanceAccount == null || businessFinanceAccount.BusinessId != withdrawBpm.BusinessId) { return(FinanceWithdrawB.FinanceAccountError); } return(FinanceWithdrawB.Success); }
/// <summary> /// 根据ID获取对象 /// </summary> public BusinessFinanceAccount GetById(int id) { BusinessFinanceAccount model = null; const string querysql = @" select Id,BusinessId,TrueName,AccountNo,IsEnable,AccountType,BelongType,OpenBank,OpenSubBank,CreateBy,CreateTime,UpdateBy,UpdateTime from BusinessFinanceAccount (nolock) where Id=@Id and IsEnable=1"; IDbParameters dbParameters = DbHelper.CreateDbParameters(); dbParameters.AddWithValue("Id", id); DataTable dt = DataTableHelper.GetTable(DbHelper.ExecuteDataset(SuperMan_Read, querysql, dbParameters)); if (DataTableHelper.CheckDt(dt)) { model = DataTableHelper.ConvertDataTableList <BusinessFinanceAccount>(dt)[0]; } return(model); }
/// <summary> /// 更新一条记录 /// <param name="businessFinanceAccount"> 参数实体</param> /// </summary> public void Update(BusinessFinanceAccount businessFinanceAccount) { const string updateSql = @" update BusinessFinanceAccount set TrueName=@TrueName,AccountNo=@AccountNo,BelongType=@BelongType,OpenBank=@OpenBank, OpenSubBank=@OpenSubBank,UpdateBy=@UpdateBy where Id=@Id "; IDbParameters dbParameters = DbHelper.CreateDbParameters(); dbParameters.AddWithValue("Id", businessFinanceAccount.Id); dbParameters.AddWithValue("TrueName", businessFinanceAccount.TrueName); dbParameters.AddWithValue("AccountNo", businessFinanceAccount.AccountNo); dbParameters.AddWithValue("BelongType", businessFinanceAccount.BelongType); //账号类别 0 个人账户 1 公司账户 dbParameters.AddWithValue("OpenBank", businessFinanceAccount.OpenBank); dbParameters.AddWithValue("OpenSubBank", businessFinanceAccount.OpenSubBank); dbParameters.AddWithValue("UpdateBy", businessFinanceAccount.UpdateBy); DbHelper.ExecuteNonQuery(SuperMan_Write, updateSql, dbParameters); }
/// <summary> /// 增加一条记录 /// </summary> /// <param name="businessFinanceAccount">参数实体</param> /// <returns></returns> public int Insert(BusinessFinanceAccount businessFinanceAccount) { const string insertSql = @" insert into BusinessFinanceAccount(BusinessId,TrueName,AccountNo,IsEnable,AccountType,BelongType,OpenBank,OpenSubBank,CreateBy,UpdateBy) values(@BusinessId,@TrueName,@AccountNo,@IsEnable,@AccountType,@BelongType,@OpenBank,@OpenSubBank,@CreateBy,@UpdateBy) select @@IDENTITY"; IDbParameters dbParameters = DbHelper.CreateDbParameters(); dbParameters.AddWithValue("BusinessId", businessFinanceAccount.BusinessId); //商户ID dbParameters.AddWithValue("TrueName", businessFinanceAccount.TrueName); //户名 dbParameters.AddWithValue("AccountNo", businessFinanceAccount.AccountNo); //卡号(DES加密) dbParameters.AddWithValue("IsEnable", businessFinanceAccount.IsEnable); //是否有效(1:有效 0:无效) dbParameters.AddWithValue("AccountType", businessFinanceAccount.AccountType); //账号类型:(1网银 2支付宝 3微信 4财付通 5百度钱包) dbParameters.AddWithValue("BelongType", businessFinanceAccount.BelongType); //账号类别 0 个人账户 1 公司账户 dbParameters.AddWithValue("OpenBank", businessFinanceAccount.OpenBank); //开户行 dbParameters.AddWithValue("OpenSubBank", businessFinanceAccount.OpenSubBank); //开户支行 dbParameters.AddWithValue("CreateBy", businessFinanceAccount.CreateBy); //添加人 dbParameters.AddWithValue("UpdateBy", businessFinanceAccount.UpdateBy); //最后更新人 object result = DbHelper.ExecuteScalar(SuperMan_Write, insertSql, dbParameters); return(ParseHelper.ToInt(result)); }
/// <summary> /// 商户提现功能 add by caoheyang 20150511 /// </summary> /// <param name="withdrawBpm">参数实体</param> /// <returns></returns> public ResultModel <object> WithdrawB(WithdrawBPM withdrawBpm) { using (IUnitOfWork tran = EdsUtilOfWorkFactory.GetUnitOfWorkOfEDS()) { BusinessModel business = new BusinessModel(); var businessFinanceAccount = new BusinessFinanceAccount(); //商户金融账号信息 FinanceWithdrawB checkbool = CheckWithdrawB(withdrawBpm, ref business, ref businessFinanceAccount); if (checkbool != FinanceWithdrawB.Success) //验证失败 此次提款操作无效 直接返回相关错误信息 { return(ResultModel <object> .Conclude(checkbool)); } else { _businessDao.UpdateForWithdrawC(new UpdateForWithdrawPM() { Id = withdrawBpm.BusinessId, Money = -withdrawBpm.WithdrawPrice }); //更新商户表的余额,可提现余额 string withwardNo = Helper.generateOrderCode(withdrawBpm.BusinessId); #region 商户提现 long withwardId = _businessWithdrawFormDao.Insert(new BusinessWithdrawForm() { WithwardNo = withwardNo, //单号 规则待定 BusinessId = withdrawBpm.BusinessId, //商户Id BalancePrice = business.BalancePrice, //提现前商户余额 AllowWithdrawPrice = business.AllowWithdrawPrice, //提现前商户可提现金额 Status = (int)BusinessWithdrawFormStatus.WaitAllow, //待审核 Amount = withdrawBpm.WithdrawPrice, //提现金额 Balance = business.BalancePrice - withdrawBpm.WithdrawPrice, //提现后余额 TrueName = businessFinanceAccount.TrueName, //商户收款户名 AccountNo = businessFinanceAccount.AccountNo, //卡号(DES加密) AccountType = businessFinanceAccount.AccountType, //账号类型: BelongType = businessFinanceAccount.BelongType, //账号类别 0 个人账户 1 公司账户 OpenBank = businessFinanceAccount.OpenBank, //开户行 OpenSubBank = businessFinanceAccount.OpenSubBank //开户支行 }); #endregion #region 商户余额流水操作 更新骑士表的余额,可提现余额 _businessBalanceRecordDao.Insert(new BusinessBalanceRecord() { BusinessId = withdrawBpm.BusinessId, //商户Id Amount = -withdrawBpm.WithdrawPrice, //流水金额 Status = (int)BusinessBalanceRecordStatus.Tradeing, //流水状态(1、交易成功 2、交易中) RecordType = (int)BusinessBalanceRecordRecordType.WithdrawApply, Operator = business.Name, WithwardId = withwardId, RelationNo = withwardNo, Remark = "商户提现" }); #endregion #region 商户提现记录 _businessWithdrawLogDao.Insert(new BusinessWithdrawLog() { WithwardId = withwardId, Status = (int)BusinessWithdrawFormStatus.WaitAllow,//待审核 Remark = "商户发起提现操作", Operator = business.Name, }); //更新商户表的余额,可提现余额 #endregion tran.Complete(); } return(ResultModel <object> .Conclude(FinanceWithdrawB.Success));; } }