diff --git a/AllBase/AllBase.csproj b/AllBase/AllBase.csproj index 787b229..f473f41 100644 --- a/AllBase/AllBase.csproj +++ b/AllBase/AllBase.csproj @@ -194,6 +194,7 @@ + diff --git a/AllBase/BaseClass.cs b/AllBase/BaseClass.cs index 25e7b7a..6d379f0 100644 --- a/AllBase/BaseClass.cs +++ b/AllBase/BaseClass.cs @@ -27,8 +27,8 @@ namespace AllBase /// /// 版本ID /// - public static int VersionCount = 550; - //public static int VersionCount = 550; + public static int VersionCount = 552; + //public static int VersionCount = 552; /// /// 版本号 diff --git a/AllBase/Model/Result/TemuCheckPriceInfo.cs b/AllBase/Model/Result/TemuCheckPriceInfo.cs new file mode 100644 index 0000000..c4b13f7 --- /dev/null +++ b/AllBase/Model/Result/TemuCheckPriceInfo.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AllBase.Model.Result +{ + public class TemuCheckPriceInfo + { + public string productName { get; set; } + + public long? productId { get; set; } + public string supplierPrice { get; set; } + public long? supplierId { get; set; } + public string supplierName { get; set; } + public List skcList { get;set; } + + } + + public class TemuCheckPriceSkcInfo + { + public long? skcId { get; set; } + public int? sampleType { get; set; } + public int? selectStatus { get; set; } + public TemuStatusTimeInfo statusTime { get; set; } + public List previewImgUrlList { get; set; } // 列表显示图 + public string supplierPrice { get; set; } + public List defaultSelectedSkuList { get; set; } + public string extCode { get; set; } + public List supplierPriceReviewInfoList { get; set; } + public long? productCreatedAt { get; set; } + } + + public class TemuStatusTimeInfo + { + public long? selectedTime { get; set; } + public long? createdTime { get; set; } + } + + public class TemuSupplierPriceReviewInfo + { + public int? orderType { get; set; } + public int? times { get; set; } // 改价次数 + public long? priceOrderId { get; set; } // 核价单号 + public List productSkuList { get; set; } + public int? status { get; set; } + + + // 去查价格和原价后 新申报价格 + public int? supplyPrice { get; set; } + public int? suggestSupplyPrice { get; set; } + } + + public class TemuProductSkuInfo + { + public string skuPreviewImage { get; set; } + public long? skuId { get; set; } + public int? supplierPriceValue { get; set; } + public string supplierPrice { get; set; } + public List productPropertyList { get; set; } + } + public class TemuProductPropertyInfo + { + public bool? important { get; set; } + public string name { get; set; } + public string value { get; set; } + } +} diff --git a/TEMUKJD/KJDForms/AdminForms/AdminForm.cs b/TEMUKJD/KJDForms/AdminForms/AdminForm.cs index 321c4f9..a58a053 100644 --- a/TEMUKJD/KJDForms/AdminForms/AdminForm.cs +++ b/TEMUKJD/KJDForms/AdminForms/AdminForm.cs @@ -48,14 +48,14 @@ namespace TemuKJD.KJDForms.AdminForms hideName.Remove("选品加价管理"); hideName.Remove("认领待上传"); hideName.Remove("库存上传"); - //hideName.Remove("商品核价"); + hideName.Remove("商品核价"); } if (BaseClass.SaLevel==2) { hideName.Remove("超级店铺管理"); hideName.Remove("认领待上传"); hideName.Remove("库存上传"); - //hideName.Remove("商品核价"); + hideName.Remove("商品核价"); } } diff --git a/TEMUKJD/KJDForms/AdminForms/AdminProductPriceCheckForm.Designer.cs b/TEMUKJD/KJDForms/AdminForms/AdminProductPriceCheckForm.Designer.cs index f039c59..bf5dd32 100644 --- a/TEMUKJD/KJDForms/AdminForms/AdminProductPriceCheckForm.Designer.cs +++ b/TEMUKJD/KJDForms/AdminForms/AdminProductPriceCheckForm.Designer.cs @@ -30,13 +30,21 @@ namespace TemuKJD.KJDForms.AdminForms private void InitializeComponent() { this.components = new System.ComponentModel.Container(); + 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.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); - this.chkAllShop = new TemuKJD.UserComponent.UcCheckBox(this.components); + this.btnMutliCancel = new DevComponents.DotNetBar.PanelEx(); + this.btnMutliOk = new DevComponents.DotNetBar.PanelEx(); + this.panelEx2 = new DevComponents.DotNetBar.PanelEx(); + this.txtSkcId = new System.Windows.Forms.TextBox(); + this.btnRePrice = new DevComponents.DotNetBar.PanelEx(); + this.label6 = new System.Windows.Forms.Label(); + this.chkSearchAllShop = new TemuKJD.UserComponent.UcCheckBox(this.components); this.btnEmpty = new DevComponents.DotNetBar.PanelEx(); this.label1 = new System.Windows.Forms.Label(); this.btnSearchPrice = new DevComponents.DotNetBar.PanelEx(); @@ -44,19 +52,19 @@ namespace TemuKJD.KJDForms.AdminForms this.label5 = new System.Windows.Forms.Label(); this.label10 = new System.Windows.Forms.Label(); this.txtNotes = new System.Windows.Forms.TextBox(); - this.btnRePrice = new DevComponents.DotNetBar.PanelEx(); this.label4 = new System.Windows.Forms.Label(); this.btnRefreshShop = new DevComponents.DotNetBar.PanelEx(); this.txtShopName = new System.Windows.Forms.TextBox(); this.txtShopId = new System.Windows.Forms.TextBox(); this.label2 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); this.splitContainer3 = new System.Windows.Forms.SplitContainer(); this.splitContainer2 = new System.Windows.Forms.SplitContainer(); this.pbShopLoading = new System.Windows.Forms.PictureBox(); this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx(); this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); @@ -68,6 +76,7 @@ namespace TemuKJD.KJDForms.AdminForms this.btnClear = new DevComponents.DotNetBar.PanelEx(); this.dgvAdjust = new TemuKJD.UserComponent.DataGridViewEx(); this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colOrderId = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colSupplierId = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colSupplierName = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colImgUrl = new System.Windows.Forms.DataGridViewTextBoxColumn(); @@ -80,13 +89,12 @@ namespace TemuKJD.KJDForms.AdminForms this.colAdjustPrice = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colNewPrice = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colPriceTimes = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colOk = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colCancel = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colOk = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colCancel = new System.Windows.Forms.DataGridViewLinkColumn(); this.colMsg = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.splitContainer4 = new System.Windows.Forms.SplitContainer(); this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage(); this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); - this.label6 = new System.Windows.Forms.Label(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); @@ -137,9 +145,13 @@ namespace TemuKJD.KJDForms.AdminForms | System.Windows.Forms.AnchorStyles.Right))); this.ucGroupBoxEx1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.ucGroupBoxEx1.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND; + this.ucGroupBoxEx1.Controls.Add(this.btnMutliCancel); + this.ucGroupBoxEx1.Controls.Add(this.btnMutliOk); + this.ucGroupBoxEx1.Controls.Add(this.panelEx2); + this.ucGroupBoxEx1.Controls.Add(this.txtSkcId); this.ucGroupBoxEx1.Controls.Add(this.btnRePrice); this.ucGroupBoxEx1.Controls.Add(this.label6); - this.ucGroupBoxEx1.Controls.Add(this.chkAllShop); + this.ucGroupBoxEx1.Controls.Add(this.chkSearchAllShop); this.ucGroupBoxEx1.Controls.Add(this.btnEmpty); this.ucGroupBoxEx1.Controls.Add(this.label1); this.ucGroupBoxEx1.Controls.Add(this.btnSearchPrice); @@ -153,6 +165,7 @@ namespace TemuKJD.KJDForms.AdminForms this.ucGroupBoxEx1.Controls.Add(this.txtShopId); this.ucGroupBoxEx1.Controls.Add(this.label2); this.ucGroupBoxEx1.Controls.Add(this.label3); + this.ucGroupBoxEx1.Controls.Add(this.label7); this.ucGroupBoxEx1.Location = new System.Drawing.Point(3, 2); this.ucGroupBoxEx1.Name = "ucGroupBoxEx1"; this.ucGroupBoxEx1.Size = new System.Drawing.Size(1235, 120); @@ -160,15 +173,127 @@ namespace TemuKJD.KJDForms.AdminForms this.ucGroupBoxEx1.TabStop = false; this.ucGroupBoxEx1.Text = "参数设置"; // - // chkAllShop + // btnMutliCancel // - this.chkAllShop.AutoSize = true; - this.chkAllShop.Location = new System.Drawing.Point(277, 59); - this.chkAllShop.Name = "chkAllShop"; - this.chkAllShop.Size = new System.Drawing.Size(147, 21); - this.chkAllShop.TabIndex = 710; - this.chkAllShop.Text = "二级超管查询所有店铺"; - this.chkAllShop.UseVisualStyleBackColor = true; + this.btnMutliCancel.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnMutliCancel.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnMutliCancel.DisabledBackColor = System.Drawing.Color.Empty; + this.btnMutliCancel.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnMutliCancel.Location = new System.Drawing.Point(1114, 66); + this.btnMutliCancel.Name = "btnMutliCancel"; + this.btnMutliCancel.Size = new System.Drawing.Size(98, 23); + this.btnMutliCancel.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnMutliCancel.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnMutliCancel.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnMutliCancel.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnMutliCancel.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnMutliCancel.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnMutliCancel.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnMutliCancel.Style.GradientAngle = 90; + this.btnMutliCancel.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnMutliCancel.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnMutliCancel.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnMutliCancel.TabIndex = 772; + this.btnMutliCancel.Text = "批量拒绝报价"; + this.btnMutliCancel.Click += new System.EventHandler(this.btnMutliCancel_Click); + // + // btnMutliOk + // + this.btnMutliOk.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnMutliOk.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnMutliOk.DisabledBackColor = System.Drawing.Color.Empty; + this.btnMutliOk.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnMutliOk.Location = new System.Drawing.Point(1114, 37); + this.btnMutliOk.Name = "btnMutliOk"; + this.btnMutliOk.Size = new System.Drawing.Size(98, 23); + this.btnMutliOk.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnMutliOk.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnMutliOk.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnMutliOk.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnMutliOk.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnMutliOk.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnMutliOk.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnMutliOk.Style.GradientAngle = 90; + this.btnMutliOk.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnMutliOk.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnMutliOk.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnMutliOk.TabIndex = 768; + this.btnMutliOk.Text = "批量同意报价"; + this.btnMutliOk.Click += new System.EventHandler(this.btnMutliOk_Click); + // + // panelEx2 + // + this.panelEx2.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.panelEx2.Cursor = System.Windows.Forms.Cursors.Hand; + this.panelEx2.DisabledBackColor = System.Drawing.Color.Empty; + this.panelEx2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.panelEx2.Location = new System.Drawing.Point(653, 66); + this.panelEx2.Name = "panelEx2"; + this.panelEx2.Size = new System.Drawing.Size(99, 23); + this.panelEx2.Style.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx2.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx2.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx2.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.panelEx2.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.panelEx2.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.panelEx2.Style.ForeColor.Color = System.Drawing.Color.White; + this.panelEx2.Style.GradientAngle = 90; + this.panelEx2.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx2.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.panelEx2.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.panelEx2.TabIndex = 749; + this.panelEx2.Text = "批量还原标题"; + this.panelEx2.Click += new System.EventHandler(this.btnReturnProdName_Click); + // + // txtSkcId + // + this.txtSkcId.Location = new System.Drawing.Point(507, 37); + this.txtSkcId.Name = "txtSkcId"; + this.txtSkcId.Size = new System.Drawing.Size(99, 23); + this.txtSkcId.TabIndex = 733; + // + // btnRePrice + // + this.btnRePrice.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnRePrice.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnRePrice.DisabledBackColor = System.Drawing.Color.Empty; + this.btnRePrice.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnRePrice.Location = new System.Drawing.Point(963, 37); + this.btnRePrice.Name = "btnRePrice"; + this.btnRePrice.Size = new System.Drawing.Size(98, 23); + this.btnRePrice.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnRePrice.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnRePrice.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnRePrice.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnRePrice.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnRePrice.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnRePrice.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnRePrice.Style.GradientAngle = 90; + this.btnRePrice.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnRePrice.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnRePrice.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnRePrice.TabIndex = 427; + this.btnRePrice.Text = "批量再次报价"; + this.btnRePrice.Click += new System.EventHandler(this.btnRePrice_Click); + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(886, 40); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(80, 17); + this.label6.TabIndex = 723; + this.label6.Text = "元(人民币)"; + // + // chkSearchAllShop + // + this.chkSearchAllShop.AutoSize = true; + this.chkSearchAllShop.Location = new System.Drawing.Point(277, 59); + this.chkSearchAllShop.Name = "chkSearchAllShop"; + this.chkSearchAllShop.Size = new System.Drawing.Size(147, 21); + this.chkSearchAllShop.TabIndex = 710; + this.chkSearchAllShop.Text = "二级超管查询所有店铺"; + this.chkSearchAllShop.UseVisualStyleBackColor = true; // // btnEmpty // @@ -210,7 +335,7 @@ namespace TemuKJD.KJDForms.AdminForms this.btnSearchPrice.Cursor = System.Windows.Forms.Cursors.Hand; this.btnSearchPrice.DisabledBackColor = System.Drawing.Color.Empty; this.btnSearchPrice.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnSearchPrice.Location = new System.Drawing.Point(590, 37); + this.btnSearchPrice.Location = new System.Drawing.Point(507, 66); this.btnSearchPrice.Name = "btnSearchPrice"; this.btnSearchPrice.Size = new System.Drawing.Size(99, 23); this.btnSearchPrice.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -226,6 +351,7 @@ namespace TemuKJD.KJDForms.AdminForms this.btnSearchPrice.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); this.btnSearchPrice.TabIndex = 427; this.btnSearchPrice.Text = "读取待核价"; + this.btnSearchPrice.Click += new System.EventHandler(this.btnSearchPrice_Click); // // txtPriceDown // @@ -261,29 +387,6 @@ namespace TemuKJD.KJDForms.AdminForms this.txtNotes.Size = new System.Drawing.Size(207, 23); this.txtNotes.TabIndex = 382; // - // btnRePrice - // - this.btnRePrice.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.btnRePrice.Cursor = System.Windows.Forms.Cursors.Hand; - this.btnRePrice.DisabledBackColor = System.Drawing.Color.Empty; - this.btnRePrice.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnRePrice.Location = new System.Drawing.Point(963, 37); - this.btnRePrice.Name = "btnRePrice"; - this.btnRePrice.Size = new System.Drawing.Size(98, 23); - this.btnRePrice.Style.Alignment = System.Drawing.StringAlignment.Center; - this.btnRePrice.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnRePrice.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnRePrice.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.btnRePrice.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; - this.btnRePrice.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; - this.btnRePrice.Style.ForeColor.Color = System.Drawing.Color.White; - this.btnRePrice.Style.GradientAngle = 90; - this.btnRePrice.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; - this.btnRePrice.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); - this.btnRePrice.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); - this.btnRePrice.TabIndex = 427; - this.btnRePrice.Text = "批量再次报价"; - // // label4 // this.label4.AutoSize = true; @@ -349,6 +452,15 @@ namespace TemuKJD.KJDForms.AdminForms this.label3.TabIndex = 381; this.label3.Text = "店铺名:"; // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(465, 40); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(52, 17); + this.label7.TabIndex = 734; + this.label7.Text = "SkcId:"; + // // splitContainer3 // this.splitContainer3.Dock = System.Windows.Forms.DockStyle.Fill; @@ -408,22 +520,22 @@ namespace TemuKJD.KJDForms.AdminForms // this.dgvShop.AllowUserToAddRows = false; this.dgvShop.AllowUserToDeleteRows = false; - dataGridViewCellStyle5.BackColor = System.Drawing.Color.WhiteSmoke; - this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle5; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; this.dgvShop.BackgroundColor = System.Drawing.Color.White; this.dgvShop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle6.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle6.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle6.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle6.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle6.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle6; + 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.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2; this.dgvShop.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dgvShop.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.colSelect, - this.colShopLoginName, + this.colLoginName, this.colShopId, this.colShopName, this.colShopNotes, @@ -438,6 +550,7 @@ namespace TemuKJD.KJDForms.AdminForms this.dgvShop.RowTemplate.Height = 23; this.dgvShop.Size = new System.Drawing.Size(276, 431); this.dgvShop.TabIndex = 6; + this.dgvShop.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellContentClick); // // colSelect // @@ -448,12 +561,12 @@ namespace TemuKJD.KJDForms.AdminForms this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; this.colSelect.Width = 28; // - // colShopLoginName + // colLoginName // - this.colShopLoginName.HeaderText = "店铺登录名"; - this.colShopLoginName.Name = "colShopLoginName"; - this.colShopLoginName.ReadOnly = true; - this.colShopLoginName.Visible = false; + this.colLoginName.HeaderText = "店铺登录名"; + this.colLoginName.Name = "colLoginName"; + this.colLoginName.ReadOnly = true; + this.colLoginName.Visible = false; // // colShopId // @@ -569,21 +682,22 @@ namespace TemuKJD.KJDForms.AdminForms // this.dgvAdjust.AllowUserToAddRows = false; this.dgvAdjust.AllowUserToDeleteRows = false; - dataGridViewCellStyle7.BackColor = System.Drawing.Color.WhiteSmoke; - this.dgvAdjust.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle7; + dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvAdjust.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3; this.dgvAdjust.BackgroundColor = System.Drawing.Color.White; this.dgvAdjust.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - dataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle8.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle8.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle8.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle8.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle8.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvAdjust.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle8; + 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.dgvAdjust.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4; this.dgvAdjust.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dgvAdjust.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.colCheck, + this.colOrderId, this.colSupplierId, this.colSupplierName, this.colImgUrl, @@ -606,6 +720,8 @@ namespace TemuKJD.KJDForms.AdminForms this.dgvAdjust.RowTemplate.Height = 23; this.dgvAdjust.Size = new System.Drawing.Size(953, 431); this.dgvAdjust.TabIndex = 187; + this.dgvAdjust.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvAdjust_CellContentClick); + this.dgvAdjust.Scroll += new System.Windows.Forms.ScrollEventHandler(this.dgvAdjust_Scroll); // // colCheck // @@ -616,6 +732,13 @@ namespace TemuKJD.KJDForms.AdminForms this.colCheck.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; this.colCheck.Width = 30; // + // colOrderId + // + this.colOrderId.HeaderText = "处理单号"; + this.colOrderId.Name = "colOrderId"; + this.colOrderId.ReadOnly = true; + this.colOrderId.Visible = false; + // // colSupplierId // this.colSupplierId.HeaderText = "店铺Id"; @@ -665,6 +788,8 @@ namespace TemuKJD.KJDForms.AdminForms // // colProdName // + dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colProdName.DefaultCellStyle = dataGridViewCellStyle5; this.colProdName.HeaderText = "标题"; this.colProdName.Name = "colProdName"; this.colProdName.ReadOnly = true; @@ -672,6 +797,8 @@ namespace TemuKJD.KJDForms.AdminForms // // colSkuName // + dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colSkuName.DefaultCellStyle = dataGridViewCellStyle6; this.colSkuName.HeaderText = "规格名称"; this.colSkuName.Name = "colSkuName"; this.colSkuName.ReadOnly = true; @@ -710,6 +837,8 @@ namespace TemuKJD.KJDForms.AdminForms this.colOk.HeaderText = "同意报价"; this.colOk.Name = "colOk"; this.colOk.ReadOnly = true; + this.colOk.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colOk.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; this.colOk.Width = 80; // // colCancel @@ -717,6 +846,8 @@ namespace TemuKJD.KJDForms.AdminForms this.colCancel.HeaderText = "拒绝报价"; this.colCancel.Name = "colCancel"; this.colCancel.ReadOnly = true; + this.colCancel.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colCancel.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; this.colCancel.Width = 80; // // colMsg @@ -766,15 +897,6 @@ namespace TemuKJD.KJDForms.AdminForms this.statusBar.Size = new System.Drawing.Size(955, 26); this.statusBar.TabIndex = 2; // - // label6 - // - this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(886, 40); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(80, 17); - this.label6.TabIndex = 723; - this.label6.Text = "元(人民币)"; - // // AdminProductPriceCheckForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; @@ -828,7 +950,32 @@ namespace TemuKJD.KJDForms.AdminForms private UserControls.StatusBarUserControl statusBar; private DevComponents.DotNetBar.PanelEx panelEx1; private DevComponents.DotNetBar.PanelEx btnClear; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox txtNotes; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox txtShopName; + private System.Windows.Forms.TextBox txtShopId; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label5; + private DevComponents.DotNetBar.PanelEx btnEmpty; + private System.Windows.Forms.PictureBox pbLoading; + private UserControls.UcSplitPage ucSplitPage1; + private System.Windows.Forms.PictureBox pbShopLoading; + private UserComponent.UcCheckBox chkSearchAllShop; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; + private System.Windows.Forms.DataGridViewTextBoxColumn colLoginName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes; + private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus; + private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse; + private System.Windows.Forms.DataGridViewTextBoxColumn colMessage; + private System.Windows.Forms.TextBox txtSkcId; + private System.Windows.Forms.Label label7; private System.Windows.Forms.DataGridViewCheckBoxColumn colCheck; + private System.Windows.Forms.DataGridViewTextBoxColumn colOrderId; private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierId; private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierName; private System.Windows.Forms.DataGridViewTextBoxColumn colImgUrl; @@ -841,30 +988,11 @@ namespace TemuKJD.KJDForms.AdminForms private System.Windows.Forms.DataGridViewTextBoxColumn colAdjustPrice; private System.Windows.Forms.DataGridViewTextBoxColumn colNewPrice; private System.Windows.Forms.DataGridViewTextBoxColumn colPriceTimes; - private System.Windows.Forms.DataGridViewTextBoxColumn colOk; - private System.Windows.Forms.DataGridViewTextBoxColumn colCancel; + private System.Windows.Forms.DataGridViewLinkColumn colOk; + private System.Windows.Forms.DataGridViewLinkColumn colCancel; private System.Windows.Forms.DataGridViewTextBoxColumn colMsg; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TextBox txtNotes; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.TextBox txtShopName; - private System.Windows.Forms.TextBox txtShopId; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label label5; - private DevComponents.DotNetBar.PanelEx btnEmpty; - private System.Windows.Forms.PictureBox pbLoading; - private UserControls.UcSplitPage ucSplitPage1; - private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopLoginName; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopName; - private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes; - private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus; - private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse; - private System.Windows.Forms.DataGridViewTextBoxColumn colMessage; - private System.Windows.Forms.PictureBox pbShopLoading; - private UserComponent.UcCheckBox chkAllShop; - private System.Windows.Forms.Label label6; + private DevComponents.DotNetBar.PanelEx panelEx2; + private DevComponents.DotNetBar.PanelEx btnMutliCancel; + private DevComponents.DotNetBar.PanelEx btnMutliOk; } } \ No newline at end of file diff --git a/TEMUKJD/KJDForms/AdminForms/AdminProductPriceCheckForm.cs b/TEMUKJD/KJDForms/AdminForms/AdminProductPriceCheckForm.cs index 1c04707..74dcab7 100644 --- a/TEMUKJD/KJDForms/AdminForms/AdminProductPriceCheckForm.cs +++ b/TEMUKJD/KJDForms/AdminForms/AdminProductPriceCheckForm.cs @@ -2,6 +2,7 @@ using AllBase.Model.Result; using NaiBa.Util.Extension; using NaiBa.Util.Winform.Extension; +using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.ComponentModel; @@ -9,15 +10,20 @@ using System.Data; using System.Drawing; using System.Linq; using System.Text; +using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; +using TemuKJD.KJDForms.BaseForms; +using TemuKJD.KJDForms.ShopForms; using Work; namespace TemuKJD.KJDForms.AdminForms { public partial class AdminProductPriceCheckForm : Form { - public static List lstAdminShopInfo { get; set; } = new List(); + PriceCheckConfig priceCheckConfig = null; + public List lstAdminShopInfo { get; set; } = new List(); + public List lstCheckPriceInfo = new List(); public AdminProductPriceCheckForm() { @@ -27,6 +33,7 @@ namespace TemuKJD.KJDForms.AdminForms private void AdminProductPriceCheckForm_Load(object sender, EventArgs e) { this.dgvShop.AddSelectorColumn("colSelect"); + this.dgvAdjust.AddSelectorColumn("colCheck"); if (BaseClass.SaLevel != 1) { @@ -35,6 +42,32 @@ namespace TemuKJD.KJDForms.AdminForms //dgvShop.Columns["colSubSa"].Visible = false; //btnSetSubSa.Visible = false; } + + priceCheckConfig = NaiBa.Util.Helper.ConfigHelper.LoadConfig("price_check_config"); + if (priceCheckConfig == null) + priceCheckConfig = new PriceCheckConfig(); + this.txtNotes.Text = priceCheckConfig.SearchNotes; + this.txtShopId.Text = priceCheckConfig.SearchShopId; + this.txtShopName.Text = priceCheckConfig.SearchShopName; + this.txtPriceDown.Text = priceCheckConfig.PriceDown; + this.chkSearchAllShop.Checked = priceCheckConfig.SearchAllShop; + + this.txtNotes.TextChanged += Txt_TextChanged; + this.txtShopId.TextChanged += Txt_TextChanged; + this.txtShopName.TextChanged += Txt_TextChanged; + this.txtPriceDown.TextChanged += Txt_TextChanged; + this.chkSearchAllShop.CheckedChanged += Txt_TextChanged; + } + + private void Txt_TextChanged(object sender, EventArgs e) + { + priceCheckConfig.SearchNotes = this.txtNotes.Text.Trim(); + priceCheckConfig.SearchShopId = this.txtShopId.Text.Trim(); + priceCheckConfig.SearchShopName = this.txtShopName.Text.Trim(); + priceCheckConfig.PriceDown = this.txtPriceDown.Text.Trim(); + priceCheckConfig.SearchAllShop = this.chkSearchAllShop.Checked; + + NaiBa.Util.Helper.ConfigHelper.SaveConfig("price_check_config", priceCheckConfig); } bool firstLoad = true; @@ -124,20 +157,20 @@ namespace TemuKJD.KJDForms.AdminForms if (dgvShop.Rows[i].Cells["colSelect"].Value.ParseToBool()) { string shopName = dgvShop.Rows[i].Cells["colShopId"].Value.ParseToString(); - shopName += dgvShop.Rows[i].Cells["colUser"].Value.ParseToString(); + //shopName += dgvShop.Rows[i].Cells["colUser"].Value.ParseToString(); shopNameList.Add(shopName); } } return shopNameList; } - public List AdminGetServerShopLst(out int pageCount, int page = 1, int pageSize = 500) + public List AdminGetServerShopLst(out int pageCount, int page = 1, int pageSize = 50) { List list = new List(); pageCount = 1; var url = BaseClass.BuildObjString("shop/admin_get_shop_list"); - if (BaseClass.SaLevel > 1 && !chkAllShop.Checked) + if (BaseClass.SaLevel > 1 && !chkSearchAllShop.Checked) url = BaseClass.BuildObjString("shop/sub_sa_get_select_prod_shop"); var data = UserLogin.GetSignaturex() + "&page=" + page + @@ -145,7 +178,7 @@ namespace TemuKJD.KJDForms.AdminForms "&shop_ids=" + txtShopId.Text.Trim() + "&shop_names=" + txtShopName.Text.Trim() + "&search_notes=" + txtNotes.Text.Trim(); - if (BaseClass.SaLevel > 1 && !chkAllShop.Checked) + if (BaseClass.SaLevel > 1 && !chkSearchAllShop.Checked) data += "&operate_sub_sa_name=" + BaseClass.UserName; var html = GetHtml.PostUtf8(url, data); if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) @@ -169,5 +202,627 @@ namespace TemuKJD.KJDForms.AdminForms { txtNotes.Text = txtShopId.Text = txtShopName.Text = ""; } + + private void dgvShop_CellContentClick(object sender, DataGridViewCellEventArgs e) + { + if (e.ColumnIndex < 0 || e.RowIndex < 0) + return; + string headerText = dgvShop.Columns[e.ColumnIndex].HeaderText; + string loginName = dgvShop.Rows[e.RowIndex].Cells["colLoginName"].Value.ParseToString(); + string accountId = dgvShop.Rows[e.RowIndex].Cells["colShopId"].Value.ParseToString(); + var shop = lstAdminShopInfo.FirstOrDefault(v => v.LoginName == loginName && v.ShopId == accountId); + + switch (headerText) + { + case "登录": + case "状态": + { + AdminShopLoginForm shopLoginForm = new AdminShopLoginForm(shop); + shopLoginForm.openType = EnumOpenType.login; + shopLoginForm.SaveComplete += shopLoginForm_SaveComplete; + shopLoginForm.ShowDialog(); + } + break; + default: + dgvShop.Rows[e.RowIndex].Cells["colSelect"].Value = !(bool)dgvShop.Rows[e.RowIndex].Cells["colSelect"].Value; + break; + } + } + private void shopLoginForm_SaveComplete(object obj) + { + //SearchShop(this.ucSplitPage1.CurrentPage); + var shop = obj as ShopLoginInfo; + if (shop == null) + return; + + bool canUse = shop.LoginStatus2 == "国际版在线"; + var rows = this.dgvShop.Rows.Cast().Where(r => r.Cells["colLoginName"].Value.ParseToString() == shop?.LoginName); + foreach (var row in rows) + { + row.Cells["colCanUse"].Value = canUse; + row.Cells["colLoginStatus"].Value = canUse ? "在线" : "掉线"; + (row.Cells["colLoginStatus"] as DataGridViewLinkCell).Style.ForeColor = canUse ? Color.Green : Color.Red; + (row.Cells["colLoginStatus"] as DataGridViewLinkCell).LinkColor = canUse ? Color.Green : Color.Red; + (row.Cells["colLoginStatus"] as DataGridViewLinkCell).ActiveLinkColor = canUse ? Color.LightGreen : Color.OrangeRed; + (row.Cells["colLoginStatus"] as DataGridViewLinkCell).VisitedLinkColor = canUse ? Color.DarkGreen : Color.DarkRed; + } + } + + private void dgvAdjust_CellContentClick(object sender, DataGridViewCellEventArgs e) + { + if (e.ColumnIndex < 0 || e.RowIndex < 0) + return; + string headerText = dgvAdjust.Columns[e.ColumnIndex].HeaderText; + string orderId = dgvAdjust.Rows[e.RowIndex].Cells["colOrderId"].Value.ParseToString(); + string accountId = dgvAdjust.Rows[e.RowIndex].Cells["colSupplierId"].Value.ParseToString(); + var shop = lstAdminShopInfo.FirstOrDefault(v => v.ShopId == accountId); + + switch (headerText) + { + case "同意报价": + { + applyHighPrice(shop, orderId, dgvAdjust.Rows[e.RowIndex]); + } + break; + case "拒绝报价": + { + cancelLowPrice(shop, orderId, dgvAdjust.Rows[e.RowIndex]); + } + break; + default: + dgvAdjust.Rows[e.RowIndex].Cells["colCheck"].Value = !(bool)dgvAdjust.Rows[e.RowIndex].Cells["colCheck"].Value; + break; + } + } + + + private void applyHighPrice(ShopLoginInfo shop, string orderId, DataGridViewRow row) + { + //{"supplierResult":1,"priceOrderId":2508081200527258,"items":[{ "productSkuId":22954374419,"price":14500},{ "productSkuId":11040177436,"price":14500},{ "productSkuId":47081005481,"price":14500},{ "productSkuId":62542358120,"price":14500},{ "productSkuId":70385131590,"price":14500},{ "productSkuId":19665043575,"price":14500},{ "productSkuId":49890165809,"price":14500},{ "productSkuId":31851005577,"price":14500},{ "productSkuId":77977214817,"price":14500},{ "productSkuId":30313877294,"price":14500},{ "productSkuId":55921323568,"price":14500},{ "productSkuId":61553511772,"price":14500},{ "productSkuId":31344600169,"price":14500},{ "productSkuId":79990531362,"price":14500}],"bargainReasonList":[]} + if (shop == null) + return; + + TemuSupplierPriceReviewInfo priceReview = null; + foreach (var price in this.lstCheckPriceInfo) + { + if (priceReview != null) + break; + foreach (var Review in price.skcList.FirstOrDefault()?.supplierPriceReviewInfoList) + { + if (Review.priceOrderId.ParseToString() == orderId) + { + priceReview = Review; + break; + } + } + } + if (priceReview == null) + return; + + string data = "{\"supplierResult\":1,\"priceOrderId\":" + priceReview.priceOrderId + ",\"items\":["; + foreach (var sku in priceReview.productSkuList) + { + data += "{\"productSkuId\":" + sku.skuId + ",\"price\":" + priceReview.suggestSupplyPrice + "},"; + } + data = data.TrimEnd(','); + data += "],\"bargainReasonList\":[]}"; + var rst = applyPrice(shop, orderId, data); + if (row != null) + { + if (rst.Contains("\"success\":true")) + row.Cells["colMsg"].Value = "已核价"; + else + row.Cells["colMsg"].Value = "核价失败" + rst; + } + } + + private void rePrice(ShopLoginInfo shop, string orderId, DataGridViewRow row) + { + //{"supplierResult":2,"priceOrderId":2508081238454147,"items":[{"productSkuId":70647701317,"price":18490},{"productSkuId":34466033044,"price":18490},{"productSkuId":34464576879,"price":18490},{"productSkuId":34895719118,"price":18490},{"productSkuId":61915282142,"price":18490},{"productSkuId":76031311695,"price":18490},{"productSkuId":93752826474,"price":18490},{"productSkuId":18180751875,"price":18490},{"productSkuId":65333379322,"price":18490},{"productSkuId":71131751234,"price":18490},{"productSkuId":10651693269,"price":18490},{"productSkuId":89672993631,"price":18490},{"productSkuId":38775502377,"price":18490},{"productSkuId":93279836006,"price":18490},{"productSkuId":77125468089,"price":18490}],"bargainReasonList":[]} + if (shop == null) + return; + + TemuSupplierPriceReviewInfo priceReview = null; + foreach (var price in this.lstCheckPriceInfo) + { + if (priceReview != null) + break; + foreach (var Review in price.skcList.FirstOrDefault()?.supplierPriceReviewInfoList) + { + if (Review.priceOrderId.ParseToString() == orderId) + { + priceReview = Review; + break; + } + } + } + if (priceReview == null) + return; + + int priceDown = (priceReview.times * this.txtPriceDown.Text.ParseToDecimal() * 100).ParseToInt(); + string data = "{\"supplierResult\":2,\"priceOrderId\":" + priceReview.priceOrderId + ",\"items\":["; + foreach (var sku in priceReview.productSkuList) + { + data += "{\"productSkuId\":" + sku.skuId + ",\"price\":" + (priceReview.supplyPrice - priceDown) + "},"; + } + data = data.TrimEnd(','); + data += "],\"bargainReasonList\":[]}"; + var rst = rePrice(shop, orderId, data); + if (row != null) + { + if (rst.Contains("\"success\":true")) + row.Cells["colMsg"].Value = "已重新申请价格"; + else + row.Cells["colMsg"].Value = "重新申请价格失败" + rst; + } + } + + private void cancelLowPrice(ShopLoginInfo shop, string orderId, DataGridViewRow row) + { + if (shop == null) + return; + + var rst = this.cancelPrice(shop, orderId); + if (row != null) + { + if (rst.Contains("\"success\":true")) + row.Cells["colMsg"].Value = "已拒绝报价"; + else + row.Cells["colMsg"].Value = "拒绝报价失败" + rst; + } + } + + private void btnSearchPrice_Click(object sender, EventArgs e) + { + var selectShopIdLst = this.dgvShop.Rows.Cast().Where(r => r.Cells["colSelect"].Value.ParseToBool() == true) + .Select(r => r.Cells["colShopId"].Value.ParseToString()).ToList(); + var shops = this.lstAdminShopInfo.Where(s => selectShopIdLst.Contains(s.ShopId)).ToList(); + if (shops.Count == 0) + { + BaseMsgForm.ShowError("没有选择店铺!"); + return; + } + + this.dgvAdjust.Rows.Clear(); + this.lstCheckPriceInfo.Clear(); + this.pbLoading.Visible = true; + Task.Run(() => + { + foreach (var shopId in selectShopIdLst) + { + var shop = this.lstAdminShopInfo.Where(s => shopId == s.ShopId).ToList().FirstOrDefault(); + if (shop == null) + continue; + + AdminShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false); + if (shop.LoginStatus2 != "国际版在线") + { + var canUse = false; + var rows = this.dgvShop.Rows.Cast().Where(r => r.Cells["colLoginName"].Value.ParseToString() == shop?.LoginName); + foreach (var row in rows) + { + row.Cells["colCanUse"].Value = canUse; + row.Cells["colLoginStatus"].Value = canUse ? "在线" : "掉线"; + (row.Cells["colLoginStatus"] as DataGridViewLinkCell).Style.ForeColor = canUse ? Color.Green : Color.Red; + (row.Cells["colLoginStatus"] as DataGridViewLinkCell).LinkColor = canUse ? Color.Green : Color.Red; + (row.Cells["colLoginStatus"] as DataGridViewLinkCell).ActiveLinkColor = canUse ? Color.LightGreen : Color.OrangeRed; + (row.Cells["colLoginStatus"] as DataGridViewLinkCell).VisitedLinkColor = canUse ? Color.DarkGreen : Color.DarkRed; + } + } + int page = 0; + int totalPage = 1; + while (page < totalPage) + { + page++; + var searchRst = this.SearchForChainSupplier(shop, page, txtSkcId.Text.Trim()); + if (searchRst.Contains("\"success\":true")) + { + try + { + var jObj = JObject.Parse(searchRst); + var jArr = jObj["result"]["dataList"] as JArray; + if (jArr == null) + jArr = new JArray(); + + foreach (var item in jArr) + { + var jStr = JsonHelper.SerializeObject(item); + TemuCheckPriceInfo priceInfo = JsonHelper.DeserializeJsonToObject(jStr); + lstCheckPriceInfo.Add(priceInfo); + + + string imgUrl = priceInfo.skcList.FirstOrDefault()?.previewImgUrlList.FirstOrDefault(); + if (imgUrl == null) + imgUrl = ""; + imgUrl = imgUrl.Replace("https://", "http://") + "?imageMogr2/thumbnail/60x"; + //string getImgError = ""; + //var img = GetHtml.GetUrlImg(imgUrl + "?imageMogr2/thumbnail/60x", out getImgError); + + foreach (var reviewInfo in priceInfo.skcList.FirstOrDefault().supplierPriceReviewInfoList) + { + if (reviewInfo.status == 3) //放弃调整报价,报价显示已作废 + continue; + + string skuName = ""; + var prodSkuList = reviewInfo.productSkuList; + if (prodSkuList != null) + { + foreach (var sku in prodSkuList) + { + foreach (var prop in sku.productPropertyList) + { + skuName += prop.value + ";"; + } + //skuName = skuName.TrimEnd(';'); + skuName += "\r\n"; + } + } + var orderPriceRst = GetCheckPrice(shop, reviewInfo.priceOrderId.ParseToString()); + reviewInfo.suggestSupplyPrice = BaseRegex.GetIntJson(ref orderPriceRst, "suggestSupplyPrice"); + reviewInfo.supplyPrice = BaseRegex.GetIntJson(ref orderPriceRst, "supplyPrice"); + var suggestSupplyPrice = (reviewInfo.suggestSupplyPrice / 100.0).ToString(); + if (suggestSupplyPrice == "0") + suggestSupplyPrice = "获取推荐价格失败,请重试"; + else + suggestSupplyPrice += "¥"; + Thread.Sleep(Randomx.GetId(20, 50)); + + Invoke(new Action(() => + { + int rowId = this.dgvAdjust.Rows.Add( + false, + reviewInfo.priceOrderId, + priceInfo.supplierId, + priceInfo.supplierName, + imgUrl, + defaultBitmap, + priceInfo.productId, + priceInfo.skcList.FirstOrDefault()?.skcId, + priceInfo.productName, + skuName, + reviewInfo.productSkuList.FirstOrDefault()?.supplierPrice, //priceInfo.supplierPrice, + suggestSupplyPrice,//核价 + "", //新报价 + reviewInfo.times, // 修改报价次数 + "同意", + "拒绝", + "" + ); + dgvAdjust.Rows[rowId].Height = 60; + })); + } + this.ShowDgvImg(); + } + } + catch (Exception ex) + { + BaseMsgForm.ShowError(ex.Message); + break; + } + } + + int total = BaseRegex.GetStringJson(ref searchRst, "total").ParseToInt(); + totalPage = Math.Ceiling(total / 100.0).ParseToInt(); + } + + } + Invoke(new Action(() => { + this.pbLoading.Visible = false; + })); + }); + } + + + private string SearchForChainSupplier (ShopLoginInfo shop, int page, string prodSkcIds = null) + { + string url = "https://agentseller.temu.com/api/kiana/mms/robin/searchForChainSupplier"; + string body = @"{""pageSize"":100,""pageNum"":" + page + @",""priceReviewStatusList"":[1],""secondarySelectStatusList"":[7],""supplierTodoTypeList"":[]}"; + if (!string.IsNullOrEmpty(prodSkcIds)) + body = @"{""pageSize"":50,""pageNum"":" + page + @",""priceReviewStatusList"":[1],""secondarySelectStatusList"":[7],""supplierTodoTypeList"":[],""productSkcIdList"":["+ prodSkcIds + "]}"; + string referer = "https://agentseller.temu.com/newon/product-select"; + return KJDHttpResponse.PostResponse2(shop, url, body, referer); + } + + private string GetCheckPrice(ShopLoginInfo shop, string orderId) + { + string url = "https://agentseller.temu.com/api/kiana/mms/magneto/api/price-review-order/no-bom/reject-remark"; + string body = @"{""orderId"":" + orderId + "}"; + string referer = "https://agentseller.temu.com/newon/product-select"; + return KJDHttpResponse.PostResponse2(shop, url, body, referer); + } + + private string applyPrice(ShopLoginInfo shop, string orderId, string data) + { + string url = "https://agentseller.temu.com/api/kiana/mms/magneto/price/bargain-no-bom"; + string body = data; + string referer = "https://agentseller.temu.com/newon/product-select"; + return KJDHttpResponse.PostResponse2(shop, url, body, referer); + } + + private string rePrice(ShopLoginInfo shop, string orderId, string data) + { + string url = "https://agentseller.temu.com/api/kiana/mms/magneto/price/bargain-no-bom"; + string body = data; + string referer = "https://agentseller.temu.com/newon/product-select"; + return KJDHttpResponse.PostResponse2(shop, url, body, referer); + } + + private string cancelPrice(ShopLoginInfo shop, string orderId) + { + string url = "https://agentseller.temu.com/api/kiana/mms/magneto/api/price-review-order/no-bom/review"; + string body = @"{""priceOrderId"":" + orderId + "}"; + string referer = "https://agentseller.temu.com/newon/product-select"; + return KJDHttpResponse.PostResponse2(shop, url, body, referer); + } + + private string editPriceProductNameBatchAdd(ShopLoginInfo shop, string productId) + { + string url = "https://agentseller.temu.com/lich-mms/audit/edit/task/product/batchAdd"; + string body = @"{""bizIdType"":1,""bizIds"":["+ productId + @"],""productEditItems"":[{""editItem"":1,""editAdvice"":""优化""}]}"; + string referer = "https://agentseller.temu.com/goods/list?productId=" + productId; + return KJDHttpResponse.PostResponse2(shop, url, body, referer); + } + + private string editPriceProductName(ShopLoginInfo shop, string taskUid, string productId, string productNewName) + { + string url = "https://agentseller.temu.com/visage-agent-seller/product/edit/task/reply"; + //string body = @"{""productId"":4432690492,""taskUid"":""8de73095-733e-4cdf-8fbd-3ddd8d9dff18"",""taskVersion"":0,""refuseEdit"":false,""productName"":""男士轻便 EVA 拖鞋,带钩环后跟带 ,舒适的露趾拖鞋,适合室内和室外使用,家居拖鞋,易于使用的魔鬼毡扣带扣,洞洞鞋,家居拖鞋,带钩环扣件,适合室内和室外使用,带扣凉鞋,后厨工专用鞋简约款两用,适合室内/室外使用,春夏凉鞋,EVA 拖鞋,适合19个不同的搭配风格""}"; + string body = @"{""productId"":" + productId + @",""taskUid"":""" + taskUid + @""",""taskVersion"":0,""refuseEdit"":false,""productName"":""" + productNewName + @"""}"; + string referer = "https://agentseller.temu.com/goods/edit?from=platform&productId=" + productId + "&taskUid=" + taskUid; + return KJDHttpResponse.PostResponse2(shop, url, body, referer); + } + + Bitmap defaultBitmap = new Bitmap(80, 80); + void ShowDgvImg() + { + Task.Run(() => + { + foreach (DataGridViewRow row in this.dgvAdjust.Rows) + { + if (row.Index > 0 && row.Cells["colProductSkcPic"].Displayed == false) + { + try + { + Invoke(new Action(() => + { + row.Cells["colProductSkcPic"].Value = defaultBitmap; + })); + } + catch + { + } + continue; + } + + if (row.Cells["colProductSkcPic"].Value != null && row.Cells["colProductSkcPic"].Value != defaultBitmap) + continue; + + Image image = null; + string imgUrl = row.Cells["colImgUrl"]?.Value.ParseToString(); + string getImgError = ""; + if (!string.IsNullOrWhiteSpace(imgUrl)) + image = GetHtml.GetUrlImg(imgUrl, out getImgError); + if (!string.IsNullOrEmpty(getImgError)) + BaseMsgForm.ShowError(getImgError); + + try + { + Invoke(new Action(() => + { + row.Cells["colProductSkcPic"].Value = image; + })); + } + catch + { + } + } + }); + } + + private void dgvAdjust_Scroll(object sender, ScrollEventArgs e) + { + this.ShowDgvImg(); + } + + private void btnReturnProdName_Click(object sender, EventArgs e) + { + var products = this.dgvAdjust.Rows.Cast().Where(r => r.Cells["colCheck"].Value.ParseToBool() == true) + .Select(r => r.Cells["colProductId"].Value.ParseToString()); + var prices = this.lstCheckPriceInfo.Where(p => products.Contains(p.productId.ParseToString())).ToList(); + + if (prices.Count == 0) + { + BaseMsgForm.ShowError("未选择商品"); + return; + } + + this.pbLoading.Visible = true; + Task.Run(() => + { + foreach (var price in prices) + { + var rows = this.dgvAdjust.Rows.Cast().Where(r => r.Cells["colProductId"].Value.ParseToString() == price.productId.ParseToString()).ToList(); + var shop = lstAdminShopInfo.FirstOrDefault(s => s.ShopId == price.supplierId.ParseToString()); + var html = editPriceProductNameBatchAdd(shop, price.productId.ParseToString()); + //{"success":true,"errorCode":1000000,"errorMsg":null,"result":{"handleFailedList":[{"failedBizId":4432690492,"failedReason":"This product has pending or in-progress modification tasks, cannot initiate again"}],"addFailedList":[{"failedBizId":4432690492,"failedReason":"This product has pending or in-progress modification tasks, cannot initiate again","failedReasonType":8}],"successBizId2TaskUidMap":{}}} + if (html.Contains("This product has pending or in-progress modification tasks")) + { + Invoke(new Action(() => + { + foreach (var row in rows) + row.Cells["colMsg"].Value = "已提交过修改请求"; + })); + continue; + } + if (!html.Contains("\"success\":true")) + { + string sErrMsg = BaseRegex.GetStringJson(ref html, "errorMsg").ParseToString(); + if (string.IsNullOrEmpty(sErrMsg)) + { + sErrMsg = BaseRegex.GetStringJson(ref html, "error_msg").ParseToString(); + } + Invoke(new Action(() => + { + foreach (var row in rows) + row.Cells["colMsg"].Value = "修改请求失败 " + sErrMsg; + })); + continue; + } + + try + { + JObject jObj = JObject.Parse(html); + var item = jObj["result"]["successBizId2TaskUidMap"].LastOrDefault().LastOrDefault(); + + var pName = price.productName; + var newPName = pName; + if (pName.EndsWith("适合不同的搭配风格") && pName.IndexOf("个") < 4) + { + var headword = pName.Substring(0, pName.IndexOf("个") + 1); + newPName = pName.Substring(pName.IndexOf("个") + 1); + newPName = newPName.Replace("适合不同的搭配风格", "适合" + headword + "不同的搭配风格"); + } + + html = editPriceProductName(shop, item.ParseToString(), price.productId.ParseToString(), newPName); + Thread.Sleep(Randomx.GetId(25, 75)); + if (html.Contains("\"success\":true")) + { + Invoke(new Action(() => + { + foreach (var row in rows) + row.Cells["colMsg"].Value = "修改请求成功"; + })); + } + else + { + string sErrMsg = BaseRegex.GetStringJson(ref html, "errorMsg").ParseToString(); + if (string.IsNullOrEmpty(sErrMsg)) + { + sErrMsg = BaseRegex.GetStringJson(ref html, "error_msg").ParseToString(); + } + Invoke(new Action(() => + { + foreach (var row in rows) + row.Cells["colMsg"].Value = "修改请求失败 " + sErrMsg; + })); + continue; + } + } + catch (Exception ex) + { + Invoke(new Action(() => + { + foreach (var row in rows) + row.Cells["colMsg"].Value = "修改请求失败 " + ex.Message; + })); + continue; + } + } + + Invoke(new Action(() => + { + this.pbLoading.Visible = true; + })); + }); + } + + private void btnRePrice_Click(object sender, EventArgs e) + { + var rows = this.dgvAdjust.Rows.Cast().Where(r => r.Cells["colCheck"].Value.ParseToBool() == true).ToList(); + if (rows.Count == 0) + { + BaseMsgForm.ShowError("未选择要重新报价的商品!"); + return; + } + + this.pbLoading.Visible = true; + Task.Run(() => + { + foreach (var row in rows) + { + var orderId = row.Cells["colOrderId"].Value.ParseToString(); + var shop = lstAdminShopInfo.FirstOrDefault(s => s.ShopId == row.Cells["colSupplierId"].Value.ParseToString()); + if (shop == null) + continue; + + this.rePrice(shop, orderId, row); + } + + Invoke(new Action(() => + { + this.pbLoading.Visible = false; + })); + }); + } + + private void btnMutliOk_Click(object sender, EventArgs e) + { + var rows = this.dgvAdjust.Rows.Cast().Where(r => r.Cells["colCheck"].Value.ParseToBool() == true).ToList(); + if (rows.Count == 0) + { + BaseMsgForm.ShowError("未选择要重新报价的商品!"); + return; + } + + this.pbLoading.Visible = true; + Task.Run(() => + { + foreach (var row in rows) + { + var orderId = row.Cells["colOrderId"].Value.ParseToString(); + var shop = lstAdminShopInfo.FirstOrDefault(s => s.ShopId == row.Cells["colSupplierId"].Value.ParseToString()); + if (shop == null) + continue; + + this.applyHighPrice(shop, orderId, row); + } + + Invoke(new Action(() => + { + this.pbLoading.Visible = false; + })); + }); + } + + private void btnMutliCancel_Click(object sender, EventArgs e) + { + var rows = this.dgvAdjust.Rows.Cast().Where(r => r.Cells["colCheck"].Value.ParseToBool() == true).ToList(); + if (rows.Count == 0) + { + BaseMsgForm.ShowError("未选择要重新报价的商品!"); + return; + } + + this.pbLoading.Visible = true; + Task.Run(() => + { + foreach (var row in rows) + { + var orderId = row.Cells["colOrderId"].Value.ParseToString(); + var shop = lstAdminShopInfo.FirstOrDefault(s => s.ShopId == row.Cells["colSupplierId"].Value.ParseToString()); + if (shop == null) + continue; + + this.cancelLowPrice(shop, orderId, row); + } + + Invoke(new Action(() => + { + this.pbLoading.Visible = false; + })); + }); + } + } + + public class PriceCheckConfig + { + public string SearchShopId { get; set; } = ""; + public string SearchShopName { get; set; } = ""; + public string SearchNotes { get; set; } = ""; + /// + /// 价格不合适时,重新设置价格降价金额(人民币) + /// + public string PriceDown { get; set; } = "0.1"; + public bool SearchAllShop { get; set; } = true; } } diff --git a/TEMUKJD/KJDForms/AdminForms/AdminProductPriceCheckForm.resx b/TEMUKJD/KJDForms/AdminForms/AdminProductPriceCheckForm.resx index 9f8bfd0..8dd4e91 100644 --- a/TEMUKJD/KJDForms/AdminForms/AdminProductPriceCheckForm.resx +++ b/TEMUKJD/KJDForms/AdminForms/AdminProductPriceCheckForm.resx @@ -120,7 +120,7 @@ True - + True @@ -141,6 +141,9 @@ True + + True + True diff --git a/TEMUKJD/KJDForms/ShopForms/ReturnPackageDetailForm.cs b/TEMUKJD/KJDForms/ShopForms/ReturnPackageDetailForm.cs index 5675c55..6b5e518 100644 --- a/TEMUKJD/KJDForms/ShopForms/ReturnPackageDetailForm.cs +++ b/TEMUKJD/KJDForms/ShopForms/ReturnPackageDetailForm.cs @@ -421,6 +421,10 @@ namespace TemuKJD.KJDForms.ShopForms else { rst = BaseRegex.GetStringJson(ref html, "msg"); + if (rst == null) + { + rst = ""; + } if ((rst.Contains("此退货包裹号") && rst.Contains("已经存在")) || rst.Contains("店铺系统不存在")) { //这些情况直接跳过