From d01d3bc306deb62891e5570d85d2333456e2f44f Mon Sep 17 00:00:00 2001 From: wule Date: Tue, 23 Sep 2025 19:33:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=93=81=E6=B4=BB=E5=8A=A8=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96=20=20=E5=95=86?= =?UTF-8?q?=E5=93=81=E6=B7=BB=E5=8A=A0=E7=BC=93=E5=AD=98=E6=9F=A5=E7=9C=8B?= =?UTF-8?q?=20=20=E5=95=86=E5=93=81=E6=B7=BB=E5=8A=A0=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E6=8C=89=E7=B1=BB=E7=9B=AE=E7=AD=9B=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AllBase/BaseClass.cs | 4 +- AllBase/Model/Result/KJDDBProduct.cs | 1 + .../BLL/BXX/BXXProductManage.cs | 43 ++- .../Model/DBProductResultParam.cs | 1 + .../Model/ShopModel/sku_img_replace.cs | 1 + TEMUKJD/Extension/DataGridViewExtension.cs | 85 ++++- TEMUKJD/KJD.csproj | 9 + .../PDDDBProdUserSelectCacheForm.Designer.cs | 278 +++++++++++++++ .../PDDDBProdUserSelectCacheForm.cs | 98 ++++++ .../PDDDBProdUserSelectCacheForm.resx | 328 ++++++++++++++++++ .../PDDDBProdUserSelectForm.Designer.cs | 121 +++++-- .../PDDDBProdUserSelectForm.cs | 303 +++++++++++----- 12 files changed, 1136 insertions(+), 136 deletions(-) create mode 100644 TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectCacheForm.Designer.cs create mode 100644 TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectCacheForm.cs create mode 100644 TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectCacheForm.resx diff --git a/AllBase/BaseClass.cs b/AllBase/BaseClass.cs index dbf606a..8d120c4 100644 --- a/AllBase/BaseClass.cs +++ b/AllBase/BaseClass.cs @@ -27,8 +27,8 @@ namespace AllBase /// /// 版本ID /// - public static int VersionCount = 597; - //public static int VersionCount = 596; + public static int VersionCount = 601; + //public static int VersionCount = 599; /// /// 版本号 diff --git a/AllBase/Model/Result/KJDDBProduct.cs b/AllBase/Model/Result/KJDDBProduct.cs index 56c501a..ee1c104 100644 --- a/AllBase/Model/Result/KJDDBProduct.cs +++ b/AllBase/Model/Result/KJDDBProduct.cs @@ -26,6 +26,7 @@ namespace AllBase.Model.Result public string size_json { get; set; } public int sku_img_replace_id { get; set; } public string sku_img_replace_base64 { get; set; } + public string sku_img_replace_url { get; set; } public string main_img { get; set; } public DateTime add_time { get; set; } public DateTime mdy_time { get; set; } diff --git a/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs b/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs index 046075c..43e155a 100644 --- a/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs +++ b/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs @@ -204,7 +204,7 @@ namespace KJD_Web.BLL.BXX else { if (isDetail) - sql = "select p.*,s.img_base64 from bxx.product p left join bxx.sku_img_replace s ON p.sku_img_replace_id=s.id where 1=1"; + sql = "select p.*,s.img_base64,s.img_url from bxx.product p left join bxx.sku_img_replace s ON p.sku_img_replace_id=s.id where 1=1"; else if (string.IsNullOrEmpty(get_select_count)) sql = "select p.id,p.from_shop_id,p.spu_id,p.skc_id,p.main_cat_id,p.main_cat_name,p.cat_id,p.cat_name,p.price_text,p.ext_code,p.product_name,p.main_img,p.notes," + "p.add_time,p.mdy_time,p.select_total_count,p.fission_words,p.head_words,p.end_words,p.sku_img_replace_id from bxx.product p where 1=1"; @@ -260,9 +260,10 @@ namespace KJD_Web.BLL.BXX }; if (isDetail) { - prod.sku_img_replace_base64 = row["img_base64"].ToString(); prod.product_json = row["product_json"].ToString(); prod.size_json = row["size_json"].ToString(); + prod.sku_img_replace_base64 = row["img_base64"].ToString(); + prod.sku_img_replace_url = row["img_url"].ToString(); } if (!string.IsNullOrEmpty(get_select_count)) { @@ -311,11 +312,11 @@ namespace KJD_Web.BLL.BXX string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; MysqlUtils mySql = new MysqlUtils(conn); - string sql = "select count(id) from bxx.sku_img_replace p where 1=1"; + string sql = "select count(id) from bxx.sku_img_replace s where 1=1"; string where = ""; if (!string.IsNullOrEmpty(sku_img_replace_ids)) - where += " and p.id in (" + sku_img_replace_ids + ")"; + where += " and s.id in (" + sku_img_replace_ids + ")"; sql += where; var count = mySql.ExecuteRowCount(sql); @@ -327,13 +328,12 @@ namespace KJD_Web.BLL.BXX } else { - if (isDetail) - sql = "select * from bxx.product p left where 1=1"; + sql = "select * from bxx.sku_img_replace s where 1=1"; //where子句 sql += where; - sql += " order by p.id desc"; + sql += " order by s.id desc"; sql += " limit " + Math.Max(page - 1, 0) * page_size + "," + page_size; dt = mySql.ExecuteDataTable(sql); } @@ -351,6 +351,7 @@ namespace KJD_Web.BLL.BXX id = Convert.ToInt32(row["id"]), img_base64 = row["img_base64"].ToString(), img_md5 = row["img_md5"].ToString(), + img_url = row["img_url"].ToString(), }; skuImgReplaceLst.Add(skuImgReplace); } @@ -370,6 +371,11 @@ namespace KJD_Web.BLL.BXX return "{\"code\":19999,\"msg\":\"输入为空\"}"; } + /// + /// 随机获取商品(无详情) 随机添加到上传列表所以不需要获取详情 + /// + /// + /// public string GetProductListRandom(string inputData) { if (!string.IsNullOrEmpty(inputData)) @@ -381,7 +387,7 @@ namespace KJD_Web.BLL.BXX var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'"); var password = RegexUtils.GetStringQuery(ref inputData, "password")?.Replace("'", "\\'"); - var is_detail = RegexUtils.GetStringQuery(ref inputData, "is_detail")?.Replace("'", "\\'"); + var in_ext_codes = RegexUtils.GetStringQuery(ref inputData, "in_ext_codes")?.Replace("'", "\\'"); int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt(); int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(50); @@ -392,6 +398,12 @@ namespace KJD_Web.BLL.BXX string sql = "select count(id) from bxx.product p where 1=1"; string where = ""; + if (!string.IsNullOrEmpty(in_ext_codes)) + { + in_ext_codes = "'" + string.Join("','", in_ext_codes.Split(new string[] { ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries)) + "'"; + where += " and ext_code in (" + in_ext_codes + ")"; + } + sql += where; var count = mySql.ExecuteRowCount(sql); @@ -403,11 +415,8 @@ namespace KJD_Web.BLL.BXX } else { - if (is_detail == "true") - sql = "select * from bxx.product p where 1=1"; - else - sql = "select p.id,p.from_shop_id,p.spu_id,p.skc_id,p.main_cat_id,p.main_cat_name,p.cat_id,p.cat_name,p.price_text,p.ext_code,p.product_name,p.main_img,p.notes," + - "p.add_time,p.mdy_time,p.select_total_count,p.fission_words,p.head_words,p.end_words from bxx.product p where 1=1"; + sql = "select p.id,p.from_shop_id,p.spu_id,p.skc_id,p.main_cat_id,p.main_cat_name,p.cat_id,p.cat_name,p.price_text,p.ext_code,p.product_name,p.main_img,p.notes," + + "p.add_time,p.mdy_time,p.select_total_count,p.fission_words,p.head_words,p.end_words from bxx.product p where 1=1"; //where子句 sql += where; @@ -449,11 +458,6 @@ namespace KJD_Web.BLL.BXX fission_words = row["fission_words"].ParseToString(), head_words = row["head_words"].ParseToString(), }; - if (is_detail == "true") - { - prod.product_json = row["product_json"].ToString(); - prod.size_json = row["size_json"].ToString(); - } productLst.Add(prod); } var data = JsonUtils.SerializerObjectToString(productLst); @@ -664,6 +668,7 @@ namespace KJD_Web.BLL.BXX var id = RegexUtils.GetStringQuery(ref inputData, "db_id")?.Replace("'", "\\'"); string img_md5 = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "img_md5")); string img_base64 = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "img_base64")); + string img_url = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "img_url")); if (string.IsNullOrEmpty(user_name)) { @@ -677,6 +682,8 @@ namespace KJD_Web.BLL.BXX sql += " img_md5='" + img_md5 + "',"; if (img_base64 != null) sql += " img_base64='" + img_base64 + "',"; + if (img_url != null) + sql += " img_url='" + img_url + "',"; sql = sql.TrimEnd(','); sql += " where id=" + id + ";"; diff --git a/KJDService/KJD_WebService/Model/DBProductResultParam.cs b/KJDService/KJD_WebService/Model/DBProductResultParam.cs index c746a81..6ccc24b 100644 --- a/KJDService/KJD_WebService/Model/DBProductResultParam.cs +++ b/KJDService/KJD_WebService/Model/DBProductResultParam.cs @@ -27,6 +27,7 @@ namespace KJD_Web.Model public string size_json { get; set; } public int sku_img_replace_id { get; set; } public string sku_img_replace_base64 { get; set; } + public string sku_img_replace_url { get; set; } public string main_img { get; set; } public DateTime add_time { get; set; } public DateTime mdy_time { get; set; } diff --git a/KJDService/KJD_WebService/Model/ShopModel/sku_img_replace.cs b/KJDService/KJD_WebService/Model/ShopModel/sku_img_replace.cs index d2e7160..36b4e39 100644 --- a/KJDService/KJD_WebService/Model/ShopModel/sku_img_replace.cs +++ b/KJDService/KJD_WebService/Model/ShopModel/sku_img_replace.cs @@ -10,5 +10,6 @@ namespace KJD_Web.Model.ShopModel public int id { get; set; } public string img_md5 { get; set; } public string img_base64 { get; set; } + public string img_url { get; set; } } } \ No newline at end of file diff --git a/TEMUKJD/Extension/DataGridViewExtension.cs b/TEMUKJD/Extension/DataGridViewExtension.cs index 249382a..b3d2d88 100644 --- a/TEMUKJD/Extension/DataGridViewExtension.cs +++ b/TEMUKJD/Extension/DataGridViewExtension.cs @@ -1,4 +1,7 @@ -using System; +using AllBase; +using NaiBa.Util; +using NaiBa.Util.Extension; +using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; @@ -531,5 +534,85 @@ namespace TemuKJD.Extension }; } + public static void AddImgColumn(this DataGridView dgv, string imgColumn, string imgPathColumn, bool isSetHttpsHttp = true) + { + dgv.Scroll += (s, e) => + { + ShowDgvImg(dgv, null, imgColumn, imgPathColumn, isSetHttpsHttp); + }; + dgv.Resize += (s, e) => + { + ShowDgvImg(dgv, null, imgColumn, imgPathColumn, isSetHttpsHttp); + }; + dgv.Sorted += (s, e) => + { + ShowDgvImg(dgv, null, imgColumn, imgPathColumn, isSetHttpsHttp); + }; + dgv.RowsAdded += (s, e) => + { + ShowDgvImg(dgv, new ConcurrentList { dgv.Rows[e.RowIndex] }, imgColumn, imgPathColumn, isSetHttpsHttp); + }; + } + static Bitmap defaultBitmap = new Bitmap(1,1); + static void ShowDgvImg(DataGridView dgv, ConcurrentList rowLst, string imgColumn, string imgPathColumn, bool isSetHttpsHttp = true) + { + Task.Run(() => + { + if (rowLst == null) + { + rowLst = new ConcurrentList(); + rowLst.AddRange(dgv.Rows.Cast()); + } + foreach (DataGridViewRow row in rowLst) + { + if (row.Index > 1 && row.Cells[imgColumn].Displayed == false) + { + try + { + dgv.Invoke(new Action(() => + { + row.Cells[imgColumn].Value = defaultBitmap; + })); + } + catch + { + } + continue; + } + + if (row.Index >= 0 && row.Cells[imgColumn].Value != null && row.Cells[imgColumn].Value != defaultBitmap) + continue; + + Image image = null; + if (row.Index >= 0) + { + string imgUrl = row.Cells[imgPathColumn]?.Value.ParseToString(); + if (isSetHttpsHttp == true) + imgUrl = imgUrl.Replace("https://", "http://"); + string getImgError = ""; + if (!string.IsNullOrWhiteSpace(imgUrl)) + image = GetHtml.GetUrlImg(imgUrl, out getImgError); + if (!string.IsNullOrEmpty(getImgError)) + //BaseMsgForm.ShowError("图片加载失败 " + getImgError); + image = TemuKJD.Properties.Resources.errpic; + } + + try + { + dgv.Invoke(new Action(() => + { + if (row.Index >= 0) + { + row.Cells[imgColumn].Value = image; + } + })); + } + catch + { + } + } + }); + } + } } diff --git a/TEMUKJD/KJD.csproj b/TEMUKJD/KJD.csproj index 6be2327..e6965a5 100644 --- a/TEMUKJD/KJD.csproj +++ b/TEMUKJD/KJD.csproj @@ -425,6 +425,12 @@ PDDProductForm.cs + + Form + + + PDDDBProdUserSelectCacheForm.cs + Form @@ -881,6 +887,9 @@ PDDProductForm.cs + + PDDDBProdUserSelectCacheForm.cs + PDDDBProdUserSelectEditNotesForm.cs diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectCacheForm.Designer.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectCacheForm.Designer.cs new file mode 100644 index 0000000..b966eb5 --- /dev/null +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectCacheForm.Designer.cs @@ -0,0 +1,278 @@ + +namespace TemuKJD.PDDForms.ProductSelectForms +{ + partial class PDDDBProdUserSelectCacheForm + { + /// + /// 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(PDDDBProdUserSelectCacheForm)); + this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.btnClearDgv = new DevComponents.DotNetBar.PanelEx(); + this.splitContainer2 = new System.Windows.Forms.SplitContainer(); + this.dgvSelectProduct = new TemuKJD.UserComponent.DataGridViewEx(); + this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSpuId = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colImgUrl = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colProductSkcPic = new System.Windows.Forms.DataGridViewImageColumn(); + this.colProductName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colProductCat = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colExtCode = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.ColDelete = new System.Windows.Forms.DataGridViewLinkColumn(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); + this.splitContainer1.Panel1.SuspendLayout(); + this.splitContainer1.Panel2.SuspendLayout(); + this.splitContainer1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit(); + this.splitContainer2.Panel1.SuspendLayout(); + this.splitContainer2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvSelectProduct)).BeginInit(); + this.SuspendLayout(); + // + // 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(1, 33); + this.splitContainer1.Name = "splitContainer1"; + this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // splitContainer1.Panel1 + // + this.splitContainer1.Panel1.Controls.Add(this.btnClearDgv); + // + // splitContainer1.Panel2 + // + this.splitContainer1.Panel2.Controls.Add(this.splitContainer2); + this.splitContainer1.Size = new System.Drawing.Size(1110, 566); + this.splitContainer1.SplitterDistance = 55; + this.splitContainer1.TabIndex = 1; + this.splitContainer1.TabStop = false; + // + // btnClearDgv + // + this.btnClearDgv.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnClearDgv.CanvasColor = System.Drawing.SystemColors.Control; + this.btnClearDgv.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnClearDgv.DisabledBackColor = System.Drawing.Color.Empty; + this.btnClearDgv.Location = new System.Drawing.Point(1000, 16); + this.btnClearDgv.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); + this.btnClearDgv.Name = "btnClearDgv"; + this.btnClearDgv.Size = new System.Drawing.Size(84, 23); + this.btnClearDgv.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnClearDgv.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnClearDgv.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnClearDgv.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnClearDgv.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClearDgv.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnClearDgv.Style.GradientAngle = 90; + this.btnClearDgv.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnClearDgv.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnClearDgv.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClearDgv.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClearDgv.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnClearDgv.TabIndex = 616; + this.btnClearDgv.Text = "清空列表选中"; + this.btnClearDgv.Click += new System.EventHandler(this.btnClearDgv_Click); + // + // splitContainer2 + // + 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.Controls.Add(this.dgvSelectProduct); + this.splitContainer2.Panel1.Padding = new System.Windows.Forms.Padding(5, 0, 5, 0); + this.splitContainer2.Size = new System.Drawing.Size(1110, 507); + this.splitContainer2.SplitterDistance = 478; + this.splitContainer2.TabIndex = 0; + this.splitContainer2.TabStop = false; + // + // dgvSelectProduct + // + this.dgvSelectProduct.AllowUserToAddRows = false; + this.dgvSelectProduct.AllowUserToDeleteRows = false; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvSelectProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; + this.dgvSelectProduct.BackgroundColor = System.Drawing.Color.White; + this.dgvSelectProduct.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.dgvSelectProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2; + this.dgvSelectProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvSelectProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.colCheck, + this.colId, + this.colSpuId, + this.colImgUrl, + this.colProductSkcPic, + this.colProductName, + this.colProductCat, + this.colExtCode, + this.colNotes, + this.ColDelete}); + this.dgvSelectProduct.Dock = System.Windows.Forms.DockStyle.Fill; + this.dgvSelectProduct.Location = new System.Drawing.Point(5, 0); + this.dgvSelectProduct.Name = "dgvSelectProduct"; + this.dgvSelectProduct.ReadOnly = true; + this.dgvSelectProduct.RowTemplate.Height = 23; + this.dgvSelectProduct.Size = new System.Drawing.Size(1100, 478); + this.dgvSelectProduct.TabIndex = 188; + this.dgvSelectProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvSelectProduct_CellContentClick); + // + // colCheck + // + this.colCheck.Frozen = true; + this.colCheck.HeaderText = "选择"; + this.colCheck.Name = "colCheck"; + this.colCheck.ReadOnly = true; + this.colCheck.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colCheck.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colCheck.Width = 30; + // + // colId + // + this.colId.HeaderText = "序号"; + this.colId.Name = "colId"; + this.colId.ReadOnly = true; + this.colId.Width = 45; + // + // colSpuId + // + this.colSpuId.HeaderText = "商品ID"; + this.colSpuId.Name = "colSpuId"; + this.colSpuId.ReadOnly = true; + this.colSpuId.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSpuId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + // + // colImgUrl + // + this.colImgUrl.HeaderText = "图片地址"; + this.colImgUrl.Name = "colImgUrl"; + this.colImgUrl.ReadOnly = true; + this.colImgUrl.Visible = false; + // + // colProductSkcPic + // + this.colProductSkcPic.HeaderText = "图片"; + this.colProductSkcPic.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom; + this.colProductSkcPic.Name = "colProductSkcPic"; + this.colProductSkcPic.ReadOnly = true; + this.colProductSkcPic.Width = 60; + // + // colProductName + // + dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colProductName.DefaultCellStyle = dataGridViewCellStyle3; + this.colProductName.HeaderText = "商品标题"; + this.colProductName.Name = "colProductName"; + this.colProductName.ReadOnly = true; + this.colProductName.Width = 390; + // + // colProductCat + // + this.colProductCat.HeaderText = "商品类目"; + this.colProductCat.Name = "colProductCat"; + this.colProductCat.ReadOnly = true; + this.colProductCat.Width = 120; + // + // colExtCode + // + this.colExtCode.HeaderText = "商品货号"; + this.colExtCode.Name = "colExtCode"; + this.colExtCode.ReadOnly = true; + this.colExtCode.Width = 120; + // + // colNotes + // + this.colNotes.HeaderText = "商品备注"; + this.colNotes.Name = "colNotes"; + this.colNotes.ReadOnly = true; + // + // ColDelete + // + this.ColDelete.HeaderText = "删除"; + this.ColDelete.Name = "ColDelete"; + this.ColDelete.ReadOnly = true; + this.ColDelete.Width = 75; + // + // PDDDBProdUserSelectCacheForm + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(1112, 600); + this.Controls.Add(this.splitContainer1); + 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.Name = "PDDDBProdUserSelectCacheForm"; + this.Text = "待上传商品"; + this.TitleText = "待上传商品"; + this.Load += new System.EventHandler(this.PDDDBProdUserSelectCacheForm_Load); + this.Controls.SetChildIndex(this.splitContainer1, 0); + this.splitContainer1.Panel1.ResumeLayout(false); + this.splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); + this.splitContainer1.ResumeLayout(false); + this.splitContainer2.Panel1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit(); + this.splitContainer2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dgvSelectProduct)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.SplitContainer splitContainer1; + private System.Windows.Forms.SplitContainer splitContainer2; + private UserComponent.DataGridViewEx dgvSelectProduct; + private DevComponents.DotNetBar.PanelEx btnClearDgv; + private System.Windows.Forms.DataGridViewCheckBoxColumn colCheck; + private System.Windows.Forms.DataGridViewTextBoxColumn colId; + private System.Windows.Forms.DataGridViewLinkColumn colSpuId; + private System.Windows.Forms.DataGridViewTextBoxColumn colImgUrl; + private System.Windows.Forms.DataGridViewImageColumn colProductSkcPic; + private System.Windows.Forms.DataGridViewTextBoxColumn colProductName; + private System.Windows.Forms.DataGridViewTextBoxColumn colProductCat; + private System.Windows.Forms.DataGridViewTextBoxColumn colExtCode; + private System.Windows.Forms.DataGridViewTextBoxColumn colNotes; + private System.Windows.Forms.DataGridViewLinkColumn ColDelete; + } +} \ No newline at end of file diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectCacheForm.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectCacheForm.cs new file mode 100644 index 0000000..449925a --- /dev/null +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectCacheForm.cs @@ -0,0 +1,98 @@ +using AllBase; +using AllBase.Model.Result; +using NaiBa.Util.Extension; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using TemuKJD.BaseForms; +using TemuKJD.Extension; +using TemuKJD.ToolForms; + +namespace TemuKJD.PDDForms.ProductSelectForms +{ + public partial class PDDDBProdUserSelectCacheForm : LRBaseForm + { + NaiBa.Util.ConcurrentList lstTemuDBProductSelect; + public PDDDBProdUserSelectCacheForm(NaiBa.Util.ConcurrentList _lstTemuDBProductSelect) + { + InitializeComponent(); + + lstTemuDBProductSelect = _lstTemuDBProductSelect; + } + + private void PDDDBProdUserSelectCacheForm_Load(object sender, EventArgs e) + { + dgvSelectProduct.AddSelectorColumn("colCheck"); + dgvSelectProduct.AddImgColumn("colProductSkcPic", "colImgUrl"); + + if (lstTemuDBProductSelect != null && lstTemuDBProductSelect.Count > 0) + { + foreach (var prodSelect in lstTemuDBProductSelect) + { + int rowIndex = this.dgvSelectProduct.Rows.Add( + false, + prodSelect.id, + prodSelect.spu_id, + prodSelect.main_img, + null, + prodSelect.product_name, // 商品名称 + prodSelect.cat_name, + prodSelect.ext_code, + prodSelect.notes, + "删除" + ); + + dgvSelectProduct.Rows[rowIndex].Height = 60; + } + } + } + + private void dgvSelectProduct_CellContentClick(object sender, DataGridViewCellEventArgs e) + { + if (e.ColumnIndex < 0 || e.RowIndex < 0) + return; + string headerText = dgvSelectProduct.Columns[e.ColumnIndex].HeaderText; + var id = dgvSelectProduct.Rows[e.RowIndex].Cells["colId"].Value.ParseToString(); + var dbProduct = lstTemuDBProductSelect.FirstOrDefault(p => p.id.ToString() == id); + var row = dgvSelectProduct.Rows[e.RowIndex]; + + switch (headerText) + { + case "删除": + if (BaseMsgForm.ShowConfirm("确定删除商品吗?删除后不可恢复!").DialogResult == DialogResult.Cancel) + return; + lstTemuDBProductSelect.RemoveAll(s => s.id == row.Cells["colId"].Value.ParseToInt()); + this.dgvSelectProduct.Rows.Remove(row); + break; + case "图片": + ShowImgForm imgFrom = new ShowImgForm(dgvSelectProduct.Rows[e.RowIndex].Cells["colImgUrl"].Value.ParseToString()); + imgFrom.ShowDialog(); + break; + case "": + dgvSelectProduct.Rows[e.RowIndex].Cells["colCheck"].Value = !(bool)dgvSelectProduct.Rows[e.RowIndex].Cells["colCheck"].Value; + break; + default: + break; + } + } + + private void btnClearDgv_Click(object sender, EventArgs e) + { + var rows = this.dgvSelectProduct.Rows.Cast().ToList(); //Cast后Rows做foreach循环时仍会夹花跳过,所以要ToList转一个新的数组。 + foreach (var row in rows) + { + if (row.Cells["colCheck"].Value.ParseToBool() == true) + { + lstTemuDBProductSelect.RemoveAll(s => s.id == row.Cells["colId"].Value.ParseToInt()); + this.dgvSelectProduct.Rows.Remove(row); + } + } + } + } +} diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectCacheForm.resx b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectCacheForm.resx new file mode 100644 index 0000000..05d1891 --- /dev/null +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectCacheForm.resx @@ -0,0 +1,328 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + 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/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.Designer.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.Designer.cs index 18a0b0c..21bed9e 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.Designer.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.Designer.cs @@ -30,11 +30,11 @@ namespace TemuKJD.PDDForms.ProductSelectForms 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(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle(); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); this.ucGroupBoxEx2 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); this.txtAddTimesFake = new System.Windows.Forms.TextBox(); @@ -134,6 +134,9 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.btnClear = new DevComponents.DotNetBar.PanelEx(); this.panelEx1 = new DevComponents.DotNetBar.PanelEx(); this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage(); + this.txtExtCodeFilter = new System.Windows.Forms.TextBox(); + this.panelEx3 = new DevComponents.DotNetBar.PanelEx(); + this.label16 = new System.Windows.Forms.Label(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); @@ -616,11 +619,14 @@ namespace TemuKJD.PDDForms.ProductSelectForms | System.Windows.Forms.AnchorStyles.Left))); this.ucGroupBoxEx4.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.ucGroupBoxEx4.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND; + this.ucGroupBoxEx4.Controls.Add(this.panelEx3); + this.ucGroupBoxEx4.Controls.Add(this.txtExtCodeFilter); this.ucGroupBoxEx4.Controls.Add(this.btnClearUpload); this.ucGroupBoxEx4.Controls.Add(this.lblWaitToUp); this.ucGroupBoxEx4.Controls.Add(this.lblGoodsCount); this.ucGroupBoxEx4.Controls.Add(this.txtAddCount); this.ucGroupBoxEx4.Controls.Add(this.panelEx2); + this.ucGroupBoxEx4.Controls.Add(this.label16); this.ucGroupBoxEx4.Location = new System.Drawing.Point(147, 2); this.ucGroupBoxEx4.Name = "ucGroupBoxEx4"; this.ucGroupBoxEx4.Size = new System.Drawing.Size(338, 140); @@ -633,7 +639,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.btnClearUpload.CanvasColor = System.Drawing.SystemColors.Control; this.btnClearUpload.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.btnClearUpload.DisabledBackColor = System.Drawing.Color.Empty; - this.btnClearUpload.Location = new System.Drawing.Point(219, 72); + this.btnClearUpload.Location = new System.Drawing.Point(240, 98); this.btnClearUpload.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); this.btnClearUpload.Name = "btnClearUpload"; this.btnClearUpload.Size = new System.Drawing.Size(76, 23); @@ -656,26 +662,31 @@ namespace TemuKJD.PDDForms.ProductSelectForms // lblWaitToUp // this.lblWaitToUp.AutoSize = true; - this.lblWaitToUp.Location = new System.Drawing.Point(18, 76); + this.lblWaitToUp.Cursor = System.Windows.Forms.Cursors.Hand; + this.lblWaitToUp.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lblWaitToUp.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.lblWaitToUp.Location = new System.Drawing.Point(18, 104); this.lblWaitToUp.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.lblWaitToUp.Name = "lblWaitToUp"; this.lblWaitToUp.Size = new System.Drawing.Size(95, 17); this.lblWaitToUp.TabIndex = 541; this.lblWaitToUp.Text = "待上传商品 0 件"; + this.lblWaitToUp.Click += new System.EventHandler(this.lblWaitToUp_Click); // // lblGoodsCount // this.lblGoodsCount.AutoSize = true; - this.lblGoodsCount.Location = new System.Drawing.Point(164, 35); + this.lblGoodsCount.Location = new System.Drawing.Point(164, 64); this.lblGoodsCount.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.lblGoodsCount.Name = "lblGoodsCount"; this.lblGoodsCount.Size = new System.Drawing.Size(131, 17); this.lblGoodsCount.TabIndex = 537; this.lblGoodsCount.Text = "产品库中共有 0 件商品"; + this.lblGoodsCount.Click += new System.EventHandler(this.lblGoodsCount_Click); // // txtAddCount // - this.txtAddCount.Location = new System.Drawing.Point(20, 32); + this.txtAddCount.Location = new System.Drawing.Point(20, 61); this.txtAddCount.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); this.txtAddCount.Name = "txtAddCount"; this.txtAddCount.Size = new System.Drawing.Size(47, 23); @@ -688,7 +699,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms 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(70, 32); + this.panelEx2.Location = new System.Drawing.Point(70, 61); this.panelEx2.Name = "panelEx2"; this.panelEx2.Size = new System.Drawing.Size(90, 23); this.panelEx2.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -791,18 +802,18 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.dgvShop.AllowUserToAddRows = false; this.dgvShop.AllowUserToDeleteRows = false; - dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke; - this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; + dataGridViewCellStyle6.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle6; this.dgvShop.BackgroundColor = System.Drawing.Color.White; this.dgvShop.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.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2; + dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle7.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle7.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle7.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle7.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle7.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle7; this.dgvShop.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dgvShop.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.colSelect, @@ -1220,18 +1231,18 @@ namespace TemuKJD.PDDForms.ProductSelectForms // this.dgvSelectProduct.AllowUserToAddRows = false; this.dgvSelectProduct.AllowUserToDeleteRows = false; - dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke; - this.dgvSelectProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3; + dataGridViewCellStyle8.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvSelectProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle8; this.dgvSelectProduct.BackgroundColor = System.Drawing.Color.White; this.dgvSelectProduct.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.dgvSelectProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4; + dataGridViewCellStyle9.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle9.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle9.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle9.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle9.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle9.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvSelectProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle9; this.dgvSelectProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dgvSelectProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.colCheck, @@ -1351,8 +1362,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms // // colProductName // - dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colProductName.DefaultCellStyle = dataGridViewCellStyle5; + dataGridViewCellStyle10.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colProductName.DefaultCellStyle = dataGridViewCellStyle10; this.colProductName.HeaderText = "商品标题"; this.colProductName.Name = "colProductName"; this.colProductName.ReadOnly = true; @@ -1519,6 +1530,49 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.ucSplitPage1.TabIndex = 675; this.ucSplitPage1.TotalPage = 1; // + // txtExtCodeFilter + // + this.txtExtCodeFilter.Location = new System.Drawing.Point(70, 32); + this.txtExtCodeFilter.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtExtCodeFilter.Name = "txtExtCodeFilter"; + this.txtExtCodeFilter.Size = new System.Drawing.Size(182, 23); + this.txtExtCodeFilter.TabIndex = 555; + // + // panelEx3 + // + this.panelEx3.CanvasColor = System.Drawing.SystemColors.Control; + this.panelEx3.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.panelEx3.DisabledBackColor = System.Drawing.Color.Empty; + this.panelEx3.Location = new System.Drawing.Point(256, 32); + this.panelEx3.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); + this.panelEx3.Name = "panelEx3"; + this.panelEx3.Size = new System.Drawing.Size(60, 23); + this.panelEx3.Style.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx3.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.panelEx3.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.panelEx3.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.panelEx3.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx3.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.panelEx3.Style.GradientAngle = 90; + this.panelEx3.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx3.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx3.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx3.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx3.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.panelEx3.TabIndex = 559; + this.panelEx3.Text = "清除筛选"; + this.panelEx3.Click += new System.EventHandler(this.btnClearFilter_Click); + // + // label16 + // + this.label16.AutoSize = true; + this.label16.Location = new System.Drawing.Point(16, 35); + this.label16.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(56, 17); + this.label16.TabIndex = 560; + this.label16.Text = "筛选货号"; + // // PDDDBProdUserSelectForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; @@ -1666,5 +1720,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms private System.Windows.Forms.TextBox txtAddTimesFake; private System.Windows.Forms.Label label10; private UserComponent.UcCheckBox chkActivity; + private DevComponents.DotNetBar.PanelEx panelEx3; + private System.Windows.Forms.TextBox txtExtCodeFilter; + private System.Windows.Forms.Label label16; } } \ No newline at end of file diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs index 7a875b7..7a1d196 100644 --- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs +++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs @@ -705,6 +705,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms randomShop = randomShopLst[Randomx.GetId(randomShopLst.Count)]; } + if (lstTemuDBProductSelect.Count <= 0) + break; var prod = lstTemuDBProductSelect[0]; if (randomShop != null) { @@ -922,7 +924,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms { row.Cells["colDraftId"].Value = productDraftId; // 草稿箱id row.Cells["colAddTime"].Value = DateTime.Now.ToString("yy-MM-dd HH:mm:ss"); - row.Cells["colOpResult"].Value = (prod.status == "已上传" ? "已成功上传" : "已上传草稿箱") + (" " + error).TrimEnd(' ') + " " + duration.ParseToInt() + "秒"; + row.Cells["colOpResult"].Value = (prod.status == "已上传" ? "已成功上传" : "已上传但有部分错误") + (" " + error).TrimEnd(' ') + " " + duration.ParseToInt() + "秒"; row.Cells["colMsg"].Value = prod.status; } })); @@ -950,7 +952,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms this.statusBar.lblTaskStatus.Text = "上传停止"; else this.statusBar.lblTaskStatus.Text = "上传完成"; - this.statusBar.UpdateProgressBar(lstTemuDBProductSelect.Count); + //this.statusBar.UpdateProgressBar(lstTemuDBProductSelect.Count); })); } @@ -995,7 +997,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms var error = BaseRegex.GetStringJson(ref rst, "error_msg"); if (string.IsNullOrEmpty(error)) error = rst; - return "上传失败 " + error; + return "新建查询失败 " + error; } var chance_id = BaseRegex.GetStringJson(ref rst, "chance_id"); @@ -1022,11 +1024,12 @@ namespace TemuKJD.PDDForms.ProductSelectForms } if (!rst.Contains("\"success\":true")) { - var error = BaseRegex.GetStringJson(ref rst, "error_msg"); - if (string.IsNullOrEmpty(error)) - error = rst; - return "上传失败 " + error; + //var error = BaseRegex.GetStringJson(ref rst, "error_msg"); + //if (string.IsNullOrEmpty(error)) + // error = rst; + //return "新建创建失败 " + error; } + //失败了继续走普通商品上传接口 var draftId = BaseRegex.GetStringJson(ref rst, "draft_id"); var goods_id = BaseRegex.GetLongJson(ref rst, "goods_id"); prodParam.goods_commit_id = draftId; @@ -1034,7 +1037,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms if (prodParam.goods_id <= 0 || prodParam.goods_commit_id.ParseToLong() <= 0) { Thread.Sleep(Randomx.GetId(20, 80)); - //return "上传失败 申请机会商品ID失败" + rst.Replace("\"success\":true", "\"success1\":true"); + //return "新建失败 申请机会商品ID失败" + rst.Replace("\"success\":true", "\"success1\":true"); string create_new_html = create_prod_commit_id(shop); if (create_new_html.Contains("\"success\":true")) { @@ -1046,11 +1049,11 @@ namespace TemuKJD.PDDForms.ProductSelectForms var error = BaseRegex.GetStringJson(ref create_new_html, "error_msg"); if (string.IsNullOrEmpty(error)) error = create_new_html; - return "上传失败 " + error; + return "新建失败 " + error; } if (prodParam.goods_id <= 0 || prodParam.goods_commit_id.ParseToLong() <= 0) { - return "上传失败 " + create_new_html; + return "新建失败 " + create_new_html; } } @@ -1061,7 +1064,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms var error = BaseRegex.GetStringJson(ref rst, "error_msg"); if (string.IsNullOrEmpty(error)) error = rst; - return "上传失败 " + error; + return "新建失败 " + error; } var chance_cat_id = BaseRegex.GetStringJson(ref rst, "cat_id"); @@ -1088,11 +1091,11 @@ namespace TemuKJD.PDDForms.ProductSelectForms var error = BaseRegex.GetStringJson(ref create_new_html, "error_msg"); if (string.IsNullOrEmpty(error)) error = create_new_html; - return "上传失败 " + error; + return "新建失败 " + error; } if (prodParam.goods_id <= 0 || prodParam.goods_commit_id.ParseToLong() <= 0) { - return "上传失败 " + create_new_html; + return "新建失败 " + create_new_html; } } @@ -1121,7 +1124,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms } } catch (Exception ex) { - return "上传失败 " + ex.Message; + return "编辑失败 " + ex.Message; } } else @@ -1129,7 +1132,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms var error = BaseRegex.GetStringJson(ref prop_template_html, "error_msg"); if (string.IsNullOrEmpty(error)) error = prop_template_html; - return "上传失败 " + error; + return "编辑失败 " + error; } string decoration_preview_html = preview_goods_decoration(shop, prodParam.goods_id.ParseToString(), prodParam.goods_commit_id); @@ -1142,7 +1145,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms var error = BaseRegex.GetStringJson(ref decoration_preview_html, "error_msg"); if (string.IsNullOrEmpty(error)) error = decoration_preview_html; - return "上传失败 " + error; + return "编辑失败 " + error; } if (cell != null) @@ -1163,7 +1166,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms var error = BaseRegex.GetStringJson(ref cost_template_html, "error_msg"); if (string.IsNullOrEmpty(error)) error = cost_template_html; - return "上传失败 " + error; + return "编辑失败 " + error; } //智能关键字 @@ -1179,7 +1182,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms var error = BaseRegex.GetStringJson(ref keywords_html, "error_msg"); if (string.IsNullOrEmpty(error)) error = keywords_html; - return "上传失败 " + error; + return "编辑失败 " + error; } JObject jObj = JObject.Parse(keywords_html); @@ -1314,7 +1317,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms catch (Exception ex) { //转换失败也不要取消,会上传到草稿箱 - //return "上传失败 " + ex.Message; + //return "编辑失败 " + ex.Message; } } } @@ -1439,7 +1442,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms var error = BaseRegex.GetStringJson(ref material_html, "error_msg"); if (string.IsNullOrEmpty(error)) error = material_html; - return "上传失败 " + error; + return "编辑失败 " + error; } } // 长图 @@ -1456,7 +1459,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms var error = BaseRegex.GetStringJson(ref material_html, "error_msg"); if (string.IsNullOrEmpty(error)) error = material_html; - return "上传失败 " + error; + return "编辑失败 " + error; } } @@ -1529,14 +1532,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms } } } - //if(isActivity) // 如果是去报活动,把基础价格报到3倍以上 - //{ - // skuParam.multi_price = (skuInfo.multi_price * this.txtAddTimesFake.Text.Trim().ParseToDecimal() + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100).ParseToInt(); - - // if (isAddMorePriceFirst) // 先加后乘 - // skuParam.multi_price = ((skuInfo.multi_price + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100) * this.txtAddTimesFake.Text.Trim().ParseToDecimal()).ParseToInt(); - // skuParam.price = skuParam.multi_price + Math.Max(100, this.txtSinglePriceAdd.Text.Trim().ParseToDecimal() * 100).ParseToInt(); - //} if (prodParam.market_price < skuParam.price + 1000) { @@ -1600,6 +1595,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms decorationParam.decoration_floor_list.Add(floor_param); } + #region 测试 //if (prodInfo.size != null && prodInfo.size.classId != null) //{ // var reusableSizespecRst = reusable_sizespec(shop, prodInfo.detail.cat_id.ParseToString(), prodParam.goods_id.ParseToString(), prodParam.goods_commit_id); @@ -1627,6 +1623,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms // return "上传失败 " + error; //} //return "上传成功"; + #endregion sleepTime = Randomx.GetId(1000, 5000); sleepTimeTotal += sleepTime; @@ -1673,7 +1670,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms //var error = BaseRegex.GetStringJson(ref size_result, "error_msg"); //if (string.IsNullOrEmpty(error)) // error = size_result; - //return "上传失败 " + error; + //return "编辑失败 " + error; } else { @@ -1761,18 +1758,28 @@ namespace TemuKJD.PDDForms.ProductSelectForms } } - #region 生成一个fake商品提交参数,价格按照3倍上传,用于参加活动 + #region 生成一个fake商品提交参数,价格按照3倍(指定倍数)上传,用于参加活动 string img_signature = ""; - if (isActivityFake && 1 == 2) + if (isActivityFake && string.IsNullOrEmpty(dbProd.sku_img_replace_url) && !string.IsNullOrEmpty(dbProd.sku_img_replace_base64) && 1 == 1) { var img_signature_rst = get_uploag_img_signature(shop, prodParam.goods_id.ParseToString(), prodParam.goods_commit_id); if (!img_signature_rst.Contains("\"success\":true")) + { + Thread.Sleep(Randomx.GetId(500, 1000)); + img_signature_rst = get_uploag_img_signature(shop, prodParam.goods_id.ParseToString(), prodParam.goods_commit_id); + } + if (!img_signature_rst.Contains("\"success\":true")) + { + Thread.Sleep(Randomx.GetId(500, 1000)); + img_signature_rst = get_uploag_img_signature(shop, prodParam.goods_id.ParseToString(), prodParam.goods_commit_id); + } + if (!img_signature_rst.Contains("\"success\":true")) { var error = BaseRegex.GetStringJson(ref img_signature_rst, "error_msg"); if (string.IsNullOrEmpty(error)) error = img_signature_rst; - return "获取上传图片密钥失败 " + error; + return "上传图片准备失败 " + error; } else { @@ -1780,16 +1787,36 @@ namespace TemuKJD.PDDForms.ProductSelectForms } } - string fakeImgUrlDefault = "https://img.pddpic.com/mms-material-img/2025-09-22/72122dc1-56d8-4265-9212-5bf0edcf72d4.jpeg.a.jpeg"; - //fakeImgUrlDefault = "https://img.pddpic.com/mms-goods-image/2025-09-21/4204dcd6-afe0-4090-94fc-a68bf70396da.jpeg.a.jpeg?imageView2/2/w/1700/q/85"; - if (currentCount % 3 == 0) - fakeImgUrlDefault = "https://img.pddpic.com/mms-goods-image/2025-09-21/4204dcd6-afe0-4090-94fc-a68bf70396da.jpeg.a.jpeg"; - else if (currentCount % 3 == 1) - fakeImgUrlDefault = "https://img.pddpic.com/mms-goods-image/2025-09-21/5ec7192b-3da3-4fc1-88fd-66493a5bc9cf.jpeg.a.jpeg"; - else - fakeImgUrlDefault = "https://img.pddpic.com/open-gw/2025-08-13/97a2999c-0f60-47fb-a62f-21ecc0765cb9.jpeg"; - string fakeImgUrl = fakeImgUrlDefault; - if (isActivityFake && 1==2) + //fakeImgUrlDefault = "https://img.pddpic.com/mms-goods-image/2025-09-23/a82199c7-eec1-40bc-a95a-a643f5ebf934.jpeg.a.jpeg"; // 不值钱的鞋 + //https://img.pddpic.com/mms-goods-image/2025-09-23/aa714d65-08ba-437b-a62a-429b6f4ad061.jpeg.a.jpeg?imageView2/2/w/1700/q/85 // 图片缩略图格式 + List imgStrLst = new List() { + "https://img.pddpic.com/open-gw/2025-08-13/97a2999c-0f60-47fb-a62f-21ecc0765cb9.jpeg", + "https://img.pddpic.com/mms-goods-image/2025-09-21/4204dcd6-afe0-4090-94fc-a68bf70396da.jpeg.a.jpeg", + "https://img.pddpic.com/mms-goods-image/2025-09-21/5ec7192b-3da3-4fc1-88fd-66493a5bc9cf.jpeg.a.jpeg", + "https://img.pddpic.com/mms-goods-image/2025-09-23/e7b614a6-07fb-4d49-adf5-6f48e9afd36f.jpeg.a.jpeg", + "https://img.pddpic.com/mms-goods-image/2025-09-23/35151a9e-962e-4490-9d61-3477c090d29f.jpeg.a.jpeg", + "https://img.pddpic.com/mms-goods-image/2025-09-23/7c1d1098-d348-460e-b663-e19c960aede8.jpeg.a.jpeg", + "https://img.pddpic.com/mms-goods-image/2025-09-23/aa714d65-08ba-437b-a62a-429b6f4ad061.jpeg.a.jpeg", + "https://img.pddpic.com/mms-goods-image/2025-09-23/faaca32a-aae2-4ae5-85c9-44be1489208f.jpeg.a.jpeg", + "https://img.pddpic.com/mms-goods-image/2025-09-23/df8fa493-e8e2-4e07-8e8a-db30d10d5c9c.jpeg.a.jpeg", + "https://img.pddpic.com/mms-goods-image/2025-09-23/1b98757c-efb0-4a4e-8031-025056310c9f.jpeg.a.jpeg", + "https://img.pddpic.com/mms-goods-image/2025-09-23/c0e083d2-2e05-4b3d-9543-bcad49a17873.jpeg.a.jpeg", + "https://img.pddpic.com/mms-goods-image/2025-09-23/7ea07200-05da-45b9-9e9a-fba4d46cfec9.jpeg.a.jpeg", + }; + + int fakeImgTryCount = 0; + int fakeimgIndex = Randomx.GetId(imgStrLst.Count); + fakeSkuImgTry: + fakeimgIndex = Randomx.GetId(imgStrLst.Count); + fakeImgTryCount++; + fakeimgIndex++; + if (fakeimgIndex >= imgStrLst.Count) + fakeimgIndex = 0; + string fakeImgUrlDefault = imgStrLst[fakeimgIndex]; + string fakeImgUrl = ""; + if (fakeImgTryCount == 1 && !string.IsNullOrEmpty(dbProd.sku_img_replace_url)) + fakeImgUrl = dbProd.sku_img_replace_url; + if (isActivityFake && string.IsNullOrEmpty(dbProd.sku_img_replace_url) && !string.IsNullOrEmpty(dbProd.sku_img_replace_base64) && 1 == 1) { string img_base64 = dbProd.sku_img_replace_base64; if (string.IsNullOrEmpty(img_base64)) @@ -1830,11 +1857,19 @@ Content-Disposition: form-data; name=""pic_operations"" else { fakeImgUrl = BaseRegex.GetStringJson(ref uploadImgRst, "url"); + var url = BaseClass.BuildObjString("product/mdy_sku_img_replace"); + var data = UserLogin.GetSignaturex() + + "&db_id=" + dbProd.sku_img_replace_id; + data += "&img_url=" + GetHtml.UrlEncodeUtf8(fakeImgUrl); + var html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + html = GetHtml.PostUtf8(url, data); } } - fakeImgUrl = fakeImgUrlDefault; + if (string.IsNullOrEmpty(fakeImgUrl)) + fakeImgUrl = fakeImgUrlDefault; - var prodParamHighPrice = JsonHelper.DeserializeJsonToObject(JsonHelper.SerializeObject(prodParam)); + var prodParamHighPrice = JsonHelper.DeserializeJsonToObject(JsonHelper.SerializeObject(prodParam)); prodParamHighPrice.skus = new List(); foreach (var skuInfo in prodInfo.detail.sku) { @@ -1843,10 +1878,10 @@ Content-Disposition: form-data; name=""pic_operations"" id = skuInfo.id, is_onsale = skuInfo.is_onsale, limit_quantity = skuInfo.limit_quantity, - multi_price = (skuInfo.multi_price * this.txtAddTimesFake.Text.Trim().ParseToDecimal() + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100).ParseToInt(), + multi_price = (skuInfo.multi_price * this.txtAddTimesFake.Text.Trim().ParseToDecimal()).ParseToInt(), out_sku_sn = skuInfo.out_sku_sn, oversea_sku = skuInfo.oversea_sku, - price = (skuInfo.price * this.txtAddTimesFake.Text.Trim().ParseToDecimal() + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100).ParseToInt(), + price = (skuInfo.price * this.txtAddTimesFake.Text.Trim().ParseToDecimal()).ParseToInt(), quantity_delta = txtStockNum.Text.Trim().ParseToInt(), //skuInfo.quantity, shipment_limit_second_list = skuInfo.shipment_limit_second_list, sku69_code = skuInfo.sku69_code, @@ -1862,7 +1897,7 @@ Content-Disposition: form-data; name=""pic_operations"" thumb_url_file_id = skuInfo.thumb_url_file_id, }; if (isAddMorePriceFirst) // 先加后乘 - skuParam.multi_price = ((skuInfo.multi_price + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100) * this.txtAddTimesFake.Text.Trim().ParseToDecimal()).ParseToInt(); + skuParam.multi_price = ((skuInfo.multi_price) * this.txtAddTimesFake.Text.Trim().ParseToDecimal()).ParseToInt(); skuParam.price = skuParam.multi_price + Math.Max(100, this.txtSinglePriceAdd.Text.Trim().ParseToDecimal() * 100).ParseToInt(); if (prodParamHighPrice.market_price < skuParam.price + 1000) @@ -1882,10 +1917,10 @@ Content-Disposition: form-data; name=""pic_operations"" id = skuInfo.id, is_onsale = skuInfo.is_onsale, limit_quantity = skuInfo.limit_quantity, - multi_price = (skuInfo.multi_price * this.txtAddTimesFake.Text.Trim().ParseToDecimal() + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100).ParseToInt(), + multi_price = (skuInfo.multi_price * this.txtAddTimesFake.Text.Trim().ParseToDecimal()).ParseToInt(), out_sku_sn = skuInfo.out_sku_sn, oversea_sku = skuInfo.oversea_sku, - price = (skuInfo.price * this.txtAddTimesFake.Text.Trim().ParseToDecimal() + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100).ParseToInt(), + price = (skuInfo.price * this.txtAddTimesFake.Text.Trim().ParseToDecimal()).ParseToInt(), quantity_delta = txtStockNum.Text.Trim().ParseToInt(), //skuInfo.quantity, shipment_limit_second_list = skuInfo.shipment_limit_second_list, sku69_code = skuInfo.sku69_code, @@ -1898,10 +1933,10 @@ Content-Disposition: form-data; name=""pic_operations"" multi_price_in_yuan = "", // 内部计算直接置空 pre_sale_time = skuInfo.pre_sale_time, sku_id = skuInfo.sku_id, - thumb_url_file_id = skuInfo.thumb_url_file_id, + thumb_url_file_id = null, // skuInfo.thumb_url_file_id, }; if (isAddMorePriceFirst) // 先加后乘 - skuParam.multi_price = ((skuInfo.multi_price + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100) * this.txtAddTimesFake.Text.Trim().ParseToDecimal()).ParseToInt(); + skuParam.multi_price = ((skuInfo.multi_price) * this.txtAddTimesFake.Text.Trim().ParseToDecimal()).ParseToInt(); skuParam.price = skuParam.multi_price + Math.Max(100, this.txtSinglePriceAdd.Text.Trim().ParseToDecimal() * 100).ParseToInt(); if (prodParamHighPriceFakeSkuImg.market_price < skuParam.price + 1000) @@ -1911,13 +1946,29 @@ Content-Disposition: form-data; name=""pic_operations"" } prodParamHighPriceFakeSkuImg.skus.Add(skuParam); } + //var skuSpec1Names = prodParamHighPriceFakeSkuImg.skus.Select(s => s.spec.FirstOrDefault()?.spec_name).Distinct().ToList(); + //foreach (var skuSpec1Name in skuSpec1Names) + //{ + // fakeImgUrl = imgStrLst[Randomx.GetId(imgStrLst.Count)]; + // foreach (var sku in prodParamHighPriceFakeSkuImg.skus) + // { + // if (sku.spec != null && sku.spec.Count > 0) + // { + // if (sku.spec[0].spec_name == skuSpec1Name) + // { + // sku.thumb_url = fakeImgUrl; + // sku.thumb_url_file_id = null; + // } + // } + // } + //} #endregion if (cell != null) { Invoke(new Action(() => { - cell.Value = "正在提交商品"; + cell.Value = "正在保存商品"; })); } var decorationRst = ""; @@ -1928,7 +1979,7 @@ Content-Disposition: form-data; name=""pic_operations"" var error = BaseRegex.GetStringJson(ref decorationRst, "error_msg"); if (string.IsNullOrEmpty(error)) error = decorationRst; - return "上传失败 " + error; + return "保存失败 " + error; } Thread.Sleep(Randomx.GetId(20, 100)); @@ -1943,7 +1994,7 @@ Content-Disposition: form-data; name=""pic_operations"" var error = BaseRegex.GetStringJson(ref decoration_preview_html, "error_msg"); if (string.IsNullOrEmpty(error)) error = decoration_preview_html; - return "上传失败 " + error; + return "保存失败 " + error; } #endregion @@ -1955,7 +2006,7 @@ Content-Disposition: form-data; name=""pic_operations"" var error = BaseRegex.GetStringJson(ref decorationRst, "error_msg"); if (string.IsNullOrEmpty(error)) error = decorationRst; - return "上传失败 " + error; + return "保存失败 " + error; } Thread.Sleep(Randomx.GetId(20, 100)); @@ -1971,7 +2022,7 @@ Content-Disposition: form-data; name=""pic_operations"" var error = BaseRegex.GetStringJson(ref decoration_preview_html, "error_msg"); if (string.IsNullOrEmpty(error)) error = decoration_preview_html; - return "上传失败 " + error; + return "保存失败 " + error; } Thread.Sleep(Randomx.GetId(20, 100)); @@ -1985,9 +2036,17 @@ Content-Disposition: form-data; name=""pic_operations"" var error = BaseRegex.GetStringJson(ref saveProdRst, "error_msg"); if (string.IsNullOrEmpty(error)) error = saveProdRst; - return "上传失败 " + error; + return "保存失败 " + error; } + + if (cell != null) + { + Invoke(new Action(() => + { + cell.Value = "正在提交商品"; + })); + } Thread.Sleep(Randomx.GetId(20, 100)); //var str = JsonHelper.SerializeObject(prodParam); var uploadRst = submit_goods_edit(shop, null, prodParam.goods_id.ParseToString(), prodParam.goods_commit_id); @@ -1996,22 +2055,44 @@ Content-Disposition: form-data; name=""pic_operations"" var error = BaseRegex.GetStringJson(ref uploadRst, "error_msg"); if (string.IsNullOrEmpty(error)) error = uploadRst; - return "上传失败 " + error; + if (error.Contains("图片不是本店铺图片") && fakeImgTryCount < 5) + { + //saveProdRst = save_goods_edit(shop, prodParamHighPrice, prodParamHighPrice.goods_id.ParseToString(), prodParamHighPrice.goods_commit_id); + Thread.Sleep(Randomx.GetId(3000, 10000)); + //while(true) + //{ + // Thread.Sleep(1000); + //} + goto fakeSkuImgTry; + } + + return "提交失败 " + error; } //如果是活动报高价 if (isActivityFake) { string activityErr = ""; - Thread.Sleep(Randomx.GetId(45000, 60000)); + Thread.Sleep(10000); + if (cell != null) + { + Invoke(new Action(() => + { + cell.Value = "正在上传商品"; + })); + } + Thread.Sleep(Randomx.GetId(35000, 45000)); + //Thread.Sleep(Randomx.GetId(5000, 10000)); - var activityRst1 = activity_goods_info(shop, prodParam.goods_id.ParseToString()); + var activityRst1 = activity_goods_info(shop, prodParam.goods_id.ParseToString(), "20981"); if (!activityRst1.Contains("\"success\":true")) { - var error = BaseRegex.GetStringJson(ref saveProdRst, "error_msg"); + var error = BaseRegex.GetStringJson(ref activityRst1, "error_msg"); if (string.IsNullOrEmpty(error)) - error = saveProdRst; - activityErr = "上传失败2 981查询失败 " + error; + error = activityRst1; + activityErr = "上传失败 981查询失败 " + error; + if (BaseClass.SaLevel != 1) + activityErr = "上传失败"; goto restoreSkuImg; } try @@ -2020,34 +2101,52 @@ Content-Disposition: form-data; name=""pic_operations"" var jStr = JsonHelper.SerializeObject(jObj["result"]["result"]); var pddActivitiInfo = (JsonHelper.DeserializeJsonToObject(jStr)?.theme_activity_quick_enroll_goods_render_form_list).FirstOrDefault(); + if (pddActivitiInfo == null) + { + activityErr = "上传失败 981查询/新建失败 商品未提交成功或不满足参加活动条件"; + if (BaseClass.SaLevel != 1) + activityErr = "上传失败"; + goto restoreSkuImg; + } foreach (var activitySku in pddActivitiInfo.activity_price_render.sku_activity_price_render_dtolist) { - var sku = prodParam.skus.FirstOrDefault(s => s.sku_id == activitySku.sku_id); + //var sku = prodParam.skus.FirstOrDefault(s => s.sku_id == activitySku.sku_id); + var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySku.sku_name); + if (sku == null || sku.multi_price > activitySku.suggest_price) { - if (sku != null && sku.multi_price > activitySku.suggest_price) - { - activityErr = "上传失败2 981价格更新失败"; - goto restoreSkuImg; - } + activityErr = "上传失败 981价格低于产品加价"; + if (BaseClass.SaLevel != 1) + activityErr = "提交失败"; + goto restoreSkuImg; } } PDDActivitySubmitParam actSubmitParam = new PDDActivitySubmitParam(); - actSubmitParam.activity_id = 20981; + actSubmitParam.activity_id = pddActivitiInfo.activity_id; var goods_vo_item = new goods_vo_param(); actSubmitParam.goods_volist.Add(goods_vo_item); goods_vo_item.goods_id = prodParam.goods_id; foreach (var activitySku in pddActivitiInfo.activity_price_render.sku_activity_price_render_dtolist) { + //var sku = prodParam.skus.FirstOrDefault(s => s.sku_id == activitySku.sku_id); + var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySku.sku_name); + if (sku == null) + { + activityErr = "上传失败 981价格错误"; + if (BaseClass.SaLevel != 1) + activityErr = "提交失败"; + goto restoreSkuImg; + } + create_sku_vo_item sku_vo_item = new create_sku_vo_item(); sku_vo_item.sku_id = activitySku.sku_id; - sku_vo_item.sku_activity_price = activitySku.suggest_price; + sku_vo_item.sku_activity_price = sku.multi_price; //activitySku.suggest_price; sku_vo_item.sku_front_ctx_vo = new sku_front_ctx_vo_item() { - filling_sku_price = activitySku.suggest_price, + filling_sku_price = sku.multi_price, //activitySku.suggest_price, gear_rule = activitySku.gear_rule, - require_price = activitySku.suggest_price, + require_price = sku.multi_price, //activitySku.suggest_price, }; goods_vo_item.create_activity_price_vo.create_sku_vos.Add(sku_vo_item); } @@ -2058,13 +2157,17 @@ Content-Disposition: form-data; name=""pic_operations"" var error = BaseRegex.GetStringJson(ref addActivityRst, "error_msg"); if (string.IsNullOrEmpty(error)) error = addActivityRst; - activityErr = "上传失败2 981新建失败 " + error; + activityErr = "上传失败 981新建失败 " + error; + if (BaseClass.SaLevel != 1) + activityErr = "上传失败"; goto restoreSkuImg; } } catch (Exception ex) { - activityErr = "上传失败2 981查询/新建失败 " + ex.Message; + activityErr = "上传失败 981查询/新建失败 " + ex.Message; + if (BaseClass.SaLevel != 1) + activityErr = "上传失败"; goto restoreSkuImg; } @@ -2074,12 +2177,15 @@ Content-Disposition: form-data; name=""pic_operations"" var getProdIdRst = get_prod_commit_id(shop, prodParamHighPrice.goods_id.ParseToString()); var newCommitId = BaseRegex.GetStringJson(ref getProdIdRst, "goods_commit_id"); prodParamHighPrice.goods_commit_id = newCommitId; - if (string.IsNullOrEmpty(newCommitId) || !saveProdRst.Contains("\"success\":true")) + if (string.IsNullOrEmpty(newCommitId) || !getProdIdRst.Contains("\"success\":true")) { - var error = BaseRegex.GetStringJson(ref saveProdRst, "error_msg"); + var error = BaseRegex.GetStringJson(ref getProdIdRst, "error_msg"); if (string.IsNullOrEmpty(error)) - error = saveProdRst; - return "上传失败2 获取commit_id失败" + error; + error = getProdIdRst; + + if (BaseClass.SaLevel != 1) + return "上传失败"; + return "上传失败 校验上传失败 " + error; } @@ -2089,7 +2195,10 @@ Content-Disposition: form-data; name=""pic_operations"" var error = BaseRegex.GetStringJson(ref saveProdRst, "error_msg"); if (string.IsNullOrEmpty(error)) error = saveProdRst; - return "上传失败2 保存失败" + error; + + if (BaseClass.SaLevel != 1) + return "上传失败"; + return "上传失败 保存失败 " + error; } Thread.Sleep(Randomx.GetId(20, 100)); @@ -2100,11 +2209,14 @@ Content-Disposition: form-data; name=""pic_operations"" var error = BaseRegex.GetStringJson(ref uploadRst, "error_msg"); if (string.IsNullOrEmpty(error)) error = uploadRst; - return "上传失败2 提交失败" + error; + + if (BaseClass.SaLevel != 1) + return "上传失败"; + return "上传失败 提交失败 " + error; } if (!string.IsNullOrEmpty(activityErr)) - return "上传失败2 " + activityErr; + return activityErr; } return "{\"success\":true,\"draftId\":" + prodParam.goods_id + ",\"status\":\"已上传\"\"msg\":\"上传成功\"}"; } @@ -3039,6 +3151,8 @@ Content-Disposition: form-data; name=""pic_operations"" { int prodCount = 0; var list = GetRandomProductList(out prodCount, 1, 50); + if (list.Count == 0) // 等于0要么库里没数据要么出错了,跳出 + break; Invoke(new Action(() => { lblGoodsCount.Text = "产品库中共有 " + prodCount + " 件商品"; @@ -3082,6 +3196,7 @@ Content-Disposition: form-data; name=""pic_operations"" data = UserLogin.GetSignaturex() + "&page=" + 1 + "&page_size=" + pageSize; + data += "&in_ext_codes=" + txtExtCodeFilter.Text; })); var html = GetHtml.PostUtf8(url, data); if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) @@ -3203,6 +3318,28 @@ Content-Disposition: form-data; name=""pic_operations"" { isActivityFake = chkActivity.Checked; } + + private void lblGoodsCount_Click(object sender, EventArgs e) + { + //PDDDBProdListForm f = new PDDDBProdListForm(); + //f.Width = 1366; + //f.Height = 768; + //f.ShowMaximizeBox = true; + //f.ShowDialog(); + } + + private void lblWaitToUp_Click(object sender, EventArgs e) + { + PDDDBProdUserSelectCacheForm selectCacheForm = new PDDDBProdUserSelectCacheForm(lstTemuDBProductSelect); + selectCacheForm.ShowDialog(); + + lblWaitToUp.Text = "待上传商品 " + lstTemuDBProductSelect.Count + " 件"; + } + + private void btnClearFilter_Click(object sender, EventArgs e) + { + txtExtCodeFilter.Text = ""; + } } public class AddPriceRule