商品活动上传逻辑优化 商品添加缓存查看 商品添加支持按类目筛选

This commit is contained in:
wule committed 2025-09-23 19:33:52 +08:00
1 parent 4fcfb2875a
commit d01d3bc306
12 files changed
+1136 -136

No files matched your search

+2 -2
View File
@@ -27,8 +27,8 @@ namespace AllBase
/// <summary>
/// 版本ID
/// </summary>
public static int VersionCount = 597;
//public static int VersionCount = 596;
public static int VersionCount = 601;
//public static int VersionCount = 599;
/// <summary>
/// 版本号
+1
View File
@@ -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; }
@@ -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\":\"输入为空\"}";
}
/// <summary>
/// 随机获取商品(无详情) 随机添加到上传列表所以不需要获取详情
/// </summary>
/// <param name="inputData"></param>
/// <returns></returns>
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 + ";";
@@ -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; }
@@ -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; }
}
}
+84 -1
View File
@@ -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<DataGridViewRow> { dgv.Rows[e.RowIndex] }, imgColumn, imgPathColumn, isSetHttpsHttp);
};
}
static Bitmap defaultBitmap = new Bitmap(1,1);
static void ShowDgvImg(DataGridView dgv, ConcurrentList<DataGridViewRow> rowLst, string imgColumn, string imgPathColumn, bool isSetHttpsHttp = true)
{
Task.Run(() =>
{
if (rowLst == null)
{
rowLst = new ConcurrentList<DataGridViewRow>();
rowLst.AddRange(dgv.Rows.Cast<DataGridViewRow>());
}
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
{
}
}
});
}
}
}
+9
View File
@@ -425,6 +425,12 @@
<Compile Include="PDDForms\ProductForms\PDDProductForm.Designer.cs">
<DependentUpon>PDDProductForm.cs</DependentUpon>
</Compile>
<Compile Include="PDDForms\ProductSelectForms\PDDDBProdUserSelectCacheForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="PDDForms\ProductSelectForms\PDDDBProdUserSelectCacheForm.Designer.cs">
<DependentUpon>PDDDBProdUserSelectCacheForm.cs</DependentUpon>
</Compile>
<Compile Include="PDDForms\ProductSelectForms\PDDDBProdUserSelectEditNotesForm.cs">
<SubType>Form</SubType>
</Compile>
@@ -881,6 +887,9 @@
<EmbeddedResource Include="PDDForms\ProductForms\PDDProductForm.resx">
<DependentUpon>PDDProductForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="PDDForms\ProductSelectForms\PDDDBProdUserSelectCacheForm.resx">
<DependentUpon>PDDDBProdUserSelectCacheForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="PDDForms\ProductSelectForms\PDDDBProdUserSelectEditNotesForm.resx">
<DependentUpon>PDDDBProdUserSelectEditNotesForm.cs</DependentUpon>
</EmbeddedResource>
@@ -0,0 +1,278 @@
namespace TemuKJD.PDDForms.ProductSelectForms
{
partial class PDDDBProdUserSelectCacheForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
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;
}
}
@@ -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<TemuDBProductSelect> lstTemuDBProductSelect;
public PDDDBProdUserSelectCacheForm(NaiBa.Util.ConcurrentList<TemuDBProductSelect> _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<DataGridViewRow>().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);
}
}
}
}
}
@@ -0,0 +1,328 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="colCheck.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colSpuId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colImgUrl.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colProductSkcPic.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colProductName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colProductCat.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colExtCode.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colNotes.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ColDelete.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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==
</value>
</data>
</root>
@@ -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;
}
}
@@ -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<string> imgStrLst = new List<string>() {
"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<PDDProductUploadParam>(JsonHelper.SerializeObject(prodParam));
var prodParamHighPrice = JsonHelper.DeserializeJsonToObject<PDDProductUploadParam>(JsonHelper.SerializeObject(prodParam));
prodParamHighPrice.skus = new List<sku_param>();
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<PDDActivitiInfo>(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