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;

            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");
        }
Esempio n. 3
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(() => { });
                }
            }
        }
Esempio n. 4
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");
        }