商品sku列表编辑功能
This commit is contained in:
1 parent
ad238cd241
commit
2bb124e2d7
16 files changed
+814
-237
No files matched your search
@@ -27,7 +27,7 @@ namespace AllBase
|
||||
/// <summary>
|
||||
/// 版本ID
|
||||
/// </summary>
|
||||
public static int VersionCount = 722;
|
||||
public static int VersionCount = 723;
|
||||
//public static int VersionCount = 613;
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -617,7 +617,7 @@ namespace KJD_Web.BLL.BXX
|
||||
|
||||
string user_name = RegexUtils.GetStringQuery(ref inputData, "user_name");
|
||||
string ext_code = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "ext_code")).ParseToString();
|
||||
int ext_code_price = RegexUtils.GetStringQuery(ref inputData, "ext_code_price").ParseToInt();
|
||||
var ext_code_price = RegexUtils.GetStringQuery(ref inputData, "ext_code_price")?.ParseToInt();
|
||||
|
||||
if (string.IsNullOrEmpty(user_name))
|
||||
{
|
||||
|
||||
@@ -827,6 +827,7 @@ namespace KJD_Web.BLL.BXX
|
||||
string fission_words = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "fission_words"))?.Replace("'", "\\'");
|
||||
string head_words = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "head_words"))?.Replace("'", "\\'");
|
||||
string end_words = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "end_words"))?.Replace("'", "\\'");
|
||||
string sku_edit_json = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "sku_edit_json"))?.Replace("'", "\\'");
|
||||
|
||||
if (string.IsNullOrEmpty(user_name))
|
||||
{
|
||||
@@ -850,6 +851,8 @@ namespace KJD_Web.BLL.BXX
|
||||
sql += " p.head_words='" + head_words + "',";
|
||||
if (end_words != null)
|
||||
sql += " p.end_words='" + end_words + "',";
|
||||
if (sku_edit_json != null)
|
||||
sql += " p.sku_edit_json='" + sku_edit_json + "',";
|
||||
sql = sql.TrimEnd(',');
|
||||
if (in_db_ids != null)
|
||||
{
|
||||
@@ -1006,6 +1009,64 @@ namespace KJD_Web.BLL.BXX
|
||||
return "{\"code\":19999,\"msg\":\"输入为空\"}";
|
||||
}
|
||||
|
||||
public string AddSkuImg(string inputData)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(inputData))
|
||||
{
|
||||
var time = 0;
|
||||
int.TryParse(RegexUtils.GetStringQuery(ref inputData, "time"), out time);
|
||||
string time1 = RegexUtils.GetStringQuery(ref inputData, "code");
|
||||
if (time1 != EncrypUtil.Encryption(time))
|
||||
return "{\"code\":50000,\"msg\":\"校验失败\"}";
|
||||
|
||||
string user_name = RegexUtils.GetStringQuery(ref inputData, "user_name").Replace("'", "\\'");
|
||||
string img_md5 = RegexUtils.GetStringQuery(ref inputData, "img_md5").Replace("'", "\\'");
|
||||
string img_base64 = RegexUtils.GetStringQuery(ref inputData, "img_base64").Replace("'", "\\'");
|
||||
string img_url = RegexUtils.GetStringQuery(ref inputData, "img_url").Replace("'", "\\'");
|
||||
|
||||
if (string.IsNullOrEmpty(user_name))
|
||||
{
|
||||
return "{\"code\":500,\"msg\":\"没有用户名\"}";
|
||||
}
|
||||
|
||||
int sku_img_replace_id = 0;
|
||||
string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString;
|
||||
MysqlUtils mySql = new MysqlUtils(conn);
|
||||
string sql = "";
|
||||
|
||||
sql = "select id from bxx.sku_img where img_md5='" + img_md5 + "';";
|
||||
var bRst = false;
|
||||
var rst = mySql.ExecuteFirstInt(sql).ParseToLong();
|
||||
if (rst <= 0)
|
||||
{
|
||||
sql = "insert into bxx.sku_img (img_md5,img_base64,img_url) " +
|
||||
"values ('" + img_md5 + "','" + img_base64 + "','" + img_url + "');";
|
||||
rst = mySql.ExecuteInsertId(sql);
|
||||
if (rst > 0)
|
||||
{
|
||||
mySql.Close();
|
||||
return "{\"code\":200,\"msg\":\"success\",\"insert_id\":" + rst + "}";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
sku_img_replace_id = (int)rst;
|
||||
sql = "update bxx.sku_img set img_url='" + img_url + "' where img_md5='" + img_md5 + "';";
|
||||
|
||||
bRst = mySql.ExecuteNonQuery(sql);
|
||||
if (bRst)
|
||||
{
|
||||
mySql.Close();
|
||||
return "{\"code\":200,\"msg\":\"success\",\"update_id\":" + rst + "}";
|
||||
}
|
||||
}
|
||||
mySql.Close();
|
||||
|
||||
return "{\"code\":500,\"msg\":\"" + mySql.Message + "\"}";
|
||||
}
|
||||
return "{\"code\":19999,\"msg\":\"输入为空\"}";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加用户选择商品
|
||||
/// </summary>
|
||||
|
||||
@@ -251,6 +251,19 @@ namespace KJD_Web
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
//AddSkuImg
|
||||
[WebMethod]
|
||||
public void add_sku_img()
|
||||
{
|
||||
string jsontext = GetRequestJsonString();
|
||||
|
||||
var result = jsontext;
|
||||
result = new BXXProductManage().AddSkuImg(jsontext);
|
||||
|
||||
Context.Response.Write(result);
|
||||
Context.Response.End();
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public void add_user_select_product()
|
||||
{
|
||||
|
||||
+142
-81
@@ -34,6 +34,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PDDDBProdEditDetailForm));
|
||||
this.panel2 = new System.Windows.Forms.Panel();
|
||||
this.pbLoading = new System.Windows.Forms.PictureBox();
|
||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||
this.flowLayoutPanel3 = new System.Windows.Forms.FlowLayoutPanel();
|
||||
this.pnlSpec1 = new System.Windows.Forms.Panel();
|
||||
@@ -46,31 +47,35 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.flowLayoutPanel2 = new System.Windows.Forms.FlowLayoutPanel();
|
||||
this.ucPddSpecEdit2 = new TemuKJD.PDDForms.ProductSelectForms.UcPddSpecEdit();
|
||||
this.pbLoading = new System.Windows.Forms.PictureBox();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.flowLayoutPanel4 = new System.Windows.Forms.FlowLayoutPanel();
|
||||
this.cmbSpec1 = new TemuKJD.UserComponent.UcComboBoxMutiSelect();
|
||||
this.cmbSpec2 = new TemuKJD.UserComponent.UcComboBoxMutiSelect();
|
||||
this.panel3 = new System.Windows.Forms.Panel();
|
||||
this.btnBatchSetValue = new DevComponents.DotNetBar.PanelEx();
|
||||
this.textBox2 = new System.Windows.Forms.TextBox();
|
||||
this.txtSkuSn = new System.Windows.Forms.TextBox();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.txtPrice = new System.Windows.Forms.TextBox();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.textBox1 = new System.Windows.Forms.TextBox();
|
||||
this.txtMultiPrice = new System.Windows.Forms.TextBox();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.dgvDbProduct = new TemuKJD.UserComponent.DataGridViewEx();
|
||||
this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn();
|
||||
this.colSkuId = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colSpec1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colSpec2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colMultiPrice = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colPrice = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colSkuImgUrl = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.colSkuImg = new System.Windows.Forms.DataGridViewImageColumn();
|
||||
this.colEditSkuImg = new System.Windows.Forms.DataGridViewLinkColumn();
|
||||
this.colSkuSn = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.btnRestoreAll = new DevComponents.DotNetBar.PanelEx();
|
||||
this.btnCancel = new DevComponents.DotNetBar.PanelEx();
|
||||
this.btnSave = new DevComponents.DotNetBar.PanelEx();
|
||||
this.btnSaveSkuLst = new DevComponents.DotNetBar.PanelEx();
|
||||
this.pnlCef = new System.Windows.Forms.Panel();
|
||||
this.panel2.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||
this.splitContainer1.Panel1.SuspendLayout();
|
||||
this.splitContainer1.Panel2.SuspendLayout();
|
||||
@@ -80,7 +85,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
this.flowLayoutPanel1.SuspendLayout();
|
||||
this.pnlSpec2.SuspendLayout();
|
||||
this.flowLayoutPanel2.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit();
|
||||
this.flowLayoutPanel4.SuspendLayout();
|
||||
this.panel3.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dgvDbProduct)).BeginInit();
|
||||
@@ -89,6 +93,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
// panel2
|
||||
//
|
||||
this.panel2.BackColor = System.Drawing.Color.White;
|
||||
this.panel2.Controls.Add(this.pnlCef);
|
||||
this.panel2.Controls.Add(this.pbLoading);
|
||||
this.panel2.Controls.Add(this.splitContainer1);
|
||||
this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.panel2.Location = new System.Drawing.Point(1, 33);
|
||||
@@ -96,11 +102,23 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
this.panel2.Size = new System.Drawing.Size(1278, 666);
|
||||
this.panel2.TabIndex = 1;
|
||||
//
|
||||
// pbLoading
|
||||
//
|
||||
this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None;
|
||||
this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue;
|
||||
this.pbLoading.Location = new System.Drawing.Point(614, 6);
|
||||
this.pbLoading.Name = "pbLoading";
|
||||
this.pbLoading.Size = new System.Drawing.Size(50, 50);
|
||||
this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
|
||||
this.pbLoading.TabIndex = 8;
|
||||
this.pbLoading.TabStop = false;
|
||||
this.pbLoading.Visible = false;
|
||||
//
|
||||
// splitContainer1
|
||||
//
|
||||
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel2;
|
||||
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
|
||||
this.splitContainer1.Location = new System.Drawing.Point(0, 62);
|
||||
this.splitContainer1.Name = "splitContainer1";
|
||||
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
||||
//
|
||||
@@ -110,10 +128,11 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
//
|
||||
// splitContainer1.Panel2
|
||||
//
|
||||
this.splitContainer1.Panel2.Controls.Add(this.btnRestoreAll);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.btnCancel);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.btnSave);
|
||||
this.splitContainer1.Size = new System.Drawing.Size(1278, 666);
|
||||
this.splitContainer1.SplitterDistance = 630;
|
||||
this.splitContainer1.Panel2.Controls.Add(this.btnSaveSkuLst);
|
||||
this.splitContainer1.Size = new System.Drawing.Size(1278, 604);
|
||||
this.splitContainer1.SplitterDistance = 568;
|
||||
this.splitContainer1.TabIndex = 0;
|
||||
//
|
||||
// flowLayoutPanel3
|
||||
@@ -123,7 +142,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
this.flowLayoutPanel3.Controls.Add(this.flowLayoutPanel1);
|
||||
this.flowLayoutPanel3.Controls.Add(this.pnlSpec2);
|
||||
this.flowLayoutPanel3.Controls.Add(this.flowLayoutPanel2);
|
||||
this.flowLayoutPanel3.Controls.Add(this.pbLoading);
|
||||
this.flowLayoutPanel3.Controls.Add(this.label3);
|
||||
this.flowLayoutPanel3.Controls.Add(this.flowLayoutPanel4);
|
||||
this.flowLayoutPanel3.Controls.Add(this.dgvDbProduct);
|
||||
@@ -131,7 +149,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
this.flowLayoutPanel3.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
|
||||
this.flowLayoutPanel3.Location = new System.Drawing.Point(0, 0);
|
||||
this.flowLayoutPanel3.Name = "flowLayoutPanel3";
|
||||
this.flowLayoutPanel3.Size = new System.Drawing.Size(1278, 630);
|
||||
this.flowLayoutPanel3.Size = new System.Drawing.Size(1278, 568);
|
||||
this.flowLayoutPanel3.TabIndex = 1;
|
||||
this.flowLayoutPanel3.WrapContents = false;
|
||||
//
|
||||
@@ -236,6 +254,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
this.btnAddSpec2.TabIndex = 1014;
|
||||
this.btnAddSpec2.Tag = "";
|
||||
this.btnAddSpec2.Text = "新增";
|
||||
this.btnAddSpec2.Click += new System.EventHandler(this.btnAddSpec2_Click);
|
||||
//
|
||||
// label2
|
||||
//
|
||||
@@ -271,22 +290,10 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
this.ucPddSpecEdit2.Size = new System.Drawing.Size(295, 49);
|
||||
this.ucPddSpecEdit2.TabIndex = 0;
|
||||
//
|
||||
// pbLoading
|
||||
//
|
||||
this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None;
|
||||
this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue;
|
||||
this.pbLoading.Location = new System.Drawing.Point(599, 177);
|
||||
this.pbLoading.Name = "pbLoading";
|
||||
this.pbLoading.Size = new System.Drawing.Size(50, 50);
|
||||
this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
|
||||
this.pbLoading.TabIndex = 8;
|
||||
this.pbLoading.TabStop = false;
|
||||
this.pbLoading.Visible = false;
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(5, 235);
|
||||
this.label3.Location = new System.Drawing.Point(5, 179);
|
||||
this.label3.Margin = new System.Windows.Forms.Padding(5, 5, 3, 3);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(68, 17);
|
||||
@@ -298,7 +305,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
this.flowLayoutPanel4.Controls.Add(this.cmbSpec1);
|
||||
this.flowLayoutPanel4.Controls.Add(this.cmbSpec2);
|
||||
this.flowLayoutPanel4.Controls.Add(this.panel3);
|
||||
this.flowLayoutPanel4.Location = new System.Drawing.Point(3, 258);
|
||||
this.flowLayoutPanel4.Location = new System.Drawing.Point(3, 202);
|
||||
this.flowLayoutPanel4.Name = "flowLayoutPanel4";
|
||||
this.flowLayoutPanel4.Size = new System.Drawing.Size(1242, 31);
|
||||
this.flowLayoutPanel4.TabIndex = 13;
|
||||
@@ -328,26 +335,25 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
//
|
||||
this.panel3.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.panel3.Controls.Add(this.btnBatchSetValue);
|
||||
this.panel3.Controls.Add(this.textBox2);
|
||||
this.panel3.Controls.Add(this.txtSkuSn);
|
||||
this.panel3.Controls.Add(this.label6);
|
||||
this.panel3.Controls.Add(this.txtPrice);
|
||||
this.panel3.Controls.Add(this.label5);
|
||||
this.panel3.Controls.Add(this.textBox1);
|
||||
this.panel3.Controls.Add(this.txtMultiPrice);
|
||||
this.panel3.Controls.Add(this.label4);
|
||||
this.panel3.Location = new System.Drawing.Point(256, 2);
|
||||
this.panel3.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0);
|
||||
this.panel3.MinimumSize = new System.Drawing.Size(10, 10);
|
||||
this.panel3.Name = "panel3";
|
||||
this.panel3.Size = new System.Drawing.Size(458, 27);
|
||||
this.panel3.Size = new System.Drawing.Size(540, 27);
|
||||
this.panel3.TabIndex = 10;
|
||||
//
|
||||
// btnBatchSetValue
|
||||
//
|
||||
this.btnBatchSetValue.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnBatchSetValue.CanvasColor = System.Drawing.SystemColors.Control;
|
||||
this.btnBatchSetValue.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.btnBatchSetValue.DisabledBackColor = System.Drawing.Color.Empty;
|
||||
this.btnBatchSetValue.Location = new System.Drawing.Point(-320, 2);
|
||||
this.btnBatchSetValue.Location = new System.Drawing.Point(459, 2);
|
||||
this.btnBatchSetValue.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2);
|
||||
this.btnBatchSetValue.Name = "btnBatchSetValue";
|
||||
this.btnBatchSetValue.Size = new System.Drawing.Size(71, 23);
|
||||
@@ -367,12 +373,12 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
this.btnBatchSetValue.Text = "批量填写";
|
||||
this.btnBatchSetValue.Click += new System.EventHandler(this.btnBatchSetValue_Click);
|
||||
//
|
||||
// textBox2
|
||||
// txtSkuSn
|
||||
//
|
||||
this.textBox2.Location = new System.Drawing.Point(294, 2);
|
||||
this.textBox2.Name = "textBox2";
|
||||
this.textBox2.Size = new System.Drawing.Size(158, 23);
|
||||
this.textBox2.TabIndex = 7;
|
||||
this.txtSkuSn.Location = new System.Drawing.Point(294, 2);
|
||||
this.txtSkuSn.Name = "txtSkuSn";
|
||||
this.txtSkuSn.Size = new System.Drawing.Size(158, 23);
|
||||
this.txtSkuSn.TabIndex = 7;
|
||||
//
|
||||
// label6
|
||||
//
|
||||
@@ -401,12 +407,12 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
this.label5.TabIndex = 6;
|
||||
this.label5.Text = "单买价:";
|
||||
//
|
||||
// textBox1
|
||||
// txtMultiPrice
|
||||
//
|
||||
this.textBox1.Location = new System.Drawing.Point(49, 2);
|
||||
this.textBox1.Name = "textBox1";
|
||||
this.textBox1.Size = new System.Drawing.Size(62, 23);
|
||||
this.textBox1.TabIndex = 3;
|
||||
this.txtMultiPrice.Location = new System.Drawing.Point(49, 2);
|
||||
this.txtMultiPrice.Name = "txtMultiPrice";
|
||||
this.txtMultiPrice.Size = new System.Drawing.Size(62, 23);
|
||||
this.txtMultiPrice.TabIndex = 3;
|
||||
//
|
||||
// label4
|
||||
//
|
||||
@@ -424,7 +430,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
this.dgvDbProduct.AllowUserToDeleteRows = false;
|
||||
dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.dgvDbProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
|
||||
this.dgvDbProduct.Anchor = System.Windows.Forms.AnchorStyles.Top;
|
||||
this.dgvDbProduct.AutoRowNumber = true;
|
||||
this.dgvDbProduct.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
|
||||
this.dgvDbProduct.BackgroundColor = System.Drawing.Color.White;
|
||||
@@ -440,19 +445,23 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
this.dgvDbProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
this.dgvDbProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
|
||||
this.colSelect,
|
||||
this.colSkuId,
|
||||
this.colSpec1,
|
||||
this.colSpec2,
|
||||
this.colMultiPrice,
|
||||
this.colPrice,
|
||||
this.colSkuImgUrl,
|
||||
this.colSkuImg,
|
||||
this.colEditSkuImg,
|
||||
this.colSkuSn});
|
||||
this.dgvDbProduct.Location = new System.Drawing.Point(5, 295);
|
||||
this.dgvDbProduct.Location = new System.Drawing.Point(5, 239);
|
||||
this.dgvDbProduct.Margin = new System.Windows.Forms.Padding(5, 3, 3, 3);
|
||||
this.dgvDbProduct.Name = "dgvDbProduct";
|
||||
this.dgvDbProduct.RowTemplate.Height = 23;
|
||||
this.dgvDbProduct.Size = new System.Drawing.Size(1240, 28);
|
||||
this.dgvDbProduct.Size = new System.Drawing.Size(1230, 586);
|
||||
this.dgvDbProduct.TabIndex = 7;
|
||||
this.dgvDbProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvDbProduct_CellContentClick);
|
||||
this.dgvDbProduct.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvDbProduct_CellValueChanged);
|
||||
//
|
||||
// colSelect
|
||||
//
|
||||
@@ -463,6 +472,12 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
|
||||
this.colSelect.Visible = false;
|
||||
//
|
||||
// colSkuId
|
||||
//
|
||||
this.colSkuId.HeaderText = "sku编号";
|
||||
this.colSkuId.Name = "colSkuId";
|
||||
this.colSkuId.Visible = false;
|
||||
//
|
||||
// colSpec1
|
||||
//
|
||||
this.colSpec1.HeaderText = "属性1";
|
||||
@@ -498,27 +513,61 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
//
|
||||
// colSkuImg
|
||||
//
|
||||
this.colSkuImg.FillWeight = 50F;
|
||||
this.colSkuImg.FillWeight = 35F;
|
||||
this.colSkuImg.HeaderText = "sku预览图";
|
||||
this.colSkuImg.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom;
|
||||
this.colSkuImg.Name = "colSkuImg";
|
||||
this.colSkuImg.ReadOnly = true;
|
||||
this.colSkuImg.Resizable = System.Windows.Forms.DataGridViewTriState.True;
|
||||
//
|
||||
// colEditSkuImg
|
||||
//
|
||||
this.colEditSkuImg.FillWeight = 20F;
|
||||
this.colEditSkuImg.HeaderText = "编辑";
|
||||
this.colEditSkuImg.Name = "colEditSkuImg";
|
||||
this.colEditSkuImg.ReadOnly = true;
|
||||
this.colEditSkuImg.Resizable = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.colEditSkuImg.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
|
||||
//
|
||||
// colSkuSn
|
||||
//
|
||||
this.colSkuSn.HeaderText = "规格编码";
|
||||
this.colSkuSn.Name = "colSkuSn";
|
||||
this.colSkuSn.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
|
||||
//
|
||||
// btnRestoreAll
|
||||
//
|
||||
this.btnRestoreAll.CanvasColor = System.Drawing.SystemColors.Control;
|
||||
this.btnRestoreAll.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.btnRestoreAll.DisabledBackColor = System.Drawing.Color.Empty;
|
||||
this.btnRestoreAll.Location = new System.Drawing.Point(5, 2);
|
||||
this.btnRestoreAll.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2);
|
||||
this.btnRestoreAll.Name = "btnRestoreAll";
|
||||
this.btnRestoreAll.Size = new System.Drawing.Size(100, 23);
|
||||
this.btnRestoreAll.Style.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.btnRestoreAll.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
|
||||
this.btnRestoreAll.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
|
||||
this.btnRestoreAll.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
|
||||
this.btnRestoreAll.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnRestoreAll.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
|
||||
this.btnRestoreAll.Style.GradientAngle = 90;
|
||||
this.btnRestoreAll.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.btnRestoreAll.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.btnRestoreAll.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnRestoreAll.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnRestoreAll.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
|
||||
this.btnRestoreAll.TabIndex = 1017;
|
||||
this.btnRestoreAll.Text = "还原原始商品";
|
||||
this.btnRestoreAll.Click += new System.EventHandler(this.btnRestoreAll_Click);
|
||||
//
|
||||
// btnCancel
|
||||
//
|
||||
this.btnCancel.CanvasColor = System.Drawing.SystemColors.Control;
|
||||
this.btnCancel.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.btnCancel.DisabledBackColor = System.Drawing.Color.Empty;
|
||||
this.btnCancel.Location = new System.Drawing.Point(1167, 4);
|
||||
this.btnCancel.Location = new System.Drawing.Point(1166, 2);
|
||||
this.btnCancel.Name = "btnCancel";
|
||||
this.btnCancel.Size = new System.Drawing.Size(45, 23);
|
||||
this.btnCancel.Size = new System.Drawing.Size(51, 23);
|
||||
this.btnCancel.Style.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.btnCancel.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
|
||||
this.btnCancel.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
|
||||
@@ -535,29 +584,37 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
this.btnCancel.Text = "取消";
|
||||
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
|
||||
//
|
||||
// btnSave
|
||||
// btnSaveSkuLst
|
||||
//
|
||||
this.btnSave.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.btnSave.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.btnSave.DisabledBackColor = System.Drawing.Color.Empty;
|
||||
this.btnSave.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btnSave.Location = new System.Drawing.Point(1214, 4);
|
||||
this.btnSave.Name = "btnSave";
|
||||
this.btnSave.Size = new System.Drawing.Size(57, 23);
|
||||
this.btnSave.Style.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.btnSave.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnSave.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnSave.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
|
||||
this.btnSave.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
|
||||
this.btnSave.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
|
||||
this.btnSave.Style.ForeColor.Color = System.Drawing.Color.White;
|
||||
this.btnSave.Style.GradientAngle = 90;
|
||||
this.btnSave.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.btnSave.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
|
||||
this.btnSave.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
|
||||
this.btnSave.TabIndex = 1006;
|
||||
this.btnSave.Tag = "";
|
||||
this.btnSave.Text = "保存";
|
||||
this.btnSaveSkuLst.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.btnSaveSkuLst.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.btnSaveSkuLst.DisabledBackColor = System.Drawing.Color.Empty;
|
||||
this.btnSaveSkuLst.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btnSaveSkuLst.Location = new System.Drawing.Point(1219, 2);
|
||||
this.btnSaveSkuLst.Name = "btnSaveSkuLst";
|
||||
this.btnSaveSkuLst.Size = new System.Drawing.Size(51, 23);
|
||||
this.btnSaveSkuLst.Style.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.btnSaveSkuLst.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnSaveSkuLst.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnSaveSkuLst.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
|
||||
this.btnSaveSkuLst.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
|
||||
this.btnSaveSkuLst.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
|
||||
this.btnSaveSkuLst.Style.ForeColor.Color = System.Drawing.Color.White;
|
||||
this.btnSaveSkuLst.Style.GradientAngle = 90;
|
||||
this.btnSaveSkuLst.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.btnSaveSkuLst.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
|
||||
this.btnSaveSkuLst.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
|
||||
this.btnSaveSkuLst.TabIndex = 1006;
|
||||
this.btnSaveSkuLst.Tag = "";
|
||||
this.btnSaveSkuLst.Text = "保存";
|
||||
this.btnSaveSkuLst.Click += new System.EventHandler(this.btnSaveSkuLst_Click);
|
||||
//
|
||||
// pnlCef
|
||||
//
|
||||
this.pnlCef.Location = new System.Drawing.Point(5, 7);
|
||||
this.pnlCef.Name = "pnlCef";
|
||||
this.pnlCef.Size = new System.Drawing.Size(78, 49);
|
||||
this.pnlCef.TabIndex = 9;
|
||||
//
|
||||
// PDDDBProdEditDetailForm
|
||||
//
|
||||
@@ -572,6 +629,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
this.Load += new System.EventHandler(this.PDDDBProdEditDetailForm_Load);
|
||||
this.Controls.SetChildIndex(this.panel2, 0);
|
||||
this.panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit();
|
||||
this.splitContainer1.Panel1.ResumeLayout(false);
|
||||
this.splitContainer1.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
|
||||
@@ -586,7 +644,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
this.pnlSpec2.PerformLayout();
|
||||
this.flowLayoutPanel2.ResumeLayout(false);
|
||||
this.flowLayoutPanel2.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit();
|
||||
this.flowLayoutPanel4.ResumeLayout(false);
|
||||
this.panel3.ResumeLayout(false);
|
||||
this.panel3.PerformLayout();
|
||||
@@ -602,29 +659,21 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
|
||||
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel2;
|
||||
private DevComponents.DotNetBar.PanelEx btnCancel;
|
||||
private DevComponents.DotNetBar.PanelEx btnSave;
|
||||
private DevComponents.DotNetBar.PanelEx btnSaveSkuLst;
|
||||
private UserComponent.DataGridViewEx dgvDbProduct;
|
||||
private System.Windows.Forms.PictureBox pbLoading;
|
||||
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel3;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colSpec1;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colSpec2;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colMultiPrice;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colPrice;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colSkuImgUrl;
|
||||
private System.Windows.Forms.DataGridViewImageColumn colSkuImg;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colSkuSn;
|
||||
private System.Windows.Forms.Panel panel3;
|
||||
private UserComponent.UcComboBoxMutiSelect cmbSpec1;
|
||||
private UserComponent.UcComboBoxMutiSelect cmbSpec2;
|
||||
private System.Windows.Forms.TextBox textBox2;
|
||||
private System.Windows.Forms.TextBox txtSkuSn;
|
||||
private System.Windows.Forms.Label label6;
|
||||
private System.Windows.Forms.TextBox txtPrice;
|
||||
private System.Windows.Forms.Label label5;
|
||||
private System.Windows.Forms.TextBox textBox1;
|
||||
private System.Windows.Forms.TextBox txtMultiPrice;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private DevComponents.DotNetBar.PanelEx btnBatchSetValue;
|
||||
private UcPddSpecEdit ucPddSpecEdit1;
|
||||
@@ -634,5 +683,17 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
private System.Windows.Forms.Panel pnlSpec2;
|
||||
private DevComponents.DotNetBar.PanelEx btnAddSpec2;
|
||||
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel4;
|
||||
private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colSkuId;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colSpec1;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colSpec2;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colMultiPrice;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colPrice;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colSkuImgUrl;
|
||||
private System.Windows.Forms.DataGridViewImageColumn colSkuImg;
|
||||
private System.Windows.Forms.DataGridViewLinkColumn colEditSkuImg;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn colSkuSn;
|
||||
private DevComponents.DotNetBar.PanelEx btnRestoreAll;
|
||||
private System.Windows.Forms.Panel pnlCef;
|
||||
}
|
||||
}
|
||||
@@ -9,13 +9,18 @@ using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using TemuKJD.BaseForms;
|
||||
using TemuKJD.Extension;
|
||||
using TemuKJD.PDDForms.ShopForms;
|
||||
using TemuKJD.ToolForms;
|
||||
using TemuKJD.UserComponent;
|
||||
using Work;
|
||||
|
||||
namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
{
|
||||
@@ -35,10 +40,19 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
|
||||
private void PDDDBProdEditDetailForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
this.pnlCef.SendToBack();
|
||||
this.pnlCef.Dock = DockStyle.Fill;
|
||||
this.splitContainer1.Dock = DockStyle.Fill;
|
||||
this.pbLoading.BringToFront();
|
||||
this.pbLoading.Location = new Point(this.pbLoading.Location.X, 300);
|
||||
|
||||
this.ActiveControl = dgvDbProduct;
|
||||
this.dgvDbProduct.AddImgColumn("colSkuImg", "colSkuImgUrl");
|
||||
flowLayoutPanel1.Controls.Clear();
|
||||
flowLayoutPanel2.Controls.Clear();
|
||||
this.dgvDbProduct.AddMergeColumnHeader(new List<string> { "colSkuImg", "colEditSkuImg" }, "sku预览图");
|
||||
this.dgvDbProduct.AddMergeColumn(new List<string> { "colSkuImg", "colEditSkuImg" });
|
||||
this.dgvDbProduct.Columns["colSkuImg"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
|
||||
|
||||
pbLoading.Visible = true;
|
||||
Task.Run(() =>
|
||||
@@ -52,95 +66,95 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(DbProdDetail.sku_edit_json))
|
||||
{
|
||||
// 如果有编辑过的sku使用编辑过的sku
|
||||
lstSkuEditItem = JsonHelper.DeserializeJsonToList<sku_edit_item>(DbProdDetail.sku_edit_json);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 否则使用原版sku
|
||||
var prodInfo = JsonHelper.DeserializeJsonToObject<PDDProductInfo>(DbProdDetail.product_json);
|
||||
lstSkuEditItem = JsonHelper.DeserializeJsonToList<sku_edit_item>(JsonHelper.SerializeObject(prodInfo.detail.sku));
|
||||
}
|
||||
defaultSkuEditItem = lstSkuEditItem.FirstOrDefault();
|
||||
if (defaultSkuEditItem == null)
|
||||
defaultSkuEditItem = new sku_edit_item();
|
||||
|
||||
if (lstSkuEditItem.All(s => s.spec.Count < 2))
|
||||
{
|
||||
this.pnlSpec2.Visible = flowLayoutPanel2.Visible = cmbSpec2.Visible = false;
|
||||
this.dgvDbProduct.Columns["colSpec2"].Visible = false;
|
||||
}
|
||||
|
||||
flowLayoutPanel1.Tag = lstSkuEditItem.FirstOrDefault()?.spec?.FirstOrDefault();
|
||||
flowLayoutPanel2.Tag = lstSkuEditItem.FirstOrDefault()?.spec?.LastOrDefault();
|
||||
if (flowLayoutPanel2.Tag == flowLayoutPanel1.Tag)
|
||||
flowLayoutPanel2.Tag = null;
|
||||
this.cmbSpec1.Text = "全部" + lstSkuEditItem.FirstOrDefault()?.spec?.FirstOrDefault().parent_name;
|
||||
this.cmbSpec1.DefaultText = "全部" + lstSkuEditItem.FirstOrDefault()?.spec?.FirstOrDefault().parent_name;
|
||||
this.cmbSpec2.Text = "全部" + lstSkuEditItem.FirstOrDefault()?.spec?.LastOrDefault().parent_name;
|
||||
this.cmbSpec2.DefaultText = "全部" + lstSkuEditItem.FirstOrDefault()?.spec?.LastOrDefault().parent_name;
|
||||
if (cmbSpec2.Text == cmbSpec1.Text)
|
||||
{
|
||||
this.cmbSpec2.Text = "";
|
||||
this.cmbSpec2.DefaultText = "";
|
||||
}
|
||||
foreach (var skuEditItem in lstSkuEditItem)
|
||||
{
|
||||
//第一组spec
|
||||
if (skuEditItem.spec.Count > 0 && !flowLayoutPanel1.Controls.Cast<Control>().Any(c=>c.Name == skuEditItem.spec[0].spec_name))
|
||||
{
|
||||
AddSpec1(skuEditItem.spec[0]);
|
||||
}
|
||||
//第二组spec
|
||||
if (skuEditItem.spec.Count > 1 && !flowLayoutPanel2.Controls.Cast<Control>().Any(c => c.Name == skuEditItem.spec[1].spec_name))
|
||||
{
|
||||
AddSpec2(skuEditItem.spec[1]);
|
||||
}
|
||||
|
||||
//var rowId = this.dgvDbProduct.Rows.Add
|
||||
//(
|
||||
// false,
|
||||
// skuEditItem.spec.Count > 0 ? skuEditItem.spec[0].spec_name : "",
|
||||
// skuEditItem.spec.Count > 1 ? skuEditItem.spec[1].spec_name : "",
|
||||
// skuEditItem.multi_price * 0.01m,
|
||||
// skuEditItem.price * 0.01m,
|
||||
// skuEditItem.thumb_url,
|
||||
// DataGridViewExtension.defaultBitmap,
|
||||
// skuEditItem.out_sku_sn
|
||||
//);
|
||||
//this.dgvDbProduct.Rows[rowId].Height = 60;
|
||||
//this.dgvDbProduct.Height += 60;
|
||||
|
||||
//var skuParam = new sku_param()
|
||||
//{
|
||||
// id = skuEditItem.id,
|
||||
// is_onsale = skuEditItem.is_onsale,
|
||||
// limit_quantity = skuEditItem.limit_quantity,
|
||||
// multi_price = skuEditItem.multi_price,
|
||||
// out_sku_sn = skuEditItem.out_sku_sn,
|
||||
// oversea_sku = skuEditItem.oversea_sku,
|
||||
// price = skuEditItem.price,
|
||||
// quantity_delta = skuEditItem.quantity_delta.ParseToInt(), // 商品数量
|
||||
// shipment_limit_second_list = skuEditItem.shipment_limit_second_list,
|
||||
// sku69_code = skuEditItem.sku69_code,
|
||||
// sku_srv_templates = skuEditItem.sku_srv_templates.ParseToString(),
|
||||
// spec = JsonHelper.DeserializeJsonToList<spec_param>(JsonHelper.SerializeObject(skuEditItem.spec)),
|
||||
// thumb_url = skuEditItem.thumb_url,
|
||||
// weight = skuEditItem.weight,
|
||||
// length = skuEditItem.length,
|
||||
// price_in_yuan = "", // 内部计算直接置空
|
||||
// multi_price_in_yuan = "", // 内部计算直接置空
|
||||
// pre_sale_time = skuEditItem.pre_sale_time,
|
||||
// sku_id = skuEditItem.sku_id,
|
||||
// thumb_url_file_id = skuEditItem.thumb_url_file_id,
|
||||
//};
|
||||
}
|
||||
|
||||
RefreshRows();
|
||||
|
||||
DisplaySkuData(lstSkuEditItem);
|
||||
pbLoading.Visible = false;
|
||||
}));
|
||||
});
|
||||
}
|
||||
|
||||
void DisplaySkuData(List<sku_edit_item> lstSkuEditItem)
|
||||
{
|
||||
defaultSkuEditItem = lstSkuEditItem.FirstOrDefault();
|
||||
if (defaultSkuEditItem == null)
|
||||
defaultSkuEditItem = new sku_edit_item();
|
||||
|
||||
if (lstSkuEditItem.All(s => s.spec.Count < 2))
|
||||
{
|
||||
this.pnlSpec2.Visible = flowLayoutPanel2.Visible = cmbSpec2.Visible = false;
|
||||
this.dgvDbProduct.Columns["colSpec2"].Visible = false;
|
||||
}
|
||||
|
||||
flowLayoutPanel1.Tag = lstSkuEditItem.FirstOrDefault()?.spec?.FirstOrDefault();
|
||||
flowLayoutPanel2.Tag = lstSkuEditItem.FirstOrDefault()?.spec?.LastOrDefault();
|
||||
if (flowLayoutPanel2.Tag == flowLayoutPanel1.Tag)
|
||||
flowLayoutPanel2.Tag = null;
|
||||
this.cmbSpec1.Text = "全部" + lstSkuEditItem.FirstOrDefault()?.spec?.FirstOrDefault().parent_name;
|
||||
this.cmbSpec1.DefaultText = "全部" + lstSkuEditItem.FirstOrDefault()?.spec?.FirstOrDefault().parent_name;
|
||||
this.cmbSpec2.Text = "全部" + lstSkuEditItem.FirstOrDefault()?.spec?.LastOrDefault().parent_name;
|
||||
this.cmbSpec2.DefaultText = "全部" + lstSkuEditItem.FirstOrDefault()?.spec?.LastOrDefault().parent_name;
|
||||
if (cmbSpec2.Text == cmbSpec1.Text)
|
||||
{
|
||||
this.cmbSpec2.Text = "";
|
||||
this.cmbSpec2.DefaultText = "";
|
||||
}
|
||||
|
||||
foreach (var skuEditItem in lstSkuEditItem)
|
||||
{
|
||||
if (skuEditItem.sku_id.ParseToLong() <= 0)
|
||||
{
|
||||
skuEditItem.sku_id = Randomx.GetId(100000000, 999999999 + 1);
|
||||
}
|
||||
}
|
||||
foreach (var skuEditItem in lstSkuEditItem)
|
||||
{
|
||||
//第一组spec
|
||||
if (skuEditItem.spec.Count > 0 && !flowLayoutPanel1.Controls.Cast<Control>().Any(c => c.Name == skuEditItem.spec[0].spec_name))
|
||||
{
|
||||
AddSpec1(skuEditItem.spec[0]);
|
||||
}
|
||||
//第二组spec
|
||||
if (skuEditItem.spec.Count > 1 && !flowLayoutPanel2.Controls.Cast<Control>().Any(c => c.Name == skuEditItem.spec[1].spec_name))
|
||||
{
|
||||
AddSpec2(skuEditItem.spec[1]);
|
||||
}
|
||||
|
||||
//var skuParam = new sku_param()
|
||||
//{
|
||||
// id = skuEditItem.id,
|
||||
// is_onsale = skuEditItem.is_onsale,
|
||||
// limit_quantity = skuEditItem.limit_quantity,
|
||||
// multi_price = skuEditItem.multi_price,
|
||||
// out_sku_sn = skuEditItem.out_sku_sn,
|
||||
// oversea_sku = skuEditItem.oversea_sku,
|
||||
// price = skuEditItem.price,
|
||||
// quantity_delta = skuEditItem.quantity_delta.ParseToInt(), // 商品数量
|
||||
// shipment_limit_second_list = skuEditItem.shipment_limit_second_list,
|
||||
// sku69_code = skuEditItem.sku69_code,
|
||||
// sku_srv_templates = skuEditItem.sku_srv_templates.ParseToString(),
|
||||
// spec = JsonHelper.DeserializeJsonToList<spec_param>(JsonHelper.SerializeObject(skuEditItem.spec)),
|
||||
// thumb_url = skuEditItem.thumb_url,
|
||||
// weight = skuEditItem.weight,
|
||||
// length = skuEditItem.length,
|
||||
// price_in_yuan = "", // 内部计算直接置空
|
||||
// multi_price_in_yuan = "", // 内部计算直接置空
|
||||
// pre_sale_time = skuEditItem.pre_sale_time,
|
||||
// sku_id = skuEditItem.sku_id,
|
||||
// thumb_url_file_id = skuEditItem.thumb_url_file_id,
|
||||
//};
|
||||
}
|
||||
|
||||
RefreshRows();
|
||||
}
|
||||
|
||||
private void thumbImg_Click(object sender, EventArgs e)
|
||||
{
|
||||
}
|
||||
@@ -185,6 +199,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
btnSave_Click(edit.btnSave, e);
|
||||
}
|
||||
|
||||
private void btnSave_Click(object sender, EventArgs e)
|
||||
@@ -201,7 +217,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
string oldSpecName = spec.spec_name;
|
||||
string newSpecName = edit.txtSpecName.Text.Trim();
|
||||
|
||||
if (edit.pictureBox1.Visible == true)
|
||||
if (edit.pictureBox1.Visible == true) // 带图片的是第一组spec
|
||||
{
|
||||
foreach (DataGridViewRow row in dgvDbProduct.Rows)
|
||||
{
|
||||
@@ -212,6 +228,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
}
|
||||
if (lstSkuEditItem.All(s => s.spec.Count > 0))
|
||||
{
|
||||
cmbSpec1.Items.Clear();
|
||||
foreach (var sku in lstSkuEditItem)
|
||||
{
|
||||
if (sku.spec[0].spec_name == oldSpecName)
|
||||
@@ -219,6 +236,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
sku.spec[0].spec_name = newSpecName;
|
||||
sku.spec[0].spec_id = null;
|
||||
}
|
||||
if (!cmbSpec1.Items.Contains(sku.spec[0].spec_name))
|
||||
cmbSpec1.Items.Add(sku.spec[0].spec_name);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -233,6 +252,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
}
|
||||
if (lstSkuEditItem.All(s => s.spec.Count > 1))
|
||||
{
|
||||
cmbSpec2.Items.Clear();
|
||||
foreach (var sku in lstSkuEditItem)
|
||||
{
|
||||
if (sku.spec[1].spec_name == oldSpecName)
|
||||
@@ -240,6 +260,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
sku.spec[1].spec_name = newSpecName;
|
||||
sku.spec[1].spec_id = null;
|
||||
}
|
||||
if (!cmbSpec2.Items.Contains(sku.spec[1].spec_name))
|
||||
cmbSpec2.Items.Add(sku.spec[1].spec_name);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -295,7 +317,24 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
{
|
||||
foreach (var specNameStr2 in specNameItems2)
|
||||
{
|
||||
|
||||
foreach (DataGridViewRow row in dgvDbProduct.Rows)
|
||||
{
|
||||
if (row.Cells["colSpec1"].Value.ParseToString() + row.Cells["colSpec2"].Value.ParseToString() == specNameStr1 + specNameStr2)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(txtMultiPrice.Text.Trim()))
|
||||
{
|
||||
row.Cells["colMultiPrice"].Value = txtMultiPrice.Text.Trim().ParseToDecimal();
|
||||
}
|
||||
if (!string.IsNullOrEmpty(txtPrice.Text.Trim()))
|
||||
{
|
||||
row.Cells["colPrice"].Value = txtPrice.Text.Trim().ParseToDecimal();
|
||||
}
|
||||
if (!string.IsNullOrEmpty(txtSkuSn.Text.Trim()))
|
||||
{
|
||||
row.Cells["colSkuSn"].Value = txtSkuSn.Text.Trim();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -334,10 +373,12 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
foreach (var sp in spec2Lst)
|
||||
{
|
||||
var newSku = JsonHelper.DeserializeJsonToObject<sku_edit_item>(JsonHelper.SerializeObject(defaultSkuEditItem));
|
||||
newSku.sku_id = Randomx.GetId(100000000, 999999999 + 1);
|
||||
newSku.price = null;
|
||||
newSku.thumb_url = null;
|
||||
newSku.thumb_url_file_id = null;
|
||||
newSku.multi_price = null;
|
||||
newSku.out_sku_sn = "";
|
||||
if (this.lstSkuEditItem.All(s => s.spec.Count == 1))
|
||||
newSku.spec = new List<spec_item>() { newSpec1 };
|
||||
else
|
||||
@@ -348,6 +389,53 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
RefreshRows();
|
||||
}
|
||||
|
||||
private void btnAddSpec2_Click(object sender, EventArgs e)
|
||||
{
|
||||
var spec = this.flowLayoutPanel2.Tag as spec_item;
|
||||
if (spec == null)
|
||||
return;
|
||||
|
||||
var newSpec2 = JsonHelper.DeserializeJsonToObject<spec_item>(JsonHelper.SerializeObject(spec));
|
||||
newSpec2.spec_id = null;
|
||||
newSpec2.spec_name = newSpec2.parent_name + this.addSpecIndex2;
|
||||
AddSpec2(newSpec2);
|
||||
this.addSpecIndex2++;
|
||||
|
||||
var spec1Lst = new List<spec_item>();
|
||||
if (this.lstSkuEditItem.All(s => s.spec.Count > 0))
|
||||
{
|
||||
foreach (var sku in lstSkuEditItem)
|
||||
{
|
||||
if (spec1Lst.Any(s => s.spec_name == sku.spec[0].spec_name))
|
||||
continue;
|
||||
|
||||
spec1Lst.Add(sku.spec[0]);
|
||||
}
|
||||
}
|
||||
if (spec1Lst.Count == 0)
|
||||
spec1Lst.Add(new spec_item());
|
||||
|
||||
foreach (var sp in spec1Lst)
|
||||
{
|
||||
var newSku = JsonHelper.DeserializeJsonToObject<sku_edit_item>(JsonHelper.SerializeObject(defaultSkuEditItem));
|
||||
newSku.sku_id = Randomx.GetId(100000000, 999999999 + 1);
|
||||
newSku.price = null;
|
||||
newSku.thumb_url = null;
|
||||
newSku.thumb_url_file_id = null;
|
||||
newSku.multi_price = null;
|
||||
newSku.out_sku_sn = "";
|
||||
newSku.spec = new List<spec_item>() { sp, newSpec2 };
|
||||
var insertIndexSku = lstSkuEditItem.LastOrDefault(s => s.spec[0].spec_name == sp.spec_name);
|
||||
newSku.thumb_url = insertIndexSku?.thumb_url;
|
||||
var insertIndex = lstSkuEditItem.IndexOf(insertIndexSku);
|
||||
if (insertIndex < 0)
|
||||
insertIndex = lstSkuEditItem.Count;
|
||||
lstSkuEditItem.Insert(insertIndex + 1, newSku);
|
||||
}
|
||||
|
||||
RefreshRows();
|
||||
}
|
||||
|
||||
void RefreshRows()
|
||||
{
|
||||
this.dgvDbProduct.Rows.Clear();
|
||||
@@ -356,17 +444,20 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
var rowId = this.dgvDbProduct.Rows.Add
|
||||
(
|
||||
false,
|
||||
skuEditItem.sku_id,
|
||||
skuEditItem.spec.Count > 0 ? skuEditItem.spec[0].spec_name : "",
|
||||
skuEditItem.spec.Count > 1 ? skuEditItem.spec[1].spec_name : "",
|
||||
skuEditItem.multi_price * 0.01m,
|
||||
skuEditItem.price * 0.01m,
|
||||
skuEditItem.thumb_url,
|
||||
DataGridViewExtension.defaultBitmap,
|
||||
"编辑",
|
||||
skuEditItem.out_sku_sn
|
||||
);
|
||||
this.dgvDbProduct.Rows[rowId].Height = 60;
|
||||
this.dgvDbProduct.Height += 60;
|
||||
//this.dgvDbProduct.Height += 60;
|
||||
}
|
||||
//this.dgvDbProduct.Height = this.dgvDbProduct.RowCount * 60 + this.dgvDbProduct.ColumnHeadersHeight + 3;
|
||||
}
|
||||
|
||||
void AddSpec1(spec_item specEditItem1)
|
||||
@@ -375,6 +466,8 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
edit.Name = specEditItem1.spec_name;
|
||||
edit.Tag = specEditItem1;
|
||||
edit.txtSpecName.Text = specEditItem1.spec_name;
|
||||
edit.txtSpecName.Width += 1 + edit.pictureBox1.Width;
|
||||
edit.txtSpecName.BringToFront();
|
||||
edit.lblErr.Text = "";
|
||||
edit.pictureBox1.Image = Properties.Resources.nopic;
|
||||
this.flowLayoutPanel1.Controls.Add(edit);
|
||||
@@ -396,9 +489,9 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
edit.Name = specEditItem2.spec_name;
|
||||
edit.Tag = specEditItem2;
|
||||
edit.txtSpecName.Text = specEditItem2.spec_name;
|
||||
edit.txtSpecName.Width += 1 + edit.pictureBox1.Width;
|
||||
edit.lblErr.Text = "";
|
||||
edit.pictureBox1.Visible = false;
|
||||
edit.txtSpecName.Width += 1 + edit.pictureBox1.Width;
|
||||
this.flowLayoutPanel2.Controls.Add(edit);
|
||||
|
||||
edit.btnDel.Tag = edit;
|
||||
@@ -410,5 +503,263 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
|
||||
this.cmbSpec2.Items.Add(specEditItem2.spec_name);
|
||||
}
|
||||
|
||||
private void dgvDbProduct_CellContentClick(object sender, DataGridViewCellEventArgs e)
|
||||
{
|
||||
if (e.ColumnIndex < 0 || e.RowIndex < 0)
|
||||
return;
|
||||
string headerText = dgvDbProduct.Columns[e.ColumnIndex].HeaderText;
|
||||
var row = dgvDbProduct.Rows[e.RowIndex];
|
||||
var skuId = row.Cells["colSkuId"].Value.ParseToLong();
|
||||
var skuEditItem = lstSkuEditItem.FirstOrDefault(s => s.sku_id == skuId);
|
||||
|
||||
switch (headerText)
|
||||
{
|
||||
case "SKU预览图":
|
||||
case "Sku预览图":
|
||||
case "sku预览图":
|
||||
{
|
||||
ShowImgForm imgFrom = new ShowImgForm(dgvDbProduct.Rows[e.RowIndex].Cells["colSkuImgUrl"].Value.ParseToString());
|
||||
imgFrom.ShowDialog();
|
||||
break;
|
||||
}
|
||||
case "编辑":
|
||||
{
|
||||
if(skuEditItem != null)
|
||||
{
|
||||
UploadSkuEditImg(skuEditItem);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "":
|
||||
dgvDbProduct.Rows[e.RowIndex].Cells["colSelect"].Value = !(bool)dgvDbProduct.Rows[e.RowIndex].Cells["colSelect"].Value;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public void UploadSkuEditImg(sku_edit_item skuEditItem)
|
||||
{
|
||||
string text = "";
|
||||
OpenFileDialog openFileDialog = new OpenFileDialog();
|
||||
openFileDialog.Multiselect = false;
|
||||
// 设置过滤条件,只显示文本文件
|
||||
openFileDialog.Filter = "图片文件 (*.jpeg;*.jpg;*.png)|*.jpeg;*.jpg;*.png|All files (*.*)|*.*";
|
||||
// 显示对话框并获取结果
|
||||
if (openFileDialog.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
pbLoading.Visible = true;
|
||||
Task.Run(() =>
|
||||
{
|
||||
try
|
||||
{
|
||||
ShopLoginInfo shop = null;
|
||||
while (shop == null || shop.LoginStatus != "登录成功")
|
||||
{
|
||||
var shopList = AdminForms.PDDAdminShopListForm.lstAdminShopInfo.Where(s => s.LoginStatus == "登录成功").ToList();
|
||||
if (shopList.Count == 0)
|
||||
{
|
||||
BaseMsgForm.ShowError("店铺全部掉线,无法上传图片!");
|
||||
return;
|
||||
}
|
||||
shop = shopList[Randomx.GetId(shopList.Count)];
|
||||
AdminForms.PDDAdminShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false);
|
||||
}
|
||||
|
||||
PDDShopLoginForm loginForm = null;
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
loginForm = new PDDShopLoginForm(shop);
|
||||
loginForm.TopLevel = false;
|
||||
loginForm.openType = EnumOpenType.manage;
|
||||
loginForm.WindowState = FormWindowState.Maximized;
|
||||
loginForm.InitUrl = "https://mms.pinduoduo.com/home/";
|
||||
loginForm.Dock = DockStyle.Fill;
|
||||
this.pnlCef.Controls.Add(loginForm);
|
||||
//this.panel2.BringToFront();
|
||||
loginForm.Show();
|
||||
}));
|
||||
Thread.Sleep(Randomx.GetId(3000, 4000));
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
this.pnlCef.SendToBack();
|
||||
if (loginForm != null)
|
||||
loginForm.Close();
|
||||
}));
|
||||
|
||||
string filePath = openFileDialog.FileName;
|
||||
var imageUp = Image.FromFile(filePath);
|
||||
Image image = new Bitmap(imageUp.Width, imageUp.Height);
|
||||
try
|
||||
{
|
||||
using (Graphics g = Graphics.FromImage(image))
|
||||
{
|
||||
g.Clear(Color.White);
|
||||
g.DrawImage(imageUp, new Rectangle(0, 0, image.Width, image.Height), 0, 0, imageUp.Width, imageUp.Height, GraphicsUnit.Pixel);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
BaseMsgForm.ShowError("设置sku图片失败 " + ex.Message);
|
||||
return;
|
||||
}
|
||||
|
||||
string imgBase64 = "";
|
||||
using (MemoryStream memoryStream = new MemoryStream())
|
||||
{
|
||||
//if (filePath.ToLower().EndsWith(".png"))
|
||||
// image.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Png);
|
||||
//else
|
||||
image.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg);
|
||||
byte[] imageBytes = memoryStream.ToArray();
|
||||
imgBase64 = Convert.ToBase64String(imageBytes);
|
||||
}
|
||||
string img_md5 = BaseClass.GetMd5(imgBase64);
|
||||
string img_url = "";
|
||||
var img = PDDDBProdImgListForm.UploadProdSkuImg(shop, imgBase64, "mms-material-img");
|
||||
if (!img.Contains("\"url\":\"https:") && !img.Contains("\"success\":true"))
|
||||
{
|
||||
var error = BaseRegex.GetStringJson(ref img, "error_msg");
|
||||
if (string.IsNullOrEmpty(error))
|
||||
error = img;
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
BaseMsgForm.ShowError("上传sku图片失败 " + error);
|
||||
pbLoading.Visible = false;
|
||||
}));
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
img_url = BaseRegex.GetStringJson(ref img, "url");
|
||||
if (string.IsNullOrEmpty(img_url))
|
||||
{
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
BaseMsgForm.ShowError("上传sku图片失败 " + img);
|
||||
pbLoading.Visible = false;
|
||||
}));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var url = BaseClass.BuildObjString("product/add_sku_img");
|
||||
var data = UserLogin.GetSignaturex();
|
||||
data += "&img_base64=" + imgBase64;
|
||||
data += "&img_md5=" + img_md5;
|
||||
data += "&img_url=" + img_url;
|
||||
var html = GetHtml.PostUtf8(url, data);
|
||||
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
|
||||
html = GetHtml.PostUtf8(url, data);
|
||||
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
|
||||
{
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
BaseMsgForm.ShowError("商品sku图片保存失败,请重试!" + BaseRegex.GetStringJson(ref html, "msg"));
|
||||
pbLoading.Visible = false;
|
||||
}));
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
skuEditItem.thumb_md5 = img_md5;
|
||||
skuEditItem.thumb_url = img_url;
|
||||
foreach (var sku in lstSkuEditItem)
|
||||
{
|
||||
if (sku.spec[0].spec_name == skuEditItem.spec[0].spec_name)
|
||||
{
|
||||
sku.thumb_md5 = img_md5;
|
||||
sku.thumb_url = img_url;
|
||||
}
|
||||
}
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
foreach (DataGridViewRow row in dgvDbProduct.Rows)
|
||||
{
|
||||
if (row.Cells["colSpec1"].Value.ParseToString() == skuEditItem.spec[0].spec_name)
|
||||
{
|
||||
row.Cells["colSkuImgUrl"].Value = skuEditItem.thumb_url;
|
||||
}
|
||||
}
|
||||
//this.RefreshRows();
|
||||
this.pbLoading.Visible = false;
|
||||
}));
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
BaseMsgForm.ShowError("打开本地图片失败 " + ex.Message);
|
||||
return;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void btnSaveSkuLst_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (this.lstSkuEditItem.Any(s => s.multi_price.ParseToDecimal() == 0 || s.price.ParseToDecimal() == 0))
|
||||
{
|
||||
BaseMsgForm.ShowError("价格不能为 0");
|
||||
return;
|
||||
}
|
||||
if (this.lstSkuEditItem.Any(s => s.price < s.multi_price + 100))
|
||||
{
|
||||
BaseMsgForm.ShowError("单买价低于拼单价加 1 元");
|
||||
return;
|
||||
}
|
||||
|
||||
var url = BaseClass.BuildObjString("product/mdy_db_product");
|
||||
var data = UserLogin.GetSignaturex() +
|
||||
"&db_id=" + DbProd.id + "&sku_edit_json=" + JsonHelper.SerializeObject(this.lstSkuEditItem);
|
||||
var html = GetHtml.PostUtf8(url, data);
|
||||
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
|
||||
html = GetHtml.PostUtf8(url, data);
|
||||
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
|
||||
{
|
||||
BaseMsgForm.ShowError("商品SKU编辑失败,请重试!" + BaseRegex.GetStringJson(ref html, "msg"));
|
||||
}
|
||||
else
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
|
||||
private void dgvDbProduct_CellValueChanged(object sender, DataGridViewCellEventArgs e)
|
||||
{
|
||||
//DataGridViewCell cell = sender as DataGridViewCell;
|
||||
//if (cell == null)
|
||||
// return;
|
||||
if (e.RowIndex < 0 || e.ColumnIndex < 0)
|
||||
return;
|
||||
|
||||
var row = dgvDbProduct.Rows[e.RowIndex];
|
||||
var skuId = row.Cells["colSkuId"].Value.ParseToLong();
|
||||
var skuEdit = lstSkuEditItem.FirstOrDefault(s => s.sku_id == skuId);
|
||||
var column = dgvDbProduct.Columns[e.ColumnIndex];
|
||||
if (column.Name == "colMultiPrice")
|
||||
{
|
||||
skuEdit.multi_price = (row.Cells["colMultiPrice"].Value.ParseToDecimal() * 100).ParseToInt();
|
||||
}
|
||||
else if (column.Name == "colPrice")
|
||||
{
|
||||
skuEdit.price = (row.Cells["colPrice"].Value.ParseToDecimal() * 100).ParseToInt();
|
||||
}
|
||||
else if (column.Name == "colSkuSn")
|
||||
{
|
||||
skuEdit.out_sku_sn = row.Cells["colSkuSn"].Value.ParseToString();
|
||||
}
|
||||
}
|
||||
|
||||
private void btnRestoreAll_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (BaseMsgForm.ShowConfirm("确定将sku信息还原到原始状态(本次及之前的编辑都将重置)?").DialogResult == DialogResult.OK)
|
||||
{
|
||||
var prodInfo = JsonHelper.DeserializeJsonToObject<PDDProductInfo>(DbProdDetail.product_json);
|
||||
lstSkuEditItem = JsonHelper.DeserializeJsonToList<sku_edit_item>(JsonHelper.SerializeObject(prodInfo.detail.sku));
|
||||
|
||||
DisplaySkuData(lstSkuEditItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -120,6 +120,9 @@
|
||||
<metadata name="colSelect.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colSkuId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colSpec1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
@@ -138,6 +141,9 @@
|
||||
<metadata name="colSkuImg.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colEditSkuImg.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="colSkuSn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
|
||||
@@ -53,6 +53,7 @@
|
||||
this.label8 = new System.Windows.Forms.Label();
|
||||
this.txtNotes = new DevComponents.DotNetBar.Controls.TextBoxX();
|
||||
this.btnOk = new TemuKJD.UserControls.ButtonEx();
|
||||
this.btnTest = new DevComponents.DotNetBar.PanelEx();
|
||||
this.panel2.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||
@@ -61,6 +62,7 @@
|
||||
// panel2
|
||||
//
|
||||
this.panel2.BackColor = System.Drawing.Color.White;
|
||||
this.panel2.Controls.Add(this.btnTest);
|
||||
this.panel2.Controls.Add(this.btnEditDetail);
|
||||
this.panel2.Controls.Add(this.btnSelect);
|
||||
this.panel2.Controls.Add(this.buttonEx1);
|
||||
@@ -98,7 +100,7 @@
|
||||
this.btnEditDetail.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btnEditDetail.Location = new System.Drawing.Point(341, 491);
|
||||
this.btnEditDetail.Name = "btnEditDetail";
|
||||
this.btnEditDetail.Size = new System.Drawing.Size(85, 25);
|
||||
this.btnEditDetail.Size = new System.Drawing.Size(85, 26);
|
||||
this.btnEditDetail.Style.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.btnEditDetail.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnEditDetail.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
@@ -369,6 +371,30 @@
|
||||
this.btnOk.UseVisualStyleBackColor = false;
|
||||
this.btnOk.Click += new System.EventHandler(this.btnOk_Click);
|
||||
//
|
||||
// btnTest
|
||||
//
|
||||
this.btnTest.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.btnTest.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.btnTest.DisabledBackColor = System.Drawing.Color.Empty;
|
||||
this.btnTest.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btnTest.Location = new System.Drawing.Point(317, 18);
|
||||
this.btnTest.Name = "btnTest";
|
||||
this.btnTest.Size = new System.Drawing.Size(85, 26);
|
||||
this.btnTest.Style.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.btnTest.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnTest.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
this.btnTest.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder;
|
||||
this.btnTest.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
|
||||
this.btnTest.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None;
|
||||
this.btnTest.Style.ForeColor.Color = System.Drawing.Color.White;
|
||||
this.btnTest.Style.GradientAngle = 90;
|
||||
this.btnTest.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.btnTest.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
|
||||
this.btnTest.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
|
||||
this.btnTest.TabIndex = 654;
|
||||
this.btnTest.Text = "测试";
|
||||
this.btnTest.Click += new System.EventHandler(this.btnTest_Click);
|
||||
//
|
||||
// PDDDBProdEditForm
|
||||
//
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
@@ -415,5 +441,6 @@
|
||||
private UserControls.ButtonEx buttonEx1;
|
||||
private UserControls.ButtonEx btnSelect;
|
||||
private DevComponents.DotNetBar.PanelEx btnEditDetail;
|
||||
private DevComponents.DotNetBar.PanelEx btnTest;
|
||||
}
|
||||
}
|
||||
@@ -234,5 +234,48 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
PDDDBProdEditDetailForm editDetailForm = new PDDDBProdEditDetailForm(this.dbProd);
|
||||
editDetailForm.ShowDialog();
|
||||
}
|
||||
|
||||
private void btnTest_Click(object sender, EventArgs e)
|
||||
{
|
||||
string text = "";
|
||||
OpenFileDialog openFileDialog = new OpenFileDialog();
|
||||
openFileDialog.Multiselect = false;
|
||||
// 设置过滤条件,只显示文本文件
|
||||
openFileDialog.Filter = "图片文件 (*.jpeg;*.jpg;*.png)|*.jpeg;*.jpg;*.png|All files (*.*)|*.*";
|
||||
// 显示对话框并获取结果
|
||||
if (openFileDialog.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
try
|
||||
{
|
||||
string filePath = openFileDialog.FileName;
|
||||
//using (Image image = Image.FromFile(filePath))
|
||||
//{
|
||||
// // 现在你可以使用image对象进行各种操作,比如绘制、保存等
|
||||
// //Console.WriteLine("Image loaded successfully.");
|
||||
// this.pictureBox2.Image = image;
|
||||
//}
|
||||
Image image = Image.FromFile(filePath);
|
||||
this.pictureBox2.Image = image;
|
||||
|
||||
string imgBase64 = "";
|
||||
using (MemoryStream memoryStream = new MemoryStream())
|
||||
{
|
||||
image.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Png);
|
||||
byte[] imageBytes = memoryStream.ToArray();
|
||||
imgBase64 = Convert.ToBase64String(imageBytes);
|
||||
//imgBase64 = Convert.ToBase64String(imageBytes, Base64FormattingOptions.InsertLineBreaks);
|
||||
}
|
||||
string img_md5 = BaseClass.GetMd5(imgBase64);
|
||||
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//Console.WriteLine("An error occurred: " + ex.Message);
|
||||
BaseMsgForm.ShowError("打开自定义图片失败 " + ex.Message);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -374,7 +374,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
/// <param name="goods_id"></param>
|
||||
/// <param name="goods_commit_id"></param>
|
||||
/// <returns></returns>
|
||||
public string UploadProdSkuImg(ShopLoginInfo shop, string img_base64, string signTag = "mms-goods-image")
|
||||
public static string UploadProdSkuImg(ShopLoginInfo shop, string img_base64, string signTag = "mms-goods-image")
|
||||
{
|
||||
string img_signature = "";
|
||||
var img_signature_rst = get_upload_sku_img_signature(shop, signTag);
|
||||
@@ -403,6 +403,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
|
||||
//if (string.IsNullOrEmpty(img_base64))
|
||||
// img_base64 = "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 truncated
|
||||
string picName = "图片1.jpg";
|
||||
byte[] imageBytes = Convert.FromBase64String(img_base64);
|
||||
// 使用MemoryStream创建图片对象
|
||||
using (MemoryStream ms = new MemoryStream(imageBytes))
|
||||
@@ -411,7 +412,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
// 保存图片到文件系统
|
||||
try
|
||||
{
|
||||
image.Save("D:\\图片1.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
|
||||
image.Save("D:\\" + picName, System.Drawing.Imaging.ImageFormat.Jpeg);
|
||||
}
|
||||
catch (Exception ex) { return "存图失败 " + ex.Message; }
|
||||
}
|
||||
@@ -421,7 +422,7 @@ Content-Disposition: form-data; name=""upload_sign""
|
||||
|
||||
" + img_signature + @"
|
||||
------WebKitFormBoundaryi5f9ydbgu8bo3yVD
|
||||
Content-Disposition: form-data; name=""image""; filename=""图片1.jpg""
|
||||
Content-Disposition: form-data; name=""image""; filename=""" + picName + @"""
|
||||
Content-Type: image/jpeg
|
||||
|
||||
<!>D:\图片1.jpg<!>
|
||||
@@ -445,7 +446,7 @@ Content-Disposition: form-data; name=""pic_operations""
|
||||
{
|
||||
var imgTmpUrl = BaseRegex.GetStringJson(ref uploadImgRst, "url");
|
||||
Thread.Sleep(Randomx.GetId(5, 20));
|
||||
var creatRst = create_goods_img(shop, imgTmpUrl, "图片1.jpg");
|
||||
var creatRst = create_goods_img(shop, imgTmpUrl, picName);
|
||||
if (!creatRst.Contains("\"success\":true"))
|
||||
{
|
||||
return creatRst;
|
||||
@@ -458,7 +459,7 @@ Content-Disposition: form-data; name=""pic_operations""
|
||||
return uploadImgRst;
|
||||
}
|
||||
|
||||
private string get_upload_sku_img_signature(ShopLoginInfo shop, string signTag = "mms-goods-image")
|
||||
public static string get_upload_sku_img_signature(ShopLoginInfo shop, string signTag = "mms-goods-image")
|
||||
{
|
||||
var anti = shop.AntiContents.LastOrDefault().ParseToString();
|
||||
if (shop.AntiContents.Count > 0)
|
||||
@@ -483,7 +484,7 @@ Content-Disposition: form-data; name=""pic_operations""
|
||||
return result;
|
||||
}
|
||||
|
||||
private string uploag_sku_img(ShopLoginInfo shop, string _body, string boundary)
|
||||
public static string uploag_sku_img(ShopLoginInfo shop, string _body, string boundary)
|
||||
{
|
||||
var anti = shop.AntiContents.LastOrDefault().ParseToString();
|
||||
if (shop.AntiContents.Count > 0)
|
||||
@@ -510,7 +511,7 @@ Content-Disposition: form-data; name=""pic_operations""
|
||||
return result;
|
||||
}
|
||||
|
||||
private string create_goods_img(ShopLoginInfo shop, string tmpUrl, string imgName = "图片1.jpg")
|
||||
public static string create_goods_img(ShopLoginInfo shop, string tmpUrl, string imgName = "图片1.jpg")
|
||||
{
|
||||
//tmpUrl = "https://pfs.pinduoduo.com/L90k1BB5397AoHjAgRgc55akrOYHOdmytPdc0f0H8H4Eaed975Uv8nEKi2lysNMyywzvv8oQLuX9RYcN9Zj6rEbprt2VQ0IsY8oE41sUq0zWRvL9HtN9zT5vm4ZZMa-mVVb--mIxF44lpjEySokqlPC8s4ETCzFff5cVnToZjpIBx4mUnuBhBxUPqid4M3wsWWYCz4CmU-BVwGXUH3B5PU3me0_dfentrA.jpeg";
|
||||
var anti = shop.AntiContents.LastOrDefault().ParseToString();
|
||||
@@ -538,7 +539,7 @@ Content-Disposition: form-data; name=""pic_operations""
|
||||
return result;
|
||||
}
|
||||
|
||||
private string query_goods_img(ShopLoginInfo shop, string tmpUrl, string fileId)
|
||||
public static string query_goods_img(ShopLoginInfo shop, string tmpUrl, string fileId)
|
||||
{
|
||||
//tmpUrl = "https://pfs.pinduoduo.com/L90k1BB5397AoHjAgRgc55akrOYHOdmytPdc0f0H8H4Eaed975Uv8nEKi2lysNMyywzvv8oQLuX9RYcN9Zj6rEbprt2VQ0IsY8oE41sUq0zWRvL9HtN9zT5vm4ZZMa-mVVb--mIxF44lpjEySokqlPC8s4ETCzFff5cVnToZjpIBx4mUnuBhBxUPqid4M3wsWWYCz4CmU-BVwGXUH3B5PU3me0_dfentrA.jpeg";
|
||||
//fileId = "81055859859";
|
||||
|
||||
@@ -821,7 +821,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
// col_edit
|
||||
//
|
||||
this.col_edit.FillWeight = 60F;
|
||||
this.col_edit.HeaderText = "编辑/详情";
|
||||
this.col_edit.HeaderText = "详情";
|
||||
this.col_edit.Name = "col_edit";
|
||||
this.col_edit.ReadOnly = true;
|
||||
this.col_edit.Resizable = System.Windows.Forms.DataGridViewTriState.True;
|
||||
|
||||
@@ -339,6 +339,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
return;
|
||||
DeleteProduct(dbId);
|
||||
break;
|
||||
case "详情":
|
||||
case "编辑/详情":
|
||||
PDDDBProdEditForm editForm = new PDDDBProdEditForm(dbProduct);
|
||||
editForm.ShowDialog();
|
||||
@@ -680,8 +681,9 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
{
|
||||
var url = BaseClass.BuildObjString("price/add_ext_code_price");
|
||||
var data = UserLogin.GetSignaturex() +
|
||||
"&ext_code=" + lblExtCode.Text.Trim() +
|
||||
"&ext_code_price=" + (txtExtCodePrice.Text.Trim().ParseToDecimal() * 100).ParseToInt();
|
||||
"&ext_code=" + lblExtCode.Text.Trim();
|
||||
if (!string.IsNullOrEmpty(txtExtCodePrice.Text.Trim()))
|
||||
data += "&ext_code_price=" + (txtExtCodePrice.Text.Trim().ParseToDecimal() * 100).ParseToInt();
|
||||
var html = GetHtml.PostUtf8(url, data);
|
||||
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
|
||||
html = GetHtml.PostUtf8(url, data);
|
||||
@@ -693,7 +695,10 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
{
|
||||
if (row.Cells["col_ext_code"].Value.ParseToString() == lblExtCode.Text.Trim())
|
||||
{
|
||||
row.Cells["colExtCodePrice"].Value = txtExtCodePrice.Text.Trim().ParseToDecimal();
|
||||
if (!string.IsNullOrWhiteSpace(txtExtCodePrice.Text.Trim()))
|
||||
row.Cells["colExtCodePrice"].Value = txtExtCodePrice.Text.Trim().ParseToDecimal();
|
||||
else
|
||||
row.Cells["colExtCodePrice"].Value = null;
|
||||
}
|
||||
}
|
||||
foreach (var prod in lstTemuDbProduct)
|
||||
|
||||
@@ -1565,7 +1565,55 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
// 生成基准未改价的sku列表
|
||||
string[] upgradeTxt = new string[] { "升级款#", "升级版#", "精品款#", "精品版#", "升级款", "升级版", "精品款", "精品版" };
|
||||
List<sku_param> baseSkuParamLst = new List<sku_param>();
|
||||
foreach (var skuInfo in prodInfo.detail.sku)
|
||||
List<sku_edit_item> skuInfoEditLst = new List<sku_edit_item>();
|
||||
if (!string.IsNullOrWhiteSpace(dbProd.sku_edit_json))
|
||||
{
|
||||
// 如果有编辑过的sku使用编辑过的sku
|
||||
skuInfoEditLst = JsonHelper.DeserializeJsonToList<sku_edit_item>(dbProd.sku_edit_json);
|
||||
bool hasNoSpecId = false; // 记录一下,后面把最新数据提交到服务器补全spec
|
||||
foreach (var skuInfo in skuInfoEditLst)
|
||||
{
|
||||
foreach (var specInfo in skuInfo.spec)
|
||||
{
|
||||
if (specInfo.spec_id.ParseToLong() == 0)
|
||||
{
|
||||
hasNoSpecId = true;
|
||||
// 根据修改过的spec_name获取spec_id
|
||||
var changeSpecRst = get_spec_by_name(shop, specInfo.spec_name, specInfo.parent_id.ParseToLong(), prodInfo.detail.cat_id.ParseToInt(),
|
||||
prodParam.goods_id.ParseToString(), prodParam.goods_commit_id, prodInfo.chance_tab);
|
||||
Thread.Sleep(Randomx.GetId(50, 100));
|
||||
if (!changeSpecRst.Contains("\"success\":true"))
|
||||
{
|
||||
var error = BaseRegex.GetStringJson(ref changeSpecRst, "error_msg");
|
||||
if (string.IsNullOrEmpty(error))
|
||||
error = changeSpecRst;
|
||||
return "设置原商品sku失败 " + error;
|
||||
}
|
||||
else
|
||||
{
|
||||
specInfo.spec_id = BaseRegex.GetLongJson(ref changeSpecRst, "result");
|
||||
foreach (var sku in skuInfoEditLst)
|
||||
{
|
||||
foreach (var sp in sku.spec)
|
||||
{
|
||||
if (sp.parent_id == specInfo.parent_id && sp.spec_name == specInfo.spec_name && sp.spec_id.ParseToLong() == 0)
|
||||
{
|
||||
sp.spec_id = specInfo.spec_id;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// 否则使用原版sku
|
||||
skuInfoEditLst = JsonHelper.DeserializeJsonToList<sku_edit_item>(JsonHelper.SerializeObject(prodInfo.detail.sku));
|
||||
}
|
||||
|
||||
foreach (var skuInfo in skuInfoEditLst)
|
||||
{
|
||||
var skuParam = new sku_param()
|
||||
{
|
||||
@@ -1606,7 +1654,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
skuParam.spec[0].spec_name = skuParam.spec[0].spec_name.Replace(txt, "").Trim();
|
||||
}
|
||||
// 如果删除升级款字样后有相同sku了就跳过
|
||||
if (prodInfo.detail.sku.Any(s => s.spec[0].spec_name == skuParam.spec[0].spec_name) || string.IsNullOrWhiteSpace(skuParam.spec[0].spec_name))
|
||||
if (skuInfoEditLst.Any(s => s.spec[0].spec_name == skuParam.spec[0].spec_name) || string.IsNullOrWhiteSpace(skuParam.spec[0].spec_name))
|
||||
continue;
|
||||
|
||||
// 根据修改过的spec_name获取spec_id
|
||||
@@ -1760,7 +1808,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
|
||||
#region // 添加一个申请活动的低价sku
|
||||
//申请skuSpec
|
||||
var spec = prodInfo.detail.sku.FirstOrDefault().spec.FirstOrDefault(s => !s.spec_name.Contains("码"));
|
||||
var spec = skuInfoEditLst.FirstOrDefault().spec.FirstOrDefault(s => !s.spec_name.Contains("码"));
|
||||
var newSpecItem = JsonHelper.DeserializeJsonToObject<spec_item>(JsonHelper.SerializeObject(spec));
|
||||
newSpecItem.spec_name = txtLowPriceSkuName.Text.Trim();
|
||||
if (isLowPriceSku)
|
||||
@@ -2560,7 +2608,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
else if (chk22347.Checked)
|
||||
{
|
||||
// 如果报了直通车,判断商品自动加入直通车以后再放行(循环12次应该已加入,否则认为加入失败跳过)
|
||||
for (int i = 0; i < 30 && !getProdRst2.Contains(prodParam.goods_id.ParseToString()); i++)
|
||||
for (int i = 0; i < 30 && !getProdRst2.Contains(prodParam.goods_id.ParseToString()) && chk22347.Checked; i++)
|
||||
{
|
||||
if (cell != null)
|
||||
{
|
||||
@@ -3142,53 +3190,6 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
return activityErr;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 通过直接获取商品测试设置20981活动
|
||||
/// </summary>
|
||||
/// <param name="shop"></param>
|
||||
/// <param name="prodInfo"></param>
|
||||
/// <returns></returns>
|
||||
string SignActivity20981Test(ShopLoginInfo shop, PDDProductInfo prodInfo)
|
||||
{
|
||||
decimal ratio = 0.33m;
|
||||
var prodParam = new PDDProductUploadParam();
|
||||
prodParam.goods_id = prodInfo.detail.goods_id;
|
||||
prodParam.skus = new List<sku_param>();
|
||||
foreach (var skuInfo in prodInfo.detail.sku)
|
||||
{
|
||||
var skuParam = new sku_param()
|
||||
{
|
||||
id = skuInfo.id,
|
||||
is_onsale = skuInfo.is_onsale,
|
||||
limit_quantity = skuInfo.limit_quantity,
|
||||
multi_price = (skuInfo.multi_price * ratio).ParseToInt(),
|
||||
out_sku_sn = skuInfo.out_sku_sn,
|
||||
oversea_sku = skuInfo.oversea_sku,
|
||||
price = (skuInfo.price * ratio).ParseToInt(),
|
||||
quantity_delta = txtStockNum.Text.Trim().ParseToInt(), //skuInfo.quantity,
|
||||
shipment_limit_second_list = skuInfo.shipment_limit_second_list,
|
||||
sku69_code = skuInfo.sku69_code,
|
||||
sku_srv_templates = skuInfo.sku_srv_templates.ParseToString(),
|
||||
spec = JsonHelper.DeserializeJsonToList<spec_param>(JsonHelper.SerializeObject(skuInfo.spec)),
|
||||
thumb_url = skuInfo.thumb_url,
|
||||
weight = skuInfo.weight,
|
||||
length = skuInfo.length,
|
||||
price_in_yuan = "", // 内部计算直接置空
|
||||
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,
|
||||
};
|
||||
if (prodParam.market_price < skuParam.price + 1000)
|
||||
{
|
||||
prodParam.market_price = skuParam.price + 1000;
|
||||
prodParam.market_price_in_yuan = (prodParam.market_price * 0.01).ParseToString();
|
||||
}
|
||||
prodParam.skus.Add(skuParam);
|
||||
}
|
||||
return SignActivity20981(shop, prodParam);
|
||||
}
|
||||
|
||||
string SignActivity20981(ShopLoginInfo shop, PDDProductUploadParam prodParam)
|
||||
{
|
||||
string activityErr = "";
|
||||
|
||||
@@ -46,14 +46,14 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
this.txtSpecName.Location = new System.Drawing.Point(1, 3);
|
||||
this.txtSpecName.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.txtSpecName.Name = "txtSpecName";
|
||||
this.txtSpecName.Size = new System.Drawing.Size(200, 23);
|
||||
this.txtSpecName.Size = new System.Drawing.Size(233, 23);
|
||||
this.txtSpecName.TabIndex = 0;
|
||||
//
|
||||
// pictureBox1
|
||||
//
|
||||
this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.pictureBox1.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.pictureBox1.Location = new System.Drawing.Point(202, 3);
|
||||
this.pictureBox1.Location = new System.Drawing.Point(235, 3);
|
||||
this.pictureBox1.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
|
||||
this.pictureBox1.Name = "pictureBox1";
|
||||
this.pictureBox1.Size = new System.Drawing.Size(23, 23);
|
||||
@@ -61,14 +61,14 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
this.pictureBox1.TabIndex = 1;
|
||||
this.pictureBox1.TabStop = false;
|
||||
//
|
||||
// btnAdd
|
||||
// btnSave
|
||||
//
|
||||
this.btnSave.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
|
||||
this.btnSave.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.btnSave.DisabledBackColor = System.Drawing.Color.Empty;
|
||||
this.btnSave.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btnSave.Location = new System.Drawing.Point(226, 3);
|
||||
this.btnSave.Name = "btnAdd";
|
||||
this.btnSave.Name = "btnSave";
|
||||
this.btnSave.Size = new System.Drawing.Size(32, 23);
|
||||
this.btnSave.Style.Alignment = System.Drawing.StringAlignment.Center;
|
||||
this.btnSave.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
|
||||
@@ -83,6 +83,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
this.btnSave.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
|
||||
this.btnSave.TabIndex = 507;
|
||||
this.btnSave.Text = "应用";
|
||||
this.btnSave.Visible = false;
|
||||
//
|
||||
// btnDel
|
||||
//
|
||||
@@ -110,9 +111,9 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
// panel1
|
||||
//
|
||||
this.panel1.Controls.Add(this.txtSpecName);
|
||||
this.panel1.Controls.Add(this.btnSave);
|
||||
this.panel1.Controls.Add(this.pictureBox1);
|
||||
this.panel1.Controls.Add(this.btnDel);
|
||||
this.panel1.Controls.Add(this.btnSave);
|
||||
this.panel1.Location = new System.Drawing.Point(0, 0);
|
||||
this.panel1.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.panel1.Name = "panel1";
|
||||
|
||||
+10
-4
@@ -148,11 +148,17 @@ namespace TemuKJD
|
||||
if (dicGetReturnPackDate.Keys.Contains(shop.ShopId) && dicGetReturnPackDate[shop.ShopId] == DateTime.Now.ToString("yyyyMMdd")) //今日已获取过
|
||||
continue;
|
||||
|
||||
var rst = retrunPackageForm.GetReturnPackage(shop, true); // 后台读取退货信息
|
||||
if (rst == false && shop.LoginStatus == "登录成功" && shop.LoginStatus2 == "国际版在线")
|
||||
try
|
||||
{
|
||||
dicGetReturnPackDate[shop.ShopId] = DateTime.Now.ToString("yyyyMMdd");
|
||||
NaiBa.Util.Helper.ConfigHelper.SaveConfig<Dictionary<string, string>>("get_return_package_date", dicGetReturnPackDate);
|
||||
var rst = retrunPackageForm.GetReturnPackage(shop, true); // 后台读取退货信息
|
||||
if (rst == false && shop.LoginStatus == "登录成功" && shop.LoginStatus2 == "国际版在线")
|
||||
{
|
||||
dicGetReturnPackDate[shop.ShopId] = DateTime.Now.ToString("yyyyMMdd");
|
||||
NaiBa.Util.Helper.ConfigHelper.SaveConfig<Dictionary<string, string>>("get_return_package_date", dicGetReturnPackDate);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -90,6 +90,7 @@ namespace TemuKJD.UserComponent
|
||||
string str2 = string.Join(",", this.checkedListBox.Items.Cast<object>().Select(o => o.ParseToString()));
|
||||
if (str1 != str2)
|
||||
{
|
||||
checkedListBox.Items.Clear();
|
||||
foreach (var item in this.Items)
|
||||
{
|
||||
checkedListBox.Items.Add(item.ParseToString(), true);
|
||||
|
||||
Reference in new issue
Block a user