From ec9a856bc527c5627021b8e367ef2aa4633792c3 Mon Sep 17 00:00:00 2001 From: chfei Date: Mon, 10 Aug 2026 18:56:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B6=88=E8=B4=B9=E8=AE=B0=E5=BD=95=20?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20=E6=98=BE=E7=A4=BA=20=E5=85=85=E5=80=BC?= =?UTF-8?q?=E6=80=BB=E9=A2=9D=EF=BC=8C=E5=8F=AF=E7=94=A8=E4=BD=99=E9=A2=9D?= =?UTF-8?q?=EF=BC=8C=E8=8C=83=E5=9B=B4=E5=86=85=E4=BD=BF=E7=94=A8=E9=87=91?= =?UTF-8?q?=E9=A2=9D=20=E6=B6=88=E8=B4=B9=E6=95=B0=E6=8D=AE=E5=AF=BC?= =?UTF-8?q?=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AllBase/BaseClass.cs | 3 +- .../WXGetBalanceQrCodeForm.Designer.cs | 105 ++++- .../Forms/UserForms/WXGetBalanceQrCodeForm.cs | 430 ++++++++++-------- .../UserForms/WXGetBalanceQrCodeForm.resx | 9 + 4 files changed, 341 insertions(+), 206 deletions(-) diff --git a/AllBase/BaseClass.cs b/AllBase/BaseClass.cs index 1dfe503..1f358ba 100644 --- a/AllBase/BaseClass.cs +++ b/AllBase/BaseClass.cs @@ -196,7 +196,8 @@ namespace AllBase /// 店铺充值月费 /// public static int ShopPointsPerMonth { get; set; } = 30; - public static decimal Balance { get; set; } = 0; + public static decimal RechargeAmountTotal { get; set; } = 0; + public static decimal Balance { get; set; } = 0; public static decimal PostagePerOrder { get; set; } = 2.2m; public static decimal PostagePerOrderDiff { get { return PostagePerOrder - 2.2m; } } public static int AlimamaPageCount = 0; diff --git a/Work/_29Tools/Forms/UserForms/WXGetBalanceQrCodeForm.Designer.cs b/Work/_29Tools/Forms/UserForms/WXGetBalanceQrCodeForm.Designer.cs index 7e9d92e..8b7e992 100644 --- a/Work/_29Tools/Forms/UserForms/WXGetBalanceQrCodeForm.Designer.cs +++ b/Work/_29Tools/Forms/UserForms/WXGetBalanceQrCodeForm.Designer.cs @@ -45,6 +45,11 @@ namespace Work._29Tools.Forms.UserForms this.btnBalanceTopUp = new DevComponents.DotNetBar.PanelEx(); this.splitContainer2 = new System.Windows.Forms.SplitContainer(); this.ucGroupBoxEx1 = new Work.UserComponents.UcGroupBoxEx(this.components); + this.exportRecord = new System.Windows.Forms.LinkLabel(); + this.balanceArmt = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.rechargeArmtTotal = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); this.label7 = new System.Windows.Forms.Label(); this.txtOutOrderId = new System.Windows.Forms.TextBox(); this.label6 = new System.Windows.Forms.Label(); @@ -68,6 +73,8 @@ namespace Work._29Tools.Forms.UserForms this.textBox1 = new System.Windows.Forms.TextBox(); this.statusBarUserControl1 = new Work.UserControls.StatusBarUserControl(); this.ucSplitPage1 = new Work.UserControls.UcSplitPage(); + this.label9 = new System.Windows.Forms.Label(); + this.rangeUsedAramt = new System.Windows.Forms.Label(); ((System.ComponentModel.ISupportInitialize)(this.pbCloseBase)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pbQrcode)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit(); @@ -93,7 +100,7 @@ namespace Work._29Tools.Forms.UserForms // pbCloseBase // this.pbCloseBase.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.pbCloseBase.Location = new System.Drawing.Point(1189, 0); + this.pbCloseBase.Location = new System.Drawing.Point(1389, 0); // // label1 // @@ -160,7 +167,7 @@ namespace Work._29Tools.Forms.UserForms this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; this.panel1.Location = new System.Drawing.Point(2, 34); this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(1221, 529); + this.panel1.Size = new System.Drawing.Size(1421, 529); this.panel1.TabIndex = 1140; // // splitContainer1 @@ -176,15 +183,15 @@ namespace Work._29Tools.Forms.UserForms this.splitContainer1.Panel1.Controls.Add(this.pbLoading); this.splitContainer1.Panel1.Controls.Add(this.label2); this.splitContainer1.Panel1.Controls.Add(this.numTopUpAmount); - this.splitContainer1.Panel1.Controls.Add(this.btnRefresh); this.splitContainer1.Panel1.Controls.Add(this.btnBalanceTopUp); this.splitContainer1.Panel1.Controls.Add(this.label1); this.splitContainer1.Panel1.Controls.Add(this.pbQrcode); + this.splitContainer1.Panel1.Controls.Add(this.btnRefresh); // // splitContainer1.Panel2 // this.splitContainer1.Panel2.Controls.Add(this.splitContainer2); - this.splitContainer1.Size = new System.Drawing.Size(1221, 529); + this.splitContainer1.Size = new System.Drawing.Size(1421, 529); this.splitContainer1.SplitterDistance = 253; this.splitContainer1.TabIndex = 1139; // @@ -270,7 +277,7 @@ namespace Work._29Tools.Forms.UserForms // splitContainer2.Panel2 // this.splitContainer2.Panel2.Controls.Add(this.splitContainer3); - this.splitContainer2.Size = new System.Drawing.Size(964, 529); + this.splitContainer2.Size = new System.Drawing.Size(1164, 529); this.splitContainer2.SplitterDistance = 86; this.splitContainer2.TabIndex = 1163; // @@ -281,6 +288,13 @@ namespace Work._29Tools.Forms.UserForms | System.Windows.Forms.AnchorStyles.Right))); this.ucGroupBoxEx1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.ucGroupBoxEx1.BorderStyle = Work.UserComponents.UcGroupBoxEx.GroupBoxBorderStyle.ROUND; + this.ucGroupBoxEx1.Controls.Add(this.rangeUsedAramt); + this.ucGroupBoxEx1.Controls.Add(this.label9); + this.ucGroupBoxEx1.Controls.Add(this.exportRecord); + this.ucGroupBoxEx1.Controls.Add(this.balanceArmt); + this.ucGroupBoxEx1.Controls.Add(this.label10); + this.ucGroupBoxEx1.Controls.Add(this.rechargeArmtTotal); + this.ucGroupBoxEx1.Controls.Add(this.label8); this.ucGroupBoxEx1.Controls.Add(this.label7); this.ucGroupBoxEx1.Controls.Add(this.txtOutOrderId); this.ucGroupBoxEx1.Controls.Add(this.label6); @@ -293,12 +307,57 @@ namespace Work._29Tools.Forms.UserForms this.ucGroupBoxEx1.Controls.Add(this.cmbType); this.ucGroupBoxEx1.Location = new System.Drawing.Point(-2, 2); this.ucGroupBoxEx1.Name = "ucGroupBoxEx1"; - this.ucGroupBoxEx1.Size = new System.Drawing.Size(966, 84); + this.ucGroupBoxEx1.Size = new System.Drawing.Size(1166, 84); this.ucGroupBoxEx1.TabIndex = 0; this.ucGroupBoxEx1.TabStop = false; this.ucGroupBoxEx1.Text = "查询条件"; this.ucGroupBoxEx1.Enter += new System.EventHandler(this.ucGroupBoxEx1_Enter); // + // exportRecord + // + this.exportRecord.AutoSize = true; + this.exportRecord.Location = new System.Drawing.Point(1093, 47); + this.exportRecord.Name = "exportRecord"; + this.exportRecord.Size = new System.Drawing.Size(56, 17); + this.exportRecord.TabIndex = 1171; + this.exportRecord.TabStop = true; + this.exportRecord.Text = "导出记录"; + this.exportRecord.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.exportRecord_LinkClicked); + // + // balanceArmt + // + this.balanceArmt.Location = new System.Drawing.Point(1020, 36); + this.balanceArmt.Name = "balanceArmt"; + this.balanceArmt.Size = new System.Drawing.Size(67, 17); + this.balanceArmt.TabIndex = 1167; + this.balanceArmt.Text = "1000.00"; + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point(959, 36); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(68, 17); + this.label10.TabIndex = 1166; + this.label10.Text = "可用余额:"; + // + // rechargeArmtTotal + // + this.rechargeArmtTotal.Location = new System.Drawing.Point(1020, 14); + this.rechargeArmtTotal.Name = "rechargeArmtTotal"; + this.rechargeArmtTotal.Size = new System.Drawing.Size(67, 17); + this.rechargeArmtTotal.TabIndex = 1165; + this.rechargeArmtTotal.Text = "10000.00"; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(959, 14); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(68, 17); + this.label8.TabIndex = 1164; + this.label8.Text = "充值总额:"; + // // label7 // this.label7.AutoSize = true; @@ -421,7 +480,7 @@ namespace Work._29Tools.Forms.UserForms // this.splitContainer3.Panel2.Controls.Add(this.statusBarUserControl1); this.splitContainer3.Panel2.Controls.Add(this.ucSplitPage1); - this.splitContainer3.Size = new System.Drawing.Size(964, 439); + this.splitContainer3.Size = new System.Drawing.Size(1164, 439); this.splitContainer3.SplitterDistance = 410; this.splitContainer3.TabIndex = 1163; // @@ -469,7 +528,7 @@ namespace Work._29Tools.Forms.UserForms this.dgvPayment.Name = "dgvPayment"; this.dgvPayment.ReadOnly = true; this.dgvPayment.RowTemplate.Height = 23; - this.dgvPayment.Size = new System.Drawing.Size(962, 406); + this.dgvPayment.Size = new System.Drawing.Size(1162, 406); this.dgvPayment.TabIndex = 1162; this.dgvPayment.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvPayment_CellContentClick); // @@ -548,7 +607,7 @@ namespace Work._29Tools.Forms.UserForms this.ucSplitPage1.CurrentPage = 1; this.ucSplitPage1.Dock = System.Windows.Forms.DockStyle.Right; this.ucSplitPage1.IsShowPageSize = true; - this.ucSplitPage1.Location = new System.Drawing.Point(550, 0); + this.ucSplitPage1.Location = new System.Drawing.Point(750, 0); this.ucSplitPage1.Margin = new System.Windows.Forms.Padding(0); this.ucSplitPage1.Name = "ucSplitPage1"; this.ucSplitPage1.PageSize = 50; @@ -558,11 +617,28 @@ namespace Work._29Tools.Forms.UserForms this.ucSplitPage1.PageChange += new System.Action(this.ucSplitPage1_PageChange); this.ucSplitPage1.Load += new System.EventHandler(this.ucSplitPage1_Load); // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(959, 59); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(68, 17); + this.label9.TabIndex = 1175; + this.label9.Text = "使用余额:"; + // + // rangeUsedAramt + // + this.rangeUsedAramt.Location = new System.Drawing.Point(1020, 59); + this.rangeUsedAramt.Name = "rangeUsedAramt"; + this.rangeUsedAramt.Size = new System.Drawing.Size(67, 17); + this.rangeUsedAramt.TabIndex = 1176; + this.rangeUsedAramt.Text = "1000.00"; + // // WXGetBalanceQrCodeForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(152)))), ((int)(((byte)(99)))), ((int)(((byte)(143))))); - this.ClientSize = new System.Drawing.Size(1225, 565); + this.ClientSize = new System.Drawing.Size(1425, 565); this.Controls.Add(this.panel1); this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.KeyPreview = true; @@ -635,5 +711,12 @@ namespace Work._29Tools.Forms.UserForms private System.Windows.Forms.Label label7; private System.Windows.Forms.TextBox txtOutOrderId; private UserControls.StatusBarUserControl statusBarUserControl1; - } + private System.Windows.Forms.Label rechargeArmtTotal; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label balanceArmt; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.LinkLabel exportRecord; + private System.Windows.Forms.Label rangeUsedAramt; + private System.Windows.Forms.Label label9; + } } \ No newline at end of file diff --git a/Work/_29Tools/Forms/UserForms/WXGetBalanceQrCodeForm.cs b/Work/_29Tools/Forms/UserForms/WXGetBalanceQrCodeForm.cs index 4652f03..f6f1d60 100644 --- a/Work/_29Tools/Forms/UserForms/WXGetBalanceQrCodeForm.cs +++ b/Work/_29Tools/Forms/UserForms/WXGetBalanceQrCodeForm.cs @@ -28,222 +28,264 @@ using Work.Extension; namespace Work._29Tools.Forms.UserForms { - public partial class WXGetBalanceQrCodeForm : BaseForms.BaseGeneralForm - { - // (拍单后)回调函数,更新拍单余额 - private Action updateBalanceAction = null; + public partial class WXGetBalanceQrCodeForm : BaseForms.BaseGeneralForm + { + // (拍单后)回调函数,更新拍单余额 + private Action updateBalanceAction = null; - public WXGetBalanceQrCodeForm(Action updateBalance = null) - { - InitializeComponent(); - updateBalanceAction = updateBalance; - } + public WXGetBalanceQrCodeForm(Action updateBalance = null) + { + InitializeComponent(); + updateBalanceAction = updateBalance; + } - public void refreshQrcode() - { - return; - Invoke(new Action(() => - { - pbLoading.Visible = true; - })); + public void refreshQrcode() + { + return; + Invoke(new Action(() => + { + pbLoading.Visible = true; + })); - var url = BaseClass.Build29WxObjString("user/get_top_up_qrcode"); - var data = UserLogin.GetSignaturex(); + var url = BaseClass.Build29WxObjString("user/get_top_up_qrcode"); + var data = UserLogin.GetSignaturex(); - var html = GetHtml.PostUtf8(url, data); - if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) - { - var msg = BaseRegex.GetStringJson(ref html, "msg"); - BaseMsgForm.ShowError(msg); - } - else - { - Invoke(new Action(() => - { - pbLoading.Visible = false; - var base64Str = BaseRegex.GetStringJson(ref html, "qrcode_base64"); - if (!string.IsNullOrEmpty(base64Str)) - pbQrcode.Image = Base64ChangeImgUrl.Base64ToImage(base64Str); - else - pbQrcode.Image = Properties.Resources.errpic; - })); - } - } + var html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + { + var msg = BaseRegex.GetStringJson(ref html, "msg"); + BaseMsgForm.ShowError(msg); + } + else + { + Invoke(new Action(() => + { + pbLoading.Visible = false; + var base64Str = BaseRegex.GetStringJson(ref html, "qrcode_base64"); + if (!string.IsNullOrEmpty(base64Str)) + pbQrcode.Image = Base64ChangeImgUrl.Base64ToImage(base64Str); + else + pbQrcode.Image = Properties.Resources.errpic; + })); + } + } - private void btnRefresh_Click(object sender, EventArgs e) - { - Task.Run(() => { refreshQrcode(); }); - } + private void btnRefresh_Click(object sender, EventArgs e) + { + Task.Run(() => { refreshQrcode(); }); + } - private async void WXGetTopUpQrCode_Load(object sender, EventArgs e) - { + private async void WXGetTopUpQrCode_Load(object sender, EventArgs e) + { #if DEBUG - if (File.Exists(System.Environment.CurrentDirectory + "\\choice.debug.tools")) - { - this.numTopUpAmount.Minimum = 0.01m; - this.numTopUpAmount.Value = 0.01m; - } + if (File.Exists(System.Environment.CurrentDirectory + "\\choice.debug.tools")) + { + this.numTopUpAmount.Minimum = 0.01m; + this.numTopUpAmount.Value = 0.01m; + } #endif - this.dgvPayment.AddSelectorColumn("colCheck"); - this.dtpTimeBegin.Value = DateTime.Now.Date.AddMonths(-3); - this.dtpTimeEnd.Value = DateTime.Now.Date.AddDays(1).AddSeconds(-1); + this.dgvPayment.AddSelectorColumn("colCheck"); + this.dtpTimeBegin.Value = DateTime.Now.Date.AddMonths(-3); + this.dtpTimeEnd.Value = DateTime.Now.Date.AddDays(1).AddSeconds(-1); - ucSplitPage1.cmbPageSize.Items.Remove("5000"); - ucSplitPage1.cmbPageSize.Items.Remove("2000"); - ucSplitPage1.cmbPageSize.Items.Remove("1000"); + ucSplitPage1.cmbPageSize.Items.Remove("5000"); + ucSplitPage1.cmbPageSize.Items.Remove("2000"); + ucSplitPage1.cmbPageSize.Items.Remove("1000"); - pictureBox2.Visible = true; - await Task.Run(() => { refreshQrcode(); }); - await Task.Run(() => { GetBalanceList(); }); - pictureBox2.Visible = false; - } + pictureBox2.Visible = true; + await Task.Run(() => { refreshQrcode(); }); + await Task.Run(() => { GetBalanceList(); }); + pictureBox2.Visible = false; + } - private void btnBalanceTopUp_Click(object sender, EventArgs e) - { - string url2 = "https://po.e57.cn/prod-api/api/oms-api/alipay/pay"; - var data = new JObject(); - data["userId"] = BaseClass.UserId; - data["userName"] = BaseClass.UserName; - data["nickName"] = BaseClass.NickName; - data["totalAmount"] = numTopUpAmount.Value; - data["type"] = 1; // type:1:快递余额,2:账户积分 - var dataStr2 = JsonHelper.SerializeObject(data); - var html2 = HttpResponseWXBLL.e57PostResponse(url2, dataStr2, ""); - //支付订单创建成功200<form name="punchout_form" method="post" action="https://openapi.alipay.com/gateway.do?charset=UTF-8&method=alipay.trade.page.pay&sign=Z7%2Bv3UQL3B9Q9nH1iNGimA9FL9XPcG9A2oyjTpLbyExJbw52tHEX1LXifNrdJLtBdSjAQaFNyc3qzKUn3J6algYUlcy9e5DMKIG1NPQGSn3FFoSiKM%2FfSKlx8Jbj3zC2JFQAvUoFVUnk89pen078rh2IL2XKNaD300VDq28WiAAE3fX%2FHdd5Tu%2F3yun4tD90KOXzVQ2PFrcQqwefo2Bm%2BQVFCGXM5zxzE%2FvfkHnCwGwlH%2FfLrdsKrQc3s%2B1Gt1NHlS3iyKEP%2F4F7dKB9Iq0GIsyPJu9RINv9XRlk404S60gDRHBHs3avWdMwjMRkoxIdoe%2BPrXX0zxYEEN9hAX5C%2Fw%3D%3D&return_url=https%3A%2F%2Fpo.e57.cn&notify_url=https%3A%2F%2Fpo.e57.cn%2Fprod-api%2Fapi%2Foms-api%2Falipay%2Fnotify&version=1.0&app_id=2021006172644180&sign_type=RSA2&timestamp=2026-07-20+11%3A59%3A55&alipay_sdk=alipay-sdk-java-4.40.909.ALL&format=JSON"> - //<input type="hidden" name="biz_content" value="{&quot;out_trade_no&quot;:&quot;8f6ece19baf14f7ca8b0b5d8d0c03b57&quot;,&quot;total_amount&quot;:&quot;0.01&quot;,&quot;subject&quot;:&quot;店统领余额充值&quot;,&quot;body&quot;:&quot;店统领余额充值&quot;,&quot;product_code&quot;:&quot;FAST_INSTANT_TRADE_PAY&quot;,&quot;timeout_express&quot;:&quot;15m&quot;}"> - //<input type="submit" value="立即支付" style="display:none" > - //</form> - //<script>document.forms[0].submit();</script> - if (html2.Contains("200") || html2.Contains("0")) - { - var rstData = BaseRegex.GetStringXml(ref html2, "data").ParseToString(); - rstData = HttpUtility.HtmlDecode(rstData); - //rstData = HttpUtility.HtmlDecode(rstData); + private void btnBalanceTopUp_Click(object sender, EventArgs e) + { + string url2 = "https://po.e57.cn/prod-api/api/oms-api/alipay/pay"; + var data = new JObject(); + data["userId"] = BaseClass.UserId; + data["userName"] = BaseClass.UserName; + data["nickName"] = BaseClass.NickName; + data["totalAmount"] = numTopUpAmount.Value; + data["type"] = 1; // type:1:快递余额,2:账户积分 + var dataStr2 = JsonHelper.SerializeObject(data); + var html2 = HttpResponseWXBLL.e57PostResponse(url2, dataStr2, ""); + //支付订单创建成功200<form name="punchout_form" method="post" action="https://openapi.alipay.com/gateway.do?charset=UTF-8&method=alipay.trade.page.pay&sign=Z7%2Bv3UQL3B9Q9nH1iNGimA9FL9XPcG9A2oyjTpLbyExJbw52tHEX1LXifNrdJLtBdSjAQaFNyc3qzKUn3J6algYUlcy9e5DMKIG1NPQGSn3FFoSiKM%2FfSKlx8Jbj3zC2JFQAvUoFVUnk89pen078rh2IL2XKNaD300VDq28WiAAE3fX%2FHdd5Tu%2F3yun4tD90KOXzVQ2PFrcQqwefo2Bm%2BQVFCGXM5zxzE%2FvfkHnCwGwlH%2FfLrdsKrQc3s%2B1Gt1NHlS3iyKEP%2F4F7dKB9Iq0GIsyPJu9RINv9XRlk404S60gDRHBHs3avWdMwjMRkoxIdoe%2BPrXX0zxYEEN9hAX5C%2Fw%3D%3D&return_url=https%3A%2F%2Fpo.e57.cn&notify_url=https%3A%2F%2Fpo.e57.cn%2Fprod-api%2Fapi%2Foms-api%2Falipay%2Fnotify&version=1.0&app_id=2021006172644180&sign_type=RSA2&timestamp=2026-07-20+11%3A59%3A55&alipay_sdk=alipay-sdk-java-4.40.909.ALL&format=JSON"> + //<input type="hidden" name="biz_content" value="{&quot;out_trade_no&quot;:&quot;8f6ece19baf14f7ca8b0b5d8d0c03b57&quot;,&quot;total_amount&quot;:&quot;0.01&quot;,&quot;subject&quot;:&quot;店统领余额充值&quot;,&quot;body&quot;:&quot;店统领余额充值&quot;,&quot;product_code&quot;:&quot;FAST_INSTANT_TRADE_PAY&quot;,&quot;timeout_express&quot;:&quot;15m&quot;}"> + //<input type="submit" value="立即支付" style="display:none" > + //</form> + //<script>document.forms[0].submit();</script> + if (html2.Contains("200") || html2.Contains("0")) + { + var rstData = BaseRegex.GetStringXml(ref html2, "data").ParseToString(); + rstData = HttpUtility.HtmlDecode(rstData); + //rstData = HttpUtility.HtmlDecode(rstData); - WXShopLoginForm loginForm = new WXShopLoginForm(new AllBase.Model.DBModel.ShopLoginInfo()); - loginForm.InitUrl = ""; - loginForm.InitHtml = rstData; - loginForm.openType = EnumOpenType.manage; - loginForm.ShowDialog(); - if (updateBalanceAction != null) - { - updateBalanceAction(); - } - } - } + WXShopLoginForm loginForm = new WXShopLoginForm(new AllBase.Model.DBModel.ShopLoginInfo()); + loginForm.InitUrl = ""; + loginForm.InitHtml = rstData; + loginForm.openType = EnumOpenType.manage; + loginForm.ShowDialog(); + if (updateBalanceAction != null) + { + updateBalanceAction(); + } + } + } - - public async void GetBalanceList() - { - int pageCount = 1; - int pageSize = 50; - Invoke(new Action(() => - { - this.dgvPayment.Rows.Clear(); - })); - var url3 = BaseClass.Build29WxObjString("user/get_user_balance"); - var data3 = UserLogin.GetSignaturex(); - Invoke(new Action(() => - { - data3 += "&user_name_in=" + BaseClass.UserName; - data3 += "&create_time_begin=" + dtpTimeBegin.Value.ToString("yyyy-MM-dd HH:mm:ss"); - data3 += "&create_time_end=" + dtpTimeEnd.Value.ToString("yyyy-MM-dd HH:mm:ss"); - if (cmbType.Text == "充值") - data3 += "&type_in=1,30"; - if (cmbType.Text == "管理员充值") - data3 += "&type_in=1"; - if (cmbType.Text == "支付宝充值") - data3 += "&type_in=30"; - if (cmbType.Text == "拍单扣除/作废返还") - data3 += "&type_in=20,23"; - if (cmbType.Text == "超重扣费") - data3 += "&type_in=24"; - if (!string.IsNullOrEmpty(txtOutOrderId.Text.Trim())) - data3 += "&order_id_in=" + txtOutOrderId.Text.Trim(); - if (!string.IsNullOrEmpty(txtShopOrderNo.Text.Trim())) - data3 += "&remark_fulltext=" + txtShopOrderNo.Text.Trim(); - data3 += "&page=" + ucSplitPage1.CurrentPage; - data3 += "&page_size=" + ucSplitPage1.PageSize; - pageSize = ucSplitPage1.PageSize; - })); - var html3 = GetHtml.PostUtf8(url3, data3); - if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200")) - html3 = GetHtml.PostUtf8(url3, data3); - if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200")) - { - BaseMsgForm.ShowError("查询失败:" + BaseRegex.GetStringJsonByRegs(ref html3, html3, "msg")); - return; - } - List paymentList = new List(); - paymentList = JsonHelper.DeserializeJsonToList(JsonHelper.JObjectParse(html3)["data"].ParseToString()); - foreach(var payment in paymentList) - { - Invoke(new Action(() => - { - var rowIndex = this.dgvPayment.Rows.Add( - false, - ((EnumOrderPaymentType)payment.type.ParseToInt()).ParseToString(), - payment.order_id, - payment.amount, - payment.balance, - payment.create_time.ToString("yyyy-MM-dd HH:mm:ss"), - payment.remark - ); - this.dgvPayment.Rows[rowIndex].Height = 60; - })); - } - int count = BaseRegex.GetIntJson(ref html3, "count"); - pageCount = Math.Ceiling(1.0 * count / pageSize).ParseToInt(); - pageCount = Math.Max(pageCount, 1); - ucSplitPage1.TotalPage = pageCount; + private List paymentList; + public async void GetBalanceList() + { + int pageCount = 1; + int pageSize = 50; + Invoke(new Action(() => + { + this.dgvPayment.Rows.Clear(); + })); + var url3 = BaseClass.Build29WxObjString("user/get_user_balance"); + var data3 = UserLogin.GetSignaturex(); + Invoke(new Action(() => + { + data3 += "&user_name_in=" + BaseClass.UserName; + data3 += "&create_time_begin=" + dtpTimeBegin.Value.ToString("yyyy-MM-dd HH:mm:ss"); + data3 += "&create_time_end=" + dtpTimeEnd.Value.ToString("yyyy-MM-dd HH:mm:ss"); + if (cmbType.Text == "充值") + data3 += "&type_in=1,30"; + if (cmbType.Text == "管理员充值") + data3 += "&type_in=1"; + if (cmbType.Text == "支付宝充值") + data3 += "&type_in=30"; + if (cmbType.Text == "拍单扣除/作废返还") + data3 += "&type_in=20,23"; + if (cmbType.Text == "超重扣费") + data3 += "&type_in=24"; + if (!string.IsNullOrEmpty(txtOutOrderId.Text.Trim())) + data3 += "&order_id_in=" + txtOutOrderId.Text.Trim(); + if (!string.IsNullOrEmpty(txtShopOrderNo.Text.Trim())) + data3 += "&remark_fulltext=" + txtShopOrderNo.Text.Trim(); + data3 += "&page=" + ucSplitPage1.CurrentPage; + data3 += "&page_size=" + ucSplitPage1.PageSize; + pageSize = ucSplitPage1.PageSize; + })); + var html3 = GetHtml.PostUtf8(url3, data3); + if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200")) + html3 = GetHtml.PostUtf8(url3, data3); + if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200")) + { + BaseMsgForm.ShowError("查询失败:" + BaseRegex.GetStringJsonByRegs(ref html3, html3, "msg")); + return; + } + paymentList = new List(); + paymentList = JsonHelper.DeserializeJsonToList(JsonHelper.JObjectParse(html3)["data"].ParseToString()); + foreach (var payment in paymentList) + { + Invoke(new Action(() => + { + var rowIndex = this.dgvPayment.Rows.Add( + false, + ((EnumOrderPaymentType)payment.type.ParseToInt()).ParseToString(), + payment.order_id, + payment.amount, + payment.balance, + payment.create_time.ToString("yyyy-MM-dd HH:mm:ss"), + payment.remark + ); + this.dgvPayment.Rows[rowIndex].Height = 60; + })); + } + int count = BaseRegex.GetIntJson(ref html3, "count"); + pageCount = Math.Ceiling(1.0 * count / pageSize).ParseToInt(); + pageCount = Math.Max(pageCount, 1); + ucSplitPage1.TotalPage = pageCount; #if DEBUG - Invoke(new Action(() => { statusBarUserControl1.lblTaskStatus.Text = BaseRegex.GetDecimalJson(ref html3, "seconds") + "秒"; })); + Invoke(new Action(() => { statusBarUserControl1.lblTaskStatus.Text = BaseRegex.GetDecimalJson(ref html3, "seconds") + "秒"; })); #endif - } + Invoke(new Action(() => + { + rechargeArmtTotal.Text = BaseClass.RechargeAmountTotal.ToString("N2"); + balanceArmt.Text = BaseClass.Balance.ToString("N2"); + rangeUsedAramt.Text = paymentList.Sum(a => a.amount).ToString("N2"); + })); + } - private async void btnSearch_Click(object sender, EventArgs e) - { - if(this.ucSplitPage1.CurrentPage!=1) - { this.ucSplitPage1.CurrentPage = 1; } + private async void btnSearch_Click(object sender, EventArgs e) + { + if (this.ucSplitPage1.CurrentPage != 1) + { this.ucSplitPage1.CurrentPage = 1; } - pictureBox2.Visible = true; - await Task.Run(() => { GetBalanceList(); }); - pictureBox2.Visible = false; - } + pictureBox2.Visible = true; + await Task.Run(() => { GetBalanceList(); }); + pictureBox2.Visible = false; + } - private void ucSplitPage1_Load(object sender, EventArgs e) - { + private void ucSplitPage1_Load(object sender, EventArgs e) + { - } + } - private async void ucSplitPage1_PageChange(object obj) - { - pictureBox2.Visible = true; - await Task.Run(() => { GetBalanceList(); }); - pictureBox2.Visible = false; - } + private async void ucSplitPage1_PageChange(object obj) + { + pictureBox2.Visible = true; + await Task.Run(() => { GetBalanceList(); }); + pictureBox2.Visible = false; + } - private void ucGroupBoxEx1_Enter(object sender, EventArgs e) - { - } + private void ucGroupBoxEx1_Enter(object sender, EventArgs e) + { + } - private void dgvPayment_CellContentClick(object sender, DataGridViewCellEventArgs e) - { - if (e.ColumnIndex < 0 || e.RowIndex < 0) - return; - var row = dgvPayment.Rows[e.RowIndex]; - string headerText = dgvPayment.Columns[e.ColumnIndex].HeaderText; - string columnName = dgvPayment.Columns[e.ColumnIndex].Name; - switch (headerText) - { - case "": - dgvPayment.Rows[e.RowIndex].Cells["colCheck"].Value = !(bool)dgvPayment.Rows[e.RowIndex].Cells["colCheck"].Value; - break; - default: - break; - } - } - } + private void dgvPayment_CellContentClick(object sender, DataGridViewCellEventArgs e) + { + if (e.ColumnIndex < 0 || e.RowIndex < 0) + return; + var row = dgvPayment.Rows[e.RowIndex]; + string headerText = dgvPayment.Columns[e.ColumnIndex].HeaderText; + string columnName = dgvPayment.Columns[e.ColumnIndex].Name; + switch (headerText) + { + case "": + dgvPayment.Rows[e.RowIndex].Cells["colCheck"].Value = !(bool)dgvPayment.Rows[e.RowIndex].Cells["colCheck"].Value; + break; + default: + break; + } + } + + private void exportRecord_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + if (paymentList != null) + { + using (SaveFileDialog saveFileDialog = new SaveFileDialog()) + { + saveFileDialog.Filter = "CSV 文件 (*.csv)|*.csv|Excel 文件 (*.xlsx)|*.xlsx"; + saveFileDialog.FilterIndex = 1; + saveFileDialog.FileName = $"消费记录_{dtpTimeBegin.Value:yyyyMMdd}_{dtpTimeEnd.Value:yyyyMMdd}.csv"; + saveFileDialog.RestoreDirectory = true; + if (saveFileDialog.ShowDialog() == DialogResult.OK) + { + StringBuilder sb = new StringBuilder(); + sb.AppendLine("类型,订单ID,金额,余额,创建时间,备注"); + + foreach (var item in paymentList) + { + //var rowIndex = this.dgvPayment.Rows.Add( + // false, + // ((EnumOrderPaymentType)payment.type.ParseToInt()).ParseToString(), + // item.order_id, + // item.amount, + // item.balance, + // item.create_time.ToString("yyyy-MM-dd HH:mm:ss"), + // item.remark + //); + sb.AppendLine($"{item.type.ParseToInt()},{item.order_id},{item.amount},{item.balance},{item.create_time.ToString("yyyy-MM-dd HH:mm:ss")},{item.remark}"); + } + File.WriteAllText(saveFileDialog.FileName, sb.ToString(), Encoding.UTF8); + MessageBox.Show("导出成功"); + } + } + + } + } + } } diff --git a/Work/_29Tools/Forms/UserForms/WXGetBalanceQrCodeForm.resx b/Work/_29Tools/Forms/UserForms/WXGetBalanceQrCodeForm.resx index 0570d79..e75b772 100644 --- a/Work/_29Tools/Forms/UserForms/WXGetBalanceQrCodeForm.resx +++ b/Work/_29Tools/Forms/UserForms/WXGetBalanceQrCodeForm.resx @@ -117,6 +117,15 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 289, 17 + + + 130, 17 + + + 17, 17 + True