diff --git a/AllBase/AllBase.csproj b/AllBase/AllBase.csproj index 3f497b8..bb2a46d 100644 --- a/AllBase/AllBase.csproj +++ b/AllBase/AllBase.csproj @@ -239,6 +239,7 @@ + @@ -314,6 +315,7 @@ + diff --git a/AllBase/Model/Result/Result.cs b/AllBase/Model/Result/Result.cs new file mode 100644 index 0000000..4614db4 --- /dev/null +++ b/AllBase/Model/Result/Result.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AllBase.Model.Result +{ + public class Result + { + public Result() + { + + } + public Result(int code, string msg) + { + Code = code; + Msg = msg; + } + + public int Code { get; set; } + public string Msg { get; set; } + } + public class Result : Result + { + public TData Data { get; set; } + } + public class PageResult : Result> + { + public int Page { get; set; } + public int Total { get; set; } + } + +} diff --git a/AllBase/Model/Result/WXResult/WXOemWithdrawalInfo.cs b/AllBase/Model/Result/WXResult/WXOemWithdrawalInfo.cs new file mode 100644 index 0000000..1777e90 --- /dev/null +++ b/AllBase/Model/Result/WXResult/WXOemWithdrawalInfo.cs @@ -0,0 +1,88 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AllBase.Model.Result.WXResult +{ + public enum OemWithdrawalStatus + { + Pending = 0, //待审核 + Approved = 1, //审核通过 + Rejected = 2, //审核拒绝 + Paying = 3, //打款中 + Paid = 4, //已打款 + PayFailed = 5, //打款失败 + Cancelled = 6, //已取消 + } + public class WXOemWithdrawalInfo + { + /// 主键 + /// 提现单号(业务唯一号) + public string withdrawal_no { get; set; } + /// 关联oem表id + public string oem_id { get; set; } + /// 贴牌编号(oem.oem_id) + /// 贴牌名称 + public string oem_name { get; set; } + /// 发起提现的用户/商户ID + public string apply_user_name { get; set; } + + /// 申请提现金额(分) + public long amount { get; set; } + /// 手续费(分) + public long fee { get; set; } + /// 实际到账金额(分) = amount - fee + public long actual_amount { get; set; } + /// 提现前余额快照(分) + public long balance_before { get; set; } + /// 提现后余额快照(分) + public long balance_after { get; set; } + + /// 提现方式:1银行卡 2支付宝 3微信 4其他 + public int withdrawal_type { get; set; } + /// 提现方式名称 + public string withdrawal_type_string { get; set; } + + /// 收款人姓名 + public string account_name { get; set; } + /// 收款账号(卡号/账号) + public string account_no { get; set; } + /// 开户行 + public string bank_name { get; set; } + /// 开户支行 + public string bank_branch { get; set; } + + /// 状态:0待审核 1审核通过 2审核拒绝 3打款中 4已打款 5打款失败 6已取消 + public int status { get; set; } + /// 状态名称 + public string status_string { get; set; } + + /// 审核人ID + public string audit_by { get; set; } + /// 审核时间 + public DateTime? audit_time { get; set; } + /// 审核备注/拒绝原因 + public string audit_remark { get; set; } + + /// 打款成功时间 + public DateTime? pay_time { get; set; } + /// 打款渠道/支付流水来源 + public string pay_channel { get; set; } + /// 第三方打款流水号 + public string pay_trade_no { get; set; } + /// 打款失败原因 + public string fail_reason { get; set; } + + /// 备注 + public string remark { get; set; } + /// 发起提现时的客户端IP + public string client_ip { get; set; } + + /// 创建时间 + public DateTime created_at { get; set; } + /// 更新时间 + public DateTime updated_at { get; set; } + } +} diff --git a/TEMUKJD CEFv138.sln b/TEMUKJD CEFv138.sln index a2e406b..adef3e5 100644 --- a/TEMUKJD CEFv138.sln +++ b/TEMUKJD CEFv138.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 18 -VisualStudioVersion = 18.8.12023.21 stable +VisualStudioVersion = 18.8.12023.21 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AllBase", "AllBase\AllBase.csproj", "{6461D807-B1C8-45F0-B388-E0CA1A418DE0}" EndProject @@ -49,8 +49,8 @@ Global {38E74D4C-2D8D-47D2-8A23-417C3C57ADE5}.Release|x86.Build.0 = Release|x86 {B8EE868D-56CD-4647-BBA5-04BEF24FF9F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B8EE868D-56CD-4647-BBA5-04BEF24FF9F6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B8EE868D-56CD-4647-BBA5-04BEF24FF9F6}.Debug|x64.ActiveCfg = Debug|x64 - {B8EE868D-56CD-4647-BBA5-04BEF24FF9F6}.Debug|x64.Build.0 = Debug|x64 + {B8EE868D-56CD-4647-BBA5-04BEF24FF9F6}.Debug|x64.ActiveCfg = Debug|Any CPU + {B8EE868D-56CD-4647-BBA5-04BEF24FF9F6}.Debug|x64.Build.0 = Debug|Any CPU {B8EE868D-56CD-4647-BBA5-04BEF24FF9F6}.Debug|x86.ActiveCfg = Debug|Any CPU {B8EE868D-56CD-4647-BBA5-04BEF24FF9F6}.Debug|x86.Build.0 = Debug|Any CPU {B8EE868D-56CD-4647-BBA5-04BEF24FF9F6}.Release|Any CPU.ActiveCfg = Release|Any CPU diff --git a/TEMUKJD/KJD.csproj b/TEMUKJD/KJD.csproj index e4c1f7b..44ee7d5 100644 --- a/TEMUKJD/KJD.csproj +++ b/TEMUKJD/KJD.csproj @@ -67,4 +67,17 @@ + + + True + True + Resources.resx + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + \ No newline at end of file diff --git a/TEMUKJD/KJD.csproj.user b/TEMUKJD/KJD.csproj.user index e041bfa..08513e6 100644 --- a/TEMUKJD/KJD.csproj.user +++ b/TEMUKJD/KJD.csproj.user @@ -48,6 +48,9 @@ Form + + Form + Form @@ -168,6 +171,9 @@ Form + + Form + Form diff --git a/TEMUKJD/WXForms/AdminForms/WXAdminForm.Designer.cs b/TEMUKJD/WXForms/AdminForms/WXAdminForm.Designer.cs index ed5f3a1..c026f7f 100644 --- a/TEMUKJD/WXForms/AdminForms/WXAdminForm.Designer.cs +++ b/TEMUKJD/WXForms/AdminForms/WXAdminForm.Designer.cs @@ -28,24 +28,25 @@ /// private void InitializeComponent() { - System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("超级店铺管理"); - System.Windows.Forms.TreeNode treeNode2 = new System.Windows.Forms.TreeNode("超级用户管理"); - System.Windows.Forms.TreeNode treeNode3 = new System.Windows.Forms.TreeNode("OEM贴牌管理"); - System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("产品数据库"); - System.Windows.Forms.TreeNode treeNode5 = new System.Windows.Forms.TreeNode("设置禁售"); - System.Windows.Forms.TreeNode treeNode6 = new System.Windows.Forms.TreeNode("厂家商品采集"); - System.Windows.Forms.TreeNode treeNode7 = new System.Windows.Forms.TreeNode("Sku采集回传"); - System.Windows.Forms.TreeNode treeNode8 = new System.Windows.Forms.TreeNode("1688厂家采集"); - System.Windows.Forms.TreeNode treeNode9 = new System.Windows.Forms.TreeNode("随机厂商商品"); - System.Windows.Forms.TreeNode treeNode10 = new System.Windows.Forms.TreeNode("地址管理"); - System.Windows.Forms.TreeNode treeNode11 = new System.Windows.Forms.TreeNode("带货助手"); - System.Windows.Forms.TreeNode treeNode12 = new System.Windows.Forms.TreeNode("图片工具"); - System.Windows.Forms.TreeNode treeNode13 = new System.Windows.Forms.TreeNode("资质图管理"); - System.Windows.Forms.TreeNode treeNode14 = new System.Windows.Forms.TreeNode("运单管理"); - System.Windows.Forms.TreeNode treeNode15 = new System.Windows.Forms.TreeNode("充值二维码"); - System.Windows.Forms.TreeNode treeNode16 = new System.Windows.Forms.TreeNode("快递费用明细"); - System.Windows.Forms.TreeNode treeNode17 = new System.Windows.Forms.TreeNode("中转订单管理"); - System.Windows.Forms.TreeNode treeNode18 = new System.Windows.Forms.TreeNode("超级权限管理", new System.Windows.Forms.TreeNode[] { + System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("超级店铺管理"); + System.Windows.Forms.TreeNode treeNode2 = new System.Windows.Forms.TreeNode("超级用户管理"); + System.Windows.Forms.TreeNode treeNode3 = new System.Windows.Forms.TreeNode("OEM贴牌管理"); + System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("产品数据库"); + System.Windows.Forms.TreeNode treeNode5 = new System.Windows.Forms.TreeNode("设置禁售"); + System.Windows.Forms.TreeNode treeNode6 = new System.Windows.Forms.TreeNode("厂家商品采集"); + System.Windows.Forms.TreeNode treeNode7 = new System.Windows.Forms.TreeNode("Sku采集回传"); + System.Windows.Forms.TreeNode treeNode8 = new System.Windows.Forms.TreeNode("1688厂家采集"); + System.Windows.Forms.TreeNode treeNode9 = new System.Windows.Forms.TreeNode("随机厂商商品"); + System.Windows.Forms.TreeNode treeNode10 = new System.Windows.Forms.TreeNode("地址管理"); + System.Windows.Forms.TreeNode treeNode11 = new System.Windows.Forms.TreeNode("带货助手"); + System.Windows.Forms.TreeNode treeNode12 = new System.Windows.Forms.TreeNode("图片工具"); + System.Windows.Forms.TreeNode treeNode13 = new System.Windows.Forms.TreeNode("资质图管理"); + System.Windows.Forms.TreeNode treeNode14 = new System.Windows.Forms.TreeNode("运单管理"); + System.Windows.Forms.TreeNode treeNode15 = new System.Windows.Forms.TreeNode("充值二维码"); + System.Windows.Forms.TreeNode treeNode16 = new System.Windows.Forms.TreeNode("快递费用明细"); + System.Windows.Forms.TreeNode treeNode17 = new System.Windows.Forms.TreeNode("中转订单管理"); + System.Windows.Forms.TreeNode treeNode18 = new System.Windows.Forms.TreeNode("代理提现记录"); + System.Windows.Forms.TreeNode treeNode19 = new System.Windows.Forms.TreeNode("超级权限管理", new System.Windows.Forms.TreeNode[] { treeNode1, treeNode2, treeNode3, @@ -62,158 +63,161 @@ treeNode14, treeNode15, treeNode16, - treeNode17}); - this.panel1 = new System.Windows.Forms.Panel(); - this.panel3 = new System.Windows.Forms.Panel(); - this.panel2 = new System.Windows.Forms.Panel(); - this.lblName = new System.Windows.Forms.Label(); - this.splitContainer1 = new System.Windows.Forms.SplitContainer(); - this.tv = new TemuKJD.UserComponent.UcTreeView(); - this.panel1.SuspendLayout(); - this.panel2.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); - this.splitContainer1.Panel1.SuspendLayout(); - this.splitContainer1.Panel2.SuspendLayout(); - this.splitContainer1.SuspendLayout(); - this.SuspendLayout(); - // - // panel1 - // - this.panel1.BackColor = System.Drawing.Color.White; - this.panel1.Controls.Add(this.panel3); - this.panel1.Controls.Add(this.panel2); - this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel1.Location = new System.Drawing.Point(0, 0); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(792, 572); - this.panel1.TabIndex = 2; - // - // panel3 - // - this.panel3.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel3.Location = new System.Drawing.Point(0, 28); - this.panel3.Name = "panel3"; - this.panel3.Size = new System.Drawing.Size(792, 544); - this.panel3.TabIndex = 1; - // - // panel2 - // - this.panel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(244)))), ((int)(((byte)(244)))), ((int)(((byte)(244))))); - this.panel2.Controls.Add(this.lblName); - this.panel2.Dock = System.Windows.Forms.DockStyle.Top; - this.panel2.Location = new System.Drawing.Point(0, 0); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(792, 28); - this.panel2.TabIndex = 0; - // - // lblName - // - this.lblName.AutoSize = true; - this.lblName.Location = new System.Drawing.Point(5, 6); - this.lblName.Name = "lblName"; - this.lblName.Size = new System.Drawing.Size(57, 17); - this.lblName.TabIndex = 0; - this.lblName.Text = "lblName"; - // - // splitContainer1 - // - this.splitContainer1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1; - this.splitContainer1.Location = new System.Drawing.Point(0, 0); - this.splitContainer1.Name = "splitContainer1"; - // - // splitContainer1.Panel1 - // - this.splitContainer1.Panel1.Controls.Add(this.tv); - // - // splitContainer1.Panel2 - // - this.splitContainer1.Panel2.Controls.Add(this.panel1); - this.splitContainer1.Size = new System.Drawing.Size(933, 572); - this.splitContainer1.SplitterDistance = 140; - this.splitContainer1.SplitterWidth = 1; - this.splitContainer1.TabIndex = 3; - // - // tv - // - this.tv.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(251)))), ((int)(((byte)(251)))), ((int)(((byte)(251))))); - this.tv.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.tv.ChildNodeSelectedBgColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.tv.Cursor = System.Windows.Forms.Cursors.Hand; - this.tv.Dock = System.Windows.Forms.DockStyle.Fill; - this.tv.DrawMode = System.Windows.Forms.TreeViewDrawMode.OwnerDrawAll; - this.tv.ExpandButtonColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); - this.tv.FullRowSelect = true; - this.tv.GroupBgColor = System.Drawing.Color.FromArgb(((int)(((byte)(249)))), ((int)(((byte)(249)))), ((int)(((byte)(249))))); - this.tv.GroupFont = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.tv.GroupTitleColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.tv.HideCollapsedGroup = false; - this.tv.ItemHeight = 32; - this.tv.Location = new System.Drawing.Point(0, 0); - this.tv.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); - this.tv.Name = "tv"; - treeNode1.Name = "超级店铺管理"; - treeNode1.Text = "超级店铺管理"; - treeNode2.Name = "超级用户管理"; - treeNode2.Text = "超级用户管理"; - treeNode3.Name = "OEM贴牌管理"; - treeNode3.Text = "OEM贴牌管理"; - treeNode4.Name = "产品数据库"; - treeNode4.Text = "产品数据库"; - treeNode5.Name = "设置禁售"; - treeNode5.Text = "设置禁售"; - treeNode6.Name = "厂家商品采集"; - treeNode6.Text = "厂家商品采集"; - treeNode7.Name = "Sku采集回传"; - treeNode7.Text = "Sku采集回传"; - treeNode8.Name = "1688厂家采集"; - treeNode8.Text = "1688厂家采集"; - treeNode9.Name = "随机厂商商品"; - treeNode9.Text = "随机厂商商品"; - treeNode10.Name = "地址管理"; - treeNode10.Text = "地址管理"; - treeNode11.Name = "带货助手"; - treeNode11.Text = "带货助手"; - treeNode12.Name = "图片工具"; - treeNode12.Text = "图片工具"; - treeNode13.Name = "资质图管理"; - treeNode13.Text = "资质图管理"; - treeNode14.Name = "运单管理"; - treeNode14.Text = "运单管理"; - treeNode15.Name = "充值二维码"; - treeNode15.Text = "充值二维码"; - treeNode16.Name = "快递费用明细"; - treeNode16.Text = "快递费用明细"; - treeNode17.Name = "中转订单管理"; - treeNode17.Text = "中转订单管理"; - treeNode18.Name = "超级权限管理"; - treeNode18.Text = "超级权限管理"; - this.tv.Nodes.AddRange(new System.Windows.Forms.TreeNode[] { + treeNode17, treeNode18}); - this.tv.OverForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(235)))), ((int)(((byte)(235))))); - this.tv.Size = new System.Drawing.Size(140, 572); - this.tv.TabIndex = 1; - this.tv.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.tv_AfterSelect); - // - // WXAdminForm - // - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; - this.ClientSize = new System.Drawing.Size(933, 572); - this.Controls.Add(this.splitContainer1); - this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); - this.Name = "WXAdminForm"; - this.Text = "AdminForm"; - this.Load += new System.EventHandler(this.ShopForm_Load); - this.panel1.ResumeLayout(false); - this.panel2.ResumeLayout(false); - this.panel2.PerformLayout(); - this.splitContainer1.Panel1.ResumeLayout(false); - this.splitContainer1.Panel2.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); - this.splitContainer1.ResumeLayout(false); - this.ResumeLayout(false); + this.panel1 = new System.Windows.Forms.Panel(); + this.panel3 = new System.Windows.Forms.Panel(); + this.panel2 = new System.Windows.Forms.Panel(); + this.lblName = new System.Windows.Forms.Label(); + this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.tv = new TemuKJD.UserComponent.UcTreeView(); + this.panel1.SuspendLayout(); + this.panel2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); + this.splitContainer1.Panel1.SuspendLayout(); + this.splitContainer1.Panel2.SuspendLayout(); + this.splitContainer1.SuspendLayout(); + this.SuspendLayout(); + // + // panel1 + // + this.panel1.BackColor = System.Drawing.Color.White; + this.panel1.Controls.Add(this.panel3); + this.panel1.Controls.Add(this.panel2); + this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel1.Location = new System.Drawing.Point(0, 0); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(792, 572); + this.panel1.TabIndex = 2; + // + // panel3 + // + this.panel3.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel3.Location = new System.Drawing.Point(0, 28); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(792, 544); + this.panel3.TabIndex = 1; + // + // panel2 + // + this.panel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(244)))), ((int)(((byte)(244)))), ((int)(((byte)(244))))); + this.panel2.Controls.Add(this.lblName); + this.panel2.Dock = System.Windows.Forms.DockStyle.Top; + this.panel2.Location = new System.Drawing.Point(0, 0); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(792, 28); + this.panel2.TabIndex = 0; + // + // lblName + // + this.lblName.AutoSize = true; + this.lblName.Location = new System.Drawing.Point(5, 6); + this.lblName.Name = "lblName"; + this.lblName.Size = new System.Drawing.Size(57, 17); + this.lblName.TabIndex = 0; + this.lblName.Text = "lblName"; + // + // splitContainer1 + // + this.splitContainer1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1; + this.splitContainer1.Location = new System.Drawing.Point(0, 0); + this.splitContainer1.Name = "splitContainer1"; + // + // splitContainer1.Panel1 + // + this.splitContainer1.Panel1.Controls.Add(this.tv); + // + // splitContainer1.Panel2 + // + this.splitContainer1.Panel2.Controls.Add(this.panel1); + this.splitContainer1.Size = new System.Drawing.Size(933, 572); + this.splitContainer1.SplitterDistance = 140; + this.splitContainer1.SplitterWidth = 1; + this.splitContainer1.TabIndex = 3; + // + // tv + // + this.tv.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(251)))), ((int)(((byte)(251)))), ((int)(((byte)(251))))); + this.tv.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.tv.ChildNodeSelectedBgColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.tv.Cursor = System.Windows.Forms.Cursors.Hand; + this.tv.Dock = System.Windows.Forms.DockStyle.Fill; + this.tv.DrawMode = System.Windows.Forms.TreeViewDrawMode.OwnerDrawAll; + this.tv.ExpandButtonColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.tv.FullRowSelect = true; + this.tv.GroupBgColor = System.Drawing.Color.FromArgb(((int)(((byte)(249)))), ((int)(((byte)(249)))), ((int)(((byte)(249))))); + this.tv.GroupFont = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.tv.GroupTitleColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.tv.HideCollapsedGroup = false; + this.tv.ItemHeight = 32; + this.tv.Location = new System.Drawing.Point(0, 0); + this.tv.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.tv.Name = "tv"; + treeNode1.Name = "超级店铺管理"; + treeNode1.Text = "超级店铺管理"; + treeNode2.Name = "超级用户管理"; + treeNode2.Text = "超级用户管理"; + treeNode3.Name = "OEM贴牌管理"; + treeNode3.Text = "OEM贴牌管理"; + treeNode4.Name = "产品数据库"; + treeNode4.Text = "产品数据库"; + treeNode5.Name = "设置禁售"; + treeNode5.Text = "设置禁售"; + treeNode6.Name = "厂家商品采集"; + treeNode6.Text = "厂家商品采集"; + treeNode7.Name = "Sku采集回传"; + treeNode7.Text = "Sku采集回传"; + treeNode8.Name = "1688厂家采集"; + treeNode8.Text = "1688厂家采集"; + treeNode9.Name = "随机厂商商品"; + treeNode9.Text = "随机厂商商品"; + treeNode10.Name = "地址管理"; + treeNode10.Text = "地址管理"; + treeNode11.Name = "带货助手"; + treeNode11.Text = "带货助手"; + treeNode12.Name = "图片工具"; + treeNode12.Text = "图片工具"; + treeNode13.Name = "资质图管理"; + treeNode13.Text = "资质图管理"; + treeNode14.Name = "运单管理"; + treeNode14.Text = "运单管理"; + treeNode15.Name = "充值二维码"; + treeNode15.Text = "充值二维码"; + treeNode16.Name = "快递费用明细"; + treeNode16.Text = "快递费用明细"; + treeNode17.Name = "中转订单管理"; + treeNode17.Text = "中转订单管理"; + treeNode18.Name = "代理提现记录"; + treeNode18.Text = "代理提现记录"; + treeNode19.Name = "超级权限管理"; + treeNode19.Text = "超级权限管理"; + this.tv.Nodes.AddRange(new System.Windows.Forms.TreeNode[] { + treeNode19}); + this.tv.OverForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(235)))), ((int)(((byte)(235))))); + this.tv.Size = new System.Drawing.Size(140, 572); + this.tv.TabIndex = 1; + this.tv.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.tv_AfterSelect); + // + // WXAdminForm + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(933, 572); + this.Controls.Add(this.splitContainer1); + this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.Name = "WXAdminForm"; + this.Text = "AdminForm"; + this.Load += new System.EventHandler(this.ShopForm_Load); + this.panel1.ResumeLayout(false); + this.panel2.ResumeLayout(false); + this.panel2.PerformLayout(); + this.splitContainer1.Panel1.ResumeLayout(false); + this.splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); + this.splitContainer1.ResumeLayout(false); + this.ResumeLayout(false); } diff --git a/TEMUKJD/WXForms/AdminForms/WXAdminForm.cs b/TEMUKJD/WXForms/AdminForms/WXAdminForm.cs index 0c8949f..e3ebdb0 100644 --- a/TEMUKJD/WXForms/AdminForms/WXAdminForm.cs +++ b/TEMUKJD/WXForms/AdminForms/WXAdminForm.cs @@ -37,8 +37,9 @@ namespace TemuKJD.WXForms.AdminForms public Lazy adminSetTopUpQrCodeForm = new Lazy(); public Lazy wxAdminTransitWarehouseManage = new Lazy(); public Lazy wxAdminAccountBalanceForm = new Lazy(); + public Lazy wxAdminOemWithdrawalForm = new Lazy(); - public WXAdminForm() + public WXAdminForm() { InitializeComponent(); @@ -142,6 +143,9 @@ namespace TemuKJD.WXForms.AdminForms case "中转订单管理": SetForm(wxAdminTransitWarehouseManage.Value); break; + case "代理提现记录": + SetForm(wxAdminOemWithdrawalForm.Value); + break; } //})); //}).Start(); diff --git a/TEMUKJD/WXForms/AdminForms/WXAdminOemWithdrawal.Designer.cs b/TEMUKJD/WXForms/AdminForms/WXAdminOemWithdrawal.Designer.cs new file mode 100644 index 0000000..738fed8 --- /dev/null +++ b/TEMUKJD/WXForms/AdminForms/WXAdminOemWithdrawal.Designer.cs @@ -0,0 +1,551 @@ + +namespace TemuKJD.WXForms.AdminForms +{ + partial class WXAdminOemWithdrawal + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WXAdminOemWithdrawal)); + this.panel3 = new System.Windows.Forms.Panel(); + this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); + this.panel4 = new System.Windows.Forms.Panel(); + this.btnSearch = new DevComponents.DotNetBar.PanelEx(); + this.labelWithdrawalNo = new System.Windows.Forms.Label(); + this.txtWithdrawalNo = new System.Windows.Forms.TextBox(); + this.labelOem = new System.Windows.Forms.Label(); + this.txtOemIds = new System.Windows.Forms.TextBox(); + this.labelStatus = new System.Windows.Forms.Label(); + this.cmbStatus = new System.Windows.Forms.ComboBox(); + this.labelTime = new System.Windows.Forms.Label(); + this.dtpTimeBegin = new System.Windows.Forms.DateTimePicker(); + this.labelTo = new System.Windows.Forms.Label(); + this.dtpTimeEnd = new System.Windows.Forms.DateTimePicker(); + this.btnEmpty = new DevComponents.DotNetBar.PanelEx(); + this.splitContainer2 = new System.Windows.Forms.SplitContainer(); + this.pbLoading = new System.Windows.Forms.PictureBox(); + this.dgvExpress = new TemuKJD.UserComponent.DataGridViewEx(); + this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.Column10 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column6 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column5 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column7 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column8 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column9 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column11 = new System.Windows.Forms.DataGridViewLinkColumn(); + this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage(); + this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); + this.panel3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); + this.splitContainer1.Panel1.SuspendLayout(); + this.splitContainer1.Panel2.SuspendLayout(); + this.splitContainer1.SuspendLayout(); + this.tableLayoutPanel2.SuspendLayout(); + this.panel4.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit(); + this.splitContainer2.Panel1.SuspendLayout(); + this.splitContainer2.Panel2.SuspendLayout(); + this.splitContainer2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvExpress)).BeginInit(); + this.SuspendLayout(); + // + // panel3 + // + this.panel3.BackColor = System.Drawing.Color.White; + this.panel3.Controls.Add(this.splitContainer1); + this.panel3.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel3.Location = new System.Drawing.Point(1, 33); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(1208, 589); + this.panel3.TabIndex = 36; + // + // splitContainer1 + // + this.splitContainer1.BackColor = System.Drawing.Color.White; + this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1; + this.splitContainer1.Location = new System.Drawing.Point(0, 0); + this.splitContainer1.Name = "splitContainer1"; + this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // splitContainer1.Panel1 + // + this.splitContainer1.Panel1.Controls.Add(this.tableLayoutPanel2); + // + // splitContainer1.Panel2 + // + this.splitContainer1.Panel2.Controls.Add(this.splitContainer2); + this.splitContainer1.Panel2.Margin = new System.Windows.Forms.Padding(4); + this.splitContainer1.Size = new System.Drawing.Size(1208, 589); + this.splitContainer1.SplitterDistance = 80; + this.splitContainer1.TabIndex = 34; + // + // tableLayoutPanel2 + // + this.tableLayoutPanel2.ColumnCount = 1; + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel2.Controls.Add(this.panel4, 0, 0); + this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel2.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel2.Name = "tableLayoutPanel2"; + this.tableLayoutPanel2.RowCount = 1; + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel2.Size = new System.Drawing.Size(1208, 80); + this.tableLayoutPanel2.TabIndex = 37; + // + // panel4 + // + this.panel4.Controls.Add(this.btnSearch); + this.panel4.Controls.Add(this.labelWithdrawalNo); + this.panel4.Controls.Add(this.txtWithdrawalNo); + this.panel4.Controls.Add(this.labelOem); + this.panel4.Controls.Add(this.txtOemIds); + this.panel4.Controls.Add(this.labelStatus); + this.panel4.Controls.Add(this.cmbStatus); + this.panel4.Controls.Add(this.labelTime); + this.panel4.Controls.Add(this.dtpTimeBegin); + this.panel4.Controls.Add(this.labelTo); + this.panel4.Controls.Add(this.dtpTimeEnd); + this.panel4.Controls.Add(this.btnEmpty); + this.panel4.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel4.Location = new System.Drawing.Point(3, 3); + this.panel4.Name = "panel4"; + this.panel4.Size = new System.Drawing.Size(1202, 74); + this.panel4.TabIndex = 1; + // + // btnSearch + // + this.btnSearch.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnSearch.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnSearch.DisabledBackColor = System.Drawing.Color.Empty; + this.btnSearch.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnSearch.Location = new System.Drawing.Point(985, 19); + this.btnSearch.Name = "btnSearch"; + this.btnSearch.Size = new System.Drawing.Size(60, 23); + this.btnSearch.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnSearch.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSearch.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSearch.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnSearch.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnSearch.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnSearch.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnSearch.Style.GradientAngle = 90; + this.btnSearch.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnSearch.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSearch.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSearch.TabIndex = 449; + this.btnSearch.Text = "搜索"; + this.btnSearch.Click += new System.EventHandler(this.btnSearch_Click); + // + // labelWithdrawalNo + // + this.labelWithdrawalNo.AutoSize = true; + this.labelWithdrawalNo.Location = new System.Drawing.Point(12, 24); + this.labelWithdrawalNo.Name = "labelWithdrawalNo"; + this.labelWithdrawalNo.Size = new System.Drawing.Size(68, 17); + this.labelWithdrawalNo.TabIndex = 420; + this.labelWithdrawalNo.Text = "提现单号:"; + // + // txtWithdrawalNo + // + this.txtWithdrawalNo.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.txtWithdrawalNo.Location = new System.Drawing.Point(80, 21); + this.txtWithdrawalNo.Name = "txtWithdrawalNo"; + this.txtWithdrawalNo.Size = new System.Drawing.Size(150, 23); + this.txtWithdrawalNo.TabIndex = 419; + // + // labelOem + // + this.labelOem.AutoSize = true; + this.labelOem.Location = new System.Drawing.Point(240, 24); + this.labelOem.Name = "labelOem"; + this.labelOem.Size = new System.Drawing.Size(73, 17); + this.labelOem.TabIndex = 421; + this.labelOem.Text = "OEM编号:"; + // + // txtOemIds + // + this.txtOemIds.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.txtOemIds.Location = new System.Drawing.Point(313, 21); + this.txtOemIds.Name = "txtOemIds"; + this.txtOemIds.Size = new System.Drawing.Size(130, 23); + this.txtOemIds.TabIndex = 422; + // + // labelStatus + // + this.labelStatus.AutoSize = true; + this.labelStatus.Location = new System.Drawing.Point(450, 24); + this.labelStatus.Name = "labelStatus"; + this.labelStatus.Size = new System.Drawing.Size(68, 17); + this.labelStatus.TabIndex = 423; + this.labelStatus.Text = "审核状态:"; + // + // cmbStatus + // + this.cmbStatus.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbStatus.FormattingEnabled = true; + this.cmbStatus.Items.AddRange(new object[] { + "全部", + "待审核", + "审核通过", + "审核拒绝", + "打款中", + "已打款", + "打款失败", + "已取消"}); + this.cmbStatus.Location = new System.Drawing.Point(520, 20); + this.cmbStatus.Name = "cmbStatus"; + this.cmbStatus.Size = new System.Drawing.Size(120, 25); + this.cmbStatus.TabIndex = 424; + // + // labelTime + // + this.labelTime.AutoSize = true; + this.labelTime.Location = new System.Drawing.Point(646, 23); + this.labelTime.Name = "labelTime"; + this.labelTime.Size = new System.Drawing.Size(68, 17); + this.labelTime.TabIndex = 425; + this.labelTime.Text = "申请时间:"; + // + // dtpTimeBegin + // + this.dtpTimeBegin.Location = new System.Drawing.Point(715, 20); + this.dtpTimeBegin.Name = "dtpTimeBegin"; + this.dtpTimeBegin.Size = new System.Drawing.Size(110, 23); + this.dtpTimeBegin.TabIndex = 426; + // + // labelTo + // + this.labelTo.AutoSize = true; + this.labelTo.Location = new System.Drawing.Point(830, 23); + this.labelTo.Name = "labelTo"; + this.labelTo.Size = new System.Drawing.Size(20, 17); + this.labelTo.TabIndex = 427; + this.labelTo.Text = "至"; + // + // dtpTimeEnd + // + this.dtpTimeEnd.Location = new System.Drawing.Point(855, 20); + this.dtpTimeEnd.Name = "dtpTimeEnd"; + this.dtpTimeEnd.Size = new System.Drawing.Size(110, 23); + this.dtpTimeEnd.TabIndex = 428; + // + // btnEmpty + // + this.btnEmpty.CanvasColor = System.Drawing.SystemColors.Control; + this.btnEmpty.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnEmpty.DisabledBackColor = System.Drawing.Color.Empty; + this.btnEmpty.Location = new System.Drawing.Point(1051, 19); + this.btnEmpty.Name = "btnEmpty"; + this.btnEmpty.Size = new System.Drawing.Size(70, 23); + this.btnEmpty.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnEmpty.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnEmpty.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnEmpty.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnEmpty.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnEmpty.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnEmpty.Style.GradientAngle = 90; + this.btnEmpty.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnEmpty.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnEmpty.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnEmpty.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnEmpty.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnEmpty.TabIndex = 413; + this.btnEmpty.Text = "清空条件"; + this.btnEmpty.Click += new System.EventHandler(this.btnEmpty_Click); + // + // splitContainer2 + // + this.splitContainer2.BackColor = System.Drawing.Color.White; + this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer2.FixedPanel = System.Windows.Forms.FixedPanel.Panel2; + this.splitContainer2.Location = new System.Drawing.Point(0, 0); + this.splitContainer2.Name = "splitContainer2"; + this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // splitContainer2.Panel1 + // + this.splitContainer2.Panel1.BackColor = System.Drawing.Color.White; + this.splitContainer2.Panel1.Controls.Add(this.pbLoading); + this.splitContainer2.Panel1.Controls.Add(this.dgvExpress); + this.splitContainer2.Panel1.Padding = new System.Windows.Forms.Padding(4, 0, 4, 0); + // + // splitContainer2.Panel2 + // + this.splitContainer2.Panel2.Controls.Add(this.ucSplitPage1); + this.splitContainer2.Panel2.Controls.Add(this.statusBar); + this.splitContainer2.Size = new System.Drawing.Size(1208, 505); + this.splitContainer2.SplitterDistance = 476; + this.splitContainer2.TabIndex = 0; + // + // pbLoading + // + this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None; + this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue; + this.pbLoading.Location = new System.Drawing.Point(555, 219); + this.pbLoading.Name = "pbLoading"; + this.pbLoading.Size = new System.Drawing.Size(50, 50); + this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pbLoading.TabIndex = 1164; + this.pbLoading.TabStop = false; + this.pbLoading.Visible = false; + // + // dgvExpress + // + this.dgvExpress.AllowUserToAddRows = false; + this.dgvExpress.AllowUserToDeleteRows = false; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvExpress.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; + this.dgvExpress.AutoRowNumber = true; + this.dgvExpress.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; + this.dgvExpress.BackgroundColor = System.Drawing.Color.White; + this.dgvExpress.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvExpress.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2; + this.dgvExpress.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvExpress.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.colSelect, + this.Column10, + this.Column1, + this.Column2, + this.Column3, + this.Column4, + this.Column6, + this.Column5, + this.Column7, + this.Column8, + this.Column9, + this.Column11}); + this.dgvExpress.Dock = System.Windows.Forms.DockStyle.Fill; + this.dgvExpress.Location = new System.Drawing.Point(4, 0); + this.dgvExpress.MultiSelectCheckBox = true; + this.dgvExpress.Name = "dgvExpress"; + this.dgvExpress.ReadOnly = true; + this.dgvExpress.RowTemplate.Height = 23; + this.dgvExpress.ShowCellErrors = false; + this.dgvExpress.Size = new System.Drawing.Size(1200, 476); + this.dgvExpress.TabIndex = 7; + // + // colSelect + // + this.colSelect.FillWeight = 4.97937F; + this.colSelect.HeaderText = "选"; + this.colSelect.Name = "colSelect"; + this.colSelect.ReadOnly = true; + this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + // + // Column10 + // + this.Column10.FillWeight = 31.12106F; + this.Column10.HeaderText = "OEM"; + this.Column10.Name = "Column10"; + this.Column10.ReadOnly = true; + // + // Column1 + // + this.Column1.FillWeight = 31.12106F; + this.Column1.HeaderText = "提现单号"; + this.Column1.Name = "Column1"; + this.Column1.ReadOnly = true; + // + // Column2 + // + this.Column2.FillWeight = 31.12106F; + this.Column2.HeaderText = "提现金额"; + this.Column2.Name = "Column2"; + this.Column2.ReadOnly = true; + // + // Column3 + // + this.Column3.FillWeight = 31.12106F; + this.Column3.HeaderText = "提现方式"; + this.Column3.Name = "Column3"; + this.Column3.ReadOnly = true; + // + // Column4 + // + this.Column4.FillWeight = 31.12106F; + this.Column4.HeaderText = "收款账号"; + this.Column4.Name = "Column4"; + this.Column4.ReadOnly = true; + // + // Column6 + // + this.Column6.FillWeight = 31.12106F; + this.Column6.HeaderText = "申请时间"; + this.Column6.Name = "Column6"; + this.Column6.ReadOnly = true; + // + // Column5 + // + this.Column5.FillWeight = 31.12106F; + this.Column5.HeaderText = "审核状态"; + this.Column5.Name = "Column5"; + this.Column5.ReadOnly = true; + // + // Column7 + // + this.Column7.FillWeight = 31.12106F; + this.Column7.HeaderText = "审核消息"; + this.Column7.Name = "Column7"; + this.Column7.ReadOnly = true; + // + // Column8 + // + this.Column8.FillWeight = 31.12106F; + this.Column8.HeaderText = "审核时间"; + this.Column8.Name = "Column8"; + this.Column8.ReadOnly = true; + // + // Column9 + // + this.Column9.FillWeight = 31.12106F; + this.Column9.HeaderText = "打款订单"; + this.Column9.Name = "Column9"; + this.Column9.ReadOnly = true; + // + // Column11 + // + this.Column11.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.Column11.DefaultCellStyle = dataGridViewCellStyle3; + this.Column11.HeaderText = "审核"; + this.Column11.Name = "Column11"; + this.Column11.ReadOnly = true; + this.Column11.ToolTipText = "审核"; + this.Column11.UseColumnTextForLinkValue = true; + this.Column11.Width = 80; + // + // ucSplitPage1 + // + this.ucSplitPage1.CurrentPage = 1; + this.ucSplitPage1.Dock = System.Windows.Forms.DockStyle.Right; + this.ucSplitPage1.IsShowPageSize = true; + this.ucSplitPage1.Location = new System.Drawing.Point(819, 0); + this.ucSplitPage1.Margin = new System.Windows.Forms.Padding(0); + this.ucSplitPage1.Name = "ucSplitPage1"; + this.ucSplitPage1.PageSize = 50; + this.ucSplitPage1.Size = new System.Drawing.Size(389, 25); + this.ucSplitPage1.TabIndex = 4; + this.ucSplitPage1.TotalPage = 1; + this.ucSplitPage1.PageChange += new System.Action(this.ucSplitPage1_PageChange); + // + // statusBar + // + this.statusBar.BackColor = System.Drawing.Color.White; + this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill; + this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.statusBar.Location = new System.Drawing.Point(0, 0); + this.statusBar.Margin = new System.Windows.Forms.Padding(0); + this.statusBar.Name = "statusBar"; + this.statusBar.Size = new System.Drawing.Size(1208, 25); + this.statusBar.TabIndex = 1; + // + // WXAdminOemWithdrawal + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(1210, 623); + this.Controls.Add(this.panel3); + this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.KeyPreview = true; + this.Name = "WXAdminOemWithdrawal"; + this.Text = "OEM提现管理"; + this.TitleText = "OEM提现管理"; + this.Load += new System.EventHandler(this.WXWaybillManageForm_Load); + this.VisibleChanged += new System.EventHandler(this.WXWaybillManageForm_VisibleChanged); + this.Controls.SetChildIndex(this.panel3, 0); + this.panel3.ResumeLayout(false); + this.splitContainer1.Panel1.ResumeLayout(false); + this.splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); + this.splitContainer1.ResumeLayout(false); + this.tableLayoutPanel2.ResumeLayout(false); + this.panel4.ResumeLayout(false); + this.panel4.PerformLayout(); + this.splitContainer2.Panel1.ResumeLayout(false); + this.splitContainer2.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit(); + this.splitContainer2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvExpress)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.SplitContainer splitContainer1; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; + private System.Windows.Forms.Panel panel4; + private DevComponents.DotNetBar.PanelEx btnSearch; + private System.Windows.Forms.Label labelWithdrawalNo; + private System.Windows.Forms.TextBox txtWithdrawalNo; + private System.Windows.Forms.Label labelOem; + private System.Windows.Forms.TextBox txtOemIds; + private System.Windows.Forms.Label labelStatus; + private System.Windows.Forms.ComboBox cmbStatus; + private System.Windows.Forms.Label labelTime; + private System.Windows.Forms.DateTimePicker dtpTimeBegin; + private System.Windows.Forms.Label labelTo; + private System.Windows.Forms.DateTimePicker dtpTimeEnd; + private DevComponents.DotNetBar.PanelEx btnEmpty; + private System.Windows.Forms.SplitContainer splitContainer2; + private UserComponent.DataGridViewEx dgvExpress; + private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; + private System.Windows.Forms.DataGridViewTextBoxColumn Column10; + private System.Windows.Forms.DataGridViewTextBoxColumn Column1; + private System.Windows.Forms.DataGridViewTextBoxColumn Column2; + private System.Windows.Forms.DataGridViewTextBoxColumn Column3; + private System.Windows.Forms.DataGridViewTextBoxColumn Column4; + private System.Windows.Forms.DataGridViewTextBoxColumn Column6; + private System.Windows.Forms.DataGridViewTextBoxColumn Column5; + private System.Windows.Forms.DataGridViewTextBoxColumn Column7; + private System.Windows.Forms.DataGridViewTextBoxColumn Column8; + private System.Windows.Forms.DataGridViewTextBoxColumn Column9; + private System.Windows.Forms.DataGridViewLinkColumn Column11; + private UserControls.UcSplitPage ucSplitPage1; + private UserControls.StatusBarUserControl statusBar; + private System.Windows.Forms.PictureBox pbLoading; + } +} diff --git a/TEMUKJD/WXForms/AdminForms/WXAdminOemWithdrawal.cs b/TEMUKJD/WXForms/AdminForms/WXAdminOemWithdrawal.cs new file mode 100644 index 0000000..df8a8e2 --- /dev/null +++ b/TEMUKJD/WXForms/AdminForms/WXAdminOemWithdrawal.cs @@ -0,0 +1,256 @@ +using AllBase; +using AllBase.Extension; +using AllBase.Model.Result; +using AllBase.Model.Result.PDDResult; +using AllBase.Model.Result.WXResult; +using NaiBa.Util; +using NaiBa.Util.Extension; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; +using TemuKJD.BaseForms; +using TemuKJD.Extension; +using Work; + +namespace TemuKJD.WXForms.AdminForms +{ + public partial class WXAdminOemWithdrawal : BaseForms.BaseGeneralForm + { + private BindingList dataList = new BindingList(); + + public WXAdminOemWithdrawal() + { + InitializeComponent(); + InitBindingDataGridView(); + + } + private void InitBindingDataGridView() + { + this.dgvExpress.AutoGenerateColumns = false; + + this.Column1.DataPropertyName = nameof(WXOemWithdrawalInfo.withdrawal_no); + this.Column2.DataPropertyName = nameof(WXOemWithdrawalInfo.amount); + this.Column3.DataPropertyName = nameof(WXOemWithdrawalInfo.withdrawal_type_string); + this.Column4.DataPropertyName = nameof(WXOemWithdrawalInfo.account_no); + this.Column5.DataPropertyName = nameof(WXOemWithdrawalInfo.status_string); + this.Column6.DataPropertyName = nameof(WXOemWithdrawalInfo.created_at); + this.Column7.DataPropertyName = nameof(WXOemWithdrawalInfo.audit_remark); + this.Column8.DataPropertyName = nameof(WXOemWithdrawalInfo.audit_time); + this.Column9.DataPropertyName = nameof(WXOemWithdrawalInfo.pay_trade_no); + this.Column10.DataPropertyName = nameof(WXOemWithdrawalInfo.oem_name); + // 2. 设置列样式 + // 时间列格式化 + this.Column6.DefaultCellStyle.Format = "yyyy-MM-dd HH:mm:ss"; + this.Column8.DefaultCellStyle.Format = "yyyy-MM-dd HH:mm:ss"; + + // 金额列右对齐 + this.Column2.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; + this.Column11.Text = "审核"; + // 操作列:允许每行单独显示 审核/查看(已审核完毕的行展示审核内容) + this.Column11.UseColumnTextForLinkValue = false; + + // 3. 注册金额格式化事件(分→元) + this.dgvExpress.CellFormatting += DgvExpress_CellFormatting; + + this.dgvExpress.DataSource = dataList; + this.dgvExpress.CellContentClick += DgvExpress_CellContentClick; + } + + private void DgvExpress_CellContentClick(object sender, DataGridViewCellEventArgs e) + { + if (e.RowIndex < 0) return; + var header = this.dgvExpress.Columns[e.ColumnIndex]; + if (header.HeaderText == "审核") + { + var data = this.dgvExpress.Rows[e.RowIndex].DataBoundItem as WXOemWithdrawalInfo; + if (data == null) return; + // 待审核 → 可修改提交;已审核完毕(status!=0) → 仅展示审核内容,不允许二次修改和提交 + WXAdminOemWithdrawalAuditForm auditForm = new WXAdminOemWithdrawalAuditForm(data); + if (auditForm.ShowDialog(this) == DialogResult.OK) + { + // 审核成功,刷新列表 + GetDeliveryAndWaybill(this.ucSplitPage1.CurrentPage); + } + } + } + + private void DgvExpress_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) + { + // 操作列:待审核显示"审核",已审核完毕显示"查看" + if (e.ColumnIndex == this.Column11.Index && e.RowIndex >= 0) + { + var data = this.dgvExpress.Rows[e.RowIndex].DataBoundItem as WXOemWithdrawalInfo; + if (data != null) + { + e.Value = data.status == 0 ? "审核" : "查看"; + e.FormattingApplied = true; + } + return; + } + + // 金额列:将分转换为元 + if (e.ColumnIndex == this.Column2.Index && e.Value != null && e.Value != DBNull.Value) + { + if (long.TryParse(e.Value.ToString(), out long amountInFen)) + { + e.Value = (amountInFen / 100m).ToString("F2"); + e.FormattingApplied = true; + } + } + } + private void WXWaybillManageForm_Load(object sender, EventArgs e) + { + this.dgvExpress.AddSelectorColumn("colSelect"); + + // 初始化搜索条件默认值:状态默认"全部",时间默认查询全部记录 + this.cmbStatus.SelectedIndex = 0; + this.dtpTimeBegin.Value = DateTime.Now.Date.AddYears(-10); + this.dtpTimeEnd.Value = DateTime.Now.Date.AddDays(1).AddSeconds(-1); + } + + + + private void btnSearch_Click(object sender, EventArgs e) + { + GetDeliveryAndWaybill(); + } + + /// 清空搜索条件并重新加载 + private void btnEmpty_Click(object sender, EventArgs e) + { + this.txtWithdrawalNo.Text = ""; + this.txtOemIds.Text = ""; + this.cmbStatus.SelectedIndex = 0; + this.dtpTimeBegin.Value = DateTime.Now.Date.AddYears(-10); + this.dtpTimeEnd.Value = DateTime.Now.Date.AddDays(1).AddSeconds(-1); + GetDeliveryAndWaybill(); + } + + void GetDeliveryAndWaybill() + { + if (this.ucSplitPage1.CurrentPage != 1) + this.ucSplitPage1.CurrentPage = 1; + else + GetDeliveryAndWaybill(1); + } + + public void GetDeliveryAndWaybill(int page) + { + + this.pbLoading.Visible = true; + this.dgvExpress.Rows.Clear(); + dataList.Clear(); + int pageCount; + int pageSize = 100; + decimal seconds; + pageSize = this.ucSplitPage1.PageSize; + + // 在UI线程上读取搜索条件,避免跨线程访问控件 + string withdrawalNo = this.txtWithdrawalNo.Text.Trim(); + string oemIds = this.txtOemIds.Text.Trim(); + int? status = this.cmbStatus.SelectedIndex <= 0 ? (int?)null : this.cmbStatus.SelectedIndex - 1; + string startTime = this.dtpTimeBegin.Value.ToString("yyyy-MM-dd HH:mm:ss"); + string endTime = this.dtpTimeEnd.Value.ToString("yyyy-MM-dd HH:mm:ss"); + + Task.Run(() => + { + + List list = GetOemWithdrawals(out pageCount, out seconds, page, pageSize, withdrawalNo, oemIds, status, startTime, endTime); + + this.ucSplitPage1.TotalPage = pageCount; + + + Invoke(new Action(() => + { + list.ForEach(a => dataList.Add(a)); + this.pbLoading.Visible = false; + this.statusBar.lblTaskStatus.Text = "运单号查询完毕"; +#if DEBUG + this.statusBar.lblTaskStatus.Text += ",耗时:" + seconds; +#endif + })); + }); + } + + + public List GetOemWithdrawals(out int pageCount, out decimal seconds, int page = 1, int pageSize = 200, string withdrawalNo = "", string oemIds = "", int? status = null, string startTime = "", string endTime = "") + { + List list = new List(); + pageCount = 1; + seconds = 0; + + var url = BaseClass.BuildObjString("user/oem_withdrawals"); + + string data = ""; + var obj = UserLogin.GetSignPostData(new + { + page = page, + page_size = pageSize, + withdrawal_no = string.IsNullOrEmpty(withdrawalNo) ? null : withdrawalNo, + oem_ids = string.IsNullOrEmpty(oemIds) ? null : oemIds, + status = status, + start_time = string.IsNullOrEmpty(startTime) ? null : startTime, + end_time = string.IsNullOrEmpty(endTime) ? null : endTime + }); + + // GetSignPostData 会把 null 转成空字符串,这里去掉空参数,避免后端收到 status="" 之类的空值 + var expando = obj as System.Dynamic.ExpandoObject; + if (expando != null) + { + var dict = expando as IDictionary; + var emptyKeys = dict.Where(kv => kv.Value == null || (kv.Value is string s && string.IsNullOrEmpty(s))) + .Select(kv => kv.Key).ToList(); + foreach (var key in emptyKeys) + dict.Remove(key); + } + + data = JsonHelper.SerializeObject(obj); + var html = GetHtml.PostUtf8(url, data); + var ret = JsonConvert.DeserializeObject>(html); + if (ret.Code != 200) + { + Invoke(new Action(() => + { + BaseMsgForm.ShowError("运单列表获取失败,请重试!" + ret.Msg); + })); + return list; + } + + seconds = BaseRegex.GetDecimalJson(ref html, "seconds"); + pageCount = Math.Ceiling(1.0 * ret.Total / pageSize).ParseToInt(); + pageCount = Math.Max(pageCount, 1); + + return ret.Data; + + } + + private void ucSplitPage1_PageChange(object obj) + { + GetDeliveryAndWaybill(ucSplitPage1.CurrentPage); + } + + bool first = true; + private void WXWaybillManageForm_VisibleChanged(object sender, EventArgs e) + { + if (this.Visible == true && first) + { + first = false; + + this.pbLoading.Visible = true; + GetDeliveryAndWaybill(ucSplitPage1.CurrentPage); + } + } + + public bool IsOperate = false; + } +} diff --git a/TEMUKJD/WXForms/AdminForms/WXAdminOemWithdrawal.resx b/TEMUKJD/WXForms/AdminForms/WXAdminOemWithdrawal.resx new file mode 100644 index 0000000..b00cb15 --- /dev/null +++ b/TEMUKJD/WXForms/AdminForms/WXAdminOemWithdrawal.resx @@ -0,0 +1,334 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + + + AAABAAEAgIAQAAAAAABoKAAAFgAAACgAAACAAAAAAAEAAAEABAAAAAAAACgAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP// + AAD///8AAAAAAAAAAAAAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMQ + AAAAAAAAAAAAAAAAAAAAAAAAABM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZkzEAAAAAAAAAAAAAAAAAAAAAADOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZMwAAAAAAAAAAAAAAAAAAABOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZkzAAAAAAAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmTEAAAAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAAAA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAADmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAA5mZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAADmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAGZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAJmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZAAAAAA + OZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmT + AAAAAZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmRAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZkwAAAZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZkwAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZMAAJmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZEAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkwCZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkRmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZOZmZOZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmP+JmZmZmZmZj/////// + ///4OZmZj/eZmZmZmZmZmPg5OZmZmZuI//iIuZmZmZmZmZmZmZM5mZmZmZmZmZmZmb//+JmZmZmZmP// + //////////OZmP//uZmZmZmZmY//+ZmZOZf///////h5k5mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZ + mZ/////////////4mZ///4mZmZmZmZP///uZmZmP////////+JmZmZmZmZmZkzmZmZmZmZmZmZmZj//4 + mZmZmZmf////////////+Jmf//+JmZmZmZmb///4mZmY//////////+JmZmZmZmZmZM5mZmZmZmZmZmZ + mY//+JmZmZmZn/////////////mZmP//iZmZmZmZk///+5mZj/////iP////+JmZmZmZmZmTOZmZmZmZ + mZmZmZmP//iZmZmZmZ////iIiIiIiIiZOZj//4mZmZmZmZP///uZmf////eZmT////+ZmZmZmZmZkzmZ + mZmZmZmZmZmZj//4mZmZmZmf//+JmZmZmZmZk5mY//+JmZmZmZmT///7mZj///+ZmZmZj///uZmZmZmZ + mZM5mZmZmZmZmZmZmY//+JmZmZmZn///iZmZmZmZmZmZmP//iZmZN5k5k///+5mY///zk5mZOT///4mZ + mZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ///4mZmZmZmZmZmZj//4mZmP/5k5P///uZmP//+ZmZmZmY + //+JmZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf///4iIiIiIg5mZmY//+JOb//+JmT///7mZj//4mZ + mZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn///////////85mZmP//iZn///+Jk///+5mf + //+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ////////////+ZmZj//4mY////85v/ + //uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf////////////mZmY//+Jv/// + //+Z///7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn///////////+JmZmP// + if//////if//+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ///////////4mZ + mZj//4j///////j///uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf//+JMzMz + MzOZOZmY//////+D///////7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn/// + iZmZmZmZmZmZmP//////mY//////+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZ + mZ///4mZmZmZmZmZmZj/////+5mf//////uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZMzM5j//4 + kzMzmZmf//+JMzMzMzM5mZmY/////4mTk//////7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmP// + /////////4mZn////////////4mZmP////+ZmZmP////+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZ + mY/////////////4mZ/////////////7mZj////7mZmZn/////uZmP//iZmZmZmY///5mZmZmZmZkzmZ + mZmZmZn//////////////5mf////////////+Jmf////iZmZk5P////4mZ///4mZmZmZmP//+ZmZmZmZ + mZM5mZmZmZmZj/////////////iZn/////////////iZmP///5mZmZmZj///+5mY//+JmZmZmZj//4mZ + mZmZmZmTOZmZmZmZmZ/////////////zmZP///////////+JmZP///uTmZmZmZj//4mZm///mZmZmZmZ + //85mZmZmZmZkzmZmZmZmZOZiIiIiIiIiIiImTmZOIiIiIiIiIiImTmZOIi5mZmZmZOZiIuZmZk4iZOZ + mZmZOZiDmZmZmZmZmZM5mZmZmZmZOZmZmZmZmZmZmZOZmZmZmZmZmZmZmZOZmZmZmZmZmZmZOZmZmZmZ + mZk5mZmZmZOZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmTuIiIiIs5mZmZmZmZ + mTu4i7mZmZmZmZmZmTMzmZOZmZkzOZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmTmbj///////+HmT + mZmZk4j/////iJmZmZk4iP////iZOZmZj/mZOZOIiIiIiIiIiDmZmZmZmZmZkzmZmZmZmZmZj/////// + ///4mZk5k4///4iI///4OZOY////////iZOZmb/5mZmP///////////4mZmZmZmZmZM5mZmZmZmZn/// + //////////mZmY///5mZmZP///iZmP////////+ZOZk/iZmY/////////////4mZmZmZmZmTOZmZmZmZ + mZ/////////////5mZ////+JmZmY////iZl/////////+ZmZP4mZP//////////////7mZmZmZmZkzmZ + mZmZmZmb////////////uZP/j///+HM3j/////+ZmYj///////iZmT+JmY//////////////+JmZmZmZ + mZM5mZmZmZmZmY//////////+JmT+Jv///////////iPmTmZOI/4mP//uTk/iZmP//////////////iZ + mZmZmZmTOZmZmZmZmZmf//////////mZmZmZ///////////5mZmZmZmTOZk///mZP4mZj/////////// + ///4mZmZmZmZkzmZmZmZmZmTmP////////+JOZmZOY//////////iZmZmZmZmZk5mf/4mT+JmY////// + ////////+JmZmZmZmZM5mZmZmZmZmZn/////////mZmZmZk//////////zmZmZmZmZmZmTmP/zm/iZmP + //////////////iZmZmZmZmTOZmZmZmZmZk5v///////85OZmZkzmP////////iZmZmZmZmZmZmZn//4 + /4mZj/////hzN4/////4mZmZmZmZkzmZmZmZmZmZmZj//////4mZmTmY/4j////////4mZmZmZmZmZmZ + mZj///+JmY////+JmZmY////+JmZmZmZmZM5mZmZmZmZmZmZ//////+ZmZmZj////////////4mZmZmZ + mZmZmZmb////+ZmP///4mZu5mY////iZmZmZmZmTOZmZmZmZmZmZOb/////4k5mZmP/////////////7 + mZmZmZmZmZmZk/////OZv///+ZmP+Jmf///4mZmZmZmZkzmZmZmZmZmZmZmf////+ZmZmZj////////4 + eI//+JmZmZmZmZmZmZP////4mb///4mY//+JmP//+5mZmZmZmZM5mZmZmZmZmZk5v/////uTmZmb//// + ///4mZmX//iZmZmZmZmZmZmZ////+Jmf//95n///+Zj///OZmZmZmZmTOZmZmZmZmZmZmf//////mZmZ + mY//////+ZOZmZiJmZmZmZmZmZmZmY////+ZmP//+I////iP//+JmZmZmZmZkzmZmZmZmZmZmZj///// + /4mZmZmf/////5k5mZOZmTmZmZmZmZmZmZmP///4mZP/////////////OZmZmZmZmZM5mZmZmZmZmZk/ + ///////zmZmZm/////iZmZmZmZmZmZmZmZmZmZmZj///85mZj///////////+JmZmZmZmZmTOZmZmZmZ + mZmZv///////+5mZmZmP///5mZmZmZmZmZmZmZmZmZmZmZ///3mZmZj//////////4mZmZmZmZmZkzmZ + mZmZmZmZmb///4j///uZmZmZmP//mTmZmZmZmZmZmZmZmZmZmZmY/4OZmZmZeP///////4eZmZmZmZmZ + mZM5mZmZmZmZmZmY/4OZOP+JmZmZmZmIiZOZmZmZmZmZmZmZmZmZmZmZmYiZmZmZmZk4iIiIiIOZmZmZ + mZmZmZmTOZmZmZmZmZmZmTOZmZkzmZmZmZmZmZk5mZmZmZmZmZmZmZmZmZmZmZmZk5mZmZmZmZmZmZmZ + mZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmTGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZkwmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZkwA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZMACZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmQAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAABmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTAAADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAJmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmRAAAAA5mZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAACZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmQAAAAAAGZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAOZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkwAAAAAA + AAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTAA + AAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZMAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZkwAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmTAAAAAAAAAAAAAAGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZEAAAAAAAAAAAAAAAA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAAAAAAAATmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZMQAAAAAAAAAAAAAAAAAAABOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZMQAAAAAAAAAAAAAAAAAAAAAAAzmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTMAAAAAAAAAAAAAAAAAAAAAAAAAAAEzMzMzMzMzMzMzMzMzMz + MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMxAAAAAAAAAAAAAAD////////////////////////4AAAA + AAAAAAAAAB//////wAAAAAAAAAAAAAAD/////wAAAAAAAAAAAAAAAP////wAAAAAAAAAAAAAAAA////w + AAAAAAAAAAAAAAAAD///4AAAAAAAAAAAAAAAAAf//8AAAAAAAAAAAAAAAAAD//+AAAAAAAAAAAAAAAAA + Af//AAAAAAAAAAAAAAAAAAD//gAAAAAAAAAAAAAAAAAAf/wAAAAAAAAAAAAAAAAAAD/4AAAAAAAAAAAA + AAAAAAAf+AAAAAAAAAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP4AAAAAAA + AAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AA + AAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA + AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA + AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA + AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA + AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA + AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA + AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA + AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA + AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA + AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA + AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA + AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA + AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA + AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA + AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA + AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA + AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA + AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA + AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA + AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA + AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA + AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA + AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA + AAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAAD4AAAAAAAAAAAAAAAAAAAA+AA + AAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH8AAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAA + AA/4AAAAAAAAAAAAAAAAAAAf/AAAAAAAAAAAAAAAAAAAH/wAAAAAAAAAAAAAAAAAAD/+AAAAAAAAAAAA + AAAAAAB//wAAAAAAAAAAAAAAAAAA//+AAAAAAAAAAAAAAAAAAf//wAAAAAAAAAAAAAAAAAP//+AAAAAA + AAAAAAAAAAAH///4AAAAAAAAAAAAAAAAD////AAAAAAAAAAAAAAAAD////8AAAAAAAAAAAAAAAD///// + wAAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAH////////////////////////w== + + + \ No newline at end of file diff --git a/TEMUKJD/WXForms/AdminForms/WXAdminOemWithdrawalAuditForm.Designer.cs b/TEMUKJD/WXForms/AdminForms/WXAdminOemWithdrawalAuditForm.Designer.cs new file mode 100644 index 0000000..7e41768 --- /dev/null +++ b/TEMUKJD/WXForms/AdminForms/WXAdminOemWithdrawalAuditForm.Designer.cs @@ -0,0 +1,443 @@ + +namespace TemuKJD.WXForms.AdminForms +{ + partial class WXAdminOemWithdrawalAuditForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WXAdminOemWithdrawalAuditForm)); + this.pnlContent = new System.Windows.Forms.Panel(); + this.btnCancel = new DevComponents.DotNetBar.PanelEx(); + this.btnSubmit = new DevComponents.DotNetBar.PanelEx(); + this.pnlReject = new System.Windows.Forms.Panel(); + this.lblRejectHint = new System.Windows.Forms.Label(); + this.lblRejectTip = new System.Windows.Forms.Label(); + this.txtRejectReason = new System.Windows.Forms.TextBox(); + this.pnlAgree = new System.Windows.Forms.Panel(); + this.lblAgreeHint = new System.Windows.Forms.Label(); + this.lblAgreeTip = new System.Windows.Forms.Label(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.btnUploadImg = new DevComponents.DotNetBar.PanelEx(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.rbReject = new System.Windows.Forms.RadioButton(); + this.rbAgree = new System.Windows.Forms.RadioButton(); + this.lblAccountCaption = new System.Windows.Forms.Label(); + this.lblAccount = new System.Windows.Forms.Label(); + this.lblTypeCaption = new System.Windows.Forms.Label(); + this.lblType = new System.Windows.Forms.Label(); + this.lblAmountCaption = new System.Windows.Forms.Label(); + this.lblAmount = new System.Windows.Forms.Label(); + this.lblOemCaption = new System.Windows.Forms.Label(); + this.lblOem = new System.Windows.Forms.Label(); + this.lblNoCaption = new System.Windows.Forms.Label(); + this.lblNo = new System.Windows.Forms.Label(); + this.linkLabel1 = new System.Windows.Forms.LinkLabel(); + this.pnlContent.SuspendLayout(); + this.pnlReject.SuspendLayout(); + this.pnlAgree.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.groupBox1.SuspendLayout(); + this.SuspendLayout(); + // + // pnlContent + // + this.pnlContent.BackColor = System.Drawing.Color.White; + this.pnlContent.Controls.Add(this.linkLabel1); + this.pnlContent.Controls.Add(this.btnCancel); + this.pnlContent.Controls.Add(this.btnSubmit); + this.pnlContent.Controls.Add(this.pnlReject); + this.pnlContent.Controls.Add(this.pnlAgree); + this.pnlContent.Controls.Add(this.groupBox1); + this.pnlContent.Controls.Add(this.lblAccountCaption); + this.pnlContent.Controls.Add(this.lblAccount); + this.pnlContent.Controls.Add(this.lblTypeCaption); + this.pnlContent.Controls.Add(this.lblType); + this.pnlContent.Controls.Add(this.lblAmountCaption); + this.pnlContent.Controls.Add(this.lblAmount); + this.pnlContent.Controls.Add(this.lblOemCaption); + this.pnlContent.Controls.Add(this.lblOem); + this.pnlContent.Controls.Add(this.lblNoCaption); + this.pnlContent.Controls.Add(this.lblNo); + this.pnlContent.Dock = System.Windows.Forms.DockStyle.Fill; + this.pnlContent.Location = new System.Drawing.Point(1, 1); + this.pnlContent.Name = "pnlContent"; + this.pnlContent.Size = new System.Drawing.Size(458, 568); + this.pnlContent.TabIndex = 0; + // + // btnCancel + // + this.btnCancel.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnCancel.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnCancel.DisabledBackColor = System.Drawing.Color.Empty; + this.btnCancel.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnCancel.Location = new System.Drawing.Point(380, 492); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(65, 32); + this.btnCancel.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnCancel.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnCancel.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnCancel.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnCancel.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnCancel.Style.ForeColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnCancel.Style.GradientAngle = 90; + this.btnCancel.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnCancel.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnCancel.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnCancel.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnCancel.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnCancel.TabIndex = 101; + this.btnCancel.Text = "取消"; + this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); + // + // btnSubmit + // + this.btnSubmit.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnSubmit.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnSubmit.DisabledBackColor = System.Drawing.Color.Empty; + this.btnSubmit.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnSubmit.Location = new System.Drawing.Point(290, 492); + this.btnSubmit.Name = "btnSubmit"; + this.btnSubmit.Size = new System.Drawing.Size(80, 32); + this.btnSubmit.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnSubmit.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSubmit.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSubmit.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnSubmit.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnSubmit.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnSubmit.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnSubmit.Style.GradientAngle = 90; + this.btnSubmit.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnSubmit.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSubmit.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSubmit.TabIndex = 100; + this.btnSubmit.Text = "提交审核"; + this.btnSubmit.Click += new System.EventHandler(this.btnSubmit_Click); + // + // pnlReject + // + this.pnlReject.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pnlReject.Controls.Add(this.lblRejectHint); + this.pnlReject.Controls.Add(this.lblRejectTip); + this.pnlReject.Controls.Add(this.txtRejectReason); + this.pnlReject.Location = new System.Drawing.Point(20, 225); + this.pnlReject.Name = "pnlReject"; + this.pnlReject.Size = new System.Drawing.Size(420, 250); + this.pnlReject.TabIndex = 0; + this.pnlReject.Visible = false; + // + // lblRejectHint + // + this.lblRejectHint.AutoSize = true; + this.lblRejectHint.ForeColor = System.Drawing.Color.Gray; + this.lblRejectHint.Location = new System.Drawing.Point(14, 195); + this.lblRejectHint.Name = "lblRejectHint"; + this.lblRejectHint.Size = new System.Drawing.Size(248, 17); + this.lblRejectHint.TabIndex = 2; + this.lblRejectHint.Text = "请填写拒绝原因,审核结果将展示给申请人。"; + // + // lblRejectTip + // + this.lblRejectTip.AutoSize = true; + this.lblRejectTip.Location = new System.Drawing.Point(14, 10); + this.lblRejectTip.Name = "lblRejectTip"; + this.lblRejectTip.Size = new System.Drawing.Size(68, 17); + this.lblRejectTip.TabIndex = 1; + this.lblRejectTip.Text = "拒绝理由:"; + // + // txtRejectReason + // + this.txtRejectReason.AcceptsReturn = true; + this.txtRejectReason.Location = new System.Drawing.Point(14, 36); + this.txtRejectReason.Multiline = true; + this.txtRejectReason.Name = "txtRejectReason"; + this.txtRejectReason.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.txtRejectReason.Size = new System.Drawing.Size(392, 150); + this.txtRejectReason.TabIndex = 0; + // + // pnlAgree + // + this.pnlAgree.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pnlAgree.Controls.Add(this.lblAgreeHint); + this.pnlAgree.Controls.Add(this.lblAgreeTip); + this.pnlAgree.Controls.Add(this.pictureBox1); + this.pnlAgree.Controls.Add(this.btnUploadImg); + this.pnlAgree.Location = new System.Drawing.Point(20, 225); + this.pnlAgree.Name = "pnlAgree"; + this.pnlAgree.Size = new System.Drawing.Size(420, 250); + this.pnlAgree.TabIndex = 0; + // + // lblAgreeHint + // + this.lblAgreeHint.AutoSize = true; + this.lblAgreeHint.ForeColor = System.Drawing.Color.Gray; + this.lblAgreeHint.Location = new System.Drawing.Point(268, 110); + this.lblAgreeHint.Name = "lblAgreeHint"; + this.lblAgreeHint.Size = new System.Drawing.Size(158, 17); + this.lblAgreeHint.TabIndex = 3; + this.lblAgreeHint.Text = "支持 jpg / jpeg / png 格式"; + // + // lblAgreeTip + // + this.lblAgreeTip.AutoSize = true; + this.lblAgreeTip.Location = new System.Drawing.Point(14, 10); + this.lblAgreeTip.Name = "lblAgreeTip"; + this.lblAgreeTip.Size = new System.Drawing.Size(200, 17); + this.lblAgreeTip.TabIndex = 2; + this.lblAgreeTip.Text = "打款凭证图片(审核通过后展示):"; + // + // pictureBox1 + // + this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBox1.Location = new System.Drawing.Point(14, 36); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(240, 170); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pictureBox1.TabIndex = 1; + this.pictureBox1.TabStop = false; + // + // btnUploadImg + // + this.btnUploadImg.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnUploadImg.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnUploadImg.DisabledBackColor = System.Drawing.Color.Empty; + this.btnUploadImg.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnUploadImg.Location = new System.Drawing.Point(268, 70); + this.btnUploadImg.Name = "btnUploadImg"; + this.btnUploadImg.Size = new System.Drawing.Size(138, 30); + this.btnUploadImg.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnUploadImg.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnUploadImg.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnUploadImg.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnUploadImg.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnUploadImg.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnUploadImg.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnUploadImg.Style.GradientAngle = 90; + this.btnUploadImg.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnUploadImg.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnUploadImg.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnUploadImg.TabIndex = 0; + this.btnUploadImg.Text = "上传凭证图片"; + this.btnUploadImg.Click += new System.EventHandler(this.btnUploadImg_Click); + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.rbReject); + this.groupBox1.Controls.Add(this.rbAgree); + this.groupBox1.Location = new System.Drawing.Point(20, 165); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(420, 52); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "审核结果"; + // + // rbReject + // + this.rbReject.AutoSize = true; + this.rbReject.Location = new System.Drawing.Point(110, 20); + this.rbReject.Name = "rbReject"; + this.rbReject.Size = new System.Drawing.Size(50, 21); + this.rbReject.TabIndex = 1; + this.rbReject.TabStop = true; + this.rbReject.Text = "拒绝"; + this.rbReject.UseVisualStyleBackColor = true; + this.rbReject.CheckedChanged += new System.EventHandler(this.rbAgree_CheckedChanged); + // + // rbAgree + // + this.rbAgree.AutoSize = true; + this.rbAgree.Checked = true; + this.rbAgree.Location = new System.Drawing.Point(20, 20); + this.rbAgree.Name = "rbAgree"; + this.rbAgree.Size = new System.Drawing.Size(50, 21); + this.rbAgree.TabIndex = 0; + this.rbAgree.TabStop = true; + this.rbAgree.Text = "同意"; + this.rbAgree.UseVisualStyleBackColor = true; + this.rbAgree.CheckedChanged += new System.EventHandler(this.rbAgree_CheckedChanged); + // + // lblAccountCaption + // + this.lblAccountCaption.AutoSize = true; + this.lblAccountCaption.Location = new System.Drawing.Point(20, 134); + this.lblAccountCaption.Name = "lblAccountCaption"; + this.lblAccountCaption.Size = new System.Drawing.Size(68, 17); + this.lblAccountCaption.TabIndex = 0; + this.lblAccountCaption.Text = "收款账号:"; + // + // lblAccount + // + this.lblAccount.AutoSize = true; + this.lblAccount.Location = new System.Drawing.Point(100, 134); + this.lblAccount.Name = "lblAccount"; + this.lblAccount.Size = new System.Drawing.Size(13, 17); + this.lblAccount.TabIndex = 0; + this.lblAccount.Text = "-"; + // + // lblTypeCaption + // + this.lblTypeCaption.AutoSize = true; + this.lblTypeCaption.Location = new System.Drawing.Point(20, 106); + this.lblTypeCaption.Name = "lblTypeCaption"; + this.lblTypeCaption.Size = new System.Drawing.Size(68, 17); + this.lblTypeCaption.TabIndex = 0; + this.lblTypeCaption.Text = "提现方式:"; + // + // lblType + // + this.lblType.AutoSize = true; + this.lblType.Location = new System.Drawing.Point(100, 106); + this.lblType.Name = "lblType"; + this.lblType.Size = new System.Drawing.Size(13, 17); + this.lblType.TabIndex = 0; + this.lblType.Text = "-"; + // + // lblAmountCaption + // + this.lblAmountCaption.AutoSize = true; + this.lblAmountCaption.Location = new System.Drawing.Point(20, 76); + this.lblAmountCaption.Name = "lblAmountCaption"; + this.lblAmountCaption.Size = new System.Drawing.Size(92, 17); + this.lblAmountCaption.TabIndex = 0; + this.lblAmountCaption.Text = "申请提现金额:"; + // + // lblAmount + // + this.lblAmount.AutoSize = true; + this.lblAmount.Font = new System.Drawing.Font("微软雅黑", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lblAmount.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(77)))), ((int)(((byte)(79))))); + this.lblAmount.Location = new System.Drawing.Point(120, 70); + this.lblAmount.Name = "lblAmount"; + this.lblAmount.Size = new System.Drawing.Size(61, 30); + this.lblAmount.TabIndex = 0; + this.lblAmount.Text = "0.00"; + // + // lblOemCaption + // + this.lblOemCaption.AutoSize = true; + this.lblOemCaption.Location = new System.Drawing.Point(20, 46); + this.lblOemCaption.Name = "lblOemCaption"; + this.lblOemCaption.Size = new System.Drawing.Size(73, 17); + this.lblOemCaption.TabIndex = 0; + this.lblOemCaption.Text = "OEM名称:"; + // + // lblOem + // + this.lblOem.AutoSize = true; + this.lblOem.Location = new System.Drawing.Point(100, 46); + this.lblOem.Name = "lblOem"; + this.lblOem.Size = new System.Drawing.Size(13, 17); + this.lblOem.TabIndex = 0; + this.lblOem.Text = "-"; + // + // lblNoCaption + // + this.lblNoCaption.AutoSize = true; + this.lblNoCaption.Location = new System.Drawing.Point(20, 18); + this.lblNoCaption.Name = "lblNoCaption"; + this.lblNoCaption.Size = new System.Drawing.Size(68, 17); + this.lblNoCaption.TabIndex = 0; + this.lblNoCaption.Text = "提现单号:"; + // + // lblNo + // + this.lblNo.AutoSize = true; + this.lblNo.Location = new System.Drawing.Point(100, 18); + this.lblNo.Name = "lblNo"; + this.lblNo.Size = new System.Drawing.Size(13, 17); + this.lblNo.TabIndex = 0; + this.lblNo.Text = "-"; + // + // linkLabel1 + // + this.linkLabel1.AutoSize = true; + this.linkLabel1.Location = new System.Drawing.Point(380, 134); + this.linkLabel1.Name = "linkLabel1"; + this.linkLabel1.Size = new System.Drawing.Size(32, 17); + this.linkLabel1.TabIndex = 115; + this.linkLabel1.TabStop = true; + this.linkLabel1.Text = "查看"; + this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); + // + // WXAdminOemWithdrawalAuditForm + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(460, 570); + this.Controls.Add(this.pnlContent); + this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.KeyPreview = true; + this.MaximizeBox = false; + this.Name = "WXAdminOemWithdrawalAuditForm"; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "提现审核"; + this.TitleText = "提现审核"; + this.Load += new System.EventHandler(this.WXAdminOemWithdrawalAuditForm_Load); + this.Controls.SetChildIndex(this.pnlContent, 0); + this.pnlContent.ResumeLayout(false); + this.pnlContent.PerformLayout(); + this.pnlReject.ResumeLayout(false); + this.pnlReject.PerformLayout(); + this.pnlAgree.ResumeLayout(false); + this.pnlAgree.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Panel pnlContent; + private System.Windows.Forms.Label lblNoCaption; + private System.Windows.Forms.Label lblNo; + private System.Windows.Forms.Label lblOemCaption; + private System.Windows.Forms.Label lblOem; + private System.Windows.Forms.Label lblAmountCaption; + private System.Windows.Forms.Label lblAmount; + private System.Windows.Forms.Label lblTypeCaption; + private System.Windows.Forms.Label lblType; + private System.Windows.Forms.Label lblAccountCaption; + private System.Windows.Forms.Label lblAccount; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.RadioButton rbAgree; + private System.Windows.Forms.RadioButton rbReject; + private System.Windows.Forms.Panel pnlAgree; + private System.Windows.Forms.Label lblAgreeHint; + private System.Windows.Forms.Label lblAgreeTip; + private System.Windows.Forms.PictureBox pictureBox1; + private DevComponents.DotNetBar.PanelEx btnUploadImg; + private System.Windows.Forms.Panel pnlReject; + private System.Windows.Forms.Label lblRejectHint; + private System.Windows.Forms.Label lblRejectTip; + private System.Windows.Forms.TextBox txtRejectReason; + private DevComponents.DotNetBar.PanelEx btnSubmit; + private DevComponents.DotNetBar.PanelEx btnCancel; + private System.Windows.Forms.LinkLabel linkLabel1; + } +} diff --git a/TEMUKJD/WXForms/AdminForms/WXAdminOemWithdrawalAuditForm.cs b/TEMUKJD/WXForms/AdminForms/WXAdminOemWithdrawalAuditForm.cs new file mode 100644 index 0000000..adcb2b9 --- /dev/null +++ b/TEMUKJD/WXForms/AdminForms/WXAdminOemWithdrawalAuditForm.cs @@ -0,0 +1,240 @@ +using AllBase; +using AllBase.Model.Result; +using AllBase.Model.Result.WXResult; +using Newtonsoft.Json; +using System; +using System.Drawing; +using System.IO; +using System.Text; +using System.Windows.Forms; +using TemuKJD.BaseForms; +using TemuKJD.ToolForms; +using Work; +using static System.Windows.Forms.VisualStyles.VisualStyleElement; + +namespace TemuKJD.WXForms.AdminForms +{ + /// + /// OEM提现审核窗体 + /// 同意:需上传打款凭证图片;拒绝:需填写拒绝理由 + /// + public partial class WXAdminOemWithdrawalAuditForm : BaseGeneralForm + { + /// 当前审核的提现记录 + private readonly WXOemWithdrawalInfo withdrawalInfo; + + /// 打款凭证图片(base64) + private string payImageBase64 = ""; + + public WXAdminOemWithdrawalAuditForm(WXOemWithdrawalInfo withdrawalInfo) + { + InitializeComponent(); + this.withdrawalInfo = withdrawalInfo; + } + + private void WXAdminOemWithdrawalAuditForm_Load(object sender, EventArgs e) + { + // 默认同意模式 + this.rbAgree.Checked = true; + UpdateMode(); + + if (this.withdrawalInfo == null) + return; + + this.lblNo.Text = this.withdrawalInfo.withdrawal_no; + this.lblOem.Text = this.withdrawalInfo.oem_name; + this.lblType.Text = this.withdrawalInfo.withdrawal_type_string; + this.lblAccount.Text = this.withdrawalInfo.account_no; + // 金额(分) → 元 + this.lblAmount.Text = (this.withdrawalInfo.amount / 100m).ToString("F2"); + + // 凭证图片占位 + this.pictureBox1.Image = Properties.Resources.nopic; + + // 已审核完毕:仅展示审核内容,不允许二次修改和提交 + if (this.withdrawalInfo.status != (int)OemWithdrawalStatus.Pending) + ShowAuditedView(); + } + + /// + /// 审核已完毕:仅展示审核内容(审核结果/拒绝理由/打款凭证),禁止再次修改与提交 + /// + private void ShowAuditedView() + { + int status = this.withdrawalInfo.status; + if (status == (int)OemWithdrawalStatus.Rejected) + { + // 拒绝:展示拒绝理由 + this.rbReject.Checked = true; + this.txtRejectReason.Text = this.withdrawalInfo.audit_remark ?? ""; + } + else + { + // 同意(审核通过及其后续打款状态):展示打款凭证图片 + this.rbAgree.Checked = true; + // 路径拼接规则与"收款账号-查看"一致:LoginApiUrl + 字段,字段为 pay_trade_no + if (!string.IsNullOrEmpty(this.withdrawalInfo.pay_trade_no)) + LoadVoucherImage(BaseClass.LoginApiUrl + this.withdrawalInfo.pay_trade_no); + } + UpdateMode(); + + // 禁止二次修改与提交 + this.rbAgree.Enabled = false; + this.rbReject.Enabled = false; + this.btnUploadImg.Visible = false; + this.txtRejectReason.ReadOnly = true; + this.btnSubmit.Visible = false; + + this.Text = "审核详情"; + this.TitleText = "审核详情"; + } + + /// + /// 加载打款凭证图片 + /// + private void LoadVoucherImage(string voucherUrl) + { + try + { + if (voucherUrl.Contains("wxapp")) + { + string getImgError = ""; + Image img = ImageBuild.LoadBitmapLoadBitmipImageFromUrl(voucherUrl, out getImgError); + this.pictureBox1.Image = img ?? Properties.Resources.nopic; + } + else + { + this.pictureBox1.ImageLocation = voucherUrl.Replace("https", "http"); + } + } + catch + { + this.pictureBox1.Image = Properties.Resources.nopic; + } + } + + /// 根据选择的模式切换 同意/拒绝 面板 + private void UpdateMode() + { + bool agree = this.rbAgree.Checked; + this.pnlAgree.Visible = agree; + this.pnlReject.Visible = !agree; + } + + private void rbAgree_CheckedChanged(object sender, EventArgs e) + { + UpdateMode(); + } + + /// 上传打款凭证图片 + private void btnUploadImg_Click(object sender, EventArgs e) + { + OpenFileDialog openFileDialog = new OpenFileDialog(); + openFileDialog.Multiselect = false; + openFileDialog.Filter = "图片文件 (*.jpeg;*.jpg;*.png)|*.jpeg;*.jpg;*.png|All files (*.*)|*.*"; + if (openFileDialog.ShowDialog() != DialogResult.OK) + return; + + try + { + using (Image imageSource = Image.FromFile(openFileDialog.FileName)) + { + using (MemoryStream memoryStream = new MemoryStream()) + { + // 统一转成 jpg 压缩后提交,避免原图过大 + Image image = new Bitmap(imageSource); + image.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg); + image.Dispose(); + byte[] imageBytes = memoryStream.ToArray(); + payImageBase64 = Convert.ToBase64String(imageBytes); + } + this.pictureBox1.Image = new Bitmap(imageSource); + } + } + catch (Exception ex) + { + payImageBase64 = ""; + this.pictureBox1.Image = Properties.Resources.nopic; + BaseMsgForm.ShowError("打开凭证图片失败 " + ex.Message); + } + } + + /// 提交审核 + private void btnSubmit_Click(object sender, EventArgs e) + { + if (this.withdrawalInfo == null) + { + BaseMsgForm.ShowError("提现记录数据异常,请重试!"); + return; + } + + bool agree = this.rbAgree.Checked; + string rejectReason = this.txtRejectReason.Text.Trim(); + + if (agree && string.IsNullOrEmpty(payImageBase64)) + { + BaseMsgForm.ShowError("请先上传打款凭证图片!"); + return; + } + if (!agree && string.IsNullOrEmpty(rejectReason)) + { + BaseMsgForm.ShowError("请填写拒绝理由!"); + return; + } + + if (BaseMsgForm.ShowConfirm(agree ? "确定审核通过该提现申请?" : "确定拒绝该提现申请?", "提示").DialogResult != DialogResult.OK) + return; + + this.btnSubmit.Enabled = false; + try + { + var obj = UserLogin.GetSignPostData(new + { + withdrawal_no= withdrawalInfo.withdrawal_no, + audit_result = (agree ? 1 : 2), + pay_trade_no = payImageBase64, + audit_remark= GetHtml.UrlEncodeUtf8(rejectReason) + }); + string data = JsonHelper.SerializeObject(obj); + var url = BaseClass.BuildObjString("user/oem_audit_withdrawal"); + string html = GetHtml.PostUtf8(url, data); + var ret = JsonConvert.DeserializeObject>(html); + if (ret.Code != 200) + { + BaseMsgForm.ShowError("审核提交失败:" + ret.Msg); + return; + } + + BaseMsgForm.ShowInfo(agree ? "审核通过成功!" : "已拒绝该提现申请!"); + this.DialogResult = DialogResult.OK; + this.Close(); + } + catch (Exception ex) + { + BaseMsgForm.ShowError("审核提交异常:" + ex.Message); + } + finally + { + this.btnSubmit.Enabled = true; + } + } + + private void btnCancel_Click(object sender, EventArgs e) + { + this.DialogResult = DialogResult.Cancel; + this.Close(); + } + + private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + ShowImgForm img = new ShowImgForm(BaseClass.LoginApiUrl + withdrawalInfo.account_no); + img.ShowDialog(); + } + + class OemAuditResult + { + public string withdrawal_no { get; set; } + public int status { get; set; } + } + } +} diff --git a/TEMUKJD/WXForms/AdminForms/WXAdminOemWithdrawalAuditForm.resx b/TEMUKJD/WXForms/AdminForms/WXAdminOemWithdrawalAuditForm.resx new file mode 100644 index 0000000..feb8122 --- /dev/null +++ b/TEMUKJD/WXForms/AdminForms/WXAdminOemWithdrawalAuditForm.resx @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAQEAQHAAAAABoCgAAFgAAACgAAABAAAAAgAAAAAEABAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP// + AAD///8AAAAAV3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3UAAAAAAHd3d3d3d3d3d3d3d3d3d3d3d3d3 + d3d3d3d3d3cAAABXd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3UAAHd3d3d3d3d3d3d3d3d3d3d3 + d3d3d3d3d3d3d3d3dwAHd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3cAd3d3d3d4/4d3d3d3d3 + d3d3d3d3d3d3d3d4/4d3d3dwV3d3d3d/iI/3d3d3d3d3d3d3d3d3d3d3d4+Ij3d3d3V3d3d3d/h3d/h3 + d3d3d3d3d3d3d3d3d3d493d/93d3d3d4iIiH+Hd3f4iIiIiIiIiIiP///////4j3d3iIiId3d4////93 + d3d/////////////h3d3d3d4iPd3f3j4/3d3d3d3f4d3d493d3d3d3d3d3d3d3d3d3f3j4j4f3d/h3d3 + d3d4+Hd3+HeIiIiIiIiIiIiIiIiId/h4/4ePd3iHd3d3d3eP+I+HeP/////////////////4f4d3ePh3 + f4d3d3d3d3eIh3d3d3d3d3d3d3d3d3d3d493j4j/h3eIh3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3f4d4 + iId3d3d3d3+I93d3j3j3j///iP+Hf3iHj///h3d/h3d3d3d3f4d3f4f/d3j4d/iIiIj/iId/+P/4iIh3 + d3+Hd3d3d3d/h3d/h3+Hf4d3j3d3d493d3+Hj3d/h3d3f4d3d3d3d3iHd3+HeId4d3ePd/h4j3d3f4eP + iI+Id3d/h3d3d3d4j4d3f4j/////h493949/h3f/+I+Ij/h3d3+Hd3iI//iPh3d/h4+Ij4h3j3j3j3j3 + d4+Hj3d/h3d3f4d4/4iHd3+HeP+Hf4d/h3ePj4f4d/h3f4f/j///d3d/h3iHd3d3j4d3/4d/h3+Hd4+I + d/h3+HeP+IiPj4d3d3+HeId3d3f4d3ePh/////93j4d3d3d3ePd3d3iId3d3f4d4h3d3ePd3d3j3j/iP + iHeP//////+H//iPj/iPd3d/h3iHd3d/h3d3d/h/h3+Hd3iIiP+IiHePh/h4/4h3d3+HePiIh493d3d3 + iHiHeId3d3d3+Hd3d3h3h3eId3d3f4d3iIh393d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d/+IiIiI+H + d3d3d3d3d3d3d4+Hd3d3d3d3d3d3d3d3d3+IiIiIh3d3d3d3d3d3d3d3ePh3d3d3d3d3d3d3d3d3f4d3 + d3d3d3d3d4/////////4ePd3d3d3d3d3d3d3d3d/h3d3d3d3d3d3d3d3d3j///+Hj4d4iIj/////iIiI + iPh3d3d3d3d3d3d3d3d3eIiIiHj4d3iIiIj/iP+IiIiIh3d3d3d3d3d3d3d3d3d3d3d3j4d3d3d3d4+H + j4d3d3d3d3d3d3d3d3d3d3d3d3f///////////h3ePh4+Hd3d3d3d3d3d3d3d3d3d3d3d/+IiIiIiIiI + h3d3j4ePh3d3d3d3d3d3d3d3d3d3d3d3+Hd3d3d3d3d3d3d493/3d3d3d3d3d3d3d3d3d3d3d3ePh4// + //////h3d3f/d/93d3d3d3d3d3d3d3d3d3d3d3j4eP+IiIiIh3d3d3/3f/d3d3d3d3d3d3d3d3d3d3d3 + d4+Hj4d3d3d3d3d3d/h4+Hd3d3d3d3d3d3d3d3d3d3d3ePh4/3d3d3d3d3d3f4ePh3d3d3d3d3d3d3d3 + d3d3d3d3j4d/93d3d3d3d4j/+Hj4d3d3d3d3d3d3d3d3d3d3d3d4+Hf/d3d3d3eP/4iIh4+Hd3d3d3d3 + d3d3d3d3d3d3d3eP93j4d3d3eP+Hd3d3ePd3d3d3d3d3d3d3d3d3d3d3d3f/d4+Hd3ePh3j//4d3/3d3 + d3d3d3d3d3d3d3d3d3d3d3j4ePh3d/93/4iI/4ePh3d3d3d3d3d3d3d3d3d3d3d3d4+Hj4d4+H/4d3d/ + +H/4d3d3d3d3d3d3d3d3d3d3d3d3ePd/h3/3j4d3d3f4ePh3d3d3d3d3d3d3d3d3d3d3d3d3/3j3f4f/ + d3d3d494+Hd3d3d3d3d3d3d3d3d3d3d3d3ePePh/h/93d3d3j3f4d3d3d3d3d3d3d3d3d3d4h3d3d493 + +H/3j3d3d3ePePh3d3d3d3d3d3d3d3d3eHj4d3d3j3j4ePePh3d3d/h4+Hd3d3d3d3d3d3d3d3d/h4+H + d3j4ePd3+Hj4d3eP93+Hd3d3d3d3d3d3d3d3d3j4eP+I/4d/h3ePh4/4j/93j3d3d3d3d3d3d3d3d3d3 + d4+HeIiId/93d3j4d4/4h3j4d3d3d3d3d3d3d3d3d3d3ePiHd3eP93d3d4+Id3d4/4d3d3d3d3d3d3d3 + d3d3d3d3j/////h3d3d3eP/4j//4d3d3d3d3d3d3V3d3d3d3d3d3iP+Ih3d3d3d3eI//iHd3d3d3d3d3 + d3UHd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3cAd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 + d3d3d3dwAHd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dwAAV3d3d3d3d3d3d3d3d3d3d3d3d3d3 + d3d3d3d3d3d1AAAAd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dwAAAAAAV3d3d3d3d3d3d3d3d3d3 + d3d3d3d3d3d3d3UAAAD/gAAAAAAB//gAAAAAAAAf4AAAAAAAAAfAAAAAAAAAA8AAAAAAAAADgAAAAAAA + AAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAYAA + AAAAAAABwAAAAAAAAAPAAAAAAAAAA+AAAAAAAAAH+AAAAAAAAB//gAAAAAAB/w== + + + \ No newline at end of file diff --git a/TEMUKJD/WXForms/ShopForms/WXShopForm.Designer.cs b/TEMUKJD/WXForms/ShopForms/WXShopForm.Designer.cs index eba14b6..cc9716c 100644 --- a/TEMUKJD/WXForms/ShopForms/WXShopForm.Designer.cs +++ b/TEMUKJD/WXForms/ShopForms/WXShopForm.Designer.cs @@ -1,4 +1,4 @@ -namespace TemuKJD.WXForms.ShopForms +namespace TemuKJD.WXForms.ShopForms { partial class WXShopForm { @@ -38,12 +38,14 @@ System.Windows.Forms.TreeNode treeNode8 = new System.Windows.Forms.TreeNode("评分考核"); System.Windows.Forms.TreeNode treeNode9 = new System.Windows.Forms.TreeNode("税务申报"); System.Windows.Forms.TreeNode treeNode10 = new System.Windows.Forms.TreeNode("积分充值"); - System.Windows.Forms.TreeNode treeNode11 = new System.Windows.Forms.TreeNode("店铺管理", new System.Windows.Forms.TreeNode[] { + System.Windows.Forms.TreeNode treeNode11 = new System.Windows.Forms.TreeNode("OEM提现管理"); + System.Windows.Forms.TreeNode treeNode12 = new System.Windows.Forms.TreeNode("店铺管理", new System.Windows.Forms.TreeNode[] { treeNode1, treeNode2, treeNode3, treeNode4, treeNode5, + treeNode11, treeNode6, treeNode7, treeNode8, @@ -160,10 +162,12 @@ treeNode9.Text = "税务申报"; treeNode10.Name = "积分充值"; treeNode10.Text = "积分充值"; - treeNode11.Name = "店铺管理"; - treeNode11.Text = "店铺管理"; + treeNode11.Name = "OEM提现管理"; + treeNode11.Text = "OEM提现管理"; + treeNode12.Name = "店铺管理"; + treeNode12.Text = "店铺管理"; this.tv.Nodes.AddRange(new System.Windows.Forms.TreeNode[] { - treeNode11}); + treeNode12}); this.tv.OverForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(235)))), ((int)(((byte)(235))))); this.tv.Size = new System.Drawing.Size(140, 461); this.tv.TabIndex = 1; diff --git a/TEMUKJD/WXForms/ShopForms/WXShopForm.cs b/TEMUKJD/WXForms/ShopForms/WXShopForm.cs index 0a81287..e017b4e 100644 --- a/TEMUKJD/WXForms/ShopForms/WXShopForm.cs +++ b/TEMUKJD/WXForms/ShopForms/WXShopForm.cs @@ -1,4 +1,4 @@ -using AllBase; +using AllBase; using System; using System.Collections.Generic; using System.ComponentModel; @@ -33,6 +33,7 @@ namespace TemuKJD.WXForms.ShopForms public Lazy oemAccountForm = new Lazy(); public Lazy oemAccountBalanceForm = new Lazy(); public Lazy oemAccountPointsForm = new Lazy(); + public Lazy oemWithdrawalForm = new Lazy(); public WXShopForm() @@ -60,7 +61,7 @@ namespace TemuKJD.WXForms.ShopForms public List getHideTreeNodes() { - List hideNames = new List() { "积分充值", "OEM账号管理", "OEM返现明细", "OEM积分明细", "店铺地址管理", "评分考核", "子账号管理", "高级运费模板", "运费模板", "素材库管理", "订单金额统计", "工作明细统计", "店铺经营统计1" }; + List hideNames = new List() { "积分充值", "OEM账号管理", "OEM返现明细", "OEM积分明细", "OEM提现管理", "店铺地址管理", "评分考核", "子账号管理", "高级运费模板", "运费模板", "素材库管理", "订单金额统计", "工作明细统计", "店铺经营统计1" }; if (BaseClass.SaLevel == 1) { @@ -85,6 +86,7 @@ namespace TemuKJD.WXForms.ShopForms hideNames.Remove("OEM账号管理"); hideNames.Remove("OEM返现明细"); hideNames.Remove("OEM积分明细"); + hideNames.Remove("OEM提现管理"); } foreach (var forbiddenPage in BaseClass.ForbiddenPage.Split(',')) @@ -145,6 +147,9 @@ namespace TemuKJD.WXForms.ShopForms case "OEM积分明细": SetForm(oemAccountPointsForm.Value); break; + case "OEM提现管理": + SetForm(oemWithdrawalForm.Value); + break; } })); }).Start(); diff --git a/TEMUKJD/WXForms/ShopForms/WXShopOemWithdrawalForm.Designer.cs b/TEMUKJD/WXForms/ShopForms/WXShopOemWithdrawalForm.Designer.cs new file mode 100644 index 0000000..7163e81 --- /dev/null +++ b/TEMUKJD/WXForms/ShopForms/WXShopOemWithdrawalForm.Designer.cs @@ -0,0 +1,615 @@ + +namespace TemuKJD.WXForms.ShopForms +{ + partial class WXShopOemWithdrawalForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WXShopOemWithdrawalForm)); + this.panel1 = new System.Windows.Forms.Panel(); + this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.ucGroupBox1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); + this.btnRefreshBalance = new DevComponents.DotNetBar.PanelEx(); + this.lblWithdrawnLabel = new System.Windows.Forms.Label(); + this.lblTotalWithdrawn = new System.Windows.Forms.Label(); + this.lblRebateLabel = new System.Windows.Forms.Label(); + this.lblTotalRebate = new System.Windows.Forms.Label(); + this.lblWithdrawableLabel = new System.Windows.Forms.Label(); + this.lblWithdrawable = new System.Windows.Forms.Label(); + this.ucGroupBox2 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); + this.btnSubmit = new DevComponents.DotNetBar.PanelEx(); + this.btnSelectImage = new DevComponents.DotNetBar.PanelEx(); + this.pictureBoxQr = new System.Windows.Forms.PictureBox(); + this.lblQrLabel = new System.Windows.Forms.Label(); + this.lblAmountLabel = new System.Windows.Forms.Label(); + this.numAmount = new System.Windows.Forms.NumericUpDown(); + this.lblTypeLabel = new System.Windows.Forms.Label(); + this.cmbType = new System.Windows.Forms.ComboBox(); + this.splitContainer2 = new System.Windows.Forms.SplitContainer(); + this.pbLoading = new System.Windows.Forms.PictureBox(); + this.dgvWithdrawal = new TemuKJD.UserComponent.DataGridViewEx(); + this.colNo = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colAmount = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colType = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colAccount = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colStatus = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colApplyTime = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colAuditRemark = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colAuditTime = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colPayTradeNo = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage(); + this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); + this.panel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); + this.splitContainer1.Panel1.SuspendLayout(); + this.splitContainer1.Panel2.SuspendLayout(); + this.splitContainer1.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); + this.ucGroupBox1.SuspendLayout(); + this.ucGroupBox2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBoxQr)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numAmount)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit(); + this.splitContainer2.Panel1.SuspendLayout(); + this.splitContainer2.Panel2.SuspendLayout(); + this.splitContainer2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvWithdrawal)).BeginInit(); + this.SuspendLayout(); + // + // panel1 + // + this.panel1.BackColor = System.Drawing.Color.White; + this.panel1.Controls.Add(this.splitContainer1); + this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel1.Location = new System.Drawing.Point(1, 33); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(1222, 586); + this.panel1.TabIndex = 0; + // + // splitContainer1 + // + this.splitContainer1.BackColor = System.Drawing.Color.White; + this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1; + this.splitContainer1.Location = new System.Drawing.Point(0, 0); + this.splitContainer1.Name = "splitContainer1"; + this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // splitContainer1.Panel1 + // + this.splitContainer1.Panel1.Controls.Add(this.tableLayoutPanel1); + // + // splitContainer1.Panel2 + // + this.splitContainer1.Panel2.Controls.Add(this.splitContainer2); + this.splitContainer1.Panel2.Padding = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.splitContainer1.Size = new System.Drawing.Size(1222, 586); + this.splitContainer1.SplitterDistance = 196; + this.splitContainer1.SplitterWidth = 3; + this.splitContainer1.TabIndex = 0; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 1; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Controls.Add(this.ucGroupBox1, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.ucGroupBox2, 0, 1); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 2; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 45F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 55F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(1222, 196); + this.tableLayoutPanel1.TabIndex = 0; + // + // ucGroupBox1 + // + this.ucGroupBox1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.ucGroupBox1.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND; + this.ucGroupBox1.Controls.Add(this.btnRefreshBalance); + this.ucGroupBox1.Controls.Add(this.lblWithdrawnLabel); + this.ucGroupBox1.Controls.Add(this.lblTotalWithdrawn); + this.ucGroupBox1.Controls.Add(this.lblRebateLabel); + this.ucGroupBox1.Controls.Add(this.lblTotalRebate); + this.ucGroupBox1.Controls.Add(this.lblWithdrawableLabel); + this.ucGroupBox1.Controls.Add(this.lblWithdrawable); + this.ucGroupBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.ucGroupBox1.Location = new System.Drawing.Point(0, 2); + this.ucGroupBox1.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.ucGroupBox1.Name = "ucGroupBox1"; + this.ucGroupBox1.Size = new System.Drawing.Size(1222, 84); + this.ucGroupBox1.TabIndex = 0; + this.ucGroupBox1.TabStop = false; + this.ucGroupBox1.Text = "账户统计"; + // + // btnRefreshBalance + // + this.btnRefreshBalance.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnRefreshBalance.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnRefreshBalance.DisabledBackColor = System.Drawing.Color.Empty; + this.btnRefreshBalance.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnRefreshBalance.Location = new System.Drawing.Point(1130, 41); + this.btnRefreshBalance.Name = "btnRefreshBalance"; + this.btnRefreshBalance.Size = new System.Drawing.Size(60, 23); + this.btnRefreshBalance.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnRefreshBalance.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnRefreshBalance.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnRefreshBalance.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnRefreshBalance.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnRefreshBalance.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnRefreshBalance.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnRefreshBalance.Style.GradientAngle = 90; + this.btnRefreshBalance.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnRefreshBalance.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnRefreshBalance.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnRefreshBalance.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnRefreshBalance.TabIndex = 6; + this.btnRefreshBalance.Text = "刷新"; + this.btnRefreshBalance.Click += new System.EventHandler(this.btnRefreshBalance_Click); + // + // lblWithdrawnLabel + // + this.lblWithdrawnLabel.AutoSize = true; + this.lblWithdrawnLabel.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lblWithdrawnLabel.Location = new System.Drawing.Point(476, 47); + this.lblWithdrawnLabel.Name = "lblWithdrawnLabel"; + this.lblWithdrawnLabel.Size = new System.Drawing.Size(112, 17); + this.lblWithdrawnLabel.TabIndex = 5; + this.lblWithdrawnLabel.Text = "历史累计提现(元):"; + // + // lblTotalWithdrawn + // + this.lblTotalWithdrawn.AutoSize = true; + this.lblTotalWithdrawn.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lblTotalWithdrawn.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(233)))), ((int)(((byte)(72)))), ((int)(((byte)(66))))); + this.lblTotalWithdrawn.Location = new System.Drawing.Point(596, 42); + this.lblTotalWithdrawn.Name = "lblTotalWithdrawn"; + this.lblTotalWithdrawn.Size = new System.Drawing.Size(45, 22); + this.lblTotalWithdrawn.TabIndex = 4; + this.lblTotalWithdrawn.Text = "0.00"; + // + // lblRebateLabel + // + this.lblRebateLabel.AutoSize = true; + this.lblRebateLabel.Location = new System.Drawing.Point(239, 47); + this.lblRebateLabel.Name = "lblRebateLabel"; + this.lblRebateLabel.Size = new System.Drawing.Size(112, 17); + this.lblRebateLabel.TabIndex = 3; + this.lblRebateLabel.Text = "历史累计返利(元):"; + // + // lblTotalRebate + // + this.lblTotalRebate.AutoSize = true; + this.lblTotalRebate.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lblTotalRebate.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(140)))), ((int)(((byte)(0))))); + this.lblTotalRebate.Location = new System.Drawing.Point(359, 42); + this.lblTotalRebate.Name = "lblTotalRebate"; + this.lblTotalRebate.Size = new System.Drawing.Size(45, 22); + this.lblTotalRebate.TabIndex = 2; + this.lblTotalRebate.Text = "0.00"; + // + // lblWithdrawableLabel + // + this.lblWithdrawableLabel.AutoSize = true; + this.lblWithdrawableLabel.Location = new System.Drawing.Point(20, 47); + this.lblWithdrawableLabel.Name = "lblWithdrawableLabel"; + this.lblWithdrawableLabel.Size = new System.Drawing.Size(100, 17); + this.lblWithdrawableLabel.TabIndex = 1; + this.lblWithdrawableLabel.Text = "可提现总额(元):"; + // + // lblWithdrawable + // + this.lblWithdrawable.AutoSize = true; + this.lblWithdrawable.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lblWithdrawable.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.lblWithdrawable.Location = new System.Drawing.Point(140, 42); + this.lblWithdrawable.Name = "lblWithdrawable"; + this.lblWithdrawable.Size = new System.Drawing.Size(45, 22); + this.lblWithdrawable.TabIndex = 0; + this.lblWithdrawable.Text = "0.00"; + // + // ucGroupBox2 + // + this.ucGroupBox2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.ucGroupBox2.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND; + this.ucGroupBox2.Controls.Add(this.btnSubmit); + this.ucGroupBox2.Controls.Add(this.btnSelectImage); + this.ucGroupBox2.Controls.Add(this.pictureBoxQr); + this.ucGroupBox2.Controls.Add(this.lblQrLabel); + this.ucGroupBox2.Controls.Add(this.lblAmountLabel); + this.ucGroupBox2.Controls.Add(this.numAmount); + this.ucGroupBox2.Controls.Add(this.lblTypeLabel); + this.ucGroupBox2.Controls.Add(this.cmbType); + this.ucGroupBox2.Dock = System.Windows.Forms.DockStyle.Fill; + this.ucGroupBox2.Location = new System.Drawing.Point(0, 90); + this.ucGroupBox2.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.ucGroupBox2.Name = "ucGroupBox2"; + this.ucGroupBox2.Size = new System.Drawing.Size(1222, 104); + this.ucGroupBox2.TabIndex = 1; + this.ucGroupBox2.TabStop = false; + this.ucGroupBox2.Text = "申请提现"; + // + // btnSubmit + // + this.btnSubmit.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnSubmit.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnSubmit.DisabledBackColor = System.Drawing.Color.Empty; + this.btnSubmit.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnSubmit.Location = new System.Drawing.Point(850, 58); + this.btnSubmit.Name = "btnSubmit"; + this.btnSubmit.Size = new System.Drawing.Size(86, 27); + this.btnSubmit.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnSubmit.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSubmit.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSubmit.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnSubmit.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnSubmit.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnSubmit.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnSubmit.Style.GradientAngle = 90; + this.btnSubmit.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnSubmit.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSubmit.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSubmit.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnSubmit.TabIndex = 7; + this.btnSubmit.Text = "提交申请"; + this.btnSubmit.Click += new System.EventHandler(this.btnSubmit_Click); + // + // btnSelectImage + // + this.btnSelectImage.CanvasColor = System.Drawing.SystemColors.Control; + this.btnSelectImage.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnSelectImage.DisabledBackColor = System.Drawing.Color.Empty; + this.btnSelectImage.Location = new System.Drawing.Point(742, 58); + this.btnSelectImage.Name = "btnSelectImage"; + this.btnSelectImage.Size = new System.Drawing.Size(86, 27); + this.btnSelectImage.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnSelectImage.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnSelectImage.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnSelectImage.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnSelectImage.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSelectImage.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnSelectImage.Style.GradientAngle = 90; + this.btnSelectImage.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnSelectImage.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnSelectImage.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSelectImage.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSelectImage.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnSelectImage.TabIndex = 6; + this.btnSelectImage.Text = "选择图片"; + this.btnSelectImage.Click += new System.EventHandler(this.btnSelectImage_Click); + // + // pictureBoxQr + // + this.pictureBoxQr.BackColor = System.Drawing.Color.White; + this.pictureBoxQr.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBoxQr.Image = global::TemuKJD.Properties.Resources.nopic; + this.pictureBoxQr.Location = new System.Drawing.Point(660, 32); + this.pictureBoxQr.Name = "pictureBoxQr"; + this.pictureBoxQr.Size = new System.Drawing.Size(76, 56); + this.pictureBoxQr.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pictureBoxQr.TabIndex = 5; + this.pictureBoxQr.TabStop = false; + // + // lblQrLabel + // + this.lblQrLabel.AutoSize = true; + this.lblQrLabel.Location = new System.Drawing.Point(570, 52); + this.lblQrLabel.Name = "lblQrLabel"; + this.lblQrLabel.Size = new System.Drawing.Size(80, 17); + this.lblQrLabel.TabIndex = 4; + this.lblQrLabel.Text = "收款二维码:"; + // + // lblAmountLabel + // + this.lblAmountLabel.AutoSize = true; + this.lblAmountLabel.Location = new System.Drawing.Point(250, 52); + this.lblAmountLabel.Name = "lblAmountLabel"; + this.lblAmountLabel.Size = new System.Drawing.Size(88, 17); + this.lblAmountLabel.TabIndex = 3; + this.lblAmountLabel.Text = "提现金额(元):"; + // + // numAmount + // + this.numAmount.DecimalPlaces = 2; + this.numAmount.Location = new System.Drawing.Point(365, 48); + this.numAmount.Maximum = new decimal(new int[] { + 100000000, + 0, + 0, + 0}); + this.numAmount.Name = "numAmount"; + this.numAmount.Size = new System.Drawing.Size(140, 23); + this.numAmount.TabIndex = 2; + this.numAmount.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + this.numAmount.ThousandsSeparator = true; + this.numAmount.Value = new decimal(new int[] { + 10, + 0, + 0, + 0}); + // + // lblTypeLabel + // + this.lblTypeLabel.AutoSize = true; + this.lblTypeLabel.Location = new System.Drawing.Point(20, 52); + this.lblTypeLabel.Name = "lblTypeLabel"; + this.lblTypeLabel.Size = new System.Drawing.Size(68, 17); + this.lblTypeLabel.TabIndex = 1; + this.lblTypeLabel.Text = "提现方式:"; + // + // cmbType + // + this.cmbType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbType.FormattingEnabled = true; + this.cmbType.Items.AddRange(new object[] { + "支付宝"}); + this.cmbType.Location = new System.Drawing.Point(100, 48); + this.cmbType.Name = "cmbType"; + this.cmbType.Size = new System.Drawing.Size(120, 25); + this.cmbType.TabIndex = 0; + // + // splitContainer2 + // + this.splitContainer2.BackColor = System.Drawing.Color.White; + this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer2.FixedPanel = System.Windows.Forms.FixedPanel.Panel2; + this.splitContainer2.Location = new System.Drawing.Point(2, 0); + this.splitContainer2.Name = "splitContainer2"; + this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // splitContainer2.Panel1 + // + this.splitContainer2.Panel1.Controls.Add(this.pbLoading); + this.splitContainer2.Panel1.Controls.Add(this.dgvWithdrawal); + this.splitContainer2.Panel1.Padding = new System.Windows.Forms.Padding(4, 0, 4, 0); + // + // splitContainer2.Panel2 + // + this.splitContainer2.Panel2.Controls.Add(this.ucSplitPage1); + this.splitContainer2.Panel2.Controls.Add(this.statusBar); + this.splitContainer2.Size = new System.Drawing.Size(1218, 387); + this.splitContainer2.SplitterDistance = 358; + this.splitContainer2.TabIndex = 0; + // + // pbLoading + // + this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None; + this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue; + this.pbLoading.Location = new System.Drawing.Point(584, 154); + this.pbLoading.Name = "pbLoading"; + this.pbLoading.Size = new System.Drawing.Size(50, 50); + this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pbLoading.TabIndex = 6; + this.pbLoading.TabStop = false; + this.pbLoading.Visible = false; + // + // dgvWithdrawal + // + this.dgvWithdrawal.AllowUserToAddRows = false; + this.dgvWithdrawal.AllowUserToDeleteRows = false; + dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvWithdrawal.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3; + this.dgvWithdrawal.AutoRowNumber = true; + this.dgvWithdrawal.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; + this.dgvWithdrawal.BackgroundColor = System.Drawing.Color.White; + this.dgvWithdrawal.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle4.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvWithdrawal.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4; + this.dgvWithdrawal.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvWithdrawal.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.colNo, + this.colAmount, + this.colType, + this.colAccount, + this.colStatus, + this.colApplyTime, + this.colAuditRemark, + this.colAuditTime, + this.colPayTradeNo}); + this.dgvWithdrawal.Dock = System.Windows.Forms.DockStyle.Fill; + this.dgvWithdrawal.Location = new System.Drawing.Point(4, 0); + this.dgvWithdrawal.MultiSelectCheckBox = false; + this.dgvWithdrawal.Name = "dgvWithdrawal"; + this.dgvWithdrawal.ReadOnly = true; + this.dgvWithdrawal.RowTemplate.Height = 23; + this.dgvWithdrawal.ShowCellErrors = false; + this.dgvWithdrawal.Size = new System.Drawing.Size(1210, 358); + this.dgvWithdrawal.TabIndex = 5; + // + // colNo + // + this.colNo.FillWeight = 38F; + this.colNo.HeaderText = "提现单号"; + this.colNo.Name = "colNo"; + this.colNo.ReadOnly = true; + // + // colAmount + // + this.colAmount.FillWeight = 22F; + this.colAmount.HeaderText = "提现金额"; + this.colAmount.Name = "colAmount"; + this.colAmount.ReadOnly = true; + // + // colType + // + this.colType.FillWeight = 20F; + this.colType.HeaderText = "提现方式"; + this.colType.Name = "colType"; + this.colType.ReadOnly = true; + // + // colAccount + // + this.colAccount.FillWeight = 26F; + this.colAccount.HeaderText = "收款账号"; + this.colAccount.Name = "colAccount"; + this.colAccount.ReadOnly = true; + // + // colStatus + // + this.colStatus.FillWeight = 20F; + this.colStatus.HeaderText = "审核状态"; + this.colStatus.Name = "colStatus"; + this.colStatus.ReadOnly = true; + // + // colApplyTime + // + this.colApplyTime.FillWeight = 30F; + this.colApplyTime.HeaderText = "申请时间"; + this.colApplyTime.Name = "colApplyTime"; + this.colApplyTime.ReadOnly = true; + // + // colAuditRemark + // + this.colAuditRemark.FillWeight = 38F; + this.colAuditRemark.HeaderText = "审核消息"; + this.colAuditRemark.Name = "colAuditRemark"; + this.colAuditRemark.ReadOnly = true; + // + // colAuditTime + // + this.colAuditTime.FillWeight = 30F; + this.colAuditTime.HeaderText = "审核时间"; + this.colAuditTime.Name = "colAuditTime"; + this.colAuditTime.ReadOnly = true; + // + // colPayTradeNo + // + this.colPayTradeNo.FillWeight = 30F; + this.colPayTradeNo.HeaderText = "打款订单"; + this.colPayTradeNo.Name = "colPayTradeNo"; + this.colPayTradeNo.ReadOnly = true; + // + // ucSplitPage1 + // + this.ucSplitPage1.CurrentPage = 1; + this.ucSplitPage1.Dock = System.Windows.Forms.DockStyle.Right; + this.ucSplitPage1.IsShowPageSize = true; + this.ucSplitPage1.Location = new System.Drawing.Point(829, 0); + this.ucSplitPage1.Margin = new System.Windows.Forms.Padding(0); + this.ucSplitPage1.Name = "ucSplitPage1"; + this.ucSplitPage1.PageSize = 50; + this.ucSplitPage1.Size = new System.Drawing.Size(389, 25); + this.ucSplitPage1.TabIndex = 4; + this.ucSplitPage1.TotalPage = 1; + this.ucSplitPage1.PageChange += new System.Action(this.ucSplitPage1_PageChange); + // + // statusBar + // + this.statusBar.BackColor = System.Drawing.Color.White; + this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill; + this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.statusBar.Location = new System.Drawing.Point(0, 0); + this.statusBar.Margin = new System.Windows.Forms.Padding(0); + this.statusBar.Name = "statusBar"; + this.statusBar.Size = new System.Drawing.Size(1218, 25); + this.statusBar.TabIndex = 1; + // + // WXShopOemWithdrawalForm + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(1224, 620); + this.Controls.Add(this.panel1); + this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.KeyPreview = true; + this.Name = "WXShopOemWithdrawalForm"; + this.Text = "OEM提现管理"; + this.TitleText = "OEM提现管理"; + this.VisibleChanged += new System.EventHandler(this.WXShopOemWithdrawalForm_VisibleChanged); + this.Controls.SetChildIndex(this.panel1, 0); + this.panel1.ResumeLayout(false); + this.splitContainer1.Panel1.ResumeLayout(false); + this.splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); + this.splitContainer1.ResumeLayout(false); + this.tableLayoutPanel1.ResumeLayout(false); + this.ucGroupBox1.ResumeLayout(false); + this.ucGroupBox1.PerformLayout(); + this.ucGroupBox2.ResumeLayout(false); + this.ucGroupBox2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBoxQr)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numAmount)).EndInit(); + this.splitContainer2.Panel1.ResumeLayout(false); + this.splitContainer2.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit(); + this.splitContainer2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvWithdrawal)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.SplitContainer splitContainer1; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private UserComponent.UcGroupBoxEx ucGroupBox1; + private DevComponents.DotNetBar.PanelEx btnRefreshBalance; + private System.Windows.Forms.Label lblWithdrawnLabel; + private System.Windows.Forms.Label lblTotalWithdrawn; + private System.Windows.Forms.Label lblRebateLabel; + private System.Windows.Forms.Label lblTotalRebate; + private System.Windows.Forms.Label lblWithdrawableLabel; + private System.Windows.Forms.Label lblWithdrawable; + private UserComponent.UcGroupBoxEx ucGroupBox2; + private DevComponents.DotNetBar.PanelEx btnSubmit; + private DevComponents.DotNetBar.PanelEx btnSelectImage; + private System.Windows.Forms.PictureBox pictureBoxQr; + private System.Windows.Forms.Label lblQrLabel; + private System.Windows.Forms.Label lblAmountLabel; + private System.Windows.Forms.NumericUpDown numAmount; + private System.Windows.Forms.Label lblTypeLabel; + private System.Windows.Forms.ComboBox cmbType; + private System.Windows.Forms.SplitContainer splitContainer2; + private System.Windows.Forms.PictureBox pbLoading; + private UserComponent.DataGridViewEx dgvWithdrawal; + private UserControls.UcSplitPage ucSplitPage1; + private UserControls.StatusBarUserControl statusBar; + private System.Windows.Forms.DataGridViewTextBoxColumn colNo; + private System.Windows.Forms.DataGridViewTextBoxColumn colAmount; + private System.Windows.Forms.DataGridViewTextBoxColumn colType; + private System.Windows.Forms.DataGridViewTextBoxColumn colAccount; + private System.Windows.Forms.DataGridViewTextBoxColumn colStatus; + private System.Windows.Forms.DataGridViewTextBoxColumn colApplyTime; + private System.Windows.Forms.DataGridViewTextBoxColumn colAuditRemark; + private System.Windows.Forms.DataGridViewTextBoxColumn colAuditTime; + private System.Windows.Forms.DataGridViewTextBoxColumn colPayTradeNo; + } +} diff --git a/TEMUKJD/WXForms/ShopForms/WXShopOemWithdrawalForm.cs b/TEMUKJD/WXForms/ShopForms/WXShopOemWithdrawalForm.cs new file mode 100644 index 0000000..e9a7793 --- /dev/null +++ b/TEMUKJD/WXForms/ShopForms/WXShopOemWithdrawalForm.cs @@ -0,0 +1,358 @@ +using AllBase; +using AllBase.Extension; +using AllBase.Model.Result; +using AllBase.Model.Result.WXResult; +using NaiBa.Util.Extension; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Drawing.Printing; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using TemuKJD.BaseForms; +using TemuKJD.Extension; +using Work; +using Work.Api; +using Work.BLL.Tools; + +namespace TemuKJD.WXForms.ShopForms +{ + /// + /// 商户(OEM)提现管理: + /// 上半部分:账户统计(可提现总额 / 历史累计返利 / 历史累计提现) + 申请提现(上传收款二维码图片); + /// 下半部分:已申请的提现记录列表(DataGridView 绑定方式,参考 WXAdminOemWithdrawal)。 + /// 接口约定(与后台 user/* 系列一致): + /// user/oem_withdrawal_summary → data: { withdrawable_amount(分), total_rebate(分), total_withdrawn(分) } + /// user/oem_withdrawal_apply → 参数 amount(分) / withdrawal_type / qrcode_base64 + /// user/oem_withdrawals → 分页返回提现记录列表 + /// + public partial class WXShopOemWithdrawalForm : BaseForms.BaseGeneralForm + { + private BindingList dataList = new BindingList(); + + /// 收款二维码图片(base64) + private string qrCodeBase64 = ""; + + public WXShopOemWithdrawalForm() + { + InitializeComponent(); + InitBindingDataGridView(); + this.cmbType.SelectedIndex = 0; + } + + #region 提现记录列表(DataGridView 绑定方式) + /// + /// 初始化 DataGridView 绑定:列与模型字段绑定(参考 WXAdminOemWithdrawal.InitBindingDataGridView) + /// + private void InitBindingDataGridView() + { + this.dgvWithdrawal.AutoGenerateColumns = false; + + this.colNo.DataPropertyName = nameof(WXOemWithdrawalInfo.withdrawal_no); + this.colAmount.DataPropertyName = nameof(WXOemWithdrawalInfo.amount); + this.colType.DataPropertyName = nameof(WXOemWithdrawalInfo.withdrawal_type_string); + this.colAccount.DataPropertyName = nameof(WXOemWithdrawalInfo.account_no); + this.colStatus.DataPropertyName = nameof(WXOemWithdrawalInfo.status_string); + this.colApplyTime.DataPropertyName = nameof(WXOemWithdrawalInfo.created_at); + this.colAuditRemark.DataPropertyName = nameof(WXOemWithdrawalInfo.audit_remark); + this.colAuditTime.DataPropertyName = nameof(WXOemWithdrawalInfo.audit_time); + this.colPayTradeNo.DataPropertyName = nameof(WXOemWithdrawalInfo.pay_trade_no); + + // 时间列格式化 + this.colApplyTime.DefaultCellStyle.Format = "yyyy-MM-dd HH:mm:ss"; + this.colAuditTime.DefaultCellStyle.Format = "yyyy-MM-dd HH:mm:ss"; + + // 金额列右对齐 + this.colAmount.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; + + // 注册金额格式化事件(分→元) + this.dgvWithdrawal.CellFormatting += DgvWithdrawal_CellFormatting; + + this.dgvWithdrawal.DataSource = dataList; + } + + private void DgvWithdrawal_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) + { + // 金额列:将分转换为元 + if (e.ColumnIndex == this.colAmount.Index && e.Value != null && e.Value != DBNull.Value) + { + if (long.TryParse(e.Value.ToString(), out long amountInFen)) + { + e.Value = (amountInFen / 100m).ToString("F2"); + e.FormattingApplied = true; + } + } + } + #endregion + + #region 数据加载 + private void WXShopOemWithdrawalForm_VisibleChanged(object sender, EventArgs e) + { + if (this.Visible && first) + { + first = false; + RefreshAll(); + } + } + + bool first = true; + + /// + /// 刷新账户统计 + 提现记录 + /// + private void RefreshAll() + { + LoadSummary(); + GetWithdrawals(ucSplitPage1.CurrentPage); + } + + /// + /// 加载账户统计:可提现总额 / 历史累计返利 / 历史累计提现 + /// + public void LoadSummary() + { + this.btnRefreshBalance.Enabled = false; + Task.Run(() => + { + try + { + var url = BaseClass.BuildObjString("user/oem_settle_flows"); + var obj = UserLogin.GetSignPostData(new { }); + string data = JsonHelper.SerializeObject(obj); + var html = GetHtml.PostUtf8(url, data); + var ret = JsonConvert.DeserializeObject>(html); + Invoke(new Action(() => + { + if (ret.Code != 200) + { + BaseMsgForm.ShowError("刷新失败:" + ret.Msg); + return; + } + + this.lblWithdrawable.Text = (ret.Data.available_balance / 100m).ToString("F2"); + this.lblTotalRebate.Text = (ret.Data.total_rebate_amount / 100m).ToString("F2"); + this.lblTotalWithdrawn.Text = (ret.Data.total_withdraw_amount / 100m).ToString("F2"); + })); + } + finally + { + Invoke(new Action(() => this.btnRefreshBalance.Enabled = true)); + } + }); + } + + + + /// + /// 加载提现记录(分页) + /// + public void GetWithdrawals(int page) + { + this.pbLoading.Visible = true; + this.dgvWithdrawal.Rows.Clear(); + dataList.Clear(); + int pageSize = this.ucSplitPage1.PageSize; + Task.Run(() => + { + int pageCount; + decimal seconds; + List list = GetOemWithdrawals(out pageCount, out seconds, page, pageSize); + + Invoke(new Action(() => + { + this.ucSplitPage1.TotalPage = pageCount; + list.ForEach(a => dataList.Add(a)); + this.pbLoading.Visible = false; + this.statusBar.lblTaskStatus.Text = "提现记录查询完毕"; +#if DEBUG + this.statusBar.lblTaskStatus.Text += ",耗时:" + seconds; +#endif + })); + }); + } + + public List GetOemWithdrawals(out int pageCount, out decimal seconds, int page = 1, int pageSize = 200) + { + List list = new List(); + pageCount = 1; + seconds = 0; + + var url = BaseClass.BuildObjString("user/oem_withdrawals"); + var obj = UserLogin.GetSignPostData(new + { + page = page, + page_size = pageSize + }); + + string data = JsonHelper.SerializeObject(obj); + var html = GetHtml.PostUtf8(url, data); + var ret = JsonConvert.DeserializeObject>(html); + if (ret.Code != 200) + { + Invoke(new Action(() => + { + BaseMsgForm.ShowError("提现记录获取失败,请重试!" + ret.Msg); + })); + return list; + } + + + seconds = BaseRegex.GetDecimalJson(ref html, "seconds"); + pageCount = Math.Ceiling(1.0 * ret.Total / pageSize).ParseToInt(); + pageCount = Math.Max(pageCount, 1); + + return ret.Data; + } + #endregion + + #region 事件 + /// 刷新可提现总额等账户统计 + private void btnRefreshBalance_Click(object sender, EventArgs e) + { + LoadSummary(); + } + + /// 选择收款二维码图片 + private void btnSelectImage_Click(object sender, EventArgs e) + { + OpenFileDialog openFileDialog = new OpenFileDialog(); + openFileDialog.Multiselect = false; + openFileDialog.Filter = "图片文件 (*.jpeg;*.jpg;*.png;*.bmp)|*.jpeg;*.jpg;*.png;*.bmp|All files (*.*)|*.*"; + if (openFileDialog.ShowDialog() != DialogResult.OK) + return; + + try + { + using (Image imageSource = Image.FromFile(openFileDialog.FileName)) + { + using (MemoryStream memoryStream = new MemoryStream()) + { + // 统一转成 jpg 压缩后提交,避免原图过大 + Image image = new Bitmap(imageSource); + image.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg); + image.Dispose(); + byte[] imageBytes = memoryStream.ToArray(); + qrCodeBase64 = Convert.ToBase64String(imageBytes); + } + this.pictureBoxQr.Image = new Bitmap(imageSource); + } + } + catch (Exception ex) + { + qrCodeBase64 = ""; + this.pictureBoxQr.Image = Properties.Resources.nopic; + BaseMsgForm.ShowError("打开二维码图片失败 " + ex.Message); + } + } + + /// 提交提现申请 + private void btnSubmit_Click(object sender, EventArgs e) + { + decimal amountYuan = this.numAmount.Value; + if (amountYuan <= 0) + { + BaseMsgForm.ShowError("请输入提现金额!"); + return; + } + if (string.IsNullOrEmpty(qrCodeBase64)) + { + BaseMsgForm.ShowError("请先上传收款二维码图片!"); + return; + } + + if (BaseMsgForm.ShowConfirm("确定提交提现申请?提现金额:" + amountYuan.ToString("F2") + " 元", "提示").DialogResult != DialogResult.OK) + return; + + this.btnSubmit.Enabled = false; + try + { + // 金额(元) → 分 + long amountFen = (long)(amountYuan * 100m); + // 提现方式:1银行卡 2支付宝 3微信 4其他 + int withdrawalType = GetWithdrawalType(this.cmbType.Text); + + string data = ""; + var obj = UserLogin.GetSignPostData(new + { + amount = amountFen, + withdrawal_type = withdrawalType, + account_no = qrCodeBase64, + }); + data = JsonHelper.SerializeObject(obj); + //data.Append(UserLogin.GetSignaturex()); + //data.Append("&amount=" + amountFen); + //data.Append("&withdrawal_type=" + withdrawalType); + //data.Append("&qrcode_base64=" + GetHtml.UrlEncodeUtf8(qrCodeBase64)); + + var url = BaseClass.BuildObjString("user/apply_oem_withdrawal"); + string html = GetHtml.PostUtf8(url, data.ToString()); + var ret = JsonConvert.DeserializeObject(html); + + if (ret.Code != 200) + { + BaseMsgForm.ShowError("提现申请提交失败:" + ret.Msg); + return; + } + + BaseMsgForm.ShowInfo("提现申请提交成功!"); + + // 提交成功后:清空输入、刷新统计与记录 + this.numAmount.Value = 0; + this.qrCodeBase64 = ""; + this.pictureBoxQr.Image = Properties.Resources.nopic; + RefreshAll(); + } + catch (Exception ex) + { + BaseMsgForm.ShowError("提现申请提交异常:" + ex.Message); + } + finally + { + this.btnSubmit.Enabled = true; + } + } + + /// + /// 提现方式名称 → 类型值:1银行卡 2支付宝 3微信 4其他 + /// + private static int GetWithdrawalType(string typeName) + { + switch (typeName) + { + case "支付宝": return 2; + case "银行卡": return 1; + case "其他": return 4; + default: return 3; // 微信收款 + } + } + + private void ucSplitPage1_PageChange(object obj) + { + GetWithdrawals(ucSplitPage1.CurrentPage); + } + #endregion + } + + class oemflowsStatistics + { + /// + /// 当前可提现 + /// + public long available_balance { get; set; } + /// + /// 历史累计返利 + /// + public long total_rebate_amount { get; set; } + /// + /// 历史累计提现 + /// + public long total_withdraw_amount { get; set; } + } +} diff --git a/TEMUKJD/WXForms/ShopForms/WXShopOemWithdrawalForm.resx b/TEMUKJD/WXForms/ShopForms/WXShopOemWithdrawalForm.resx new file mode 100644 index 0000000..85d3237 --- /dev/null +++ b/TEMUKJD/WXForms/ShopForms/WXShopOemWithdrawalForm.resx @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAQEAQAAAAAABoCgAAFgAAACgAAABAAAAAgAAAAAEABAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP// + AAD///8AAAAAV3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3UAAAAAAHd3d3d3d3d3d3d3d3d3d3d3d3d3 + d3d3d3d3d3cAAABXd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3UAAHd3d3d3d3d3d3d3d3d3d3d3 + d3d3d3d3d3d3d3d3dwAHd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3cAd3d3d3d4/4d3d3d3d3 + d3d3d3d3d3d3d3d4/4d3d3dwV3d3d3d/iI/3d3d3d3d3d3d3d3d3d3d3d4+Ij3d3d3V3d3d3d/h3d/h3 + d3d3d3d3d3d3d3d3d3d493d/93d3d3d4iIiH+Hd3f4iIiIiIiIiIiP///////4j3d3iIiId3d4////93 + d3d/////////////h3d3d3d4iPd3f3j4/3d3d3d3f4d3d493d3d3d3d3d3d3d3d3d3f3j4j4f3d/h3d3 + d3d4+Hd3+HeIiIiIiIiIiIiIiIiId/h4/4ePd3iHd3d3d3eP+I+HeP/////////////////4f4d3ePh3 + f4d3d3d3d3eIh3d3d3d3d3d3d3d3d3d3d493j4j/h3eIh3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3f4d4 + iId3d3d3d3+I93d3j3j3j///iP+Hf3iHj///h3d/h3d3d3d3f4d3f4f/d3j4d/iIiIj/iId/+P/4iIh3 + d3+Hd3d3d3d/h3d/h3+Hf4d3j3d3d493d3+Hj3d/h3d3f4d3d3d3d3iHd3+HeId4d3ePd/h4j3d3f4eP + iI+Id3d/h3d3d3d4j4d3f4j/////h493949/h3f/+I+Ij/h3d3+Hd3iI//iPh3d/h4+Ij4h3j3j3j3j3 + d4+Hj3d/h3d3f4d4/4iHd3+HeP+Hf4d/h3ePj4f4d/h3f4f/j///d3d/h3iHd3d3j4d3/4d/h3+Hd4+I + d/h3+HeP+IiPj4d3d3+HeId3d3f4d3ePh/////93j4d3d3d3ePd3d3iId3d3f4d4h3d3ePd3d3j3j/iP + iHeP//////+H//iPj/iPd3d/h3iHd3d/h3d3d/h/h3+Hd3iIiP+IiHePh/h4/4h3d3+HePiIh493d3d3 + iHiHeId3d3d3+Hd3d3h3h3eId3d3f4d3iIh393d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d/+IiIiI+H + d3d3d3d3d3d3d4+Hd3d3d3d3d3d3d3d3d3+IiIiIh3d3d3d3d3d3d3d3ePh3d3d3d3d3d3d3d3d3f4d3 + d3d3d3d3d4/////////4ePd3d3d3d3d3d3d3d3d/h3d3d3d3d3d3d3d3d3j///+Hj4d4iIj/////iIiI + iPh3d3d3d3d3d3d3d3d3eIiIiHj4d3iIiIj/iP+IiIiIh3d3d3d3d3d3d3d3d3d3d3d3j4d3d3d3d4+H + j4d3d3d3d3d3d3d3d3d3d3d3d3f///////////h3ePh4+Hd3d3d3d3d3d3d3d3d3d3d3d/+IiIiIiIiI + h3d3j4ePh3d3d3d3d3d3d3d3d3d3d3d3+Hd3d3d3d3d3d3d493/3d3d3d3d3d3d3d3d3d3d3d3ePh4// + //////h3d3f/d/93d3d3d3d3d3d3d3d3d3d3d3j4eP+IiIiIh3d3d3/3f/d3d3d3d3d3d3d3d3d3d3d3 + d4+Hj4d3d3d3d3d3d/h4+Hd3d3d3d3d3d3d3d3d3d3d3ePh4/3d3d3d3d3d3f4ePh3d3d3d3d3d3d3d3 + d3d3d3d3j4d/93d3d3d3d4j/+Hj4d3d3d3d3d3d3d3d3d3d3d3d4+Hf/d3d3d3eP/4iIh4+Hd3d3d3d3 + d3d3d3d3d3d3d3eP93j4d3d3eP+Hd3d3ePd3d3d3d3d3d3d3d3d3d3d3d3f/d4+Hd3ePh3j//4d3/3d3 + d3d3d3d3d3d3d3d3d3d3d3j4ePh3d/93/4iI/4ePh3d3d3d3d3d3d3d3d3d3d3d3d4+Hj4d4+H/4d3d/ + +H/4d3d3d3d3d3d3d3d3d3d3d3d3ePd/h3/3j4d3d3f4ePh3d3d3d3d3d3d3d3d3d3d3d3d3/3j3f4f/ + d3d3d494+Hd3d3d3d3d3d3d3d3d3d3d3d3ePePh/h/93d3d3j3f4d3d3d3d3d3d3d3d3d3d4h3d3d493 + +H/3j3d3d3ePePh3d3d3d3d3d3d3d3d3eHj4d3d3j3j4ePePh3d3d/h4+Hd3d3d3d3d3d3d3d3d/h4+H + d3j4ePd3+Hj4d3eP93+Hd3d3d3d3d3d3d3d3d3j4eP+I/4d/h3ePh4/4j/93j3d3d3d3d3d3d3d3d3d3 + d4+HeIiId/93d3j4d4/4h3j4d3d3d3d3d3d3d3d3d3d3ePiHd3eP93d3d4+Id3d4/4d3d3d3d3d3d3d3 + d3d3d3d3j/////h3d3d3eP/4j//4d3d3d3d3d3d3V3d3d3d3d3d3iP+Ih3d3d3d3eI//iHd3d3d3d3d3 + d3UHd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3cAd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3 + d3d3d3dwAHd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dwAAV3d3d3d3d3d3d3d3d3d3d3d3d3d3 + d3d3d3d3d3d1AAAAd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dwAAAAAAV3d3d3d3d3d3d3d3d3d3 + d3d3d3d3d3d3d3UAAAD/gAAAAAAB//gAAAAAAAAf4AAAAAAAAAfAAAAAAAAAA8AAAAAAAAADgAAAAAAA + AAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAYAA + AAAAAAABwAAAAAAAAAPAAAAAAAAAA+AAAAAAAAAH+AAAAAAAAB//gAAAAAAB/w== + + + \ No newline at end of file diff --git a/Update/Update/Properties/Resources.Designer.cs b/Update/Update/Properties/Resources.Designer.cs index 95ddb3e..4798e17 100644 --- a/Update/Update/Properties/Resources.Designer.cs +++ b/Update/Update/Properties/Resources.Designer.cs @@ -19,7 +19,7 @@ namespace Update.Properties { // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen // (以 /str 作为命令选项),或重新生成 VS 项目。 - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "18.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { diff --git a/Update/Update/Properties/Settings.Designer.cs b/Update/Update/Properties/Settings.Designer.cs index 74146ed..4243666 100644 --- a/Update/Update/Properties/Settings.Designer.cs +++ b/Update/Update/Properties/Settings.Designer.cs @@ -12,7 +12,7 @@ namespace Update.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "18.9.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); diff --git a/Update/Update/Update.csproj b/Update/Update/Update.csproj index dba7ba8..eb549f9 100644 --- a/Update/Update/Update.csproj +++ b/Update/Update/Update.csproj @@ -8,7 +8,7 @@ WinExe Update Update - v4.5.2 + v4.6.2 512 true diff --git a/Update/Update/app.config b/Update/Update/app.config index ff99501..2a0024f 100644 --- a/Update/Update/app.config +++ b/Update/Update/app.config @@ -1,3 +1,3 @@ - + diff --git a/Work/CollectClass/GetProductOnlineClass.cs b/Work/CollectClass/GetProductOnlineClass.cs index 7173105..cdb84bc 100644 --- a/Work/CollectClass/GetProductOnlineClass.cs +++ b/Work/CollectClass/GetProductOnlineClass.cs @@ -10,6 +10,7 @@ using System.Linq; //using JavaScriptEngineSwitcher.V8; //using JavaScriptEngineSwitcher.Core; using Work.ManageClass; +using static Work.GoodInfo; namespace Work.CollectClass { diff --git a/Work/GoodInfo.cs b/Work/GoodInfo.cs index 8bbd920..0032217 100644 --- a/Work/GoodInfo.cs +++ b/Work/GoodInfo.cs @@ -178,37 +178,40 @@ namespace Work /// /// public string reject_reason { get; set; } - } - public class Result - { - /// - /// Total - /// - public int? total { get; set; } - /// - /// Goods_list - /// - public List goods_list { get; set; } - } - public class GoodReturnResult - { - /// - /// Success - /// - public bool success { get; set; } - /// - /// ErrorCode - /// - public int? errorCode { get; set; } - /// - /// ErrorMsg - /// - public string errorMsg { get; set; } - /// - /// Result - /// - public Result result { get; set; } - } + public class Result + { + /// + /// Total + /// + public int? total { get; set; } + /// + /// Goods_list + /// + public List goods_list { get; set; } + } + + public class GoodReturnResult + { + /// + /// Success + /// + public bool success { get; set; } + /// + /// ErrorCode + /// + public int? errorCode { get; set; } + /// + /// ErrorMsg + /// + public string errorMsg { get; set; } + /// + /// Result + /// + public Result result { get; set; } + } + } + + } diff --git a/Work/UserLogin.cs b/Work/UserLogin.cs index 39b074e..96d6dd9 100644 --- a/Work/UserLogin.cs +++ b/Work/UserLogin.cs @@ -1,575 +1,633 @@ -using System; +using AllBase; +using NaiBa.Util.Extension; +using System; +using System.Collections.Generic; +using System.Dynamic; +using System.Linq; using System.Security.Cryptography; using System.Text; using System.Threading; -using AllBase; -using NaiBa.Util.Extension; namespace Work { - public class UserLogin - { - public string Mobile; - public string Password; - public static bool Logining = false, NoRegedit = false, NoFindPass = false, NoBuy = false; - /// - /// 登录 - /// - /// - /// - public bool Get(ref string message, out int lockUserName, out int weakPassword, out string messageInfo) - { - bool IsLoginDef = false; - Logining = true; - string mobile = Mobile; - string password = Password; - string passwordMd5; - if (password == "******") - passwordMd5 = BaseClass.PassWord; - else - passwordMd5 = Md5Base.GetMd5(password).ToLower(); - BaseClass.PassWord = passwordMd5; - BaseClass.PassWordBak = BaseClass.PassWord; - BaseClass.UserName = Mobile; - Random r = new Random(); - int r2 = r.Next(100000000, 899999999); //生成随机码 - string url = BaseClass.BuildObjString("user/user_login"); - for (int j = 0; j < 100 && string.IsNullOrEmpty(BaseClass.MacInfo); j++) - { - Thread.Sleep(10); - } - Agian: - string data = "mobile=" + mobile + "&r2=" + r2 + "&password=" + passwordMd5 + "&" + GetSignature() + "&mac=" + BaseClass.MacInfo + "&version=" + BaseClass.VersionCount; - data += "&from_tool=" + GetHtml.UrlEncodeUtf8(BaseClass.ToolName) + "&client_ip=" + GetHtml.UrlEncodeUtf8(BaseClass.IPAddress) + "+&client_addr=" + GetHtml.UrlEncodeUtf8(BaseClass.IPAddressName); - string html = GetHtml.PostUtf8(url, data); - lockUserName = -1; - weakPassword = -1; - messageInfo = ""; - if (string.IsNullOrEmpty(html) || html.Contains("Error No File")) - { - if (!IsLoginDef) - { - IsLoginDef = true; - url = BaseClass.BuildObjString("user/user_login", true); - goto Agian; - } + public class UserLogin + { + public string Mobile; + public string Password; + public static bool Logining = false, NoRegedit = false, NoFindPass = false, NoBuy = false; + /// + /// 登录 + /// + /// + /// + public bool Get(ref string message, out int lockUserName, out int weakPassword, out string messageInfo) + { + bool IsLoginDef = false; + Logining = true; + string mobile = Mobile; + string password = Password; + string passwordMd5; + if (password == "******") + passwordMd5 = BaseClass.PassWord; + else + passwordMd5 = Md5Base.GetMd5(password).ToLower(); + BaseClass.PassWord = passwordMd5; + BaseClass.PassWordBak = BaseClass.PassWord; + BaseClass.UserName = Mobile; + Random r = new Random(); + int r2 = r.Next(100000000, 899999999); //生成随机码 + string url = BaseClass.BuildObjString("user/user_login"); + for (int j = 0; j < 100 && string.IsNullOrEmpty(BaseClass.MacInfo); j++) + { + Thread.Sleep(10); + } + Agian: + string data = "mobile=" + mobile + "&r2=" + r2 + "&password=" + passwordMd5 + "&" + GetSignature() + "&mac=" + BaseClass.MacInfo + "&version=" + BaseClass.VersionCount; + data += "&from_tool=" + GetHtml.UrlEncodeUtf8(BaseClass.ToolName) + "&client_ip=" + GetHtml.UrlEncodeUtf8(BaseClass.IPAddress) + "+&client_addr=" + GetHtml.UrlEncodeUtf8(BaseClass.IPAddressName); + string html = GetHtml.PostUtf8(url, data); + lockUserName = -1; + weakPassword = -1; + messageInfo = ""; + if (string.IsNullOrEmpty(html) || html.Contains("Error No File")) + { + if (!IsLoginDef) + { + IsLoginDef = true; + url = BaseClass.BuildObjString("user/user_login", true); + goto Agian; + } - message = "链接服务器失败\r\n" + - "如有问题请联系官方QQ:" + BaseClass.ServiceQQ; - return false; - } - if (!html.Contains("\"code\":200")) - { - var errMsg = BaseRegex.GetStringJson(ref html, "msg"); - if (string.IsNullOrEmpty(errMsg)) - errMsg = html; - message = errMsg; - return false; - } - string code = BaseRegex.GetStringJson(ref html, "c"); - string codex = Encryption(r2); - if (code != codex) - { - message = "登录失败\r\n链接异常请重试"; - return false; - } + message = "链接服务器失败\r\n" + + "如有问题请联系官方QQ:" + BaseClass.ServiceQQ; + return false; + } + if (!html.Contains("\"code\":200")) + { + var errMsg = BaseRegex.GetStringJson(ref html, "msg"); + if (string.IsNullOrEmpty(errMsg)) + errMsg = html; + message = errMsg; + return false; + } + string code = BaseRegex.GetStringJson(ref html, "c"); + string codex = Encryption(r2); + if (code != codex) + { + message = "登录失败\r\n链接异常请重试"; + return false; + } - BaseClass.UserId = BaseRegex.GetStringJson(ref html, "id").ParseToInt(); - BaseClass.UserKey = BaseRegex.GetStringJson(ref html, "user_key").ParseToInt(); - BaseClass.NickName = BaseRegex.GetStringJson(ref html, "nick_name"); - BaseClass.UserName = BaseRegex.GetStringJson(ref html, "user_name"); - BaseClass.ParentUserName = BaseRegex.GetStringJson(ref html, "parent_user_name"); - BaseClass.SaLevel = BaseRegex.GetIntJson(ref html, "sa_level").ParseToInt(); - BaseClass.UserAuthority = BaseRegex.GetStringJson(ref html, "authority").ParseToString(); - BaseClass.ParentAuthority = BaseRegex.GetStringJson(ref html, "parent_authority").ParseToString(); - BaseClass.ForbiddenPage = BaseRegex.GetStringJson(ref html, "forbidden_page").ParseToString(); - BaseClass.Mobile = BaseRegex.GetStringJson(ref html, "mobile"); - BaseClass.UserVersion = BaseRegex.GetStringJson(ref html, "version").ParseToInt(); - BaseClass.UserVersionString = BaseRegex.GetStringJson(ref html, "version_s"); - BaseClass.CompanyId = BaseRegex.GetStringJson(ref html, "company_Id").ParseToInt(); - BaseClass.GroupId = BaseRegex.GetStringJson(ref html, "group_id").ParseToInt(); - BaseClass.AuthorizedAmount = BaseRegex.GetNullableDecimalJson(ref html, "authorized_amount"); - BaseClass.Points = BaseRegex.GetStringJson(ref html, "points").ParseToInt(); - BaseClass.ShopPointsPerMonth = BaseRegex.GetStringJson(ref html, "shop_points_per_month").ParseToInt(); - BaseClass.Balance = BaseRegex.GetDecimalJson(ref html, "balance"); - BaseClass.PostagePerOrder = Math.Max(2.2m, BaseRegex.GetDecimalJson(ref html, "postage_per_order")); - BaseClass.RefundPostagePerOrder = Math.Max(2.5m, BaseRegex.GetDecimalJson(ref html, "refund_postage_per_order")); - BaseClass.GiftOemAmountPerOrder = Math.Max(0m, BaseRegex.GetDecimalJson(ref html, "gift_oem_amount_per_order")); - BaseClass.OemId = BaseRegex.GetStringJson(ref html, "oem_id"); - BaseClass.OemName = BaseRegex.GetStringJson(ref html, "oem_name"); - BaseClass.IsOemOwner = BaseRegex.GetBoolJson(ref html, "is_oem_owner"); + BaseClass.UserId = BaseRegex.GetStringJson(ref html, "id").ParseToInt(); + BaseClass.UserKey = BaseRegex.GetStringJson(ref html, "user_key").ParseToInt(); + BaseClass.NickName = BaseRegex.GetStringJson(ref html, "nick_name"); + BaseClass.UserName = BaseRegex.GetStringJson(ref html, "user_name"); + BaseClass.ParentUserName = BaseRegex.GetStringJson(ref html, "parent_user_name"); + BaseClass.SaLevel = BaseRegex.GetIntJson(ref html, "sa_level").ParseToInt(); + BaseClass.UserAuthority = BaseRegex.GetStringJson(ref html, "authority").ParseToString(); + BaseClass.ParentAuthority = BaseRegex.GetStringJson(ref html, "parent_authority").ParseToString(); + BaseClass.ForbiddenPage = BaseRegex.GetStringJson(ref html, "forbidden_page").ParseToString(); + BaseClass.Mobile = BaseRegex.GetStringJson(ref html, "mobile"); + BaseClass.UserVersion = BaseRegex.GetStringJson(ref html, "version").ParseToInt(); + BaseClass.UserVersionString = BaseRegex.GetStringJson(ref html, "version_s"); + BaseClass.CompanyId = BaseRegex.GetStringJson(ref html, "company_Id").ParseToInt(); + BaseClass.GroupId = BaseRegex.GetStringJson(ref html, "group_id").ParseToInt(); + BaseClass.AuthorizedAmount = BaseRegex.GetNullableDecimalJson(ref html, "authorized_amount"); + BaseClass.Points = BaseRegex.GetStringJson(ref html, "points").ParseToInt(); + BaseClass.ShopPointsPerMonth = BaseRegex.GetStringJson(ref html, "shop_points_per_month").ParseToInt(); + BaseClass.Balance = BaseRegex.GetDecimalJson(ref html, "balance"); + BaseClass.PostagePerOrder = Math.Max(2.2m, BaseRegex.GetDecimalJson(ref html, "postage_per_order")); + BaseClass.RefundPostagePerOrder = Math.Max(2.5m, BaseRegex.GetDecimalJson(ref html, "refund_postage_per_order")); + BaseClass.GiftOemAmountPerOrder = Math.Max(0m, BaseRegex.GetDecimalJson(ref html, "gift_oem_amount_per_order")); + BaseClass.OemId = BaseRegex.GetStringJson(ref html, "oem_id"); + BaseClass.OemName = BaseRegex.GetStringJson(ref html, "oem_name"); + BaseClass.IsOemOwner = BaseRegex.GetBoolJson(ref html, "is_oem_owner"); - if (BaseClass.GroupId != 3 && BaseClass.GroupId != 4 && BaseClass.GroupId != 9 && BaseClass.GroupId != 10 && BaseClass.GroupId != 11) - { - BaseClass.UserId = 0; - BaseClass.UserKey = 0; - return false; - } + if (BaseClass.GroupId != 3 && BaseClass.GroupId != 4 && BaseClass.GroupId != 9 && BaseClass.GroupId != 10 && BaseClass.GroupId != 11) + { + BaseClass.UserId = 0; + BaseClass.UserKey = 0; + return false; + } - BaseClass.EndDate = BaseRegex.GetStringJson(ref html, "end"); - BaseClass.CompanyName = BaseRegex.GetStringJson(ref html, "company_name"); - if (BaseClass.UserVersion == 3) - { - BaseClass.QqGroupNum = BaseRegex.GetStringJson(ref html, "qq_group_num"); - BaseClass.QqGroupUrl = BaseRegex.GetStringJson(ref html, "qq_group_url"); - BaseClass.WechatUrl = BaseRegex.GetStringJson(ref html, "wechat_url"); - } - if (BaseClass.UserVersion == 3 || BaseClass.UserVersion == 4 || BaseClass.UserVersion == 5 || BaseClass.UserVersion == 10 || BaseClass.UserVersion == 9) - { - BaseClass.IsPinduoduo = BaseRegex.GetStringJson(ref html, "pinduoduo") == "1"; - BaseClass.AlimamaDomain = BaseRegex.GetStringJson(ref html, "alimama_domain"); - BaseClass.AlimamaPid = BaseRegex.GetStringJson(ref html, "alimama_pid"); - } - if (!BaseClass.UserApi && BaseClass.UserVersion != 110) - BaseClass.UserVersion = 100; - if (BaseClass.UserVersion == 110) - BaseClass.ClientId = BaseSpecialConfig.ToolClientId; // 特别版本,使用指定ClientId + BaseClass.EndDate = BaseRegex.GetStringJson(ref html, "end"); + BaseClass.CompanyName = BaseRegex.GetStringJson(ref html, "company_name"); + if (BaseClass.UserVersion == 3) + { + BaseClass.QqGroupNum = BaseRegex.GetStringJson(ref html, "qq_group_num"); + BaseClass.QqGroupUrl = BaseRegex.GetStringJson(ref html, "qq_group_url"); + BaseClass.WechatUrl = BaseRegex.GetStringJson(ref html, "wechat_url"); + } + if (BaseClass.UserVersion == 3 || BaseClass.UserVersion == 4 || BaseClass.UserVersion == 5 || BaseClass.UserVersion == 10 || BaseClass.UserVersion == 9) + { + BaseClass.IsPinduoduo = BaseRegex.GetStringJson(ref html, "pinduoduo") == "1"; + BaseClass.AlimamaDomain = BaseRegex.GetStringJson(ref html, "alimama_domain"); + BaseClass.AlimamaPid = BaseRegex.GetStringJson(ref html, "alimama_pid"); + } + if (!BaseClass.UserApi && BaseClass.UserVersion != 110) + BaseClass.UserVersion = 100; + if (BaseClass.UserVersion == 110) + BaseClass.ClientId = BaseSpecialConfig.ToolClientId; // 特别版本,使用指定ClientId - string islock = BaseRegex.GetStringJson(ref html, "is_lock"); - int.TryParse(islock, out lockUserName); - string isweak = BaseRegex.GetStringJson(ref html, "is_weak_password"); - int.TryParse(isweak, out weakPassword); - messageInfo = BaseRegex.GetStringJson(ref html, "message"); + string islock = BaseRegex.GetStringJson(ref html, "is_lock"); + int.TryParse(islock, out lockUserName); + string isweak = BaseRegex.GetStringJson(ref html, "is_weak_password"); + int.TryParse(isweak, out weakPassword); + messageInfo = BaseRegex.GetStringJson(ref html, "message"); - // 代理权限列表 - string agent_auth = BaseRegex.GetStringJson(ref html, "agent_auth"); - if (!string.IsNullOrEmpty(agent_auth) && agent_auth != "0") - { - var strArr = agent_auth.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); - foreach (var item in strArr) - { - var itemArr = item.Split(','); - if (itemArr.Length == 2) - { - BaseClass.AgentAuth[itemArr[0]] = itemArr[1]; - } - } - } + // 代理权限列表 + string agent_auth = BaseRegex.GetStringJson(ref html, "agent_auth"); + if (!string.IsNullOrEmpty(agent_auth) && agent_auth != "0") + { + var strArr = agent_auth.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); + foreach (var item in strArr) + { + var itemArr = item.Split(','); + if (itemArr.Length == 2) + { + BaseClass.AgentAuth[itemArr[0]] = itemArr[1]; + } + } + } - BaseClass.IsLoginSuccess = true; + BaseClass.IsLoginSuccess = true; - Initialization i = new Initialization(); - i.SaveConfig(); - ///new Thread(i.GetBaiduCookies).Start(); - //new Thread(IdFessionTaobao.SaveHtmlToSereve).Start(); // 开启一个线程用于写入商品详情缓存数据 - return true; - } + Initialization i = new Initialization(); + i.SaveConfig(); + ///new Thread(i.GetBaiduCookies).Start(); + //new Thread(IdFessionTaobao.SaveHtmlToSereve).Start(); // 开启一个线程用于写入商品详情缓存数据 + return true; + } - /// - /// 注册账户 - /// - /// 手机 - /// 密码 - /// 验证码 - /// 昵称 - /// 邮箱 - /// - /// - public bool Regedit(string mobile, string password, string code, string nickname, string email, out string message) - { - string passwordMd5 = Md5Base.GetMd5(password).ToLower(); - string url = BaseClass.BuildObjString("regedit"); - string data = "mobile=" + mobile + "&password=" + passwordMd5 + "&sms_code=" + code + "&nickname=" + GetHtml.UrlEncodeUtf8(nickname) + - "&email=" + email + "&" + GetSignature(); - string html = GetHtml.PostUtf8(url, data); - if (string.IsNullOrEmpty(html) || html.Contains("Error No File")) - { - message = "提交请求失败,请重试,如仍失败请尝试以下方法:\r\n" + - "1、Win7、8、10系统请(右击)使用管理员权限运行\r\n" + - "2、检查网络链接是否正确、杀毒防火墙等是否禁止链接(可卸载后再次登录)\r\n" + - "3、请不要使用代理上网,更换为路由或者直接链接\r\n" + - "4、可先卸载杀毒软件或者安全卫士,软件正常联网后,重新安装杀毒\r\n" + - "5、如以上方法依然无法解决,可联系客服QQ:" + BaseClass.ServiceQQ + " 协助"; - return false; - } - if (!html.Contains("\"code\":200")) - { - var errMsg = BaseRegex.GetStringJson(ref html, "msg"); - if (string.IsNullOrEmpty(errMsg)) - errMsg = html; - message = errMsg; - if (message.Contains("手机号码已被注册")) - { - message = message.Replace("手机号码已被注册", "手机号码已被注册,请直接登录或找回密码"); - } - if (message.Contains("短信验证码错误")) - { - message = "短信验证码错误,请重新输入\r\n如果接收不到,请联系客服QQ:" + BaseClass.ServiceQQ + ""; - } - return false; - } - message = ""; - return true; - } + /// + /// 注册账户 + /// + /// 手机 + /// 密码 + /// 验证码 + /// 昵称 + /// 邮箱 + /// + /// + public bool Regedit(string mobile, string password, string code, string nickname, string email, out string message) + { + string passwordMd5 = Md5Base.GetMd5(password).ToLower(); + string url = BaseClass.BuildObjString("regedit"); + string data = "mobile=" + mobile + "&password=" + passwordMd5 + "&sms_code=" + code + "&nickname=" + GetHtml.UrlEncodeUtf8(nickname) + + "&email=" + email + "&" + GetSignature(); + string html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || html.Contains("Error No File")) + { + message = "提交请求失败,请重试,如仍失败请尝试以下方法:\r\n" + + "1、Win7、8、10系统请(右击)使用管理员权限运行\r\n" + + "2、检查网络链接是否正确、杀毒防火墙等是否禁止链接(可卸载后再次登录)\r\n" + + "3、请不要使用代理上网,更换为路由或者直接链接\r\n" + + "4、可先卸载杀毒软件或者安全卫士,软件正常联网后,重新安装杀毒\r\n" + + "5、如以上方法依然无法解决,可联系客服QQ:" + BaseClass.ServiceQQ + " 协助"; + return false; + } + if (!html.Contains("\"code\":200")) + { + var errMsg = BaseRegex.GetStringJson(ref html, "msg"); + if (string.IsNullOrEmpty(errMsg)) + errMsg = html; + message = errMsg; + if (message.Contains("手机号码已被注册")) + { + message = message.Replace("手机号码已被注册", "手机号码已被注册,请直接登录或找回密码"); + } + if (message.Contains("短信验证码错误")) + { + message = "短信验证码错误,请重新输入\r\n如果接收不到,请联系客服QQ:" + BaseClass.ServiceQQ + ""; + } + return false; + } + message = ""; + return true; + } - /// - /// 重置密码 - /// - /// - /// - /// - /// - /// - public bool ResetPassword(string mobile, string code, string password, out string message) - { - string passwordMd5 = Md5Base.GetMd5(password).ToLower(); - string url = BaseClass.BuildObjString("reset_password"); - string data = "mobile=" + mobile + "&password=" + passwordMd5 + "&sms_code=" + code + "&" + GetSignature(); - string html = GetHtml.PostUtf8(url, data); - if (string.IsNullOrEmpty(html) || html.Contains("Error No File")) - { - message = "提交请求失败,请重试,如仍失败请尝试以下方法:\r\n" + - "1、Win7、8、10系统请(右击)使用管理员权限运行\r\n" + - "2、检查网络链接是否正确、杀毒防火墙等是否禁止链接(可卸载后再次登录)\r\n" + - "3、请不要使用代理上网,更换为路由或者直接链接\r\n" + - "4、可先卸载杀毒软件或者安全卫士,软件正常联网后,重新安装杀毒\r\n" + - "5、如以上方法依然无法解决,可联系客服QQ:" + BaseClass.ServiceQQ + " 协助"; - return false; - } - if (!html.Contains("\"code\":200")) - { - var errMsg = BaseRegex.GetStringJson(ref html, "msg"); - if (string.IsNullOrEmpty(errMsg)) - errMsg = html; - message = errMsg; - return false; - } - message = ""; - return true; + /// + /// 重置密码 + /// + /// + /// + /// + /// + /// + public bool ResetPassword(string mobile, string code, string password, out string message) + { + string passwordMd5 = Md5Base.GetMd5(password).ToLower(); + string url = BaseClass.BuildObjString("reset_password"); + string data = "mobile=" + mobile + "&password=" + passwordMd5 + "&sms_code=" + code + "&" + GetSignature(); + string html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || html.Contains("Error No File")) + { + message = "提交请求失败,请重试,如仍失败请尝试以下方法:\r\n" + + "1、Win7、8、10系统请(右击)使用管理员权限运行\r\n" + + "2、检查网络链接是否正确、杀毒防火墙等是否禁止链接(可卸载后再次登录)\r\n" + + "3、请不要使用代理上网,更换为路由或者直接链接\r\n" + + "4、可先卸载杀毒软件或者安全卫士,软件正常联网后,重新安装杀毒\r\n" + + "5、如以上方法依然无法解决,可联系客服QQ:" + BaseClass.ServiceQQ + " 协助"; + return false; + } + if (!html.Contains("\"code\":200")) + { + var errMsg = BaseRegex.GetStringJson(ref html, "msg"); + if (string.IsNullOrEmpty(errMsg)) + errMsg = html; + message = errMsg; + return false; + } + message = ""; + return true; - } + } - /// - /// 获取签名字符串 - /// - /// - public static string GetSignature() - { - int time = BaseClass.DateTimeToTimestampSeconds(DateTime.Now) + BaseClass.TimeDifferent; - string s = Encryption(time); - //string s = GetMd5(time1); - return "time=" + time + "&code=" + s + "&NbCodeVersion=1"; - } + /// + /// 获取签名字符串 + /// + /// + public static string GetSignature() + { + int time = BaseClass.DateTimeToTimestampSeconds(DateTime.Now) + BaseClass.TimeDifferent; + string s = Encryption(time); + //string s = GetMd5(time1); + return "time=" + time + "&code=" + s + "&NbCodeVersion=1"; + } - public static bool IsPinduoduo = false; + public static bool IsPinduoduo = false; - /// - /// 获取签名字符串,新版 - /// - /// - public static string GetSignaturex() - { - return GetSignaturex(BaseClass.ShopId, BaseClass.ShopName); - } + /// + /// 获取签名字符串,新版 + /// + /// + public static string GetSignaturex() + { + return GetSignaturex(BaseClass.ShopId, BaseClass.ShopName); + } - public static string GetSignaturex(string shopId, string shopName) - { - if (string.IsNullOrEmpty(shopId)) - shopId = BaseClass.ShopId; - if (string.IsNullOrEmpty(shopName)) - shopName = BaseClass.ShopName; - int time = BaseClass.DateTimeToTimestampSeconds(DateTime.Now) + BaseClass.TimeDifferent; - string time1 = Encryption(time); - //return "time=" + time + "&code=" + time1 + "&NbCodeVersion=1" + "&version=" + BaseClass.VersionCount + - // "&company_id=" + BaseClass.CompanyId + "&company=" + GetHtml.UrlEncodeUtf8(BaseClass.CompanyName) + - // "&user_name=" + BaseClass.UserName + "&user_key=" + BaseClass.UserKey + "&mobile=" + BaseClass.Mobile + - // "&sid=" + shopId + "&shop=" + GetHtml.UrlEncodeUtf8(shopName); - var sign = "time=" + time + "&code=" + time1 + "&code_version=1" + "&version=" + BaseClass.VersionCount + - "&user_name=" + BaseClass.UserName + "&path=" + BaseClass.MainPath; - if (!BaseClass.AgentCode.IsNullOrEmpty()) - { - sign += "&agent_code=" + BaseClass.AgentCode; - sign += "&agent_name=" + BaseClass.AgentName; - } - return sign; - } + public static string GetSignaturex(string shopId, string shopName) + { + //if (string.IsNullOrEmpty(shopId)) + // shopId = BaseClass.ShopId; + //if (string.IsNullOrEmpty(shopName)) + // shopName = BaseClass.ShopName; + //int time = BaseClass.DateTimeToTimestampSeconds(DateTime.Now) + BaseClass.TimeDifferent; + //string time1 = Encryption(time); + ////return "time=" + time + "&code=" + time1 + "&NbCodeVersion=1" + "&version=" + BaseClass.VersionCount + + //// "&company_id=" + BaseClass.CompanyId + "&company=" + GetHtml.UrlEncodeUtf8(BaseClass.CompanyName) + + //// "&user_name=" + BaseClass.UserName + "&user_key=" + BaseClass.UserKey + "&mobile=" + BaseClass.Mobile + + //// "&sid=" + shopId + "&shop=" + GetHtml.UrlEncodeUtf8(shopName); + //var sign = "time=" + time + "&code=" + time1 + "&code_version=1" + "&version=" + BaseClass.VersionCount + + // "&user_name=" + BaseClass.UserName + "&path=" + BaseClass.MainPath; + //if (!BaseClass.AgentCode.IsNullOrEmpty()) + //{ + // sign += "&agent_code=" + BaseClass.AgentCode; + // sign += "&agent_name=" + BaseClass.AgentName; + //} + //return sign; - /// - /// 签名算法 - /// - /// 随机数 - /// 加密签名结果 - public static string Encryptionxx(int s) - { - string ss = s.ToString(); - if (ss.Length > 8) - { - ss = ss.Substring(ss.Length - 8); - s = int.Parse(ss); - if (s < 100000000) - s += 100000000; - } - byte[] kb = Encoding.ASCII.GetBytes(s.ToString()); - if (BaseClass.NewSignatureAuth) - { - double y = s * 1.6081825125; - y += 4582095.48659959; - y += kb[3] * 934579.486548; - y += kb[7] + 4889894.30184; - byte[] k = Encoding.ASCII.GetBytes(y.ToString()); - y -= 478735.48548; - y -= k[6] * 426720.454545; - y -= k[2] * 5667826.96889; - byte[] k1 = Encoding.ASCII.GetBytes(y.ToString()); - y += 56979810.2455; - y -= k1[1] * 58742.0564845; - y -= k1[5] * 1528.487866; - string c = ((int)y).ToString(); - return GetMd5(c); //返回签名的MD5结果 - } - else - { - double y = s * 1.8061825125; - y += 4852095.48659959; - y += kb[3] * 943579.486548; - y += kb[7] + 4889894.30184; - byte[] k = Encoding.ASCII.GetBytes(y.ToString()); - y -= 458735.48548; - y -= k[6] * 458720.454545; - y -= k[2] * 5447826.96889; - byte[] k1 = Encoding.ASCII.GetBytes(y.ToString()); - y += 34779810.2455; - y -= k1[1] * 57942.0564845; - y -= k1[5] * 1548.487866; - string c = ((int)y).ToString(); - return GetMd5(c); //返回签名的MD5结果 - } - //double y = s * 1.8061825125; - //y += 4852095.48659959; - //y += kb[3] * 943579.486548; - //y += kb[7] + 4889894.30184; - //byte[] k = Encoding.ASCII.GetBytes(y.ToString()); - //y -= 458735.48548; - //y -= k[6] * 458720.454545; - //y -= k[2] * 5447826.96889; - //byte[] k1 = Encoding.ASCII.GetBytes(y.ToString()); - //y += 34779810.2455; - //y -= k1[1] * 57942.0564845; - //y -= k1[5] * 1548.487866; - //string c = ((int)y).ToString(); - //return GetMd5(c); //返回签名的MD5结果 - } - - /// - /// 签名算法 - /// - /// 随机数 - /// 加密签名结果 - //public static string Encryption(int s) - //{ - // string ss = s.ToString(); - // if (ss.Length > 8) - // { - // ss = ss.Substring(ss.Length - 8); - // s = int.Parse(ss); - // if (s < 100000000) - // s += 100000000; - // } - // byte[] kb = Encoding.ASCII.GetBytes(s.ToString()); - // if (BaseClass.NewSignatureAuth) - // { - // double y = s * 1.6081825125; - // y += 4582095.48659959; - // y += kb[3] * 934579.486548; - // y += kb[7] + 4889894.30184; - // byte[] k = Encoding.ASCII.GetBytes(y.ToString()); - // y -= 478735.48548; - // y -= k[6] * 426720.454545; - // y -= k[2] * 5667826.96889; - // byte[] k1 = Encoding.ASCII.GetBytes(y.ToString()); - // y += 56979810.2455; - // y -= k1[1] * 58742.0564845; - // y -= k1[5] * 1528.487866; - // string c = ((int)y).ToString(); - // return GetMd5(c); //返回签名的MD5结果 - // } - // else - // { - // double y = s * 1.8061825125; - // y += 4852095.48659959; - // y += kb[3] * 943579.486548; - // y += kb[7] + 4889894.30184; - // byte[] k = Encoding.ASCII.GetBytes(y.ToString()); - // y -= 458735.48548; - // y -= k[6] * 458720.454545; - // y -= k[2] * 5447826.96889; - // byte[] k1 = Encoding.ASCII.GetBytes(y.ToString()); - // y += 34779810.2455; - // y -= k1[1] * 57942.0564845; - // y -= k1[5] * 1548.487866; - // string c = ((int)y).ToString(); - // return GetMd5(c); //返回签名的MD5结果 - // } - // //string ss = s.ToString(); - // //if (ss.Length > 8) - // //{ - // // ss = ss.Substring(ss.Length - 8); - // // s = int.Parse(ss); - // // if (s < 100000000) - // // s += 100000000; - // //} - // //byte[] kb = Encoding.ASCII.GetBytes(s.ToString()); - // //double y = s * 1.8061825125; - // //y += 4852095.48659959; - // //y += kb[3] * 943579.486548; - // //y += kb[7] + 4889894.30184; - // //byte[] k = Encoding.ASCII.GetBytes(y.ToString()); - // //y -= 458735.48548; - // //y -= k[6] * 458720.454545; - // //y -= k[2] * 5447826.96889; - // //byte[] k1 = Encoding.ASCII.GetBytes(y.ToString()); - // //y += 34779810.2455; - // //y -= k1[1] * 57942.0564845; - // //y -= k1[5] * 1548.487866; - // //string c = ((int)y).ToString(); - // //return GetMd5(c); //返回签名的MD5结果 - //} + var dict = GetSignaturexDict(shopId, shopName); + return string.Join("&", dict.Select(kv => $"{kv.Key}={kv.Value}")); + } - /// - /// 加密算法 - /// - /// 加密字符串 - /// - public static string Encryption(int s) - { - string sign = $"{s}sdhewu*/fhAAue48485ew5+5%@3485esGFFHFD"; - return GetMd5(sign); + public static object GetSignPostData(object data) + { + var dict = GetSignaturexDict(BaseClass.ShopId, BaseClass.ShopName); - //if (BaseClass.NewSignatureAuth) - //{ - // long s1 = 0; - // int j = 6712; - // while (s1 < 10000000) - // { - // string st = s1.ToString(); - // if (s1 == 0) - // st = s; - // for (int i = 0; i < st.Length; i++) - // { - // j = j * (55 + i * 6) + i; - // if (j > 100000) - // j = j % 3267; - // int ai = (int)char.Parse(st.Substring(i, 1)); - // if (ai < 128) - // { - // s1 += ai * (i + 3) * j; - // } - // } - // } - // return s1.ToString(); //返回签名的MD5结果 - //} - //else - //{ - // long s1 = 0; - // int j = 7684; - // while (s1 < 10000000) - // { - // string st = s1.ToString(); - // if (s1 == 0) - // st = s; - // for (int i = 0; i < st.Length; i++) - // { - // j = j * (55 + i * 6) + i; - // if (j > 100000) - // j = j % 2367; - // int ai = (int)char.Parse(st.Substring(i, 1)); - // if (ai < 128) - // { - // s1 += ai * (i + 3) * j; - // } - // } - // } - // return s1.ToString(); //返回签名的MD5结果 - //} - //long s1 = 0; - //int j = 7684; - //while (s1 < 10000000) - //{ - // string st = s1.ToString(); - // if (s1 == 0) - // st = s; - // for (int i = 0; i < st.Length; i++) - // { - // j = j * (55 + i * 6) + i; - // if (j > 100000) - // j = j % 2367; - // int ai = (int)char.Parse(st.Substring(i, 1)); - // if (ai < 128) - // { - // s1 += ai * (i + 3) * j; - // } - // } - //} - //return s1.ToString(); //返回签名的MD5结果 - } - public string Get(string key) - { - if (string.IsNullOrEmpty(key)) - return ""; - byte[] inArray = Convert.FromBase64String(key.Replace("/", "=")); - string html = Encoding.UTF8.GetString(inArray); + var result = new ExpandoObject() as IDictionary; - html = html.Replace("C", "1"); - html = html.Replace("Q", "6"); - html = html.Replace("I", "2"); - html = html.Replace("L", "0"); - html = html.Replace("Z", "9"); - html = html.Replace("O", "5"); - html = html.Replace("P", "8"); - html = html.Replace("D", "7"); - html = html.Replace("R", "b"); - html = html.Replace("S", "c"); - html = html.Replace("J", "a"); - return html; - } - /// - /// MD5加密 - /// - /// - /// - public static string GetMd5(string instring) - { - byte[] result = Encoding.Default.GetBytes(instring.Trim()); - MD5 md5 = new MD5CryptoServiceProvider(); - byte[] output = md5.ComputeHash(result); - return BitConverter.ToString(output).Replace("-", ""); - } - /// - /// 获取验证码 - /// - /// - /// - /// - public static string SendCode(string mobile, out bool success) - { - string url = BaseClass.BuildObjString("sms_gate"); - string data = "mobile=" + mobile + "&" + GetSignature(); - string html = GetHtml.PostUtf8(url, data); - success = false; - if (string.IsNullOrEmpty(html) || html.Contains("Error No File")) - { - return "提交请求失败,请重试,如仍失败请尝试以下方法:\r\n" + - "1、Win7、8、10系统请(右击)使用管理员权限运行\r\n" + - "2、检查网络链接是否正确、杀毒防火墙等是否禁止链接(可卸载后再次登录)\r\n" + - "3、请不要使用代理上网,更换为路由或者直接链接\r\n" + - "4、可先卸载杀毒软件或者安全卫士,软件正常联网后,重新安装杀毒\r\n" + - "5、如以上方法依然无法解决,可联系客服QQ:" + BaseClass.ServiceQQ + " 协助"; - } - if (!html.Contains("\"code\":200")) - { - var errMsg = BaseRegex.GetStringJson(ref html, "msg"); - if (string.IsNullOrEmpty(errMsg)) - errMsg = html; - return errMsg; - } - success = true; - return ""; - } + if (data != null) + { + foreach (var prop in data.GetType().GetProperties()) + { + result[prop.Name] = prop.GetValue(data) ?? string.Empty; + } + } + + // 添加sign的属性 + foreach (var kv in dict) + { + result[kv.Key] = kv.Value; + } + + return result; + } + + private static Dictionary GetSignaturexDict(string shopId, string shopName) + { + if (string.IsNullOrEmpty(shopId)) + shopId = BaseClass.ShopId; + if (string.IsNullOrEmpty(shopName)) + shopName = BaseClass.ShopName; + + int time = BaseClass.DateTimeToTimestampSeconds(DateTime.Now) + BaseClass.TimeDifferent; + string time1 = Encryption(time); + + var dict = new Dictionary + { + { "time", time.ToString() }, + { "code", time1 }, + { "code_version", "1" }, + { "version", BaseClass.VersionCount.ToString() }, + { "user_name", BaseClass.UserName }, + { "path", BaseClass.MainPath } + }; + + if (!string.IsNullOrEmpty(BaseClass.AgentCode)) + { + dict.Add("agent_code", BaseClass.AgentCode); + dict.Add("agent_name", BaseClass.AgentName); + } + + return dict; + } + /// + /// 签名算法 + /// + /// 随机数 + /// 加密签名结果 + public static string Encryptionxx(int s) + { + string ss = s.ToString(); + if (ss.Length > 8) + { + ss = ss.Substring(ss.Length - 8); + s = int.Parse(ss); + if (s < 100000000) + s += 100000000; + } + byte[] kb = Encoding.ASCII.GetBytes(s.ToString()); + if (BaseClass.NewSignatureAuth) + { + double y = s * 1.6081825125; + y += 4582095.48659959; + y += kb[3] * 934579.486548; + y += kb[7] + 4889894.30184; + byte[] k = Encoding.ASCII.GetBytes(y.ToString()); + y -= 478735.48548; + y -= k[6] * 426720.454545; + y -= k[2] * 5667826.96889; + byte[] k1 = Encoding.ASCII.GetBytes(y.ToString()); + y += 56979810.2455; + y -= k1[1] * 58742.0564845; + y -= k1[5] * 1528.487866; + string c = ((int)y).ToString(); + return GetMd5(c); //返回签名的MD5结果 + } + else + { + double y = s * 1.8061825125; + y += 4852095.48659959; + y += kb[3] * 943579.486548; + y += kb[7] + 4889894.30184; + byte[] k = Encoding.ASCII.GetBytes(y.ToString()); + y -= 458735.48548; + y -= k[6] * 458720.454545; + y -= k[2] * 5447826.96889; + byte[] k1 = Encoding.ASCII.GetBytes(y.ToString()); + y += 34779810.2455; + y -= k1[1] * 57942.0564845; + y -= k1[5] * 1548.487866; + string c = ((int)y).ToString(); + return GetMd5(c); //返回签名的MD5结果 + } + //double y = s * 1.8061825125; + //y += 4852095.48659959; + //y += kb[3] * 943579.486548; + //y += kb[7] + 4889894.30184; + //byte[] k = Encoding.ASCII.GetBytes(y.ToString()); + //y -= 458735.48548; + //y -= k[6] * 458720.454545; + //y -= k[2] * 5447826.96889; + //byte[] k1 = Encoding.ASCII.GetBytes(y.ToString()); + //y += 34779810.2455; + //y -= k1[1] * 57942.0564845; + //y -= k1[5] * 1548.487866; + //string c = ((int)y).ToString(); + //return GetMd5(c); //返回签名的MD5结果 + } + + /// + /// 签名算法 + /// + /// 随机数 + /// 加密签名结果 + //public static string Encryption(int s) + //{ + // string ss = s.ToString(); + // if (ss.Length > 8) + // { + // ss = ss.Substring(ss.Length - 8); + // s = int.Parse(ss); + // if (s < 100000000) + // s += 100000000; + // } + // byte[] kb = Encoding.ASCII.GetBytes(s.ToString()); + // if (BaseClass.NewSignatureAuth) + // { + // double y = s * 1.6081825125; + // y += 4582095.48659959; + // y += kb[3] * 934579.486548; + // y += kb[7] + 4889894.30184; + // byte[] k = Encoding.ASCII.GetBytes(y.ToString()); + // y -= 478735.48548; + // y -= k[6] * 426720.454545; + // y -= k[2] * 5667826.96889; + // byte[] k1 = Encoding.ASCII.GetBytes(y.ToString()); + // y += 56979810.2455; + // y -= k1[1] * 58742.0564845; + // y -= k1[5] * 1528.487866; + // string c = ((int)y).ToString(); + // return GetMd5(c); //返回签名的MD5结果 + // } + // else + // { + // double y = s * 1.8061825125; + // y += 4852095.48659959; + // y += kb[3] * 943579.486548; + // y += kb[7] + 4889894.30184; + // byte[] k = Encoding.ASCII.GetBytes(y.ToString()); + // y -= 458735.48548; + // y -= k[6] * 458720.454545; + // y -= k[2] * 5447826.96889; + // byte[] k1 = Encoding.ASCII.GetBytes(y.ToString()); + // y += 34779810.2455; + // y -= k1[1] * 57942.0564845; + // y -= k1[5] * 1548.487866; + // string c = ((int)y).ToString(); + // return GetMd5(c); //返回签名的MD5结果 + // } + // //string ss = s.ToString(); + // //if (ss.Length > 8) + // //{ + // // ss = ss.Substring(ss.Length - 8); + // // s = int.Parse(ss); + // // if (s < 100000000) + // // s += 100000000; + // //} + // //byte[] kb = Encoding.ASCII.GetBytes(s.ToString()); + // //double y = s * 1.8061825125; + // //y += 4852095.48659959; + // //y += kb[3] * 943579.486548; + // //y += kb[7] + 4889894.30184; + // //byte[] k = Encoding.ASCII.GetBytes(y.ToString()); + // //y -= 458735.48548; + // //y -= k[6] * 458720.454545; + // //y -= k[2] * 5447826.96889; + // //byte[] k1 = Encoding.ASCII.GetBytes(y.ToString()); + // //y += 34779810.2455; + // //y -= k1[1] * 57942.0564845; + // //y -= k1[5] * 1548.487866; + // //string c = ((int)y).ToString(); + // //return GetMd5(c); //返回签名的MD5结果 + //} - public static string JsCode = @"var auth = { + /// + /// 加密算法 + /// + /// 加密字符串 + /// + public static string Encryption(int s) + { + string sign = $"{s}sdhewu*/fhAAue48485ew5+5%@3485esGFFHFD"; + return GetMd5(sign); + + //if (BaseClass.NewSignatureAuth) + //{ + // long s1 = 0; + // int j = 6712; + // while (s1 < 10000000) + // { + // string st = s1.ToString(); + // if (s1 == 0) + // st = s; + // for (int i = 0; i < st.Length; i++) + // { + // j = j * (55 + i * 6) + i; + // if (j > 100000) + // j = j % 3267; + // int ai = (int)char.Parse(st.Substring(i, 1)); + // if (ai < 128) + // { + // s1 += ai * (i + 3) * j; + // } + // } + // } + // return s1.ToString(); //返回签名的MD5结果 + //} + //else + //{ + // long s1 = 0; + // int j = 7684; + // while (s1 < 10000000) + // { + // string st = s1.ToString(); + // if (s1 == 0) + // st = s; + // for (int i = 0; i < st.Length; i++) + // { + // j = j * (55 + i * 6) + i; + // if (j > 100000) + // j = j % 2367; + // int ai = (int)char.Parse(st.Substring(i, 1)); + // if (ai < 128) + // { + // s1 += ai * (i + 3) * j; + // } + // } + // } + // return s1.ToString(); //返回签名的MD5结果 + //} + //long s1 = 0; + //int j = 7684; + //while (s1 < 10000000) + //{ + // string st = s1.ToString(); + // if (s1 == 0) + // st = s; + // for (int i = 0; i < st.Length; i++) + // { + // j = j * (55 + i * 6) + i; + // if (j > 100000) + // j = j % 2367; + // int ai = (int)char.Parse(st.Substring(i, 1)); + // if (ai < 128) + // { + // s1 += ai * (i + 3) * j; + // } + // } + //} + //return s1.ToString(); //返回签名的MD5结果 + } + public string Get(string key) + { + if (string.IsNullOrEmpty(key)) + return ""; + byte[] inArray = Convert.FromBase64String(key.Replace("/", "=")); + string html = Encoding.UTF8.GetString(inArray); + + html = html.Replace("C", "1"); + html = html.Replace("Q", "6"); + html = html.Replace("I", "2"); + html = html.Replace("L", "0"); + html = html.Replace("Z", "9"); + html = html.Replace("O", "5"); + html = html.Replace("P", "8"); + html = html.Replace("D", "7"); + html = html.Replace("R", "b"); + html = html.Replace("S", "c"); + html = html.Replace("J", "a"); + return html; + } + /// + /// MD5加密 + /// + /// + /// + public static string GetMd5(string instring) + { + byte[] result = Encoding.Default.GetBytes(instring.Trim()); + MD5 md5 = new MD5CryptoServiceProvider(); + byte[] output = md5.ComputeHash(result); + return BitConverter.ToString(output).Replace("-", ""); + } + /// + /// 获取验证码 + /// + /// + /// + /// + public static string SendCode(string mobile, out bool success) + { + string url = BaseClass.BuildObjString("sms_gate"); + string data = "mobile=" + mobile + "&" + GetSignature(); + string html = GetHtml.PostUtf8(url, data); + success = false; + if (string.IsNullOrEmpty(html) || html.Contains("Error No File")) + { + return "提交请求失败,请重试,如仍失败请尝试以下方法:\r\n" + + "1、Win7、8、10系统请(右击)使用管理员权限运行\r\n" + + "2、检查网络链接是否正确、杀毒防火墙等是否禁止链接(可卸载后再次登录)\r\n" + + "3、请不要使用代理上网,更换为路由或者直接链接\r\n" + + "4、可先卸载杀毒软件或者安全卫士,软件正常联网后,重新安装杀毒\r\n" + + "5、如以上方法依然无法解决,可联系客服QQ:" + BaseClass.ServiceQQ + " 协助"; + } + if (!html.Contains("\"code\":200")) + { + var errMsg = BaseRegex.GetStringJson(ref html, "msg"); + if (string.IsNullOrEmpty(errMsg)) + errMsg = html; + return errMsg; + } + success = true; + return ""; + } + + + public static string JsCode = @"var auth = { getPublicKey: function() { var _this = this; Helper.get(""earth/api/queryPasswordEncrypt"", {}).then(function(d) { @@ -858,5 +916,5 @@ namespace Work } };auth.init();"; - } + } } diff --git a/test/KJD.Test/UnitTest1.cs b/test/KJD.Test/UnitTest1.cs index 017bfab..17f81b7 100644 --- a/test/KJD.Test/UnitTest1.cs +++ b/test/KJD.Test/UnitTest1.cs @@ -1,6 +1,8 @@ -using System.Text; +using AllBase.Model.Result.PDDResult; +using System.Text; using TemuKJD.BLL; using TemuKJD.BLL.ImportConverts; +using Work; using Work.GoodDetail; namespace KJD.Test @@ -104,9 +106,37 @@ namespace KJD.Test [Test] public void TestWXToPDDV3() { - string filePath = @"C:\Users\chaih\Documents\xwechat_files\hongfei357_a567\msg\file\2026-08\10000528322732(1).json"; + string filePath = @"C:\Users\chaih\Documents\xwechat_files\hongfei357_a567\msg\file\2026-08\10000247042728(1).json"; var frontProdInfo = ConverterToPddFactory.Convert(filePath); var isMatch = frontProdInfo != null; + + PDDProductInfo prodInfo = new PDDProductInfo(); + prodInfo.detail = new PDDProductDetailInfo(); + prodInfo.detail.sku = new List(); + foreach (var skuItem in frontProdInfo.Skus) + { + sku_item skuInfo = new sku_item() + { + spec = new List() + }; + + + var specList = skuItem.Spec.Split([';'], StringSplitOptions.RemoveEmptyEntries).ToList(); + foreach (var spec in specList) + { + string specKey = spec.Split(':')[0]; + string specValue = spec.Split(':')[1]; + var specItem = frontProdInfo.Specs.FirstOrDefault(a => a.SpecKey == specKey && a.SpecValue == specValue); + if (specItem == null) continue; + skuInfo.spec.Add(new spec_item() + { + parent_name = specItem.SpecKey, + spec_name = specItem.SpecValue, + }); + } + prodInfo.detail.sku.Add(skuInfo); + } + } }