private void 发出冲正()//更新出去 { Button_冲正.Enabled = false; string 从URL传来值 = 从URL获取值(); using (SqlSugarClient dbClient = new DBClient().GetClient()){ //1.订单设置为冲正 //2.修改账户内余额和手续费 退回 //3.插入余额流水 退回 //4.插入出款银行卡流水 退款 //5.插入手续费流水 退回 //6.管理出款银行卡 退款 string 生成编号标头 = "DKTC"; string 生成编号 = 生成编号标头 + DateTime.Now.ToString("yyyyMMddHHmmss") + Convert.ToString(ClassLibrary1.ClassHelpMe.GenerateRandomCode(1, 1000, 9999)); string RegisterTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); dbClient.Ado.UseTran(() => { }); string 提款手续费_生成编号标头 = "DKCZ"; string 提款手续费_订单号 = 提款手续费_生成编号标头 + DateTime.Now.ToString("yyyyMMddHHmmss") + Convert.ToString(ClassLibrary1.ClassHelpMe.GenerateRandomCode(1, 1000, 9999)); string 账户余额_生成编号标头 = "DKCZ"; string 账户余额_订单号 = 账户余额_生成编号标头 + DateTime.Now.ToString("yyyyMMddHHmmss") + Convert.ToString(ClassLibrary1.ClassHelpMe.GenerateRandomCode(1, 1000, 9999)); DateTime now = DateTime.Now; string 生成编号_出款流水 = "CZHYE" + DateTime.Now.ToString("yyyyMMddHHmmss") + Convert.ToString(ClassLibrary1.ClassHelpMe.GenerateRandomCode(1, 1000, 9999)); string 时间创建 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); dbClient.Ado.UseTran(() => { }); dbClient.Ado.ExecuteCommand("set session transaction isolation level serializable;"); var result = dbClient.Ado.UseTran(() => { var orderNumInfo = dbClient.Queryable <table_商户明细提款>().Where(it => it.订单号 == 从URL传来值).First(); var userInfo = dbClient.Queryable <table_商户账号>().Where(it => it.商户ID == orderNumInfo.商户ID).First(); var outcardInfo = dbClient.Queryable <table_后台出款银行卡管理>().Where(it => it.出款银行卡卡号 == orderNumInfo.出款银行卡卡号).First(); // 修改提款状态 dbClient.Updateable <table_商户明细提款>() .SetColumns(it => new table_商户明细提款() { 类型 = "冲正", 状态 = "失败", 时间修改 = now }) .Where(it => it.订单号 == 从URL传来值).ExecuteCommand(); string 冲正_类型 = "订单提款冲正"; table_商户明细手续费 fee = new table_商户明细手续费 { 订单号 = 提款手续费_订单号, 商户ID = Int32.Parse(userInfo.商户ID), 手续费支出 = Convert.ToDouble(orderNumInfo.手续费), 交易金额 = Convert.ToDouble(orderNumInfo.交易金额), 交易前手续费余额 = userInfo.手续费余额.Value, 交易后手续费余额 = userInfo.手续费余额.Value + orderNumInfo.手续费.Value, 类型 = 冲正_类型, 时间创建 = now, }; table_商户明细余额 money = new table_商户明细余额 { 订单号 = 账户余额_订单号, 商户ID = Int32.Parse(userInfo.商户ID), 类型 = 冲正_类型, 交易金额 = orderNumInfo.交易金额.ToString(), 交易前账户余额 = userInfo.提款余额.Value.ToString(), 交易后账户余额 = (userInfo.提款余额.Value + orderNumInfo.交易金额.Value).ToString(), 状态 = "", 时间创建 = now, }; table_后台出款银行卡流水 outCardHistory = new table_后台出款银行卡流水 { 订单号 = 生成编号_出款流水, 商户ID = Int32.Parse(userInfo.商户ID), 余额 = (outcardInfo.出款银行卡余额 + orderNumInfo.交易金额), 类型 = 冲正_类型, 状态 = "成功", 时间创建 = now, 时间交易 = now, 支出 = Convert.ToDouble(orderNumInfo.交易金额), 出款银行卡名称 = outcardInfo.出款银行卡主姓名, 出款银行卡卡号 = outcardInfo.出款银行卡卡号 }; //插入退款手续费明细 dbClient.Insertable <table_商户明细手续费>(fee).ExecuteCommand(); //插入退款余额明细 dbClient.Insertable <table_商户明细余额>(money).ExecuteCommand(); // 插入出款卡记录 dbClient.Insertable <table_后台出款银行卡流水>(outCardHistory).ExecuteCommand(); // 退余额 dbClient.Updateable <table_商户账号>().SetColumns(it => it.提款余额 == it.提款余额.Value + orderNumInfo.交易金额.Value).Where(it => it.商户ID == orderNumInfo.商户ID).ExecuteCommand(); // 退手续费 dbClient.Updateable <table_商户账号>().SetColumns(it => it.手续费余额 == it.手续费余额.Value + orderNumInfo.手续费.Value).Where(it => it.商户ID == orderNumInfo.商户ID).ExecuteCommand(); // 出款银行卡加回money dbClient.Updateable <table_后台出款银行卡管理>().SetColumns(it => it.出款银行卡余额 == it.出款银行卡余额.Value + orderNumInfo.交易金额.Value).Where(it => it.出款银行卡卡号 == orderNumInfo.出款银行卡卡号).ExecuteCommand(); }); dbClient.Ado.UseTran(() => { }); if (!result.IsSuccess) { ClassLibrary1.ClassMessage.HinXi(Page, "冲正失败,请重试"); } } }
private void 操作更新() //更新出去 { Button_变更状态.Enabled = false; //发出操作后禁止按钮 DBClient db = new DBClient(); var dbCilent = db.GetClient(); DateTime nowTime = DateTime.Now; dbCilent.Ado.ExecuteCommand("set session transaction isolation level serializable;"); // 获取商户充值 var rechargeRecord = dbCilent.Queryable <table_商户明细充值>().Where(it => it.订单号 == 从URL获取值()).First(); // 获取出款卡余额 //充值提款手续费 if (rechargeRecord.充值类型 == "充值提款手续费") { Response.Redirect("商户充值记录状态更新手续费.aspx?Bianhao=" + 从URL获取值() + ""); string redkey = DropDownList_下拉框1.SelectedItem.Value; if (redkey == "成功") { Response.Redirect("商户充值记录状态更新手续费.aspx?Bianhao=" + 从URL获取值() + ""); } if (redkey == "失败") { Response.Redirect("商户充值记录状态更新手续费.aspx?Bianhao=" + 从URL获取值() + ""); } } if (rechargeRecord.充值类型 == "充值提款余额") { string 生成编号2 = "CZHYE" + DateTime.Now.ToString("yyyyMMddHHmmss") + Convert.ToString(ClassLibrary1.ClassHelpMe.GenerateRandomCode(1, 1000, 9999)); string 生成编号 = "CZHYE" + DateTime.Now.ToString("yyyyMMddHHmmss") + Convert.ToString(ClassLibrary1.ClassHelpMe.GenerateRandomCode(1, 1000, 9999)); string redkey = DropDownList_下拉框1.SelectedItem.Value; if (redkey == "成功") { dbCilent.UseTran(() => { }); if (rechargeRecord.状态 != "成功") { if (dbCilent.UseTran(() => { var busInfo = dbCilent.Queryable <table_商户账号>().Where(it => it.商户ID == rechargeRecord.商户ID.ToString()).First(); var outCard = dbCilent.Queryable <table_后台出款银行卡管理>().Where(it => it.出款银行卡卡号 == DropDownList_选择银行卡.SelectedItem.Value).First(); table_商户明细余额 bus = new table_商户明细余额 { 订单号 = 生成编号, 商户ID = rechargeRecord.商户ID, 类型 = "充值提款余额", 交易金额 = rechargeRecord.充值金额.ToString(), 交易前账户余额 = busInfo.提款余额.Value.ToString(), 交易后账户余额 = (busInfo.提款余额.Value + rechargeRecord.充值金额).ToString(), 状态 = "", 时间创建 = nowTime, }; table_后台出款银行卡流水 outCardHistory = new table_后台出款银行卡流水 { 订单号 = 生成编号2, 商户ID = Convert.ToInt32(rechargeRecord.商户ID), 余额 = outCard.出款银行卡余额 + rechargeRecord.充值金额, 类型 = "充值", 状态 = "成功", 时间创建 = nowTime, 时间交易 = nowTime, 收入 = Convert.ToDouble(rechargeRecord.充值金额.ToString()), 出款银行卡名称 = DropDownList_选择银行卡.SelectedItem.Text, 出款银行卡卡号 = DropDownList_选择银行卡.SelectedItem.Value }; // 插入明细余额 dbCilent.Insertable <table_商户明细余额>(bus).ExecuteCommand(); // 插入出款卡流水 dbCilent.Insertable <table_后台出款银行卡流水>(outCardHistory).ExecuteCommand(); var sql1 = "UPDATE table_商户明细充值 SET 备注后台='" + TextBox_备注后台.Text.ToString() + "',收款银行卡卡号='" + DropDownList_选择银行卡.SelectedItem.Value.ToString() + "',状态='" + DropDownList_下拉框1.SelectedItem.Value.ToString() + "' WHERE 订单号= '" + rechargeRecord.订单号 + "' ;"; // 修改订单状态 dbCilent.Ado.ExecuteCommand(sql1); // 更新商户余额 dbCilent.Updateable <table_商户账号>().UpdateColumns(it => new { it.提款余额 }).Where(it => it.商户ID == rechargeRecord.商户ID.ToString()).ReSetValue(it => it.提款余额 == (it.提款余额 + rechargeRecord.充值金额)).ExecuteCommand(); // 加出款卡 dbCilent.Updateable <table_后台出款银行卡管理>().UpdateColumns(it => new { it.出款银行卡余额 }).Where(it => it.出款银行卡卡号 == DropDownList_选择银行卡.SelectedItem.Value).ReSetValue(it => it.出款银行卡余额 == (it.出款银行卡余额 + rechargeRecord.充值金额)).ExecuteCommand(); }).IsSuccess) { ClassLibrary1.ClassMessage.HinXi(Page, "充值成功"); } else { ClassLibrary1.ClassMessage.HinXi(Page, "充值失败"); } } dbCilent.UseTran(() => { }); } if (redkey == "失败") { dbCilent.UseTran(() => { }); if (rechargeRecord.状态 != "失败") { if (dbCilent.UseTran(() => { string 生成编号3 = "THSXF" + DateTime.Now.ToString("yyyyMMddHHmmss") + Convert.ToString(ClassLibrary1.ClassHelpMe.GenerateRandomCode(1, 1000, 9999)); var busInfo = dbCilent.Queryable <table_商户账号>().Where(it => it.商户ID == rechargeRecord.商户ID.ToString()).First(); table_商户明细手续费 fee = new table_商户明细手续费 { 订单号 = 生成编号3, 商户ID = Int32.Parse(busInfo.商户ID), 手续费收入 = Convert.ToDouble(rechargeRecord.产生手续费), 手续费支出 = 0, 交易金额 = Convert.ToDouble(rechargeRecord.充值金额), 交易前手续费余额 = busInfo.手续费余额.Value, 交易后手续费余额 = busInfo.手续费余额.Value + rechargeRecord.产生手续费, 类型 = "充值失败", 时间创建 = nowTime, }; dbCilent.Insertable <table_商户明细手续费>(fee).ExecuteCommand(); dbCilent.Updateable <table_商户账号>().UpdateColumns(it => new { it.手续费余额 }).Where(it => it.商户ID == rechargeRecord.商户ID.ToString()).ReSetValue(it => it.手续费余额 == (it.手续费余额 + rechargeRecord.产生手续费)).ExecuteCommand(); dbCilent.Ado.ExecuteCommand("UPDATE table_商户明细充值 SET 备注后台='" + TextBox_备注后台.Text + "',收款银行卡卡号='" + DropDownList_选择银行卡.SelectedItem.Value + "',状态='" + DropDownList_下拉框1.SelectedItem.Value + "' WHERE 订单号='" + rechargeRecord.订单号 + " '"); }).IsSuccess) { ClassLibrary1.ClassMessage.HinXi(Page, "充值失败"); } } ; dbCilent.UseTran(() => { }); } } }
private void 开始执行() { Button_确认订单发起.Enabled = false;//防止重复操作 long OperatorId = GetTimeStamp(); int Sindex = 0; using (SqlSugarClient dbClient = new DBClient().GetClient()) { for (int i = 0; i < Gridview1.Rows.Count; i++) { string 交易方卡号 = ((TextBox)Gridview1.Rows[i].Cells[1].FindControl("TextBox1")).Text; string 交易方姓名 = ((TextBox)Gridview1.Rows[i].Cells[2].FindControl("TextBox2")).Text; string 交易方银行 = ((TextBox)Gridview1.Rows[i].Cells[3].FindControl("TextBox3")).Text; string 交易金额 = ((TextBox)Gridview1.Rows[i].Cells[4].FindControl("TextBox4")).Text; string 备注 = ((TextBox)Gridview1.Rows[i].Cells[5].FindControl("TextBox5")).Text; DateTime now = DateTime.Now; if (!ClassLibrary1.ClassYZ.IsNumber(交易金额)) { ClassLibrary1.ClassMessage.HinXi(Page, "金额 不是数字或者小数 忽略该笔继续执行"); continue; } string Cookie_UserName = ClassLibrary1.ClassAccount.检查商户端cookie2(); dbClient.Ado.UseTran(() => { }); // select 之前保证一次 commit,即使什么都不做 table_商户账号 record = null; dbClient.Ado.UseTran(() => { record = dbClient.Queryable <table_商户账号>().Where(it => it.商户ID == Cookie_UserName).First(); }); if (record == null) { return; } double 提款金额 = double.Parse(交易金额); double 提款余额 = record.提款余额.Value; double 手续费余额 = record.手续费余额.Value; double 手续费比率 = record.手续费比率.Value; double 单笔手续费 = record.单笔手续费.Value; double 提款最低单笔金额 = double.Parse(record.提款最低单笔金额); double 提款最高单笔金额 = double.Parse(record.提款最高单笔金额); if (提款余额 - 提款金额 < 0) { ClassLibrary1.ClassMessage.HinXi(Page, "目标提款金额 账户提款余额不足支付"); return; } if (手续费余额 - 单笔手续费 < 0) { ClassLibrary1.ClassMessage.HinXi(Page, "手续费余额不足"); return; } if (提款最高单笔金额 - 提款金额 < 0) { ClassLibrary1.ClassMessage.HinXi(Page, "目标提款金额 大于账户提款金额限制 忽略该笔继续执行"); continue; } if (提款最低单笔金额 - 提款金额 > 0) { ClassLibrary1.ClassMessage.HinXi(Page, "目标提款金额 小于账户提款金额限制 忽略该笔继续执行"); continue; } dbClient.Ado.UseTran(() => { dbClient.Ado.ExecuteCommand("UPDATE `table_商户账号` SET `提款余额` = `提款余额` - '" + 提款金额 + "', " + "`手续费余额` = `手续费余额` - '" + 单笔手续费 + "' WHERE `商户ID` = '" + record.商户ID + "';"); string 类型 = "提款"; table_商户明细手续费 fee = new table_商户明细手续费() { 订单号 = "MHFON" + now.ToString("yyyyMMddHHmmss") + Convert.ToString(ClassLibrary1.ClassHelpMe.GenerateRandomCode(1, 1000, 9999)), 商户ID = int.Parse(record.商户ID), 手续费支出 = 单笔手续费, 交易金额 = 提款金额, 交易前手续费余额 = 手续费余额, 交易后手续费余额 = 手续费余额 - 单笔手续费, 类型 = 类型, 时间创建 = now }; dbClient.Insertable(fee).ExecuteCommand(); table_商户明细余额 balance = new table_商户明细余额() { 订单号 = "MBON" + now.ToString("yyyyMMddHHmmss") + Convert.ToString(ClassLibrary1.ClassHelpMe.GenerateRandomCode(1, 1000, 9999)), 商户ID = int.Parse(record.商户ID), 类型 = 类型, 手续费 = 单笔手续费.ToString(), 交易金额 = 交易金额, 交易前账户余额 = 提款余额.ToString(), 交易后账户余额 = (提款余额 - 提款金额).ToString(), 时间创建 = now }; dbClient.Insertable(balance).ExecuteCommand(); table_商户明细提款 detail = new table_商户明细提款() { 订单号 = "MST" + now.ToString("yyyyMMddHHmmss") + Convert.ToString(ClassLibrary1.ClassHelpMe.GenerateRandomCode(1, 1000, 9999)), 商户ID = record.商户ID, 交易方卡号 = 交易方卡号, 交易方姓名 = 交易方姓名, 交易方银行 = 交易方银行, 交易金额 = 提款金额, 手续费 = 单笔手续费, 创建方式 = "手动", 备注商户写 = 备注, 状态 = "待处理", 类型 = 类型, 时间创建 = now, 订单源IP = ClassLibrary1.ClassAccount.来源IP(), 商户提交批次ID组 = OperatorId, 商户提交序号 = Sindex++ }; dbClient.Insertable(detail).ExecuteCommand(); }); } } Response.Redirect("./商户提款记录.aspx"); }
private void 操作扣除() { Button_操作扣除.Enabled = false; using (SqlSugarClient sqlSugarClient = new DBClient().GetClient()) { var getByWhere = sqlSugarClient.Queryable <table_商户账号>().Where(it => it.商户ID == 从URL获取值()).ToList(); table_商户账号 商户 = getByWhere[0]; // TwoFactorAuthenticator tfa = new TwoFactorAuthenticator(); // var result = tfa.ValidateTwoFactorPIN(商户.keyga, TextBox_Google验证码.Text); // string Cookie_UserName = ClassLibrary1.ClassAccount.cookie解密(HttpContext.Current.Request.Cookies["PPusernameBackstageL1"]["username"]); string Cookie_Password = ClassLibrary1.ClassAccount.cookie解密(HttpContext.Current.Request.Cookies["PPusernameBackstageL1"]["password"]); if (TextBox_管理员密码.Text == Cookie_Password) { string 扣除金额 = TextBox_扣除金额.Text; Random rd2 = new Random(); DateTime time = DateTime.Now; string 备注 = "管理员扣除"; if (RadioButton_目标手续费.Checked) { table_商户明细手续费 fee = new table_商户明细手续费(); fee.订单号 = "CZSXF" + DateTime.Now.ToString("yyyyMMddHHmmss") + rd2.Next(1000, 9999); fee.商户ID = Int32.Parse(商户.商户ID); fee.类型 = "扣除手续费"; fee.交易金额 = Double.Parse(扣除金额); fee.手续费收入 = Double.Parse(扣除金额); fee.交易前手续费余额 = 商户.手续费余额; fee.交易后手续费余额 = 商户.手续费余额 - Double.Parse(扣除金额); fee.备注 = 备注; fee.状态 = "成功"; fee.时间创建 = time; sqlSugarClient.Insertable(fee).ExecuteCommand(); // 商户.手续费余额 -= Convert.ToDouble(扣除金额); // sqlSugarClient.Updateable(商户).UpdateColumns(it => new { it.手续费余额 }).ExecuteCommand(); sqlSugarClient.Updateable <table_商户账号>().Where(it => it.商户ID == 商户.商户ID) .SetColumns(it => it.手续费余额 == it.手续费余额 - Convert.ToDouble(扣除金额)).ExecuteCommand(); } else { table_商户明细余额 balance = new table_商户明细余额(); balance.订单号 = "MBON" + DateTime.Now.ToString("yyyyMMddHHmmss") + Convert.ToString(ClassLibrary1.ClassHelpMe.GenerateRandomCode(1, 1000, 9999)); balance.商户ID = Convert.ToInt32(商户.商户ID); balance.类型 = "扣除余额"; balance.手续费 = "0"; balance.交易金额 = 扣除金额; balance.交易前账户余额 = Convert.ToString(商户.提款余额); balance.交易后账户余额 = Convert.ToString(商户.提款余额 - Double.Parse(扣除金额)); balance.状态 = "成功"; balance.时间创建 = time; sqlSugarClient.Insertable(balance).ExecuteCommand(); // 商户.提款余额 -= Convert.ToDouble(扣除金额); // sqlSugarClient.Updateable(商户).UpdateColumns(it => new { it.提款余额 }).ExecuteCommand(); sqlSugarClient.Updateable <table_商户账号>().Where(it => it.商户ID == 商户.商户ID) .SetColumns(it => it.提款余额 == it.提款余额 - Convert.ToDouble(扣除金额)).ExecuteCommand(); } } else { ClassLibrary1.ClassMessage.HinXi(Page, "管理员密码错误"); Button_操作扣除.Enabled = true; return; } } Response.Redirect("商户列表.aspx"); }
private void 操作开始() { string 设置订单的状态 = DropDownList_下拉框1.SelectedItem.Value; string 从URL传来值 = 从URL获取值(); string 出款银行卡卡号 = DropDownList_选择银行卡.SelectedItem.Value; double 本单交易金额 = double.Parse(Label_金额.Text); DateTime now = DateTime.Now; using (SqlSugarClient dbClient = new DBClient().GetClient()) { dbClient.Ado.ExecuteCommand("set session transaction isolation level serializable;"); var result = dbClient.Ado.UseTran(() => { if (设置订单的状态 == "成功") { var data = dbClient.Queryable <table_后台出款银行卡管理>() .Where(it => it.出款银行卡卡号 == 出款银行卡卡号); if (data.Count() == 0) { return; } var record = data.First(); if (record.出款银行卡最小交易金额 - 本单交易金额 > 0) { ClassLibrary1.ClassMessage.HinXi(Page, "本单金额小于出款银行卡限制的 最小交易金额"); return; } if ((record.出款银行卡余额 - 本单交易金额) < 0) { ClassLibrary1.ClassMessage.HinXi(Page, "出款银行卡余额不足"); return; } dbClient.Ado.ExecuteCommand("UPDATE `table_商户明细提款` SET `备注管理写`=@备注管理写, `状态`=@状态, `时间完成`=@时间完成, `出款银行卡名称`=@出款银行卡名称, `出款银行卡卡号`=@出款银行卡卡号, `操作员`=@操作员 WHERE `订单号`=@订单号 ", new { 备注管理写 = TextBox_备注.Text, 状态 = DropDownList_下拉框1.SelectedItem.Value, 时间完成 = now, 出款银行卡名称 = DropDownList_选择银行卡.SelectedItem.Text, 出款银行卡卡号 = DropDownList_选择银行卡.SelectedItem.Value, 操作员 = ClassLibrary1.ClassAccount.检查管理L1端cookie2(), 订单号 = 从URL获取值() }); var record1 = dbClient.Queryable <table_商户明细提款>().Where(it => it.订单号 == 从URL传来值).First(); dbClient.Ado.ExecuteCommand("UPDATE `table_后台出款银行卡管理` SET `出款银行卡余额`=`出款银行卡余额`-" + record1.交易金额 + " WHERE `出款银行卡卡号`=@出款银行卡卡号", new { 出款银行卡卡号 = DropDownList_选择银行卡.SelectedItem.Value }); string 类型 = "订单提款出款"; string 状态 = "成功"; double 余额 = System.Convert.ToDouble(record.出款银行卡余额) - System.Convert.ToDouble(record1.交易金额); table_后台出款银行卡流水 t = new table_后台出款银行卡流水() { 订单号 = "BOPBCP" + now.ToString("yyyyMMddHHmmss") + Convert.ToString(ClassLibrary1.ClassHelpMe.GenerateRandomCode(1, 1000, 9999)), 商户ID = Int32.Parse(record1.商户ID), 支出 = record1.交易金额, 余额 = 余额, 出款银行卡卡号 = DropDownList_选择银行卡.SelectedItem.Value, 出款银行卡名称 = DropDownList_选择银行卡.SelectedItem.Text, 类型 = 类型, 状态 = 状态, 时间创建 = now }; dbClient.Insertable(t).ExecuteCommand(); } else if (设置订单的状态 == "失败") { var record = dbClient.Queryable <table_商户明细提款>() .Where(it => it.订单号 == 从URL传来值).First(); var record1 = dbClient.Queryable <table_商户账号>() .Where(it => it.商户ID == record.商户ID).First(); dbClient.Ado.ExecuteCommand("UPDATE `table_商户账号` SET `提款余额`=`提款余额`+" + record.交易金额 + " , 手续费余额= 手续费余额+" + record.手续费 + " where 商户ID=@商户ID", new { 商户ID = record.商户ID }); table_商户明细手续费 t = new table_商户明细手续费() { 订单号 = "TKSXF" + now.ToString("yyyyMMddHHmmss") + Convert.ToString(ClassLibrary1.ClassHelpMe.GenerateRandomCode(1, 1000, 9999)), 商户ID = Int32.Parse(record.商户ID), 手续费支出 = record.手续费, 交易金额 = record.交易金额, 交易前手续费余额 = record1.手续费余额, 交易后手续费余额 = record1.手续费余额.Value + record.手续费.Value, 类型 = "订单出款退款", 时间创建 = now }; dbClient.Insertable(t).ExecuteCommand(); table_商户明细余额 t1 = new table_商户明细余额() { 订单号 = "TKYE" + now.ToString("yyyyMMddHHmmss") + Convert.ToString(ClassLibrary1.ClassHelpMe.GenerateRandomCode(1, 1000, 9999)), 商户ID = Int32.Parse(record.商户ID), 类型 = "订单出款退款", 交易金额 = record.交易金额.Value.ToString(), 交易前账户余额 = record1.提款余额.Value.ToString(), 交易后账户余额 = (record1.提款余额.Value + record.交易金额.Value).ToString(), 状态 = "", 时间创建 = now }; dbClient.Insertable(t1).ExecuteCommand(); dbClient.Ado.ExecuteCommand("UPDATE `table_商户明细提款` SET `备注管理写`=@备注管理写, `状态`=@状态, `时间完成`=@时间完成, `操作员`=@操作员 WHERE `订单号`=@订单号", new { 备注管理写 = TextBox_备注.Text, 状态 = DropDownList_下拉框1.SelectedItem.Value, 时间完成 = now, 操作员 = ClassLibrary1.ClassAccount.检查管理L1端cookie2(), 订单号 = 从URL获取值() }); } }); if (!result.IsSuccess) { ClassLibrary1.ClassMessage.HinXi(Page, "操作失败"); } } Response.Redirect("商户提款记录.aspx"); }
public ActionResult OrderCreate(int?timeunix, string signature, OrderCreateRequest request) { table_商户账号 account = null; sqlSugarClient.Ado.UseTran(() => { }); sqlSugarClient.Ado.UseTran(() => { account = sqlSugarClient.Queryable <table_商户账号>().Where(it => it.商户ID == request.UserName).First(); }); if (Convert.ToDouble(account.手续费余额) - Convert.ToDouble(account.单笔手续费) < 0) { return(GetStandardError(BaseErrors.ERROR_NUMBER.LX1010, request.UserName, request.UserPassword)); } if (Convert.ToDouble(request.AimsMoney) - Convert.ToDouble(account.提款最低单笔金额) < 0) { return(GetStandardError(BaseErrors.ERROR_NUMBER.LX1011, request.UserName, request.UserPassword)); } if (Convert.ToDouble(request.AimsMoney) - Convert.ToDouble(account.提款最高单笔金额) > 0) { return(GetStandardError(BaseErrors.ERROR_NUMBER.LX1012, request.UserName, request.UserPassword)); } if (account.提款余额.Value - Convert.ToDouble(request.AimsMoney) < 0) { return(GetStandardError(BaseErrors.ERROR_NUMBER.LX1013, request.UserName, request.UserPassword)); } JsonResult jsonResult = null; sqlSugarClient.Ado.UseTran(() => { }); sqlSugarClient.Ado.UseTran(() => { var getByWhere = sqlSugarClient.Queryable <table_商户明细提款>() .Where(it => it.商户ID == request.UserName && it.商户API订单号 == request.OrderNumberMerchant).ToList(); if (getByWhere.Count > 0) { jsonResult = GetStandardError(BaseErrors.ERROR_NUMBER.LX1020, request.UserName, request.UserPassword); } }); if (jsonResult != null) { return(jsonResult); } sqlSugarClient.Ado.UseTran(() => { }); var result = sqlSugarClient.Ado.UseTran(() => { account = sqlSugarClient.Queryable <table_商户账号>().Where(it => it.商户ID == request.UserName).First(); string 状态 = "待处理"; string 类型 = "提款"; DateTime 时间创建 = DateTime.Now; double preFee = Convert.ToDouble(account.手续费余额); double preBalance = account.提款余额.Value; account.提款余额 -= Convert.ToDouble(request.AimsMoney); account.手续费余额 -= Convert.ToDouble(account.单笔手续费); account.API回调 = request.CallBack; // sqlSugarClient.Updateable(account).UpdateColumns(it => new { it.提款余额, it.手续费余额, it.API回调 }).ExecuteCommand(); sqlSugarClient.Updateable <table_商户账号>().Where(it => it.商户ID == account.商户ID) .SetColumns(it => it.提款余额 == it.提款余额 - Convert.ToDouble(request.AimsMoney)) .SetColumns(it => it.手续费余额 == it.手续费余额 - Convert.ToDouble(account.单笔手续费)) .SetColumns(it => it.API回调 == request.CallBack) .ExecuteCommand(); table_商户明细手续费 fee = new table_商户明细手续费(); fee.订单号 = "MHFON" + DateTime.Now.ToString("yyyyMMddHHmmss") + Convert.ToString(ClassLibrary1.ClassHelpMe.GenerateRandomCode(1, 1000, 9999)); fee.商户ID = Convert.ToInt32(account.商户ID); fee.手续费支出 = account.单笔手续费; fee.交易金额 = Convert.ToDouble(request.AimsMoney); fee.交易前手续费余额 = preFee; fee.交易后手续费余额 = account.手续费余额; fee.类型 = 类型; fee.状态 = 状态; fee.时间创建 = 时间创建; sqlSugarClient.Insertable(fee).ExecuteCommand(); table_商户明细余额 balance = new table_商户明细余额(); balance.订单号 = "MBON" + DateTime.Now.ToString("yyyyMMddHHmmss") + Convert.ToString(ClassLibrary1.ClassHelpMe.GenerateRandomCode(1, 1000, 9999)); balance.商户ID = Convert.ToInt32(account.商户ID); balance.类型 = 类型; balance.手续费 = Convert.ToString(account.单笔手续费); balance.交易金额 = request.AimsMoney; balance.交易前账户余额 = Convert.ToString(preBalance); balance.交易后账户余额 = Convert.ToString(account.提款余额); balance.状态 = 状态; balance.时间创建 = 时间创建; sqlSugarClient.Insertable(balance).ExecuteCommand(); table_商户明细提款 detail = new table_商户明细提款(); detail.订单号 = "MST" + DateTime.Now.ToString("yyyyMMddHHmmss") + Convert.ToString(ClassLibrary1.ClassHelpMe.GenerateRandomCode(1, 1000, 9999)); detail.商户ID = account.商户ID; detail.交易方卡号 = request.AimsCardNumber; detail.交易方姓名 = request.AimsCardName; detail.交易方银行 = request.AimsCardBank; detail.商户API订单号 = request.OrderNumberMerchant; detail.交易金额 = Convert.ToDouble(request.AimsMoney); detail.手续费 = account.单笔手续费; detail.创建方式 = "接口"; detail.备注商户写 = ""; detail.状态 = 状态; detail.类型 = 类型; detail.时间创建 = 时间创建; detail.API回调次数 = 0; detail.订单源IP = ClassLibrary1.ClassAccount.来源IP(); sqlSugarClient.Insertable(detail).ExecuteCommand(); OrderCreateResponse orderCreateResponse = AutoCopy <BaseResponse, OrderCreateResponse>(baseSuccess); orderCreateResponse.Username = request.UserName; orderCreateResponse.Userpassword = request.UserPassword; orderCreateResponse.OrderNumberMerchant = request.OrderNumberMerchant; orderCreateResponse.OrderNumberSite = detail.订单号; orderCreateResponse.AimsCardBank = request.AimsCardBank; orderCreateResponse.AimsCardName = request.AimsCardName; orderCreateResponse.AimsCardNumber = request.AimsCardNumber; orderCreateResponse.AimsMoney = request.AimsMoney; jsonResult = new JsonResult(); jsonResult.Data = orderCreateResponse; }); sqlSugarClient.Ado.UseTran(() => { }); if (!result.IsSuccess) { jsonResult = GetStandardError(BaseErrors.ERROR_NUMBER.LX1016, request.UserName, request.UserPassword); BaseResponse baseResponse = (BaseResponse)jsonResult.Data; baseResponse.StatusReply = string.Format(baseResponse.StatusReply, result.ErrorMessage); } return(jsonResult); }