商品活动上传逻辑优化 商品添加缓存查看 商品添加支持按类目筛选
This commit is contained in:
1 parent
4fcfb2875a
commit
d01d3bc306
12 files changed
+1136
-136
No files matched your search
@@ -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>
|
||||
/// 版本号
|
||||
|
||||
@@ -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; }
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
|
||||
+278
@@ -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
|
||||
|
||||
Reference in new issue
Block a user