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; string 从哪转移 = DropDownList_银行卡转移余额.SelectedItem.Value; string 转移到哪 = DropDownList_银行卡转移目标.SelectedItem.Value; string 金额 = TextBox_金额.Text; using (SqlSugarClient dbClient = new DBClient().GetClient()) { dbClient.Ado.UseTran(() => { var data = dbClient.Queryable <table_后台出款银行卡管理>() .Where(it => it.出款银行卡卡号 == 从哪转移 && it.出款银行卡余额.Value - Double.Parse(金额) >= 0); if (data.Count() == 0) { ClassLibrary1.ClassMessage.HinXi(Page, "转移停止.银行卡A余额不足"); return; } var record = data.First(); dbClient.Ado.ExecuteCommand("UPDATE `table_后台出款银行卡管理` SET `出款银行卡余额` = `出款银行卡余额` - '" + 金额 + "' WHERE `出款银行卡卡号` = '" + 从哪转移 + "';"); dbClient.Ado.ExecuteCommand("UPDATE `table_后台出款银行卡管理` SET `出款银行卡余额` = `出款银行卡余额` + '" + 金额 + "' WHERE `出款银行卡卡号` = '" + 转移到哪 + "';"); record = dbClient.Queryable <table_后台出款银行卡管理>() .Where(it => it.出款银行卡卡号 == 从哪转移).First(); DateTime createTime = DateTime.Now; table_后台出款银行卡流水 runningA = new table_后台出款银行卡流水() { 订单号 = "BCTCO" + createTime.ToString("yyyyMMddHHmmss") + Convert.ToString(ClassLibrary1.ClassHelpMe.GenerateRandomCode(1, 1000, 9999)), 类型 = "卡对卡转移", 支出 = Double.Parse(金额), 余额 = record.出款银行卡余额, 出款银行卡卡号 = record.出款银行卡卡号, 出款银行卡名称 = record.出款银行名称, 状态 = "成功", 时间创建 = createTime, 时间交易 = createTime }; dbClient.Insertable(runningA).ExecuteCommand(); record = dbClient.Queryable <table_后台出款银行卡管理>() .Where(it => it.出款银行卡卡号 == 转移到哪).First(); table_后台出款银行卡流水 runningB = new table_后台出款银行卡流水() { 订单号 = "BCTCE" + createTime.ToString("yyyyMMddHHmmss") + Convert.ToString(ClassLibrary1.ClassHelpMe.GenerateRandomCode(1, 1000, 9999)), 类型 = "卡对卡转移", 支出 = Double.Parse(金额), 余额 = record.出款银行卡余额, 出款银行卡卡号 = record.出款银行卡卡号, 出款银行卡名称 = record.出款银行名称, 状态 = "成功", 时间创建 = createTime, 时间交易 = createTime }; dbClient.Insertable(runningB).ExecuteCommand(); }); } Response.Redirect("./管理出款银行卡.aspx"); }
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 操作开始() { 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"); }