Esempio n. 1
0
        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, "冲正失败,请重试");
                }
            }
        }
Esempio n. 2
0
        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");
        }
Esempio n. 4
0
        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");
        }
Esempio n. 5
0
        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);
        }