diff --git a/AllBase/BaseClass.cs b/AllBase/BaseClass.cs
index 987065b..2346137 100644
--- a/AllBase/BaseClass.cs
+++ b/AllBase/BaseClass.cs
@@ -27,7 +27,7 @@ namespace AllBase
///
/// 版本ID
///
- public static int VersionCount = 989;
+ public static int VersionCount = 993;
//public static int VersionCount = 613;
///
diff --git a/AllBase/Model/Result/PDDResult/PddBuyerOrderInfoLite.cs b/AllBase/Model/Result/PDDResult/PddBuyerOrderInfoLite.cs
index 40d1d80..2d8ca82 100644
--- a/AllBase/Model/Result/PDDResult/PddBuyerOrderInfoLite.cs
+++ b/AllBase/Model/Result/PDDResult/PddBuyerOrderInfoLite.cs
@@ -51,6 +51,7 @@ namespace AllBase.Model.Result.PDDResult
}
}
public string sendStatus { get; set; } = "";
+ public string refundStatus { get; set; } = "";
public string buyerId { get; set; } // 买手Id
public string buyerName { get; set; } // 买手名称
diff --git a/TEMUKJD/BLL/YkdHttpResponseBLL.cs b/TEMUKJD/BLL/YkdHttpResponseBLL.cs
index a1b902f..a6fef9e 100644
--- a/TEMUKJD/BLL/YkdHttpResponseBLL.cs
+++ b/TEMUKJD/BLL/YkdHttpResponseBLL.cs
@@ -40,7 +40,8 @@ namespace TemuKJD.BLL
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36";
request.Accept = "application/json, text/plain, */*";
request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138""");
- request.Headers.Add("sec-ch-ua-mobile", @"?0");
+ request.Headers.Add("sec-ch-ua-mobile", @"?0");
+ request.Headers.Add("Origin", @"https://mobile.yangkeduo.com");
request.Headers.Set(HttpRequestHeader.Cookie, cookies);
request.Headers.Add("Sec-Fetch-Site", @"same-origin");
request.Headers.Add("Sec-Fetch-Mode", @"cors");
@@ -115,7 +116,67 @@ namespace TemuKJD.BLL
request.Headers.Add("Sec-Fetch-Dest", @"empty");
//request.Referer = "https://mobile.yangkeduo.com/goods.html?goods_id=668777537796&_oak_rcto=YWKWG77VXtDidZlaaAew84Hjoi0WMIkr6Sb3iSrTsNPiwhxdCIE-1DEr&_oc_trace_mark=199&_oc_adinfo=eyJwYWdlX3NuIjoxMDAwMiwic2NlbmVfaWQiOjUwNn0%3D&_oak_gallery_token=49fa7eda1bcf57d32ea05e34565ca727&_oak_gallery=https%3A%2F%2Fimg.pddpic.com%2Fmms-material-img%2F2025-08-19%2F74364405-4d67-4d13-ad64-1712f70865db.jpeg.a.jpeg&_oc_refer_ad=1&page_from=35&thumb_url=https%3A%2F%2Fimg.pddpic.com%2Fmms-material-img%2F2025-08-19%2F74364405-4d67-4d13-ad64-1712f70865db.jpeg.a.jpeg%3FimageMogr2%2Fthumbnail%2F400x%257CimageView2%2F2%2Fw%2F400%2Fq%2F80%2Fformat%2Fwebp&refer_page_name=index&refer_page_id=10002_1775730536937_hocm3gfy6j&refer_page_sn=10002&uin=CFS2K7V47GEISCE6TLYY6HRWPI_GEXDA";
request.Referer = referer;
- request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd");
+ //request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd");
+ request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
+ request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
+
+ response = (HttpWebResponse)request.GetResponse();
+ }
+ catch (WebException ex)
+ {
+ if (ex.Status == WebExceptionStatus.ProtocolError)
+ {
+ response = (HttpWebResponse)ex.Response;
+ result = GetProxyHtml.ReadResponse(response);
+ return result;
+ }
+ else return ex.Message;
+ }
+ catch (Exception e)
+ {
+ if (response != null) response.Close();
+ return e.Message;
+ }
+ result = GetProxyHtml.ReadResponse(response);
+ return result;
+ }
+
+ public static string YangkeduoGetPageResponse(BuyerLoginInfo buyer, string _url, string referer = "")
+ {
+ string cookies = "";
+ try
+ {
+ var cookieLst = JsonHelper.DeserializeJsonToList(buyer?.cookie.ParseToString());
+ if (cookieLst == null)
+ cookieLst = new List();
+ foreach (var cook in cookieLst)
+ {
+ cookies += cook.Name + "=" + cook.Value + ";";
+ }
+ }
+ catch { }
+
+ HttpWebResponse response = null;
+ string result;
+ try
+ {
+ string url = _url;
+ HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
+
+ request.KeepAlive = true;
+ request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138""");
+ request.Headers.Add("sec-ch-ua-mobile", @"?0");
+ request.Headers.Add("sec-ch-ua-platform", @"""Windows""");
+ request.Headers.Add("Upgrade-Insecure-Requests", @"1");
+ request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36";
+ request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7";
+ request.Headers.Set(HttpRequestHeader.Cookie, cookies);
+ request.Headers.Add("Sec-Fetch-Site", @"none");
+ request.Headers.Add("Sec-Fetch-Mode", @"navigate");
+ request.Headers.Add("Sec-Fetch-User", @"?1");
+ request.Headers.Add("Sec-Fetch-Dest", @"document");
+ //request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd");
+ request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
response = (HttpWebResponse)request.GetResponse();
diff --git a/TEMUKJD/PDDForms/ProductForms/ActivityForms/PDDAddActivityForm.Designer.cs b/TEMUKJD/PDDForms/ProductForms/ActivityForms/PDDAddActivityForm.Designer.cs
index e3feb60..2fbfc53 100644
--- a/TEMUKJD/PDDForms/ProductForms/ActivityForms/PDDAddActivityForm.Designer.cs
+++ b/TEMUKJD/PDDForms/ProductForms/ActivityForms/PDDAddActivityForm.Designer.cs
@@ -32,16 +32,18 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
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();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle14 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle15 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle16 = new System.Windows.Forms.DataGridViewCellStyle();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.ucGroupBoxEx2 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components);
+ this.label6 = new System.Windows.Forms.Label();
+ this.txtMultiCnt = new System.Windows.Forms.TextBox();
this.label5 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.txtSleepTime = new System.Windows.Forms.TextBox();
@@ -178,7 +180,7 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.splitContainer3);
- this.splitContainer1.Size = new System.Drawing.Size(1571, 546);
+ this.splitContainer1.Size = new System.Drawing.Size(1507, 546);
this.splitContainer1.SplitterDistance = 140;
this.splitContainer1.TabIndex = 11;
//
@@ -189,6 +191,8 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
| System.Windows.Forms.AnchorStyles.Right)));
this.ucGroupBoxEx2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.ucGroupBoxEx2.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND;
+ this.ucGroupBoxEx2.Controls.Add(this.label6);
+ this.ucGroupBoxEx2.Controls.Add(this.txtMultiCnt);
this.ucGroupBoxEx2.Controls.Add(this.label5);
this.ucGroupBoxEx2.Controls.Add(this.label3);
this.ucGroupBoxEx2.Controls.Add(this.txtSleepTime);
@@ -222,11 +226,32 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
this.ucGroupBoxEx2.Controls.Add(this.line2);
this.ucGroupBoxEx2.Location = new System.Drawing.Point(459, 2);
this.ucGroupBoxEx2.Name = "ucGroupBoxEx2";
- this.ucGroupBoxEx2.Size = new System.Drawing.Size(1110, 140);
+ this.ucGroupBoxEx2.Size = new System.Drawing.Size(1046, 140);
this.ucGroupBoxEx2.TabIndex = 667;
this.ucGroupBoxEx2.TabStop = false;
this.ucGroupBoxEx2.Text = "活动价格配置";
//
+ // label6
+ //
+ this.label6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.label6.AutoSize = true;
+ this.label6.Location = new System.Drawing.Point(533, 92);
+ this.label6.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
+ this.label6.Name = "label6";
+ this.label6.Size = new System.Drawing.Size(68, 17);
+ this.label6.TabIndex = 904;
+ this.label6.Text = "批量提交数";
+ //
+ // txtMultiCnt
+ //
+ this.txtMultiCnt.Location = new System.Drawing.Point(604, 89);
+ this.txtMultiCnt.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
+ this.txtMultiCnt.Name = "txtMultiCnt";
+ this.txtMultiCnt.Size = new System.Drawing.Size(37, 23);
+ this.txtMultiCnt.TabIndex = 903;
+ this.txtMultiCnt.Text = "5";
+ this.txtMultiCnt.TextChanged += new System.EventHandler(this.txtMultiCnt_TextChanged);
+ //
// label5
//
this.label5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
@@ -344,7 +369,7 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
this.btnApiUpload.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnApiUpload.DisabledBackColor = System.Drawing.Color.Empty;
this.btnApiUpload.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.btnApiUpload.Location = new System.Drawing.Point(1031, 33);
+ this.btnApiUpload.Location = new System.Drawing.Point(967, 33);
this.btnApiUpload.Name = "btnApiUpload";
this.btnApiUpload.Size = new System.Drawing.Size(66, 23);
this.btnApiUpload.Style.Alignment = System.Drawing.StringAlignment.Center;
@@ -368,7 +393,7 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
this.btnStop.CanvasColor = System.Drawing.SystemColors.Control;
this.btnStop.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnStop.DisabledBackColor = System.Drawing.Color.Empty;
- this.btnStop.Location = new System.Drawing.Point(1031, 68);
+ this.btnStop.Location = new System.Drawing.Point(967, 68);
this.btnStop.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2);
this.btnStop.Name = "btnStop";
this.btnStop.Size = new System.Drawing.Size(66, 23);
@@ -427,7 +452,7 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
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(1031, 100);
+ this.btnClearDgv.Location = new System.Drawing.Point(967, 100);
this.btnClearDgv.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2);
this.btnClearDgv.Name = "btnClearDgv";
this.btnClearDgv.Size = new System.Drawing.Size(66, 23);
@@ -967,7 +992,7 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
// splitContainer3.Panel2
//
this.splitContainer3.Panel2.Controls.Add(this.splitContainer4);
- this.splitContainer3.Size = new System.Drawing.Size(1571, 402);
+ this.splitContainer3.Size = new System.Drawing.Size(1507, 402);
this.splitContainer3.SplitterDistance = 372;
this.splitContainer3.TabIndex = 1;
//
@@ -994,7 +1019,7 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
this.splitContainer2.Panel2.Controls.Add(this.pbLoading);
this.splitContainer2.Panel2.Controls.Add(this.dgvActProduct);
this.splitContainer2.Panel2.Padding = new System.Windows.Forms.Padding(0, 0, 4, 0);
- this.splitContainer2.Size = new System.Drawing.Size(1571, 372);
+ this.splitContainer2.Size = new System.Drawing.Size(1507, 372);
this.splitContainer2.SplitterDistance = 326;
this.splitContainer2.TabIndex = 0;
//
@@ -1014,19 +1039,19 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
//
this.dgvShop.AllowUserToAddRows = false;
this.dgvShop.AllowUserToDeleteRows = false;
- dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke;
- this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
+ dataGridViewCellStyle9.BackColor = System.Drawing.Color.WhiteSmoke;
+ this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle9;
this.dgvShop.AutoRowNumber = true;
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;
+ dataGridViewCellStyle10.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+ dataGridViewCellStyle10.BackColor = System.Drawing.SystemColors.Control;
+ dataGridViewCellStyle10.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ dataGridViewCellStyle10.ForeColor = System.Drawing.SystemColors.WindowText;
+ dataGridViewCellStyle10.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+ dataGridViewCellStyle10.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+ dataGridViewCellStyle10.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
+ this.dgvShop.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle10;
this.dgvShop.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvShop.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colSelect,
@@ -1167,7 +1192,7 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
// txtTest20981
//
this.txtTest20981.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.txtTest20981.Location = new System.Drawing.Point(1018, 30);
+ this.txtTest20981.Location = new System.Drawing.Point(954, 30);
this.txtTest20981.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2);
this.txtTest20981.Name = "txtTest20981";
this.txtTest20981.Size = new System.Drawing.Size(127, 23);
@@ -1180,7 +1205,7 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
this.btnTest20981.CanvasColor = System.Drawing.SystemColors.Control;
this.btnTest20981.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnTest20981.DisabledBackColor = System.Drawing.Color.Empty;
- this.btnTest20981.Location = new System.Drawing.Point(1149, 30);
+ this.btnTest20981.Location = new System.Drawing.Point(1085, 30);
this.btnTest20981.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2);
this.btnTest20981.Name = "btnTest20981";
this.btnTest20981.Size = new System.Drawing.Size(84, 23);
@@ -1219,7 +1244,7 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
//
this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None;
this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue;
- this.pbLoading.Location = new System.Drawing.Point(595, 161);
+ this.pbLoading.Location = new System.Drawing.Point(563, 161);
this.pbLoading.Name = "pbLoading";
this.pbLoading.Size = new System.Drawing.Size(50, 50);
this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
@@ -1231,19 +1256,19 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
//
this.dgvActProduct.AllowUserToAddRows = false;
this.dgvActProduct.AllowUserToDeleteRows = false;
- dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke;
- this.dgvActProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3;
+ dataGridViewCellStyle11.BackColor = System.Drawing.Color.WhiteSmoke;
+ this.dgvActProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle11;
this.dgvActProduct.AutoRowNumber = true;
this.dgvActProduct.BackgroundColor = System.Drawing.Color.White;
this.dgvActProduct.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.dgvActProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4;
+ dataGridViewCellStyle12.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+ dataGridViewCellStyle12.BackColor = System.Drawing.SystemColors.Control;
+ dataGridViewCellStyle12.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ dataGridViewCellStyle12.ForeColor = System.Drawing.SystemColors.WindowText;
+ dataGridViewCellStyle12.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+ dataGridViewCellStyle12.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+ dataGridViewCellStyle12.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
+ this.dgvActProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle12;
this.dgvActProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvActProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.colCheck,
@@ -1268,7 +1293,7 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
this.dgvActProduct.Name = "dgvActProduct";
this.dgvActProduct.ReadOnly = true;
this.dgvActProduct.RowTemplate.Height = 23;
- this.dgvActProduct.Size = new System.Drawing.Size(1237, 372);
+ this.dgvActProduct.Size = new System.Drawing.Size(1173, 372);
this.dgvActProduct.TabIndex = 187;
this.dgvActProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvSelectProduct_CellContentClick);
this.dgvActProduct.Scroll += new System.Windows.Forms.ScrollEventHandler(this.dgvSelectProduct_Scroll);
@@ -1292,8 +1317,8 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
//
// colSupplierName
//
- dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle5;
+ dataGridViewCellStyle13.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle13;
this.colSupplierName.Frozen = true;
this.colSupplierName.HeaderText = "店铺名称";
this.colSupplierName.Name = "colSupplierName";
@@ -1348,8 +1373,8 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
//
// colProductName
//
- dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.colProductName.DefaultCellStyle = dataGridViewCellStyle6;
+ dataGridViewCellStyle14.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.colProductName.DefaultCellStyle = dataGridViewCellStyle14;
this.colProductName.HeaderText = "商品标题";
this.colProductName.Name = "colProductName";
this.colProductName.ReadOnly = true;
@@ -1376,8 +1401,8 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
//
// colUpdateTime
//
- dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.colUpdateTime.DefaultCellStyle = dataGridViewCellStyle7;
+ dataGridViewCellStyle15.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.colUpdateTime.DefaultCellStyle = dataGridViewCellStyle15;
this.colUpdateTime.FillWeight = 80F;
this.colUpdateTime.HeaderText = "上架时间";
this.colUpdateTime.Name = "colUpdateTime";
@@ -1393,8 +1418,8 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
//
// colOpResult
//
- dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.colOpResult.DefaultCellStyle = dataGridViewCellStyle8;
+ dataGridViewCellStyle16.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.colOpResult.DefaultCellStyle = dataGridViewCellStyle16;
this.colOpResult.HeaderText = "操作结果";
this.colOpResult.Name = "colOpResult";
this.colOpResult.ReadOnly = true;
@@ -1415,8 +1440,8 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
//
this.splitContainer4.Panel2.Controls.Add(this.btnClear);
this.splitContainer4.Panel2.Controls.Add(this.panelEx1);
- this.splitContainer4.Size = new System.Drawing.Size(1571, 26);
- this.splitContainer4.SplitterDistance = 880;
+ this.splitContainer4.Size = new System.Drawing.Size(1507, 26);
+ this.splitContainer4.SplitterDistance = 816;
this.splitContainer4.TabIndex = 3;
//
// statusBar
@@ -1427,7 +1452,7 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
this.statusBar.Location = new System.Drawing.Point(0, 0);
this.statusBar.Margin = new System.Windows.Forms.Padding(0);
this.statusBar.Name = "statusBar";
- this.statusBar.Size = new System.Drawing.Size(880, 26);
+ this.statusBar.Size = new System.Drawing.Size(816, 26);
this.statusBar.TabIndex = 2;
//
// btnClear
@@ -1487,7 +1512,7 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
| System.Windows.Forms.AnchorStyles.Right)));
this.panel1.Location = new System.Drawing.Point(699, 552);
this.panel1.Name = "panel1";
- this.panel1.Size = new System.Drawing.Size(881, 86);
+ this.panel1.Size = new System.Drawing.Size(838, 86);
this.panel1.TabIndex = 189;
this.panel1.Paint += new System.Windows.Forms.PaintEventHandler(this.panel1_Paint);
//
@@ -1495,7 +1520,7 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.White;
- this.ClientSize = new System.Drawing.Size(1583, 641);
+ this.ClientSize = new System.Drawing.Size(1540, 641);
this.Controls.Add(this.splitContainer1);
this.Controls.Add(this.panel1);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
@@ -1636,5 +1661,7 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.TextBox txtSleepTime;
+ private System.Windows.Forms.Label label6;
+ private System.Windows.Forms.TextBox txtMultiCnt;
}
}
\ No newline at end of file
diff --git a/TEMUKJD/PDDForms/ProductForms/ActivityForms/PDDAddActivityForm.cs b/TEMUKJD/PDDForms/ProductForms/ActivityForms/PDDAddActivityForm.cs
index 7ce458e..877755b 100644
--- a/TEMUKJD/PDDForms/ProductForms/ActivityForms/PDDAddActivityForm.cs
+++ b/TEMUKJD/PDDForms/ProductForms/ActivityForms/PDDAddActivityForm.cs
@@ -376,201 +376,266 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
///
///
///
- public string SignActivity(ShopLoginInfo shop, PDDProductUploadParam prodParam, bool sign22347 = true, bool sign20981 = true, bool sign21365 = true,
+ public string SignActivity(ShopLoginInfo shop, List prodParams, bool sign22347 = true, bool sign20981 = true, bool sign21365 = true,
bool sign15996 = true, bool sign23513 = true, bool sign23730 = true, bool sign23456 = true)
{
string activityErr = "";
+ List failList = new List();
// 21365 限量7折100件 // 活动2
if (1 == 1 && sign21365)
{
- activityErr += SignActivity21365(shop, prodParam);
+ activityErr = SignActivity21365(shop, prodParams);
+ var errStr = JsonHelper.SerializeObject(JsonHelper.JObjectParse(activityErr)["fail_list"]);
+ failList.AddRange(JsonHelper.DeserializeJsonToList(errStr));
}
// 20981 长期活动 // 活动1 //放在活动2后面报,否则活动2无法报名
if (1 == 1 && sign20981)
{
- activityErr += SignActivity20981(shop, prodParam);
+ activityErr = SignActivity20981(shop, prodParams);
+ var errStr = JsonHelper.SerializeObject(JsonHelper.JObjectParse(activityErr)["fail_list"]);
+ failList.AddRange(JsonHelper.DeserializeJsonToList(errStr));
}
// 15996 9块9 (价格要求低于29.9元) // 活动3
- if (1 == 1 && sign15996 && !prodParam.skus.Any(s => s.multi_price > 2990))
+ if (1 == 2 && sign15996 && !prodParams.FirstOrDefault().skus.Any(s => s.multi_price > 2990))
{
- activityErr += SignActivity15996(shop, prodParam);
+ activityErr = SignActivity15996(shop, prodParams.FirstOrDefault());
+ var errStr = JsonHelper.SerializeObject(JsonHelper.JObjectParse(activityErr)["fail_list"]);
+ failList.AddRange(JsonHelper.DeserializeJsonToList(errStr));
}
// 22347 直通车加权
if (1 == 1 && sign22347)
{
- activityErr += SignActivity22347(shop, prodParam);
+ activityErr = SignActivity22347(shop, prodParams);
+ var errStr = JsonHelper.SerializeObject(JsonHelper.JObjectParse(activityErr)["fail_list"]);
+ failList.AddRange(JsonHelper.DeserializeJsonToList(errStr));
}
- // 23513 补贴多人团频道 需要设置营销电话,暂时作废
+ // 23513 补贴多人团频道 需要设置营销电话活动图片等(未完成),暂时作废
if (1==2 && sign23513)
{
- activityErr += SignActivity23513(shop, prodParam);
+ activityErr = SignActivity23513(shop, prodParams.FirstOrDefault());
}
// 超级晚8 单件折扣
if (1 == 1 && sign23730)
{
- activityErr += SignActivity23730(shop, prodParam);
+ activityErr = SignActivity23730(shop, prodParams);
+ var errStr = JsonHelper.SerializeObject(JsonHelper.JObjectParse(activityErr)["fail_list"]);
+ failList.AddRange(JsonHelper.DeserializeJsonToList(errStr));
}
// 月卡会员折扣
if (1 == 1 && sign23456)
{
- activityErr += SignActivity23456(shop, prodParam);
+ activityErr = SignActivity23456(shop, prodParams);
+ var errStr = JsonHelper.SerializeObject(JsonHelper.JObjectParse(activityErr)["fail_list"]);
+ failList.AddRange(JsonHelper.DeserializeJsonToList(errStr));
}
// 23620 临时活动 活动已结束,停止操作 // 活动4
if (1 == 2)
{
- activityErr += SignActivity23620(shop, prodParam);
+ activityErr += SignActivity23620(shop, prodParams.FirstOrDefault());
}
// 18586 百万爆款 必须上架一天以上的sku才能报名暂时注释 // 活动5
if (1 == 2)
{
- activityErr += SignActivity18586(shop, prodParam);
+ activityErr += SignActivity18586(shop, prodParams.FirstOrDefault());
}
- return activityErr;
+ return JsonHelper.SerializeObject(failList);
}
- string SignActivity21365(ShopLoginInfo shop, PDDProductUploadParam prodParam)
+ string SignActivity21365(ShopLoginInfo shop, List prodParams)
{
+ PDDActivitySuggestPriceInfo pddActivitiPriceInfo = null;
+ var prodParamsTmp = JsonHelper.DeserializeJsonToList(JsonHelper.SerializeObject(prodParams));
+ List addActivityFailLst = new List();
string activityErr = "";
- var activityRst2 = activity_goods_price_rule(shop, prodParam.goods_id.ParseToString(), 21365, 27);
+ var activityRst2 = "";
Thread.Sleep(Randomx.GetId(500, 1500));
Thread.Sleep(Randomx.GetId(500, 1500));
Thread.Sleep((moreSleepTime * 1000).ParseToInt());
- for (int i = 0; i < 5 && !activityRst2.Contains("\"success\":true"); i++)
- {
- activity_goods_price_rule(shop, prodParam.goods_id.ParseToString(), 21365, 27);
- Thread.Sleep(Randomx.GetId(1000, 2000));
- Thread.Sleep(Randomx.GetId(1000, 2000));
- Thread.Sleep(Randomx.GetId(1000, 2000));
- Thread.Sleep((moreSleepTime * 1000).ParseToInt());
- }
- if (!activityRst2.Contains("\"success\":true"))
- {
- var error = BaseRegex.GetStringJson(ref activityRst2, "error_msg");
- if (string.IsNullOrEmpty(error))
- error = activityRst2;
- activityErr += "\r\n报名错误 365查询失败 " + error;
- if (BaseClass.SaLevel != 1 && 1 != 1)
- activityErr = "报名错误";
- return activityErr;
- }
try
{
- var jObj = JObject.Parse(activityRst2);
- var jStr = JsonHelper.SerializeObject(jObj["result"]);
- var pddActivitiPriceInfo = JsonHelper.DeserializeJsonToObject(jStr);
- var pddActivitiPriceProd = pddActivitiPriceInfo.enroll_goods_rule_vos.FirstOrDefault();
+ while (prodParamsTmp.Count > 0)
+ {
+ activityRst2 = "";
+ var prodParamsTmpTmp = prodParamsTmp.Take(5).ToList();
+ prodParamsTmp.RemoveAll(p => prodParamsTmpTmp.Contains(p));
- if (pddActivitiPriceProd == null)
- {
- activityErr += "\r\n报名错误 365查询/新建失败 商品未提交成功或不满足参加活动条件";
- if (BaseClass.SaLevel != 1 && 1 != 1)
- activityErr = "报名错误";
- return activityErr;
- }
- foreach (var activitySkuInfo in pddActivitiPriceProd.enroll_rule_param.enroll_goods_big_sale_price.sku_info_list)
- {
- if (activitySkuInfo.spec_info_str.Contains("福利款"))
+ for (int i = 0; i < 3 && !activityRst2.Contains("\"success\":true"); i++)
{
+ activityRst2 = activity_goods_price_rule(shop, string.Join(",", prodParamsTmpTmp.Select(p => p.goods_id.ParseToString()).ToList()), 22365, 27);
+ if (!activityRst2.Contains("\"success\":true"))
+ {
+ Thread.Sleep(Randomx.GetId(1000, 2000));
+ Thread.Sleep(Randomx.GetId(1000, 2000));
+ Thread.Sleep(Randomx.GetId(1000, 2000));
+ Thread.Sleep((moreSleepTime * 1000).ParseToInt());
+ }
}
- var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySkuInfo.spec_info_str);
- if (sku != null && sku.multi_price == activitySkuInfo.require_price + 1)
- sku.multi_price -= 1;
- if (sku == null || sku.multi_price > activitySkuInfo.require_price)
+ if (!activityRst2.Contains("\"success\":true"))
{
- activityErr += "\r\n报名错误 365价格低于产品价 " + activitySkuInfo.require_price + " < " + sku.multi_price;
- if (BaseClass.SaLevel != 1 && 1 != 1)
- activityErr = "报名错误";
- return activityErr;
+ var error = BaseRegex.GetStringJson(ref activityRst2, "error_msg");
+ if (string.IsNullOrEmpty(error))
+ error = activityRst2;
+ activityErr = "报名错误 365查询失败 " + error;
+ foreach (var prodParam in prodParams)
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ return "{\"success\":false,\"msg\":\"" + activityErr + "\",\"fail_list\":" + JsonHelper.SerializeObject(addActivityFailLst) + "}";
+ }
+
+ var jObj = JObject.Parse(activityRst2);
+ var jStr = JsonHelper.SerializeObject(jObj["result"]);
+ if (pddActivitiPriceInfo == null)
+ pddActivitiPriceInfo = JsonHelper.DeserializeJsonToObject(jStr);
+ else
+ {
+ var pddActivitiPriceInfoTmp = JsonHelper.DeserializeJsonToObject(jStr);
+ pddActivitiPriceInfo.goods_id_list.AddRange(pddActivitiPriceInfoTmp.goods_id_list);
+ pddActivitiPriceInfo.enroll_goods_rule_vos.AddRange(pddActivitiPriceInfoTmp.enroll_goods_rule_vos);
}
}
- var quantity = prodParam.skus.Sum(s => s.quantity_delta);
PDDActivitySubmitParam actSubmitParam = new PDDActivitySubmitParam();
actSubmitParam.activity_id = pddActivitiPriceInfo.activity_id;
actSubmitParam.enroll_source_ctx.enroll_type = 3;
actSubmitParam.enroll_source_ctx.scene_full_coverage = "mmsActBatchEnrollV1";
actSubmitParam.enroll_source_ctx.source_type = "MMSActicon";
actSubmitParam.enroll_source_ctx.scene_type = "ActivityCard";
-
- var goods_vo_item = new goods_vo_param();
- goods_vo_item.goods_id = prodParam.goods_id;
- var skuSamePrice = prodParam.skus.Max(s => s.multi_price);
- foreach (var activitySkuInfo in pddActivitiPriceProd.enroll_rule_param.enroll_goods_big_sale_price.sku_info_list)
- {
- var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySkuInfo.spec_info_str);
- if (sku == null)
- {
- activityErr += "\r\n报名错误 365价格sku未找到";
- if (BaseClass.SaLevel != 1 && 1 != 1)
- activityErr = "报名错误";
- return activityErr;
- }
-
- create_sku_vo_param sku_vo_item = new create_sku_vo_param();
- sku_vo_item.sku_id = activitySkuInfo.sku_id;
- sku_vo_item.sku_activity_price = sku.multi_price;
- sku_vo_item.sku_front_ctx_vo = new sku_front_ctx_vo_param()
- {
- filling_sku_price = sku.multi_price,
- gear_rule = activitySkuInfo.gear_rule,
- require_price = sku.multi_price,
- filling_sku_price_gear_rule = activitySkuInfo.filling_sku_price_gear_rule,
- };
- goods_vo_item.create_activity_price_vo.create_sku_vos.Add(sku_vo_item);
- }
- goods_vo_item.create_activity_price_vo.create_quantity_vo.goods_activity_quantity =
- Math.Min(quantity.ParseToInt(), 300); // 7折活动库存上限300
- actSubmitParam.goods_volist.Add(goods_vo_item);
actSubmitParam.create_protocol_vo.need_create_cost_template = true;
- var addActivityRst = add_activity_goods(shop, actSubmitParam, prodParam.goods_id.ParseToString(), 21365, 27);
- for (int i = 0; i < 3 && addActivityRst.Contains("频繁"); i++)
+ foreach (var prodParam in prodParams)
+ {
+ var pddActivitiPriceProd = pddActivitiPriceInfo.enroll_goods_rule_vos.FirstOrDefault(g => g.goods_id == prodParam.goods_id);
+ if (pddActivitiPriceProd == null)
+ {
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = "报名错误 365查询/新建失败 商品未提交成功或不满足参加活动条件" });
+ continue;
+ }
+
+ foreach (var activitySkuInfo in pddActivitiPriceProd.enroll_rule_param.enroll_goods_big_sale_price.sku_info_list)
+ {
+ if (activitySkuInfo.spec_info_str.Contains("福利款"))
+ {
+ }
+ var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySkuInfo.spec_info_str);
+ if (sku != null && sku.multi_price == activitySkuInfo.require_price + 1)
+ sku.multi_price -= 1;
+ if (sku == null || sku.multi_price > activitySkuInfo.require_price)
+ {
+ activityErr = "报名错误 365价格低于产品价 " + activitySkuInfo.require_price + " < " + sku.multi_price;
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ break;
+ }
+ }
+ if (addActivityFailLst.Any(aa => aa.goods_id == prodParam.goods_id))
+ continue;
+
+ var quantity = prodParam.skus.Sum(s => s.quantity_delta);
+ var goods_vo_item = new goods_vo_param();
+ goods_vo_item.goods_id = prodParam.goods_id;
+ var skuSamePrice = prodParam.skus.Max(s => s.multi_price);
+ foreach (var activitySkuInfo in pddActivitiPriceProd.enroll_rule_param.enroll_goods_big_sale_price.sku_info_list)
+ {
+ var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySkuInfo.spec_info_str);
+ if (sku == null)
+ {
+ activityErr = "报名错误 365价格sku未找到";
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ break;
+ }
+
+ create_sku_vo_param sku_vo_item = new create_sku_vo_param();
+ sku_vo_item.sku_id = activitySkuInfo.sku_id;
+ sku_vo_item.sku_activity_price = sku.multi_price;
+ sku_vo_item.sku_front_ctx_vo = new sku_front_ctx_vo_param()
+ {
+ filling_sku_price = sku.multi_price,
+ gear_rule = activitySkuInfo.gear_rule,
+ require_price = sku.multi_price,
+ filling_sku_price_gear_rule = activitySkuInfo.filling_sku_price_gear_rule,
+ };
+ goods_vo_item.create_activity_price_vo.create_sku_vos.Add(sku_vo_item);
+ }
+ if (addActivityFailLst.Any(aa => aa.goods_id == prodParam.goods_id))
+ continue;
+
+ goods_vo_item.create_activity_price_vo.create_quantity_vo.goods_activity_quantity =
+ Math.Min(quantity.ParseToInt(), 300); // 7折活动库存上限300
+
+ actSubmitParam.goods_volist.Add(goods_vo_item);
+ }
+
+ var addActivityRst = "";
+ for (int i = 0; i < 3 && (addActivityRst.IsNullOrEmpty() || addActivityRst.Contains("频繁")); i++)
{
Thread.Sleep(Randomx.GetId(3000, 7000));
- addActivityRst = add_activity_goods(shop, actSubmitParam, prodParam.goods_id.ParseToString(), 21365, 27);
+ addActivityRst = add_activity_goods(shop, actSubmitParam, "0", 21365, 27);
}
- var err_msg = BaseRegex.GetStringJson(ref addActivityRst, "error_msg");
- if (!addActivityRst.Contains("\"success\":true") || !string.IsNullOrEmpty(err_msg))
+ if (!addActivityRst.Contains("\"success\":true"))
{
var error = BaseRegex.GetStringJson(ref addActivityRst, "error_msg");
if (string.IsNullOrEmpty(error))
error = addActivityRst;
- activityErr += "\r\n报名错误 365新建失败 " + error;
- if (BaseClass.SaLevel != 1 && 1 != 1)
- activityErr = "报名错误";
- return activityErr;
+ activityErr = "报名错误 365新建失败 " + error;
+ foreach (var prodParam in prodParams)
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ return "{\"success\":false,\"msg\":\"" + activityErr + "\",\"fail_list\":" + JsonHelper.SerializeObject(addActivityFailLst) + "}";
+ }
+ var err_msg = BaseRegex.GetStringJson(ref addActivityRst, "error_msg");
+ if (!string.IsNullOrEmpty(err_msg) && addActivityRst.Contains("enroll_fail_goods_list"))
+ {
+ var failStr = JsonHelper.SerializeObject(JsonHelper.JObjectParse(addActivityRst)["result"]["enroll_fail_goods_list"]);
+ var failLstTmp = JsonHelper.DeserializeJsonToList(failStr);
+ foreach (var failTmp in failLstTmp)
+ {
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = failTmp.goods_id, error_msg = "报名错误 365新建失败 " + failTmp.error_msg });
+ }
+ }
+ if (addActivityRst.Contains("enroll_success_goods_list"))
+ {
+ var successStr = JsonHelper.SerializeObject(JsonHelper.JObjectParse(addActivityRst)["result"]["enroll_success_goods_list"]);
+ var successLstTmp = JsonHelper.DeserializeJsonToList(successStr);
+ foreach (var successTmp in successLstTmp)
+ {
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = successTmp.goods_id, error_msg = "365报名成功" });
+ }
}
}
catch (Exception ex)
{
- activityErr += "\r\n报名错误 365查询/新建失败 " + ex.Message;
- if (BaseClass.SaLevel != 1 && 1 != 1)
- activityErr = "报名错误";
- return activityErr;
+ activityErr = "报名错误 365查询/新建失败 " + ex.Message;
+ foreach (var prodParam in prodParams)
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ return "{\"success\":false,\"msg\":\"" + activityErr + "\",\"fail_list\":" + JsonHelper.SerializeObject(addActivityFailLst) + "}";
}
- activityErr = "\r\n365报名成功";
- return activityErr;
+ activityErr = "365报名成功";
+ //foreach(var prodParam in prodParams)
+ //{
+ // if (!addActivityFailLst.Any(aa => aa.goods_id == prodParam.goods_id))
+ // addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ //}
+ return "{\"success\":true,\"msg\":\"" + activityErr + "\",\"fail_list\":" + JsonHelper.SerializeObject(addActivityFailLst) + "}";
}
- string CheckActivity20981(ShopLoginInfo shop, PDDProductUploadParam prodParam)
+ string CheckActivity20981(ShopLoginInfo shop, List prodParams)
{
+ List addActivityFailLst = new List();
string activityErr = "";
- var activityRst1 = activity_goods_info(shop, prodParam.goods_id.ParseToString(), "20981");
+ var activityRst1 = "频繁";
Thread.Sleep(Randomx.GetId(500, 1500));
Thread.Sleep((moreSleepTime * 1000).ParseToInt());
- for (int i = 0; i < 5 && !activityRst1.Contains("\"success\":true"); i++)
+ for (int i = 0; i < 5 && activityRst1.Contains("频繁"); i++)
{
- activityRst1 = activity_goods_info(shop, prodParam.goods_id.ParseToString(), "20981");
+ activityRst1 = activity_goods_info(shop, prodParams.Select(p => p.goods_id.ParseToString()).ToList(), "20981");
+ //activityRst1 = activity_goods_price_rule(shop, string.Join(",", prodParams.Select(p => p.goods_id.ParseToString()).ToList()), 20981, 27);
Thread.Sleep(Randomx.GetId(1000, 2000));
Thread.Sleep((moreSleepTime * 1000).ParseToInt());
}
@@ -581,110 +646,95 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
var error = BaseRegex.GetStringJson(ref activityRst1, "error_msg");
if (string.IsNullOrEmpty(error))
error = activityRst1;
- activityErr += "校验失败 981查询失败 " + error;
- return activityErr;
+ activityErr = "校验失败 活动查询失败 " + error.Replace("\"", """);
+ foreach (var prodParam in prodParams)
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ return "{\"success\":false,\"msg\":\"" + activityErr + "\",\"fail_list\":" + JsonHelper.SerializeObject(addActivityFailLst) + "}";
}
try
{
var jObj = JObject.Parse(activityRst1);
var jStr = JsonHelper.SerializeObject(jObj["result"]["result"]);
- var pddActivitiInfo = (JsonHelper.DeserializeJsonToObject(jStr)?.theme_activity_quick_enroll_goods_render_form_list).FirstOrDefault();
+ var queryActivityInfoRstLst = (JsonHelper.DeserializeJsonToObject(jStr)?.theme_activity_quick_enroll_goods_render_form_list).ToList();
+ if (queryActivityInfoRstLst == null)
+ queryActivityInfoRstLst = new List();
- if (pddActivitiInfo == null)
+ foreach (var prodParam in prodParams)
{
- activityErr += "校验失败 981查询/新建失败 商品未提交成功或不满足参加活动条件";
- return activityErr;
- }
- foreach (var activitySku in pddActivitiInfo.activity_price_render.sku_activity_price_render_dtolist)
- {
- var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySku.sku_name);
- if (sku == null)
+ var pddActivitiInfo = queryActivityInfoRstLst.FirstOrDefault(act => act.goods_id == prodParam.goods_id);
+ if (pddActivitiInfo == null)
{
- activityErr += "校验失败 981sku丢失 " + activitySku.sku_name;
- return activityErr;
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = "校验失败 981查询/新建失败 商品未提交成功或不满足参加活动条件" });
+ continue;
}
- //if (sku.multi_price > activitySku.suggest_price && sku.multi_price == activitySku.suggest_price + 1)
- //{
- // sku.multi_price = activitySku.suggest_price + 1;
- //}
- if (sku.multi_price > activitySku.suggest_price)
+ foreach (var activitySku in pddActivitiInfo.activity_price_render.sku_activity_price_render_dtolist)
{
- // 此处临时用sku69_code记录一下需要改动库存的sku,库存为0的也记录后面再处理
- //if (sku.quantity_delta > 0)
- sku.sku69_code = "yes";
- sku.multi_price = activitySku.suggest_price;
+ var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySku.sku_name);
+ if (sku == null)
+ {
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = "校验失败 981sku丢失 " + activitySku.sku_name });
+ break;
+ }
+ if (sku.multi_price > activitySku.suggest_price)
+ {
+ // 此处临时用sku69_code记录一下需要改动库存的sku,库存为0的也记录后面再处理
+ sku.sku69_code = "yes";
+ sku.multi_price = activitySku.suggest_price;
+ }
+ }
+ if (prodParam.skus.All(s => s.sku69_code == "yes"))
+ {
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = "校验失败 所有活动报价均低于产品期望价格" });
}
- }
- if (prodParam.skus.All(s => s.sku69_code == "yes"))
- {
- activityErr += "校验失败 所有活动报价均低于产品期望价格";
- return activityErr;
}
}
catch (Exception ex)
{
- activityErr += "校验失败 981查询/新建失败 解析错误 " + ex.Message;
- return activityErr;
+ activityErr = "校验失败 活动查询/新建失败 解析错误 " + ex.Message;
+ foreach (var prodParam in prodParams)
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ return "{\"success\":false,\"msg\":\"" + activityErr + "\",\"fail_list\":" + JsonHelper.SerializeObject(addActivityFailLst) + "}";
}
- activityErr = "981校验成功";
- return activityErr;
+ activityErr = "活动校验成功";
+ return "{\"success\":true,\"msg\":\"" + activityErr + "\",\"fail_list\":" + JsonHelper.SerializeObject(addActivityFailLst) + "}";
}
- string SignActivity20981(ShopLoginInfo shop, PDDProductUploadParam prodParam)
+ string SignActivity20981(ShopLoginInfo shop, List prodParams)
{
+ List addActivityFailLst = new List();
string activityErr = "";
- var activityRst1 = activity_goods_info(shop, prodParam.goods_id.ParseToString(), "20981");
+ var activityRst1 = "频繁";
Thread.Sleep(Randomx.GetId(500, 1500));
Thread.Sleep((moreSleepTime * 1000).ParseToInt());
- for (int i = 0; i < 5 && !activityRst1.Contains("\"success\":true"); i++)
+ for (int i = 0; i < 5 && activityRst1.Contains("频繁"); i++)
{
- activityRst1 = activity_goods_info(shop, prodParam.goods_id.ParseToString(), "20981");
+ activityRst1 = activity_goods_info(shop, prodParams.Select(p => p.goods_id.ParseToString()).ToList(), "20981");
+ //activityRst1 = activity_goods_price_rule(shop, string.Join(",", prodParams.Select(p => p.goods_id.ParseToString()).ToList()), 20981, 27);
Thread.Sleep(Randomx.GetId(1000, 2000));
Thread.Sleep((moreSleepTime * 1000).ParseToInt());
}
if (!activityRst1.Contains("\"success\":true"))
{
+ PDDShopListForm.Instance.CheckShopLogin(new string[] { shop.LoginName }, false);
+
var error = BaseRegex.GetStringJson(ref activityRst1, "error_msg");
if (string.IsNullOrEmpty(error))
error = activityRst1;
- activityErr += "\r\n报名错误 981查询失败 " + error;
- if (BaseClass.SaLevel != 1 && 1 != 1)
- activityErr = "报名错误";
- //goto restoreSkuImg1;
- return activityErr;
+ activityErr = "报名错误 981查询失败 " + error.Replace("\"", """);
+ foreach(var prodParam in prodParams)
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ return "{\"success\":false,\"msg\":\"" + activityErr + "\",\"fail_list\":" + JsonHelper.SerializeObject(addActivityFailLst) + "}";
}
try
{
var jObj = JObject.Parse(activityRst1);
var jStr = JsonHelper.SerializeObject(jObj["result"]["result"]);
- var pddActivitiInfo = (JsonHelper.DeserializeJsonToObject(jStr)?.theme_activity_quick_enroll_goods_render_form_list).FirstOrDefault();
-
- if (pddActivitiInfo == null)
- {
- activityErr += "\r\n报名错误 981查询/新建失败 商品未提交成功或不满足参加活动条件";
- if (BaseClass.SaLevel != 1 && 1 != 1)
- activityErr = "报名错误";
- //goto restoreSkuImg1;
- return activityErr;
- }
- 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 && sku.multi_price == activitySku.suggest_price + 1)
- sku.multi_price -= 1;
- if (sku == null || sku.multi_price > activitySku.suggest_price)
- {
- activityErr += "\r\n报名错误 981价格低于产品价 " + activitySku.suggest_price + " < " + sku.multi_price;
- if (BaseClass.SaLevel != 1 && 1 != 1)
- activityErr = "报名错误";
- //goto restoreSkuImg1;
- return activityErr;
- }
- }
+ var queryActivityInfoRstLst = (JsonHelper.DeserializeJsonToObject(jStr)?.theme_activity_quick_enroll_goods_render_form_list).ToList();
+ if (queryActivityInfoRstLst == null)
+ queryActivityInfoRstLst = new List();
PDDActivitySubmitParam actSubmitParam = new PDDActivitySubmitParam();
- actSubmitParam.activity_id = pddActivitiInfo.activity_id;
+ actSubmitParam.activity_id = 20981;
actSubmitParam.enroll_source_ctx.enroll_type = 34; //入口1
//actSubmitParam.enroll_source_ctx.enroll_type = 3; //入口2
actSubmitParam.enroll_source_ctx.scene_full_coverage = "mmsActQuickEnrollMultiActivityRealTableV1"; //入口1
@@ -693,83 +743,134 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
//actSubmitParam.enroll_source_ctx.source_type = "MMSActicon"; //入口2
actSubmitParam.enroll_source_ctx.scene_type = null; //入口1
//actSubmitParam.enroll_source_ctx.scene_type = "ActivityCard"; //入口2
-
- var goods_vo_item = new goods_vo_param();
- goods_vo_item.goods_id = prodParam.goods_id;
- var skuSamePrice = prodParam.skus.Max(s => s.multi_price);
- 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 += "\r\n报名错误 981价格sku未找到";
- if (BaseClass.SaLevel != 1 && 1 != 1)
- activityErr = "报名错误";
- //goto restoreSkuImg1;
- return activityErr;
- }
-
- create_sku_vo_param sku_vo_item = new create_sku_vo_param();
- sku_vo_item.sku_id = activitySku.sku_id;
- sku_vo_item.sku_activity_price = sku.multi_price; //skuSamePrice; //sku.multi_price; //activitySku.suggest_price;
- sku_vo_item.sku_front_ctx_vo = new sku_front_ctx_vo_param()
- {
- filling_sku_price = sku.multi_price, //skuSamePrice, //sku.multi_price, //activitySku.suggest_price,
- gear_rule = activitySku.gear_rule,
- require_price = sku.multi_price, //skuSamePrice, //sku.multi_price, //activitySku.suggest_price,
- };
- goods_vo_item.create_activity_price_vo.create_sku_vos.Add(sku_vo_item);
- }
- actSubmitParam.goods_volist.Add(goods_vo_item);
actSubmitParam.create_protocol_vo.need_create_cost_template = true;
- if (pddActivitiInfo.need_goods_activity_price == true)
- actSubmitParam.goods_volist.FirstOrDefault().view_confirmed_goods_protocol_vo.confirm_hit_cut_price = true;
-
- //var addActivityRst = add_activity_goods(shop, actSubmitParam, prodParam.goods_id.ParseToString(), 20981, 0);
- var addActivityRst = add_activity_goods(shop, actSubmitParam, prodParam.goods_id.ParseToString(), 20981, 27);
- var err_msg = BaseRegex.GetStringJson(ref addActivityRst, "error_msg");
- if (err_msg.ParseToString().Contains("报名该活动需要签署降价补差协议,立即前往链接签署"))
+ foreach (var prodParam in prodParams)
{
- Invoke(new Action(() =>
+ var pddActivitiInfo = queryActivityInfoRstLst.FirstOrDefault(act => act.goods_id == prodParam.goods_id);
+ if (pddActivitiInfo == null)
{
- PDDShopLoginForm loginForm = new PDDShopLoginForm(shop);
- loginForm.openType = EnumOpenType.manage;
- loginForm.InitUrl = err_msg.Substring(err_msg.IndexOf("https://")); //"https://mms.pinduoduo.com/mallcenter/signProtocol/21";
- loginForm.ShowDialog();
- }));
- addActivityRst = add_activity_goods(shop, actSubmitParam, prodParam.goods_id.ParseToString(), 20981, 27);
- err_msg = BaseRegex.GetStringJson(ref addActivityRst, "error_msg");
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = "报名错误 981查询/新建失败 商品未提交成功或不满足参加活动条件" });
+ continue;
+ }
+ 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 && sku.multi_price == activitySku.suggest_price + 1)
+ sku.multi_price -= 1;
+ if (sku == null || sku.multi_price > activitySku.suggest_price)
+ {
+ activityErr = "报名错误 981价格低于产品价 " + activitySku.suggest_price + " < " + sku.multi_price;
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ break;
+ }
+ }
+ if (addActivityFailLst.Any(aa => aa.goods_id == prodParam.goods_id))
+ continue;
+
+ var goods_vo_item = new goods_vo_param();
+ goods_vo_item.goods_id = prodParam.goods_id;
+ var skuSamePrice = prodParam.skus.Max(s => s.multi_price);
+ 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价格sku未找到";
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ break;
+ }
+
+ create_sku_vo_param sku_vo_item = new create_sku_vo_param();
+ sku_vo_item.sku_id = activitySku.sku_id;
+ sku_vo_item.sku_activity_price = sku.multi_price; //skuSamePrice; //sku.multi_price; //activitySku.suggest_price;
+ sku_vo_item.sku_front_ctx_vo = new sku_front_ctx_vo_param()
+ {
+ filling_sku_price = sku.multi_price, //skuSamePrice, //sku.multi_price, //activitySku.suggest_price,
+ gear_rule = activitySku.gear_rule,
+ require_price = sku.multi_price, //skuSamePrice, //sku.multi_price, //activitySku.suggest_price,
+ };
+ goods_vo_item.create_activity_price_vo.create_sku_vos.Add(sku_vo_item);
+ }
+ if (addActivityFailLst.Any(aa => aa.goods_id == prodParam.goods_id))
+ continue;
+
+ if (pddActivitiInfo.need_goods_activity_price == true)
+ goods_vo_item.view_confirmed_goods_protocol_vo.confirm_hit_cut_price = true;
+
+ actSubmitParam.goods_volist.Add(goods_vo_item);
}
- for (int i = 0; i < 3 && (!addActivityRst.Contains("\"success\":true") || !string.IsNullOrEmpty(err_msg)); i++)
+ if (actSubmitParam.goods_volist.Count == 0)
{
- Thread.Sleep(Randomx.GetId(2000, 5000));
- addActivityRst = add_activity_goods(shop, actSubmitParam, prodParam.goods_id.ParseToString(), 20981, 27);
+ return "{\"success\":true,\"msg\":\"" + activityErr + "\",\"fail_list\":" + JsonHelper.SerializeObject(addActivityFailLst) + "}";
}
- err_msg = BaseRegex.GetStringJson(ref addActivityRst, "error_msg");
- if (!addActivityRst.Contains("\"success\":true") || !string.IsNullOrEmpty(err_msg))
+ var addActivityRst = "";
+ var err_msg = "";
+ for (int i = 0; i < 3 && !addActivityRst.Contains("\"success\":true"); i++)
+ {
+ err_msg = BaseRegex.GetStringJson(ref addActivityRst, "error_msg");
+ if (err_msg.ParseToString().Contains("报名该活动需要签署降价补差协议,立即前往链接签署"))
+ {
+ Invoke(new Action(() =>
+ {
+ PDDShopLoginForm loginForm = new PDDShopLoginForm(shop);
+ loginForm.openType = EnumOpenType.manage;
+ loginForm.InitUrl = err_msg.Substring(err_msg.IndexOf("https://")); //"https://mms.pinduoduo.com/mallcenter/signProtocol/21";
+ loginForm.ShowDialog();
+ }));
+ }
+
+ Thread.Sleep(Randomx.GetId(2000, 5000));
+ addActivityRst = add_activity_goods(shop, actSubmitParam, "0", 20981, 27);
+ //{"success":true,"error_code":1000000,"error_msg":null,"result":{"enroll_fail_goods_list":[{"goods_id":935055850626,"need_retry":false,"error_code":30001,"error_msg":"商品的建议价有更新,您提报的价格高于建议价,系统已刷新建议价,请重新提报。"},{"goods_id":939857649372,"need_retry":false,"error_code":30001,"error_msg":"商品的建议价有更新,您提报的价格高于建议价,系统已刷新建议价,请重新提报。"},{"goods_id":933564880168,"need_retry":false,"error_code":30001,"error_msg":"商品的建议价有更新,您提报的价格高于建议价,系统已刷新建议价,请重新提报。"}],"enroll_success_goods_list":[{"goods_id":935055877956,"activity_goods_id":11278050703428},{"goods_id":935055563227,"activity_goods_id":11278042020059}]}}
+ }
+ if (!addActivityRst.Contains("\"success\":true"))
{
var error = BaseRegex.GetStringJson(ref addActivityRst, "error_msg");
if (string.IsNullOrEmpty(error))
error = addActivityRst;
- activityErr += "\r\n报名错误 981新建失败 " + error;
- if (BaseClass.SaLevel != 1 && 1 != 1)
- activityErr = "报名错误";
- //goto restoreSkuImg1;
- return activityErr;
+ activityErr = "报名错误 981新建失败 " + error;
+ foreach (var prodParam in prodParams)
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ return "{\"success\":false,\"msg\":\"" + activityErr + "\",\"fail_list\":" + JsonHelper.SerializeObject(addActivityFailLst) + "}";
}
- } // 活动1
+ // 分析每个商品的错误
+ err_msg = BaseRegex.GetStringJson(ref addActivityRst, "error_msg");
+ if (!string.IsNullOrEmpty(err_msg) && addActivityRst.Contains("enroll_fail_goods_list"))
+ {
+ var failStr = JsonHelper.SerializeObject(JsonHelper.JObjectParse(addActivityRst)["result"]["enroll_fail_goods_list"]);
+ var failLstTmp = JsonHelper.DeserializeJsonToList(failStr);
+ foreach(var failTmp in failLstTmp)
+ {
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = failTmp.goods_id, error_msg = "报名错误 981新建失败 " + failTmp.error_msg });
+ }
+ }
+ if (addActivityRst.Contains("enroll_success_goods_list"))
+ {
+ var successStr = JsonHelper.SerializeObject(JsonHelper.JObjectParse(addActivityRst)["result"]["enroll_success_goods_list"]);
+ var successLstTmp = JsonHelper.DeserializeJsonToList(successStr);
+ foreach (var successTmp in successLstTmp)
+ {
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = successTmp.goods_id, error_msg = "981报名成功" });
+ }
+ }
+ }
catch (Exception ex)
{
- activityErr += "\r\n报名错误 981查询/新建失败 " + ex.Message;
- if (BaseClass.SaLevel != 1 && 1 != 1)
- activityErr = "报名错误";
- //goto restoreSkuImg1;
- return activityErr;
+ activityErr = "报名错误 981查询/新建失败 " + ex.Message;
+ foreach (var prodParam in prodParams)
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ return "{\"success\":false,\"msg\":\"" + activityErr + "\",\"fail_list\":" + JsonHelper.SerializeObject(addActivityFailLst) + "}";
}
- activityErr = "\r\n981报名成功";
- return activityErr;
+ activityErr = "981报名成功";
+ //foreach (var prodParam in prodParams)
+ //{
+ // if (!addActivityFailLst.Any(aa => aa.goods_id == prodParam.goods_id))
+ // addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ //}
+ return "{\"success\":true,\"msg\":\"" + activityErr + "\",\"fail_list\":" + JsonHelper.SerializeObject(addActivityFailLst) + "}";
}
string SignActivity15996(ShopLoginInfo shop, PDDProductUploadParam prodParam)
@@ -876,58 +977,55 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
return activityErr;
}
- string SignActivity22347(ShopLoginInfo shop, PDDProductUploadParam prodParam)
+ string SignActivity22347(ShopLoginInfo shop, List prodParams)
{
+ PDDActivitySuggestPriceInfo pddActivitiPriceInfo = null;
+ var prodParamsTmp = JsonHelper.DeserializeJsonToList(JsonHelper.SerializeObject(prodParams));
+ List addActivityFailLst = new List();
string activityErr = "";
- var activityRst2 = activity_goods_price_rule(shop, prodParam.goods_id.ParseToString(), 22347, 27);
+ var activityRst2 = "";
Thread.Sleep(Randomx.GetId(500, 1500));
Thread.Sleep(Randomx.GetId(500, 1500));
Thread.Sleep((moreSleepTime * 1000).ParseToInt());
- if (!activityRst2.Contains("\"success\":true"))
- {
- activity_goods_price_rule(shop, prodParam.goods_id.ParseToString(), 22347, 27);
- Thread.Sleep(Randomx.GetId(1000, 2000));
- Thread.Sleep(Randomx.GetId(1000, 2000));
- Thread.Sleep(Randomx.GetId(1000, 2000));
- Thread.Sleep((moreSleepTime * 1000).ParseToInt());
- }
- if (!activityRst2.Contains("\"success\":true"))
- {
- var error = BaseRegex.GetStringJson(ref activityRst2, "error_msg");
- if (string.IsNullOrEmpty(error))
- error = activityRst2;
- activityErr += "\r\n报名错误 347查询失败 " + error;
- if (BaseClass.SaLevel != 1 && 1 != 1)
- activityErr = "报名错误";
- //goto restoreSkuImg1;
- return activityErr;
- }
try
{
- var jObj = JObject.Parse(activityRst2);
- var jStr = JsonHelper.SerializeObject(jObj["result"]);
- var pddActivitiPriceInfo = JsonHelper.DeserializeJsonToObject(jStr);
- var pddActivitiPriceProd = pddActivitiPriceInfo.enroll_goods_rule_vos.FirstOrDefault();
+ while (prodParamsTmp.Count > 0)
+ {
+ activityRst2 = "";
+ var prodParamsTmpTmp = prodParamsTmp.Take(5).ToList();
+ prodParamsTmp.RemoveAll(p => prodParamsTmpTmp.Contains(p));
- if (pddActivitiPriceProd == null)
- {
- activityErr += "\r\n报名错误 347查询/新建失败 商品未提交成功或不满足参加活动条件";
- if (BaseClass.SaLevel != 1 && 1 != 1)
- activityErr = "报名错误";
- //goto restoreSkuImg1;
- return activityErr;
- }
- foreach (var activitySkuInfo in pddActivitiPriceProd.enroll_rule_param.enroll_goods_big_sale_price.sku_info_list)
- {
- //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)) == activitySkuInfo.spec_info_str);
- if (sku == null || sku.multi_price > activitySkuInfo.require_price)
+ for (int i = 0; i< 3 && !activityRst2.Contains("\"success\":true"); i++)
{
- activityErr += "\r\n报名错误 347价格低于产品价 " + activitySkuInfo.require_price + " < " + sku.multi_price;
- if (BaseClass.SaLevel != 1 && 1 != 1)
- activityErr = "报名错误";
- //goto restoreSkuImg1;
- return activityErr;
+ activityRst2 = activity_goods_price_rule(shop, string.Join(",", prodParamsTmpTmp.Select(p => p.goods_id.ParseToString()).ToList()), 22347, 27);
+ if (!activityRst2.Contains("\"success\":true"))
+ {
+ Thread.Sleep(Randomx.GetId(1000, 2000));
+ Thread.Sleep(Randomx.GetId(1000, 2000));
+ Thread.Sleep(Randomx.GetId(1000, 2000));
+ Thread.Sleep((moreSleepTime * 1000).ParseToInt());
+ }
+ }
+ if (!activityRst2.Contains("\"success\":true"))
+ {
+ var error = BaseRegex.GetStringJson(ref activityRst2, "error_msg");
+ if (string.IsNullOrEmpty(error))
+ error = activityRst2;
+ activityErr = "报名错误 347查询失败 " + error;
+ foreach (var prodParam in prodParams)
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ return "{\"success\":false,\"msg\":\"" + activityErr + "\",\"fail_list\":" + JsonHelper.SerializeObject(addActivityFailLst) + "}";
+ }
+
+ var jObj = JObject.Parse(activityRst2);
+ var jStr = JsonHelper.SerializeObject(jObj["result"]);
+ if (pddActivitiPriceInfo == null)
+ pddActivitiPriceInfo = JsonHelper.DeserializeJsonToObject(jStr);
+ else
+ {
+ var pddActivitiPriceInfoTmp = JsonHelper.DeserializeJsonToObject(jStr);
+ pddActivitiPriceInfo.goods_id_list.AddRange(pddActivitiPriceInfoTmp.goods_id_list);
+ pddActivitiPriceInfo.enroll_goods_rule_vos.AddRange(pddActivitiPriceInfoTmp.enroll_goods_rule_vos);
}
}
@@ -937,83 +1035,129 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
actSubmitParam.enroll_source_ctx.scene_full_coverage = "mmsActBatchEnrollV1";
actSubmitParam.enroll_source_ctx.source_type = null;
actSubmitParam.enroll_source_ctx.scene_type = null;
-
- var goods_vo_item = new goods_vo_param();
- goods_vo_item.goods_id = prodParam.goods_id;
- var skuSamePrice = prodParam.skus.Max(s => s.multi_price);
- foreach (var activitySkuInfo in pddActivitiPriceProd.enroll_rule_param.enroll_goods_big_sale_price.sku_info_list)
- {
- //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)) == activitySkuInfo.spec_info_str);
- if (sku == null)
- {
- activityErr += "\r\n报名错误 347价格sku未找到";
- if (BaseClass.SaLevel != 1 && 1 != 1)
- activityErr = "报名错误";
- //goto restoreSkuImg1;
- return activityErr;
- }
-
- create_sku_vo_param sku_vo_item = new create_sku_vo_param();
- sku_vo_item.sku_id = activitySkuInfo.sku_id;
- sku_vo_item.sku_activity_price = sku.multi_price; //skuSamePrice; //sku.multi_price; //activitySku.suggest_price;
- sku_vo_item.sku_front_ctx_vo = new sku_front_ctx_vo_param()
- {
- filling_sku_price = sku.multi_price,
- gear_rule = activitySkuInfo.gear_rule,
- require_price = sku.multi_price,
- filling_sku_price_gear_rule = activitySkuInfo.filling_sku_price_gear_rule,
- };
- goods_vo_item.create_activity_price_vo.create_sku_vos.Add(sku_vo_item);
- }
- actSubmitParam.goods_volist.Add(goods_vo_item);
actSubmitParam.create_protocol_vo.need_create_cost_template = true;
- //if (pddActivitiInfo.need_goods_activity_price == true)
- actSubmitParam.goods_volist.FirstOrDefault().view_confirmed_goods_protocol_vo.confirm_hit_cut_price = true;
-
- var addActivityRst = add_activity_goods(shop, actSubmitParam, prodParam.goods_id.ParseToString(), 22347, 27);
- var err_msg = BaseRegex.GetStringJson(ref addActivityRst, "error_msg");
- if (err_msg.ParseToString().Contains("报名该活动需要签署降价补差协议,立即前往链接签署"))
+ foreach (var prodParam in prodParams)
{
- Invoke(new Action(() =>
+ var pddActivitiPriceProd = pddActivitiPriceInfo.enroll_goods_rule_vos.FirstOrDefault(p => p.goods_id == prodParam.goods_id);
+ if (pddActivitiPriceProd == null)
{
- PDDShopLoginForm loginForm = new PDDShopLoginForm(shop);
- loginForm.openType = EnumOpenType.manage;
- loginForm.InitUrl = err_msg.Substring(err_msg.IndexOf("https://")); //"https://mms.pinduoduo.com/mallcenter/signProtocol/21";
- loginForm.ShowDialog();
- }));
- addActivityRst = add_activity_goods(shop, actSubmitParam, prodParam.goods_id.ParseToString(), 22347, 27);
- err_msg = BaseRegex.GetStringJson(ref addActivityRst, "error_msg");
+ activityErr = "报名错误 347查询/新建失败 商品未提交成功或不满足参加活动条件";
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ continue;
+ }
+
+ foreach (var activitySkuInfo in pddActivitiPriceProd.enroll_rule_param.enroll_goods_big_sale_price.sku_info_list)
+ {
+ //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)) == activitySkuInfo.spec_info_str);
+ if (sku == null || sku.multi_price > activitySkuInfo.require_price)
+ {
+ activityErr = "报名错误 347价格低于产品价 " + activitySkuInfo.require_price + " < " + sku.multi_price;
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ break;
+ }
+ }
+ if (addActivityFailLst.Any(aa => aa.goods_id == prodParam.goods_id))
+ continue;
+
+ var goods_vo_item = new goods_vo_param();
+ goods_vo_item.goods_id = prodParam.goods_id;
+ var skuSamePrice = prodParam.skus.Max(s => s.multi_price);
+ foreach (var activitySkuInfo in pddActivitiPriceProd.enroll_rule_param.enroll_goods_big_sale_price.sku_info_list)
+ {
+ //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)) == activitySkuInfo.spec_info_str);
+ if (sku == null)
+ {
+ activityErr = "报名错误 347价格sku未找到";
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ break;
+ }
+
+ create_sku_vo_param sku_vo_item = new create_sku_vo_param();
+ sku_vo_item.sku_id = activitySkuInfo.sku_id;
+ sku_vo_item.sku_activity_price = sku.multi_price; //skuSamePrice; //sku.multi_price; //activitySku.suggest_price;
+ sku_vo_item.sku_front_ctx_vo = new sku_front_ctx_vo_param()
+ {
+ filling_sku_price = sku.multi_price,
+ gear_rule = activitySkuInfo.gear_rule,
+ require_price = sku.multi_price,
+ filling_sku_price_gear_rule = activitySkuInfo.filling_sku_price_gear_rule,
+ };
+ goods_vo_item.create_activity_price_vo.create_sku_vos.Add(sku_vo_item);
+ }
+ if (addActivityFailLst.Any(aa => aa.goods_id == prodParam.goods_id))
+ continue;
+
+ //if (pddActivitiInfo.need_goods_activity_price == true)
+ goods_vo_item.view_confirmed_goods_protocol_vo.confirm_hit_cut_price = true;
+
+ actSubmitParam.goods_volist.Add(goods_vo_item);
}
+
+ var addActivityRst = "";
+ var err_msg = "";
for (int i = 0; i < 3 && !addActivityRst.Contains("\"success\":true"); i++)
{
+ err_msg = BaseRegex.GetStringJson(ref addActivityRst, "error_msg");
+ if (err_msg.ParseToString().Contains("报名该活动需要签署降价补差协议,立即前往链接签署"))
+ {
+ Invoke(new Action(() =>
+ {
+ PDDShopLoginForm loginForm = new PDDShopLoginForm(shop);
+ loginForm.openType = EnumOpenType.manage;
+ loginForm.InitUrl = err_msg.Substring(err_msg.IndexOf("https://")); //"https://mms.pinduoduo.com/mallcenter/signProtocol/21";
+ loginForm.ShowDialog();
+ }));
+ }
Thread.Sleep(Randomx.GetId(2000, 5000));
- addActivityRst = add_activity_goods(shop, actSubmitParam, prodParam.goods_id.ParseToString(), 22347, 27);
+ addActivityRst = add_activity_goods(shop, actSubmitParam, "0", 22347, 27);
}
- err_msg = BaseRegex.GetStringJson(ref addActivityRst, "error_msg");
- if (!addActivityRst.Contains("\"success\":true") || !string.IsNullOrEmpty(err_msg))
+ if (!addActivityRst.Contains("\"success\":true"))
{
var error = BaseRegex.GetStringJson(ref addActivityRst, "error_msg");
if (string.IsNullOrEmpty(error))
error = addActivityRst;
- activityErr += "\r\n报名错误 347新建失败 " + error;
- if (BaseClass.SaLevel != 1 && 1 != 1)
- activityErr = "报名错误";
- //goto restoreSkuImg1;
- return activityErr;
+ activityErr = "报名错误 347新建失败 " + error;
+ foreach (var prodParam in prodParams)
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ return "{\"success\":false,\"msg\":\"" + activityErr + "\",\"fail_list\":" + JsonHelper.SerializeObject(addActivityFailLst) + "}";
}
- } // 活动1
+ err_msg = BaseRegex.GetStringJson(ref addActivityRst, "error_msg");
+ if (!string.IsNullOrEmpty(err_msg) && addActivityRst.Contains("enroll_fail_goods_list"))
+ {
+ var failStr = JsonHelper.SerializeObject(JsonHelper.JObjectParse(addActivityRst)["result"]["enroll_fail_goods_list"]);
+ var failLstTmp = JsonHelper.DeserializeJsonToList(failStr);
+ foreach (var failTmp in failLstTmp)
+ {
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = failTmp.goods_id, error_msg = "报名错误 347新建失败 " + failTmp.error_msg });
+ }
+ }
+ if (addActivityRst.Contains("enroll_success_goods_list"))
+ {
+ var successStr = JsonHelper.SerializeObject(JsonHelper.JObjectParse(addActivityRst)["result"]["enroll_success_goods_list"]);
+ var successLstTmp = JsonHelper.DeserializeJsonToList(successStr);
+ foreach (var successTmp in successLstTmp)
+ {
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = successTmp.goods_id, error_msg = "347报名成功" });
+ }
+ }
+ }
catch (Exception ex)
{
- activityErr += "\r\n报名错误 347查询/新建失败 " + ex.Message;
- if (BaseClass.SaLevel != 1 && 1 != 1)
- activityErr = "报名错误";
- //goto restoreSkuImg1;
- return activityErr;
+ activityErr = "报名错误 347查询/新建失败 " + ex.Message;
+ foreach (var prodParam in prodParams)
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ return "{\"success\":false,\"msg\":\"" + activityErr + "\",\"fail_list\":" + JsonHelper.SerializeObject(addActivityFailLst) + "}";
}
- activityErr = "\r\n347报名成功";
- return activityErr;
+ activityErr = "347报名成功";
+ //foreach (var prodParam in prodParams)
+ //{
+ // if (!addActivityFailLst.Any(aa => aa.goods_id == prodParam.goods_id))
+ // addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ //}
+ return "{\"success\":true,\"msg\":\"" + activityErr + "\",\"fail_list\":" + JsonHelper.SerializeObject(addActivityFailLst) + "}";
}
string SignActivity23513(ShopLoginInfo shop, PDDProductUploadParam prodParam)
@@ -1162,69 +1306,49 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
///
/// 超级晚8 单件折扣
///
- string SignActivity23730(ShopLoginInfo shop, PDDProductUploadParam prodParam)
+ string SignActivity23730(ShopLoginInfo shop, List prodParams)
{
+ List actEnrollV3GoodsRuleInfoLst = new List();
+ var prodParamsTmp = JsonHelper.DeserializeJsonToList(JsonHelper.SerializeObject(prodParams));
+ List addActivityFailLst = new List();
string activityErr = "";
- var activityRst3 = activity_goods_price_rule3(shop, prodParam.goods_id.ParseToString(), 23730, 424);
+ var activityRst3 = "频繁";
Thread.Sleep(Randomx.GetId(500, 1500));
Thread.Sleep(Randomx.GetId(500, 1500));
Thread.Sleep((moreSleepTime * 1000).ParseToInt());
- for (int i = 0; i < 5 && activityRst3.Contains("频繁"); i++)
- {
- activity_goods_price_rule3(shop, prodParam.goods_id.ParseToString(), 23730, 424);
- Thread.Sleep(Randomx.GetId(1000, 2000));
- Thread.Sleep(Randomx.GetId(1000, 2000));
- Thread.Sleep(Randomx.GetId(1000, 2000));
- Thread.Sleep((moreSleepTime * 1000).ParseToInt());
- }
- if (!activityRst3.Contains("\"success\":true"))
- {
- var error = BaseRegex.GetStringJson(ref activityRst3, "error_msg");
- if (string.IsNullOrEmpty(error))
- error = activityRst3;
- activityErr += "\r\n报名错误 730查询失败 " + error;
- if (BaseClass.SaLevel != 1 && 1 != 1)
- activityErr = "报名错误";
- //goto restoreSkuImg1;
- return activityErr;
- }
try
{
- var jObj = JObject.Parse(activityRst3);
- var jStr = JsonHelper.SerializeObject(jObj["result"]["enroll_goods_rule_vos"]);
- var actEnrollV3GoodsRuleInfoLst = JsonHelper.DeserializeJsonToList(jStr);
- var actEnrollV3GoodsRuleInfo = actEnrollV3GoodsRuleInfoLst.FirstOrDefault();
- var mmsEnrollParamsInfo =
- actEnrollV3GoodsRuleInfo.enroll_rule_param.enroll_goods_promotion_event.supply_tool_mms_enroll_form_goods_param_item_list.FirstOrDefault().MmsEnrollParamsInfo;
+ while (prodParamsTmp.Count > 0)
+ {
+ var prodParamsTmpTmp = prodParamsTmp.Take(5).ToList();
+ prodParamsTmp.RemoveAll(p => prodParamsTmpTmp.Contains(p));
- if (mmsEnrollParamsInfo == null)
- {
- activityErr += "\r\n报名错误 730查询/新建失败 商品未提交成功或不满足参加活动条件";
- if (BaseClass.SaLevel != 1 && 1 != 1)
- activityErr = "报名错误";
- //goto restoreSkuImg1;
- return activityErr;
- }
- var mmsEnrollParamsInfoStr = JsonHelper.SerializeObject(mmsEnrollParamsInfo);
-
- if (mmsEnrollParamsInfo.max_discount_threshold.ParseToInt() < 98)
- {
- activityErr += "\r\n放弃报名 730 最大折扣 " + mmsEnrollParamsInfo.max_discount_threshold + " 折低于 98 折 ";
- if (BaseClass.SaLevel != 1 && 1 != 1)
- activityErr = "报名错误";
- return activityErr;
- }
- foreach (var activitySkuInfo in mmsEnrollParamsInfo.sku_best_activity_price_map)
- {
- var sku = prodParam.skus.FirstOrDefault(s => s.sku_id.ParseToString() == activitySkuInfo.Key);
- //var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySkuInfo.spec_info_str);
- if (sku == null || sku.multi_price > activitySkuInfo.Value)
+ for (int i = 0; i < 5 && activityRst3.Contains("频繁"); i++)
{
- activityErr += "\r\n报名错误 730价格低于产品价 " + (activitySkuInfo.Value * mmsEnrollParamsInfo.max_discount_threshold.ParseToInt() / 100) + " < " + sku?.multi_price;
- if (BaseClass.SaLevel != 1 && 1 != 1)
- activityErr = "报名错误";
- return activityErr;
+ activityRst3 = activity_goods_price_rule3(shop, string.Join(",", prodParams.Select(p => p.goods_id.ParseToString())), 23730, 424);
+ if (activityRst3.Contains("频繁"))
+ {
+ Thread.Sleep(Randomx.GetId(1000, 2000));
+ Thread.Sleep(Randomx.GetId(1000, 2000));
+ Thread.Sleep(Randomx.GetId(1000, 2000));
+ Thread.Sleep((moreSleepTime * 1000).ParseToInt());
+ }
}
+ if (!activityRst3.Contains("\"success\":true"))
+ {
+ var error = BaseRegex.GetStringJson(ref activityRst3, "error_msg");
+ if (string.IsNullOrEmpty(error))
+ error = activityRst3;
+ activityErr = "报名错误 730查询失败 " + error;
+ foreach (var prodParam in prodParams)
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ return "{\"success\":false,\"msg\":\"" + activityErr + "\",\"fail_list\":" + JsonHelper.SerializeObject(addActivityFailLst) + "}";
+ }
+
+
+ var jObj = JObject.Parse(activityRst3);
+ var jStr = JsonHelper.SerializeObject(jObj["result"]["enroll_goods_rule_vos"]);
+ actEnrollV3GoodsRuleInfoLst.AddRange(JsonHelper.DeserializeJsonToList(jStr));
}
PDDActivitySubmitParamV2 actSubmitParamV2 = new PDDActivitySubmitParamV2();
@@ -1233,70 +1357,123 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
actSubmitParamV2.enroll_source_ctx.scene_full_coverage = "mmsActBatchEnrollV1";
actSubmitParamV2.enroll_source_ctx.source_type = "MMSActicon";
actSubmitParamV2.enroll_source_ctx.scene_type = "ActivityCard";
-
actSubmitParamV2.goods_volist = new List();
- goods_vo_param_v2 goods_vo_param = new goods_vo_param_v2();
- actSubmitParamV2.goods_volist.Add(goods_vo_param);
- goods_vo_param.goods_id = prodParam.goods_id;
- goods_vo_param.create_goods_promotion_event_vo = new create_goods_promotion_event_vo_param();
- goods_vo_param.create_goods_promotion_event_vo.item_volist.Add(new item_volist_param()
- {
- tool_supply_type = actEnrollV3GoodsRuleInfo.enroll_rule_param.enroll_goods_promotion_event.supply_tool_mms_enroll_form_goods_param_item_list.FirstOrDefault().tool_supply_type,
- tool_supply_sn = actEnrollV3GoodsRuleInfo.enroll_rule_param.enroll_goods_promotion_event.supply_tool_mms_enroll_form_goods_param_item_list.FirstOrDefault().tool_supply_sn,
- mms_enroll_params = "{\"discount\":\"" + mmsEnrollParamsInfo.max_discount_threshold + "\"}",
- });
- actSubmitParamV2.create_protocol_vo.view_confirmed_supply_tool_introduction_volist.Add(new view_confirmed_supply_tool_introduction_volist_param()
- {
- supply_tool_type = actEnrollV3GoodsRuleInfo.enroll_rule_param.enroll_goods_promotion_event.supply_tool_mms_enroll_form_goods_param_item_list.FirstOrDefault().tool_supply_type,
- supply_tool_sn = actEnrollV3GoodsRuleInfo.enroll_rule_param.enroll_goods_promotion_event.supply_tool_mms_enroll_form_goods_param_item_list.FirstOrDefault().tool_supply_sn,
- merchant_confirm_outer_ratio = true
- });
- var addActivityRst = add_activity_goods(shop, actSubmitParamV2, prodParam.goods_id.ParseToString(), 23730, 424);
- for (int i = 0; i < 3 && !addActivityRst.Contains("\"success\":true"); i++)
+ foreach (var prodParam in prodParams)
+ {
+ var actEnrollV3GoodsRuleInfo = actEnrollV3GoodsRuleInfoLst.FirstOrDefault(a => a.goods_id == prodParam.goods_id);
+ var mmsEnrollParamsInfo =
+ actEnrollV3GoodsRuleInfo?.enroll_rule_param.enroll_goods_promotion_event?.supply_tool_mms_enroll_form_goods_param_item_list?.FirstOrDefault()?.MmsEnrollParamsInfo;
+
+ if (actEnrollV3GoodsRuleInfo == null || mmsEnrollParamsInfo == null)
+ {
+ activityErr = "报名错误 730查询/新建失败 商品未提交成功或不满足参加活动条件";
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ continue;
+ }
+
+ var mmsEnrollParamsInfoStr = JsonHelper.SerializeObject(mmsEnrollParamsInfo);
+ if (mmsEnrollParamsInfo.max_discount_threshold.ParseToInt() < 98)
+ {
+ activityErr = "放弃报名 730最大折扣 " + mmsEnrollParamsInfo.max_discount_threshold + " 折低于 98 折 ";
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ continue;
+ }
+
+ foreach (var activitySkuInfo in mmsEnrollParamsInfo.sku_best_activity_price_map)
+ {
+ var sku = prodParam.skus.FirstOrDefault(s => s.sku_id.ParseToString() == activitySkuInfo.Key);
+ //var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySkuInfo.spec_info_str);
+ if (sku == null || sku.multi_price > activitySkuInfo.Value)
+ {
+ activityErr = "报名错误 730价格低于产品价 " + (activitySkuInfo.Value * mmsEnrollParamsInfo.max_discount_threshold.ParseToInt() / 100) + " < " + sku?.multi_price;
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ break;
+ }
+ }
+ if (addActivityFailLst.Any(aa => aa.goods_id == prodParam.goods_id))
+ continue;
+
+ goods_vo_param_v2 goods_vo_param = new goods_vo_param_v2();
+ actSubmitParamV2.goods_volist.Add(goods_vo_param);
+ goods_vo_param.goods_id = prodParam.goods_id;
+ goods_vo_param.create_goods_promotion_event_vo = new create_goods_promotion_event_vo_param();
+ goods_vo_param.create_goods_promotion_event_vo.item_volist.Add(new item_volist_param()
+ {
+ tool_supply_type = actEnrollV3GoodsRuleInfo.enroll_rule_param.enroll_goods_promotion_event.supply_tool_mms_enroll_form_goods_param_item_list.FirstOrDefault().tool_supply_type,
+ tool_supply_sn = actEnrollV3GoodsRuleInfo.enroll_rule_param.enroll_goods_promotion_event.supply_tool_mms_enroll_form_goods_param_item_list.FirstOrDefault().tool_supply_sn,
+ mms_enroll_params = "{\"discount\":\"" + mmsEnrollParamsInfo.max_discount_threshold + "\"}",
+ });
+ actSubmitParamV2.create_protocol_vo.view_confirmed_supply_tool_introduction_volist.Add(new view_confirmed_supply_tool_introduction_volist_param()
+ {
+ supply_tool_type = actEnrollV3GoodsRuleInfo.enroll_rule_param.enroll_goods_promotion_event.supply_tool_mms_enroll_form_goods_param_item_list.FirstOrDefault().tool_supply_type,
+ supply_tool_sn = actEnrollV3GoodsRuleInfo.enroll_rule_param.enroll_goods_promotion_event.supply_tool_mms_enroll_form_goods_param_item_list.FirstOrDefault().tool_supply_sn,
+ merchant_confirm_outer_ratio = true
+ });
+ }
+
+ var addActivityRst = "频繁";
+ for (int i = 0; i < 3 && addActivityRst.Contains("频繁"); i++)
{
Thread.Sleep(Randomx.GetId(2000, 5000));
- addActivityRst = add_activity_goods(shop, actSubmitParamV2, prodParam.goods_id.ParseToString(), 23730, 424);
+ addActivityRst = add_activity_goods(shop, actSubmitParamV2, "0", 23730, 424);
+ //{"success":true,"error_code":1000000,"error_msg":null,"result":{"enroll_fail_goods_list":[],"enroll_success_goods_list":[{"goods_id":939959837537,"activity_goods_id":11278102151265},{"goods_id":939958451500,"activity_goods_id":11278068868140},{"goods_id":939958936804,"activity_goods_id":11278114440420},{"goods_id":939958823706,"activity_goods_id":11278085253146},{"goods_id":939958300485,"activity_goods_id":11278098034757}]}}
}
- var err_msg = BaseRegex.GetStringJson(ref addActivityRst, "error_msg");
- if (!addActivityRst.Contains("\"success\":true") || !string.IsNullOrEmpty(err_msg))
+ if (!addActivityRst.Contains("\"success\":true"))
{
var error = BaseRegex.GetStringJson(ref addActivityRst, "error_msg");
if (string.IsNullOrEmpty(error))
error = addActivityRst;
- activityErr += "\r\n报名错误 730新建失败 " + error;
- if (BaseClass.SaLevel != 1 && 1 != 1)
- activityErr = "报名错误";
- //goto restoreSkuImg1;
- return activityErr;
+ activityErr = "报名错误 730新建失败 " + error;
+ foreach (var prodParam in prodParams)
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ return "{\"success\":false,\"msg\":\"" + activityErr + "\",\"fail_list\":" + JsonHelper.SerializeObject(addActivityFailLst) + "}";
+ }
+ var err_msg = BaseRegex.GetStringJson(ref addActivityRst, "error_msg");
+ if (!string.IsNullOrEmpty(err_msg) && addActivityRst.Contains("enroll_fail_goods_list"))
+ {
+ var failStr = JsonHelper.SerializeObject(JsonHelper.JObjectParse(addActivityRst)["result"]["enroll_fail_goods_list"]);
+ var failLstTmp = JsonHelper.DeserializeJsonToList(failStr);
+ foreach (var failTmp in failLstTmp)
+ {
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = failTmp.goods_id, error_msg = "报名错误 730新建失败 " + failTmp.error_msg });
+ }
+ }
+ if (addActivityRst.Contains("enroll_success_goods_list"))
+ {
+ var successStr = JsonHelper.SerializeObject(JsonHelper.JObjectParse(addActivityRst)["result"]["enroll_success_goods_list"]);
+ var successLstTmp = JsonHelper.DeserializeJsonToList(successStr);
+ foreach (var successTmp in successLstTmp)
+ {
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = successTmp.goods_id, error_msg = "730报名成功" });
+ }
}
} // 活动 23730 超级晚8
catch (Exception ex)
{
- activityErr += "\r\n报名错误 730查询/新建失败 " + ex.Message;
- if (BaseClass.SaLevel != 1 && 1 != 1)
- activityErr = "报名错误";
- //goto restoreSkuImg1;
- return activityErr;
+ activityErr = "报名错误 730查询/新建失败 " + ex.Message;
+ foreach (var prodParam in prodParams)
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ return "{\"success\":false,\"msg\":\"" + activityErr + "\",\"fail_list\":" + JsonHelper.SerializeObject(addActivityFailLst) + "}";
}
- activityErr = "\r\n730报名成功";
- return activityErr;
+ activityErr = "730报名成功";
+ return "{\"success\":true,\"msg\":\"" + activityErr + "\",\"fail_list\":" + JsonHelper.SerializeObject(addActivityFailLst) + "}";
}
///
/// 月卡会员折扣
///
- string SignActivity23456(ShopLoginInfo shop, PDDProductUploadParam prodParam)
+ string SignActivity23456Old(ShopLoginInfo shop, PDDProductUploadParam prodParam)
{
string activityErr = "";
- var activityRst3 = activity_goods_price_rule3(shop, prodParam.goods_id.ParseToString(), 23456, 422);
+ var activityRst3 = "频繁";
Thread.Sleep(Randomx.GetId(500, 1500));
Thread.Sleep(Randomx.GetId(500, 1500));
Thread.Sleep((moreSleepTime * 1000).ParseToInt());
for (int i = 1; i < 5 && activityRst3.Contains("频繁"); i++)
{
- activity_goods_price_rule3(shop, prodParam.goods_id.ParseToString(), 23456, 422);
+ activityRst3 = activity_goods_price_rule3(shop, prodParam.goods_id.ParseToString(), 23456, 422);
Thread.Sleep(Randomx.GetId(1000, 2000));
Thread.Sleep(Randomx.GetId(1000, 2000));
Thread.Sleep(Randomx.GetId(1000, 2000));
@@ -1307,7 +1484,7 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
var error = BaseRegex.GetStringJson(ref activityRst3, "error_msg");
if (string.IsNullOrEmpty(error))
error = activityRst3;
- activityErr += "\r\n报名错误 456查询失败 " + error;
+ activityErr = "\r\n报名错误 456查询失败 " + error;
if (BaseClass.SaLevel != 1 && 1 != 1)
activityErr = "报名错误";
//goto restoreSkuImg1;
@@ -1324,17 +1501,17 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
if (mmsEnrollParamsInfo == null)
{
- activityErr += "\r\n报名错误 456查询/新建失败 商品未提交成功或不满足参加活动条件";
+ activityErr = "\r\n报名错误 456查询/新建失败 商品未提交成功或不满足参加活动条件";
if (BaseClass.SaLevel != 1 && 1 != 1)
activityErr = "报名错误";
//goto restoreSkuImg1;
return activityErr;
}
- var mmsEnrollParamsInfoStr = JsonHelper.SerializeObject(mmsEnrollParamsInfo);
+ //var mmsEnrollParamsInfoStr = JsonHelper.SerializeObject(mmsEnrollParamsInfo);
if (mmsEnrollParamsInfo.max_discount_threshold.ParseToInt() < 95)
{
- activityErr += "\r\n放弃报名 456最大折扣 " + mmsEnrollParamsInfo.max_discount_threshold + " 折低于 95 折 ";
+ activityErr = "\r\n放弃报名 456最大折扣 " + mmsEnrollParamsInfo.max_discount_threshold + " 折低于 95 折 ";
if (BaseClass.SaLevel != 1 && 1 != 1)
activityErr = "报名错误";
return activityErr;
@@ -1345,7 +1522,7 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
//var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySkuInfo.spec_info_str);
if (sku == null || sku.multi_price > activitySkuInfo.Value)
{
- activityErr += "\r\n报名错误 456价格低于产品价 " + (activitySkuInfo.Value * mmsEnrollParamsInfo.max_discount_threshold.ParseToInt() / 100) + " < " + sku?.multi_price;
+ activityErr = "\r\n报名错误 456价格低于产品价 " + (activitySkuInfo.Value * mmsEnrollParamsInfo.max_discount_threshold.ParseToInt() / 100) + " < " + sku?.multi_price;
if (BaseClass.SaLevel != 1 && 1 != 1)
activityErr = "报名错误";
return activityErr;
@@ -1389,7 +1566,7 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
var error = BaseRegex.GetStringJson(ref addActivityRst, "error_msg");
if (string.IsNullOrEmpty(error))
error = addActivityRst;
- activityErr += "\r\n报名错误 456新建失败 " + error;
+ activityErr = "\r\n报名错误 456新建失败 " + error;
if (BaseClass.SaLevel != 1 && 1 != 1)
activityErr = "报名错误";
//goto restoreSkuImg1;
@@ -1398,7 +1575,7 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
} // 活动 23456 月卡会员折扣
catch (Exception ex)
{
- activityErr += "\r\n报名错误 456查询/新建失败 " + ex.Message;
+ activityErr = "\r\n报名错误 456查询/新建失败 " + ex.Message;
if (BaseClass.SaLevel != 1 && 1 != 1)
activityErr = "报名错误";
//goto restoreSkuImg1;
@@ -1408,6 +1585,162 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
return activityErr;
}
+ ///
+ /// 月卡会员折扣
+ ///
+ string SignActivity23456(ShopLoginInfo shop, List prodParams)
+ {
+ List actEnrollV3GoodsRuleInfoLst = new List();
+ var prodParamsTmp = JsonHelper.DeserializeJsonToList(JsonHelper.SerializeObject(prodParams));
+ List addActivityFailLst = new List();
+ string activityErr = "";
+ var activityRst3 = "频繁";
+ Thread.Sleep(Randomx.GetId(500, 1500));
+ Thread.Sleep(Randomx.GetId(500, 1500));
+ Thread.Sleep((moreSleepTime * 1000).ParseToInt());
+ try
+ {
+ while (prodParamsTmp.Count > 0)
+ {
+ var prodParamsTmpTmp = prodParamsTmp.Take(5).ToList();
+ prodParamsTmp.RemoveAll(p => prodParamsTmpTmp.Contains(p));
+
+ for (int i = 0; i < 5 && activityRst3.Contains("频繁"); i++)
+ {
+ activityRst3 = activity_goods_price_rule3(shop, string.Join(",", prodParams.Select(p => p.goods_id.ParseToString())), 23456, 422);
+ if (activityRst3.Contains("频繁"))
+ {
+ Thread.Sleep(Randomx.GetId(1000, 2000));
+ Thread.Sleep(Randomx.GetId(1000, 2000));
+ Thread.Sleep(Randomx.GetId(1000, 2000));
+ Thread.Sleep((moreSleepTime * 1000).ParseToInt());
+ }
+ }
+ if (!activityRst3.Contains("\"success\":true"))
+ {
+ var error = BaseRegex.GetStringJson(ref activityRst3, "error_msg");
+ if (string.IsNullOrEmpty(error))
+ error = activityRst3;
+ activityErr = "报名错误 456查询失败 " + error;
+ foreach (var prodParam in prodParams)
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ return "{\"success\":false,\"msg\":\"" + activityErr + "\",\"fail_list\":" + JsonHelper.SerializeObject(addActivityFailLst) + "}";
+ }
+
+ var jObj = JObject.Parse(activityRst3);
+ var jStr = JsonHelper.SerializeObject(jObj["result"]["enroll_goods_rule_vos"]);
+ actEnrollV3GoodsRuleInfoLst.AddRange(JsonHelper.DeserializeJsonToList(jStr));
+ }
+
+ PDDActivitySubmitParamV2 actSubmitParamV2 = new PDDActivitySubmitParamV2();
+ actSubmitParamV2.activity_id = 23456;
+ actSubmitParamV2.enroll_source_ctx.enroll_type = 3;
+ actSubmitParamV2.enroll_source_ctx.scene_full_coverage = "mmsActBatchEnrollV1";
+ actSubmitParamV2.enroll_source_ctx.source_type = "MMSActicon";
+ actSubmitParamV2.enroll_source_ctx.scene_type = "ActivityCard";
+ actSubmitParamV2.goods_volist = new List();
+
+ foreach (var prodParam in prodParams)
+ {
+ var actEnrollV3GoodsRuleInfo = actEnrollV3GoodsRuleInfoLst.FirstOrDefault(a => a.goods_id == prodParam.goods_id);
+ var mmsEnrollParamsInfo =
+ actEnrollV3GoodsRuleInfo?.enroll_rule_param.enroll_goods_promotion_event?.supply_tool_mms_enroll_form_goods_param_item_list?.FirstOrDefault()?.MmsEnrollParamsInfo;
+
+ if (actEnrollV3GoodsRuleInfo == null || mmsEnrollParamsInfo == null)
+ {
+ activityErr = "报名错误 456查询/新建失败 商品未提交成功或不满足参加活动条件";
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ continue;
+ }
+
+ var mmsEnrollParamsInfoStr = JsonHelper.SerializeObject(mmsEnrollParamsInfo);
+ if (mmsEnrollParamsInfo.max_discount_threshold.ParseToInt() < 95)
+ {
+ activityErr = "放弃报名 456最大折扣 " + mmsEnrollParamsInfo.max_discount_threshold + " 折低于 95 折 ";
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ continue;
+ }
+
+ foreach (var activitySkuInfo in mmsEnrollParamsInfo.sku_best_activity_price_map)
+ {
+ var sku = prodParam.skus.FirstOrDefault(s => s.sku_id.ParseToString() == activitySkuInfo.Key);
+ //var sku = prodParam.skus.FirstOrDefault(sk => string.Join(",", sk.spec.Select(s => s.spec_name)) == activitySkuInfo.spec_info_str);
+ if (sku == null || sku.multi_price > activitySkuInfo.Value)
+ {
+ activityErr = "报名错误 456价格低于产品价 " + (activitySkuInfo.Value * mmsEnrollParamsInfo.max_discount_threshold.ParseToInt() / 100) + " < " + sku?.multi_price;
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ break;
+ }
+ }
+ if (addActivityFailLst.Any(aa => aa.goods_id == prodParam.goods_id))
+ continue;
+
+ goods_vo_param_v2 goods_vo_param = new goods_vo_param_v2();
+ actSubmitParamV2.goods_volist.Add(goods_vo_param);
+ goods_vo_param.goods_id = prodParam.goods_id;
+ goods_vo_param.create_goods_promotion_event_vo = new create_goods_promotion_event_vo_param();
+ goods_vo_param.create_goods_promotion_event_vo.item_volist.Add(new item_volist_param()
+ {
+ tool_supply_type = actEnrollV3GoodsRuleInfo.enroll_rule_param.enroll_goods_promotion_event.supply_tool_mms_enroll_form_goods_param_item_list.FirstOrDefault().tool_supply_type,
+ tool_supply_sn = actEnrollV3GoodsRuleInfo.enroll_rule_param.enroll_goods_promotion_event.supply_tool_mms_enroll_form_goods_param_item_list.FirstOrDefault().tool_supply_sn,
+ mms_enroll_params = "{\"discount\":\"" + mmsEnrollParamsInfo.max_discount_threshold + "\"}",
+ });
+ actSubmitParamV2.create_protocol_vo.view_confirmed_supply_tool_introduction_volist.Add(new view_confirmed_supply_tool_introduction_volist_param()
+ {
+ supply_tool_type = actEnrollV3GoodsRuleInfo.enroll_rule_param.enroll_goods_promotion_event.supply_tool_mms_enroll_form_goods_param_item_list.FirstOrDefault().tool_supply_type,
+ supply_tool_sn = actEnrollV3GoodsRuleInfo.enroll_rule_param.enroll_goods_promotion_event.supply_tool_mms_enroll_form_goods_param_item_list.FirstOrDefault().tool_supply_sn,
+ merchant_confirm_outer_ratio = true
+ });
+ }
+
+ var addActivityRst = "频繁";
+ for (int i = 0; i < 3 && addActivityRst.Contains("频繁"); i++)
+ {
+ Thread.Sleep(Randomx.GetId(2000, 5000));
+ addActivityRst = add_activity_goods(shop, actSubmitParamV2, "0", 23456, 422);
+ //{"success":true,"error_code":1000000,"error_msg":null,"result":{"enroll_fail_goods_list":[],"enroll_success_goods_list":[{"goods_id":939959837537,"activity_goods_id":11278102151265},{"goods_id":939958451500,"activity_goods_id":11278068868140},{"goods_id":939958936804,"activity_goods_id":11278114440420},{"goods_id":939958823706,"activity_goods_id":11278085253146},{"goods_id":939958300485,"activity_goods_id":11278098034757}]}}
+ }
+ if (!addActivityRst.Contains("\"success\":true"))
+ {
+ var error = BaseRegex.GetStringJson(ref addActivityRst, "error_msg");
+ if (string.IsNullOrEmpty(error))
+ error = addActivityRst;
+ activityErr = "报名错误 456新建失败 " + error;
+ foreach (var prodParam in prodParams)
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ return "{\"success\":false,\"msg\":\"" + activityErr + "\",\"fail_list\":" + JsonHelper.SerializeObject(addActivityFailLst) + "}";
+ }
+ var err_msg = BaseRegex.GetStringJson(ref addActivityRst, "error_msg");
+ if (!string.IsNullOrEmpty(err_msg) && addActivityRst.Contains("enroll_fail_goods_list"))
+ {
+ var failStr = JsonHelper.SerializeObject(JsonHelper.JObjectParse(addActivityRst)["result"]["enroll_fail_goods_list"]);
+ var failLstTmp = JsonHelper.DeserializeJsonToList(failStr);
+ foreach (var failTmp in failLstTmp)
+ {
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = failTmp.goods_id, error_msg = "报名错误 456新建失败 " + failTmp.error_msg });
+ }
+ }
+ if (addActivityRst.Contains("enroll_success_goods_list"))
+ {
+ var successStr = JsonHelper.SerializeObject(JsonHelper.JObjectParse(addActivityRst)["result"]["enroll_success_goods_list"]);
+ var successLstTmp = JsonHelper.DeserializeJsonToList(successStr);
+ foreach (var successTmp in successLstTmp)
+ {
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = successTmp.goods_id, error_msg = "456报名成功" });
+ }
+ }
+ } // 活动 23456 月卡会员折扣
+ catch (Exception ex)
+ {
+ activityErr = "报名错误 456查询/新建失败 " + ex.Message;
+ foreach (var prodParam in prodParams)
+ addActivityFailLst.Add(new AddActivityFailInfo { goods_id = prodParam.goods_id, error_msg = activityErr });
+ return "{\"success\":false,\"msg\":\"" + activityErr + "\",\"fail_list\":" + JsonHelper.SerializeObject(addActivityFailLst) + "}";
+ }
+ activityErr = "456报名成功";
+ return "{\"success\":true,\"msg\":\"" + activityErr + "\",\"fail_list\":" + JsonHelper.SerializeObject(addActivityFailLst) + "}";
+ }
+
string SignActivity23620(ShopLoginInfo shop, PDDProductUploadParam prodParam)
{
string activityErr = "";
@@ -1755,13 +2088,13 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
///
///
///
- private string activity_goods_info(ShopLoginInfo shop, string prodId, string activityId = "20981")
+ private string activity_goods_info(ShopLoginInfo shop, List prodId, string activityId = "20981")
{
var anti = shop.AntiContents.LastOrDefault().ParseToString();
if (shop.AntiContents.Count > 0)
anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)];
string url = "https://mms.pinduoduo.com/leekmms/quick_enroll/multi_activity/real_form_info";
- string body = @"{""activity_id"":" + activityId + @",""page_number"":1,""page_size"":10,""goods_id_list"":[" + prodId + @"],""source_type"":""PROMO-OwnHome""}";
+ string body = @"{""activity_id"":" + activityId + @",""page_number"":1,""page_size"":10,""goods_id_list"":[" + string.Join(",", prodId) + @"],""source_type"":""PROMO-OwnHome""}";
string refere = "https://mms.pinduoduo.com/act/multi-act-enroll?activityId=" + activityId + "&SourceType=PROMO-OwnHome";
@@ -1788,15 +2121,16 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
///
///
///
- private string activity_goods_price_rule(ShopLoginInfo shop, string prodId, int activityId = 15996, int activityType=18)
+ private string activity_goods_price_rule(ShopLoginInfo shop, string prodIds, int activityId = 15996, int activityType=18)
{
var anti = shop.AntiContents.LastOrDefault().ParseToString();
if (shop.AntiContents.Count > 0)
anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)];
string url = "https://mms.pinduoduo.com/leekmms/activity/query/enroll/rule_suggest_price";
- string body = @"{""activity_id"":" + activityId + @",""goods_id_list"":[" + prodId +
+ string body = @"{""activity_id"":" + activityId + @",""goods_id_list"":[" + prodIds +
@"],""source_type"":""MMSActicon"",""behavior_collection_v1_cas_boost_factor"":""dXlyaGxldXItNDkwOTQzMTM0LTE3NTg2OTQxNjYyNjM=""}";
+ //"https://mms.pinduoduo.com/act/goods_price/confirm?activityId=20981&activityType=27&from=chooseGoods&SourceType=MMSActicon&SceneType=ActivityCard";
string refere = "https://mms.pinduoduo.com/act/goods_price/confirm?activityId=" + activityId +
"&activityType=" + activityType + "&from=chooseGoods&SourceType=MMSActicon&SceneType=ActivityCard";
if (activityId == 22347)
@@ -2361,6 +2695,19 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
private void btnApiUpload_Click(object sender, EventArgs e)
{
+ bool sign22347 = chk22347.Checked && chk22347.Visible;
+ bool sign20981 = chk20981.Checked && chk20981.Visible;
+ bool sign21365 = chk21365.Checked && chk21365.Visible;
+ bool sign15996 = chk15996.Checked && chk15996.Visible;
+ bool sign23513 = chk23513.Checked && chk23513.Visible;
+ bool sign23730 = chk23730.Checked && chk23730.Visible;
+ bool sign23456 = chk23456.Checked && chk23456.Visible;
+ if ((sign22347 || sign20981 || sign21365 || sign15996 || sign23513 || sign23730 || sign23456) == false)
+ {
+ BaseMsgForm.ShowError("请选择报名活动");
+ return;
+ }
+
var dgvRows = dgvActProduct.Rows.Cast().Where(r => r.Cells["colCheck"].Value.ParseToBool() == true).ToList();
if (dgvRows.Count == 0)
{
@@ -2385,322 +2732,356 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
cancellationTokenSource = new CancellationTokenSource();
Task.Run(() =>
{
- foreach (var row in rowLst)
+ while (rowLst.Count > 0)
{
if (cancellationTokenSource.IsCancellationRequested)
break;
- Invoke(new Action(() =>
+ var shopId = rowLst.FirstOrDefault().Cells["colSupplierId"].Value.ParseToString();
+
+ var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId);
+ if (shop == null)
{
- row.Cells["colOpResult"].Value = "正在报名活动";
- }));
+ Invoke(new Action(() =>
+ {
+ var row1 = rowLst.FirstOrDefault();
+ row1.Cells["colOpResult"].Value = "店铺不存在";
+ rowLst.RemoveAt(0);
+ }));
+ continue;
+ }
+
+ #region 检测登录
+ //if (shop.LoginStatus == "登录成功")
+ //{
+ // PDDShopListForm.Instance.CheckShopLogin(new string[] { shop.LoginName }, false);
+ //}
+ if (shop.LoginStatus != "登录成功")
+ {
+ Invoke(new Action(() =>
+ {
+ var rows = this.dgvShop.Rows.Cast().Where(r => r.Cells["colShopLoginName"].Value.ToString() == shop.LoginName);
+ foreach (var rw in rows)
+ {
+ rw.Cells["colMessage"].Value = "店铺掉线";
+ rw.Cells["colLoginStatus"].Value = "掉线";
+ rw.Cells["colCanUse"].Value = false;
+ }
+ foreach (var row in rowLst)
+ row.Cells["colOpResult"].Value = "店铺掉线";
+ }));
+ continue;
+ }
+ #endregion
+
+ #region 获取anti_content;
+ GetToken(shop);
+ #endregion
+
+ int sendActProdCount = 5; // 以多少个商品为一组报名,最多50个。
+ sendActProdCount = txtMultiCnt.Text.Trim().ParseToInt();
+ if (sendActProdCount < 1)
+ sendActProdCount = 1;
+ if (sendActProdCount > 10)
+ sendActProdCount = 10;
+ var rowOperateLst = rowLst.Where(s => s.Cells["colSupplierId"].Value.ParseToString() == shop.ShopId).ToList().Take(sendActProdCount).ToList();
+ rowLst.RemoveAll(r => rowOperateLst.Contains(r));
try
{
- var shopId = row.Cells["colSupplierId"].Value.ParseToString();
- var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId);
- if (shop == null)
+ List prodParamLst = new List();
+ foreach (var row in rowOperateLst)
{
Invoke(new Action(() =>
{
- row.Cells["colOpResult"].Value = "店铺不存在";
+ row.Cells["colOpResult"].Value = "正在初始化活动报名";
}));
- continue;
- }
- var actProd = lstActListProdInfo.FirstOrDefault(a => a.goods_id == row.Cells["colSpuId"].Value.ParseToLong());
- if (actProd == null || (actProd.lstPInfo?.out_goods_sn).IsNullOrEmpty())
- {
- Invoke(new Action(() =>
- {
- if (actProd == null)
- row.Cells["colOpResult"].Value = "商品不存在";
- else
- row.Cells["colOpResult"].Value = "源商品不存在";
- }));
- continue;
- }
-
- #region 检测登录
- //if (shop.LoginStatus == "登录成功")
- //{
- // PDDShopListForm.Instance.CheckShopLogin(new string[] { shop.LoginName }, false);
- //}
- if (shop.LoginStatus != "登录成功")
- {
- Invoke(new Action(() =>
- {
- var rows = this.dgvShop.Rows.Cast().Where(r => r.Cells["colShopLoginName"].Value.ToString() == shop.LoginName);
- foreach (var rw in rows)
- {
- rw.Cells["colMessage"].Value = "店铺掉线";
- rw.Cells["colLoginStatus"].Value = "掉线";
- rw.Cells["colCanUse"].Value = false;
- }
- row.Cells["colOpResult"].Value = "店铺掉线";
- }));
- continue;
- }
- #endregion
-
- #region 获取anti_content;
- GetToken(shop);
- #endregion
-
- #region 获取数据库商品详情
- Thread.Sleep(Randomx.GetId(5000, 10000));
- var dbProds = GetProductDetailByExtCode(actProd.lstPInfo.out_goods_sn);
- if (dbProds.Count == 0 || dbProds.Count > 1)
- {
- Invoke(new Action(() =>
- {
- if (dbProds.Count == 0)
- row.Cells["colOpResult"].Value = "未匹配到源商品,跳过";
- else
- row.Cells["colOpResult"].Value = "匹配到多个同货号源商品无法确定,跳过";
- }));
- continue;
- }
- var dbProd = dbProds.FirstOrDefault();
- #region 将聚水潭产品数据格式进行转换成pdd格式统一上传,匹配加密的spuCode和skuCoke
- if (dbProd.product_get_type_text == "厂商直采" && dbProd.sku_secret_json != null && dbProd.sku_secret_json.Contains("goodsId"))
- {
- string convertRst = "";
- var pProd = new PDDProdFormConverter().JstPddProdToPddConvert(out convertRst, dbProd);
- if (!string.IsNullOrEmpty(convertRst))
+ Thread.Sleep(Randomx.GetId(200, 800));
+ var actProd = lstActListProdInfo.FirstOrDefault(a => a.goods_id == row.Cells["colSpuId"].Value.ParseToLong());
+ if (actProd == null || (actProd.lstPInfo?.out_goods_sn).IsNullOrEmpty())
{
Invoke(new Action(() =>
{
- row.Cells["colOpResult"].Value = "商品查询错误 " + convertRst;
+ if (actProd == null)
+ row.Cells["colOpResult"].Value = "商品不存在";
+ else
+ row.Cells["colOpResult"].Value = "源商品不存在";
}));
continue;
}
- }
- #endregion
- PDDProductInfo prodInfo = null;
- try
- {
- prodInfo = JsonHelper.DeserializeJsonToObject(dbProd.product_json);
- actProd.productInfo = prodInfo;
- }
- catch (Exception ex)
- {
+ #region 获取数据库商品详情
Invoke(new Action(() =>
{
- row.Cells["colOpResult"].Value = "商品格式化错误 " + ex.Message;
+ row.Cells["colOpResult"].Value = "正在获取详情";
}));
- continue;
- }
-
- actProd.dbProduct = dbProd;
- #endregion
-
- #region 厂商直采获取推单运费模板,计算运费加价。
- var shippingTemplateJson = "";
- var shipPrice = 0;
-
- if (dbProd.product_get_type_text == "厂商直采" && dbProd.wx_cat_leaf != null)
- {
- var urlShipping = BaseClass.BuildWXObjString("product/wx_get_shipping_template");
- var dataShipping = Work.UserLogin.GetSignaturex() +
- "&coid=" + dbProd.skc_id;
- var htmlShipping = GetHtml.PostUtf8(urlShipping, dataShipping);
- if (string.IsNullOrEmpty(htmlShipping) || !htmlShipping.Contains("\"code\":200"))
- htmlShipping = GetHtml.PostUtf8(urlShipping, dataShipping);
- if (string.IsNullOrEmpty(htmlShipping) || !htmlShipping.Contains("\"code\":200"))
+ //Thread.Sleep(Randomx.GetId(5000, 10000));
+ Thread.Sleep(Randomx.GetId(200, 800));
+ var dbProds = GetProductDetailByExtCode(actProd.lstPInfo.out_goods_sn);
+ if (dbProds.Count == 0 || dbProds.Count > 1)
{
+ Invoke(new Action(() =>
+ {
+ if (dbProds.Count == 0)
+ row.Cells["colOpResult"].Value = "未匹配到源商品,跳过";
+ else
+ row.Cells["colOpResult"].Value = "匹配到多个同货号源商品无法确定,跳过";
+ }));
+ continue;
}
- else
+ var dbProd = dbProds.FirstOrDefault();
+ #region 将聚水潭产品数据格式进行转换成pdd格式统一上传,匹配加密的spuCode和skuCoke
+ if (dbProd.product_get_type_text == "厂商直采" && dbProd.sku_secret_json != null && dbProd.sku_secret_json.Contains("goodsId"))
{
- if (htmlShipping.Contains("\"data\":\"\""))
+ string convertRst = "";
+ var pProd = new PDDProdFormConverter().JstPddProdToPddConvert(out convertRst, dbProd);
+ if (!string.IsNullOrEmpty(convertRst))
+ {
+ Invoke(new Action(() =>
+ {
+ row.Cells["colOpResult"].Value = "商品查询错误 " + convertRst;
+ }));
+ continue;
+ }
+ }
+ #endregion
+
+ PDDProductInfo prodInfo = null;
+ try
+ {
+ prodInfo = JsonHelper.DeserializeJsonToObject(dbProd.product_json);
+ actProd.productInfo = prodInfo;
+ }
+ catch (Exception ex)
+ {
+ Invoke(new Action(() =>
+ {
+ row.Cells["colOpResult"].Value = "商品格式化错误 " + ex.Message;
+ }));
+ continue;
+ }
+
+ actProd.dbProduct = dbProd;
+ #endregion
+
+ #region 厂商直采获取推单运费模板,计算运费加价。
+ var shippingTemplateJson = "";
+ var shipPrice = 0;
+ Invoke(new Action(() =>
+ {
+ row.Cells["colOpResult"].Value = "正在获取详情模板";
+ }));
+ Thread.Sleep(Randomx.GetId(200, 800));
+ if (dbProd.product_get_type_text == "厂商直采" && dbProd.wx_cat_leaf != null)
+ {
+ var urlShipping = BaseClass.BuildWXObjString("product/wx_get_shipping_template");
+ var dataShipping = Work.UserLogin.GetSignaturex() +
+ "&coid=" + dbProd.skc_id;
+ var htmlShipping = GetHtml.PostUtf8(urlShipping, dataShipping);
+ if (string.IsNullOrEmpty(htmlShipping) || !htmlShipping.Contains("\"code\":200"))
+ htmlShipping = GetHtml.PostUtf8(urlShipping, dataShipping);
+ if (string.IsNullOrEmpty(htmlShipping) || !htmlShipping.Contains("\"code\":200"))
{
}
else
+ {
+ if (htmlShipping.Contains("\"data\":\"\""))
+ {
+ }
+ else
+ {
+ try
+ {
+ shippingTemplateJson = JsonHelper.SerializeObject(JsonHelper.JObjectParse(htmlShipping)["data"]);
+ }
+ catch
+ {
+
+ }
+ }
+ }
+
+ if (string.IsNullOrEmpty(shippingTemplateJson))
+ {
+ // 获取运费模板
+ var urlShip = BaseClass.BuildWXObjString("product/e57_get_freight_template");
+ var dataShip = Work.UserLogin.GetSignaturex() + "&coid=" + dbProd.skc_id;
+ var shipRst = GetHtml.PostUtf8(urlShip, dataShip);
+ if (string.IsNullOrEmpty(shipRst) || !shipRst.Contains("\"code\":0"))
+ shipRst = GetHtml.PostUtf8(urlShipping, dataShipping);
+ if (!shipRst.Contains("\"code\":0"))
+ {
+ var errMsg = BaseRegex.GetStringJson(ref shipRst, "msg");
+ if (string.IsNullOrEmpty(errMsg))
+ errMsg = shipRst;
+ Invoke(new Action(() =>
+ {
+ row.Cells["colOpResult"].Value = "运费模板获取失败 " + errMsg;
+ }));
+ continue;
+ }
+ try
+ {
+ //[{"id":"204","warehouseNum":"15016108","freightType":0,"provinces":"香港特别行政区,台湾省,澳门特别行政区","freightPrice":9999900,"createBy":"vmslin","createTime":"2026-01-30T16:45:03+08:00","updateBy":"vmslin","updateTime":"2026-01-30T16:45:03+08:00"},{"id":"205","warehouseNum":"15016108","freightType":3,"provinces":"海南省,新疆维吾尔自治区,西藏自治区,内蒙古自治区","freightPrice":1530,"createBy":"vmslin","createTime":"2026-01-30T16:45:51+08:00","updateBy":"vmslin","updateTime":"2026-01-30T16:45:51+08:00"},{"id":"206","warehouseNum":"15016108","freightType":1,"provinces":"北京市,上海市","freightPrice":410,"createBy":"vmslin","createTime":"2026-01-30T16:46:04+08:00","updateBy":"vmslin","updateTime":"2026-01-30T16:46:04+08:00"},{"id":"207","warehouseNum":"15016108","freightType":1,"provinces":"安徽省,重庆市,福建省,广东省,甘肃省,广西壮族自治区,贵州省,河北省,湖北省,黑龙江省,河南省,湖南省,吉林省,江苏省,江西省,辽宁省,宁夏回族自治区,青海省,四川省,山东省,山西省,陕西省,天津市,云南省,浙江省","freightPrice":310,"createBy":"vmslin","createTime":"2026-01-30T16:46:17+08:00","updateBy":"vmslin","updateTime":"2026-01-30T16:46:17+08:00"}]
+ shippingTemplateJson = JsonHelper.SerializeObject(JsonHelper.JObjectParse(shipRst)["data"]);
+ if (shipRst.Contains("\"code\":0") && !string.IsNullOrEmpty(shippingTemplateJson))
+ {
+ urlShipping = BaseClass.BuildWXObjString("product/wx_add_mdy_shipping_template");
+ dataShipping = Work.UserLogin.GetSignaturex() +
+ "&coid=" + dbProd.skc_id +
+ "&shipping_template_json=" + shippingTemplateJson;
+ htmlShipping = GetHtml.PostUtf8(urlShipping, dataShipping);
+ if (string.IsNullOrEmpty(htmlShipping) || !htmlShipping.Contains("\"code\":200"))
+ htmlShipping = GetHtml.PostUtf8(urlShipping, dataShipping);
+ }
+ }
+ catch (Exception ex)
+ {
+ }
+ }
+
+ if (!string.IsNullOrEmpty(shippingTemplateJson))
{
try
{
- shippingTemplateJson = JsonHelper.SerializeObject(JsonHelper.JObjectParse(htmlShipping)["data"]);
- }
- catch
- {
-
- }
- }
- }
-
- if (string.IsNullOrEmpty(shippingTemplateJson))
- {
- // 获取运费模板
- var urlShip = BaseClass.BuildWXObjString("product/e57_get_freight_template");
- var dataShip = Work.UserLogin.GetSignaturex() + "&coid=" + dbProd.skc_id;
- var shipRst = GetHtml.PostUtf8(urlShip, dataShip);
- if (string.IsNullOrEmpty(shipRst) || !shipRst.Contains("\"code\":0"))
- shipRst = GetHtml.PostUtf8(urlShipping, dataShipping);
- if (!shipRst.Contains("\"code\":0"))
- {
- var errMsg = BaseRegex.GetStringJson(ref shipRst, "msg");
- if (string.IsNullOrEmpty(errMsg))
- errMsg = shipRst;
- Invoke(new Action(() =>
- {
- row.Cells["colOpResult"].Value = "运费模板获取失败 " + errMsg;
- }));
- continue;
- }
- try
- {
- //[{"id":"204","warehouseNum":"15016108","freightType":0,"provinces":"香港特别行政区,台湾省,澳门特别行政区","freightPrice":9999900,"createBy":"vmslin","createTime":"2026-01-30T16:45:03+08:00","updateBy":"vmslin","updateTime":"2026-01-30T16:45:03+08:00"},{"id":"205","warehouseNum":"15016108","freightType":3,"provinces":"海南省,新疆维吾尔自治区,西藏自治区,内蒙古自治区","freightPrice":1530,"createBy":"vmslin","createTime":"2026-01-30T16:45:51+08:00","updateBy":"vmslin","updateTime":"2026-01-30T16:45:51+08:00"},{"id":"206","warehouseNum":"15016108","freightType":1,"provinces":"北京市,上海市","freightPrice":410,"createBy":"vmslin","createTime":"2026-01-30T16:46:04+08:00","updateBy":"vmslin","updateTime":"2026-01-30T16:46:04+08:00"},{"id":"207","warehouseNum":"15016108","freightType":1,"provinces":"安徽省,重庆市,福建省,广东省,甘肃省,广西壮族自治区,贵州省,河北省,湖北省,黑龙江省,河南省,湖南省,吉林省,江苏省,江西省,辽宁省,宁夏回族自治区,青海省,四川省,山东省,山西省,陕西省,天津市,云南省,浙江省","freightPrice":310,"createBy":"vmslin","createTime":"2026-01-30T16:46:17+08:00","updateBy":"vmslin","updateTime":"2026-01-30T16:46:17+08:00"}]
- shippingTemplateJson = JsonHelper.SerializeObject(JsonHelper.JObjectParse(shipRst)["data"]);
- if (shipRst.Contains("\"code\":0") && !string.IsNullOrEmpty(shippingTemplateJson))
- {
- urlShipping = BaseClass.BuildWXObjString("product/wx_add_mdy_shipping_template");
- dataShipping = Work.UserLogin.GetSignaturex() +
- "&coid=" + dbProd.skc_id +
- "&shipping_template_json=" + shippingTemplateJson;
- htmlShipping = GetHtml.PostUtf8(urlShipping, dataShipping);
- if (string.IsNullOrEmpty(htmlShipping) || !htmlShipping.Contains("\"code\":200"))
- htmlShipping = GetHtml.PostUtf8(urlShipping, dataShipping);
- }
- }
- catch (Exception ex)
- {
- }
- }
-
- if (!string.IsNullOrEmpty(shippingTemplateJson))
- {
- try
- {
- int count = 0;
- var shipObjs = JArray.Parse(shippingTemplateJson);
- foreach (var shipObj in shipObjs)
- {
- var provincesStr = shipObj["provinces"].ParseToString();
- if (provincesStr.Split(',').Length > count)
+ int count = 0;
+ var shipObjs = JArray.Parse(shippingTemplateJson);
+ foreach (var shipObj in shipObjs)
{
- count = provincesStr.Split(',').Length;
- shipPrice = shipObj["freightPrice"].ParseToInt();
+ var provincesStr = shipObj["provinces"].ParseToString();
+ if (provincesStr.Split(',').Length > count)
+ {
+ count = provincesStr.Split(',').Length;
+ shipPrice = shipObj["freightPrice"].ParseToInt();
+ }
}
}
+ catch (Exception ex)
+ {
+ Invoke(new Action(() =>
+ {
+ row.Cells["colOpResult"].Value = "运费模板获取失败 " + ex.Message;
+ }));
+ continue;
+ }
}
- catch (Exception ex)
+ if (shipPrice <= 0)
{
Invoke(new Action(() =>
{
- row.Cells["colOpResult"].Value = "运费模板获取失败 " + ex.Message;
+ row.Cells["colOpResult"].Value = "运费模板获取失败 未获取到";
}));
continue;
}
}
- if (shipPrice <= 0)
+ #endregion
+
+ #region 生成一组正常加价后的sku
+ List addPriceSkuInfoLst = new List();
+ int marketPrice = prodInfo.detail.market_price.ParseToInt();
{
- Invoke(new Action(() =>
+ foreach (var sku in prodInfo.detail.sku)
{
- row.Cells["colOpResult"].Value = "运费模板获取失败 未获取到";
- }));
- continue;
- }
- }
- #endregion
+ var skuInfo = JsonHelper.DeserializeJsonToObject(JsonHelper.SerializeObject(sku));
+ skuInfo.is_onsale = skuInfo.is_onsale != null ? skuInfo.is_onsale : 1;
+ skuInfo.limit_quantity = 999; // 只入参999
- #region 生成一组正常加价后的sku
- List addPriceSkuInfoLst = new List();
- int marketPrice = prodInfo.detail.market_price.ParseToInt();
- {
- foreach (var sku in prodInfo.detail.sku)
- {
- var skuInfo = JsonHelper.DeserializeJsonToObject(JsonHelper.SerializeObject(sku));
- skuInfo.is_onsale = skuInfo.is_onsale != null ? skuInfo.is_onsale : 1;
- skuInfo.limit_quantity = 999; // 只入参999
+ // 厂商直采的上家缺货则保持缺货。
+ if (skuInfo.quantity != 0)
+ skuInfo.quantity = txtStockNum.Text.Trim().ParseToInt();
- // 厂商直采的上家缺货则保持缺货。
- if (skuInfo.quantity != 0)
- skuInfo.quantity = txtStockNum.Text.Trim().ParseToInt();
-
- var new_multi_price = sku.multi_price + (shipPrice * defaultAddPriceRule.AddShippingFeeTimes).ParseToInt();
- // 使用货号价格做基础价
- if (chkUseExtCodePrice.Checked && dbProd.ext_code_price > 0)
- {
- new_multi_price = dbProd.ext_code_price + (shipPrice * defaultAddPriceRule.AddShippingFeeTimes).ParseToInt();
- }
-
- skuInfo.multi_price = (new_multi_price * this.txtAddTimes.Text.Trim().ParseToDecimal() + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100).ParseToInt();
- //skuInfo.price = (sku.price * this.txtAddTimes.Text.Trim().ParseToDecimal() + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100).ParseToInt();
- if (defaultAddPriceRule.AddMorePriceFirst) // 先加后乘
- skuInfo.multi_price = ((new_multi_price + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100) * this.txtAddTimes.Text.Trim().ParseToDecimal()).ParseToInt();
- skuInfo.price = skuInfo.multi_price + Math.Max(100, this.txtSinglePriceAdd.Text.Trim().ParseToDecimal() * 100).ParseToInt();
-
- // 阶梯式加价,如果命中则按阶梯式加价进行
- if (isStepAddPrice)
- {
- foreach (var addPrice in lstAddPriceRule)
+ var new_multi_price = sku.multi_price + (shipPrice * defaultAddPriceRule.AddShippingFeeTimes).ParseToInt();
+ // 使用货号价格做基础价
+ if (chkUseExtCodePrice.Checked && dbProd.ext_code_price > 0)
{
- if (new_multi_price > addPrice.MoreThanPrice * 100 && new_multi_price <= addPrice.LessThanPrice * 100)
+ new_multi_price = dbProd.ext_code_price + (shipPrice * defaultAddPriceRule.AddShippingFeeTimes).ParseToInt();
+ }
+
+ skuInfo.multi_price = (new_multi_price * this.txtAddTimes.Text.Trim().ParseToDecimal() + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100).ParseToInt();
+ //skuInfo.price = (sku.price * this.txtAddTimes.Text.Trim().ParseToDecimal() + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100).ParseToInt();
+ if (defaultAddPriceRule.AddMorePriceFirst) // 先加后乘
+ skuInfo.multi_price = ((new_multi_price + this.txtAddMorePrice.Text.Trim().ParseToDecimal() * 100) * this.txtAddTimes.Text.Trim().ParseToDecimal()).ParseToInt();
+ skuInfo.price = skuInfo.multi_price + Math.Max(100, this.txtSinglePriceAdd.Text.Trim().ParseToDecimal() * 100).ParseToInt();
+
+ // 阶梯式加价,如果命中则按阶梯式加价进行
+ if (isStepAddPrice)
+ {
+ foreach (var addPrice in lstAddPriceRule)
{
- if (defaultAddPriceRule.AddMorePriceFirst) // 先加后乘
- skuInfo.multi_price = ((new_multi_price + addPrice.AddMorePrice * 100) * addPrice.AddPriceTimes).ParseToInt();
- else
- skuInfo.multi_price = (new_multi_price * addPrice.AddPriceTimes + addPrice.AddMorePrice * 100).ParseToInt();
- skuInfo.price = skuInfo.multi_price + Math.Max(100, addPrice.SinglePriceAdd * 100).ParseToInt(); ;
- break;
+ if (new_multi_price > addPrice.MoreThanPrice * 100 && new_multi_price <= addPrice.LessThanPrice * 100)
+ {
+ if (defaultAddPriceRule.AddMorePriceFirst) // 先加后乘
+ skuInfo.multi_price = ((new_multi_price + addPrice.AddMorePrice * 100) * addPrice.AddPriceTimes).ParseToInt();
+ else
+ skuInfo.multi_price = (new_multi_price * addPrice.AddPriceTimes + addPrice.AddMorePrice * 100).ParseToInt();
+ skuInfo.price = skuInfo.multi_price + Math.Max(100, addPrice.SinglePriceAdd * 100).ParseToInt(); ;
+ break;
+ }
}
}
- }
- // 聚水潭商品 加邮费×倍率 放前面
- //skuInfo.multi_price += (shipPrice * defaultAddPriceRule.AddShippingFeeTimes).ParseToInt();
- //skuInfo.price += (shipPrice * defaultAddPriceRule.AddShippingFeeTimes).ParseToInt();
+ // 聚水潭商品 加邮费×倍率 放前面
+ //skuInfo.multi_price += (shipPrice * defaultAddPriceRule.AddShippingFeeTimes).ParseToInt();
+ //skuInfo.price += (shipPrice * defaultAddPriceRule.AddShippingFeeTimes).ParseToInt();
- if (marketPrice < skuInfo.price + 1000)
+ if (marketPrice < skuInfo.price + 1000)
+ {
+ marketPrice = skuInfo.price.ParseToInt() + 1000;
+ //pddApi.Data["market_price"] = marketPrice;
+ }
+
+ addPriceSkuInfoLst.Add(skuInfo);
+ }
+ }
+ #endregion
+
+ PDDProductUploadParam prodParam = new PDDProductUploadParam();
+ prodParam.goods_id = actProd.goods_id;
+ prodParam.gallery = JsonHelper.DeserializeJsonToList(JsonHelper.SerializeObject(actProd.productInfo.detail.galleries));
+
+ // 生成正常加价的sku列表
+ int index = -1;
+ prodParam.skus = new List();
+ foreach (var skuGetRstInfo in actProd.lstPInfo.sku_list)
+ {
+ index++;
+ var skuInfo = addPriceSkuInfoLst.FirstOrDefault(s => s.out_sku_sn == skuGetRstInfo.outSkuSn);
+ if (skuInfo == null)
+ skuInfo = addPriceSkuInfoLst[index];
+
+ //var skuParam = JsonHelper.DeserializeJsonToObject(JsonHelper.SerializeObject(skuGetRstInfo));
+ var skuParam = new sku_param();
+ skuParam.sku_id = skuGetRstInfo.skuId;
+ skuParam.thumb_url = skuGetRstInfo.skuThumbUrl;
+ skuParam.quantity_delta = skuGetRstInfo.skuQuantity;
+ skuParam.spec = new List();
+ List spStrLst = skuGetRstInfo.newSpec.Split(',').ToList();
+ int specIndex = -1;
+ foreach (var spId in skuGetRstInfo.specIdList)
{
- marketPrice = skuInfo.price.ParseToInt() + 1000;
- //pddApi.Data["market_price"] = marketPrice;
+ specIndex++;
+ skuParam.spec.Add(new spec_param() { spec_id = spId, spec_name = spStrLst[specIndex] });
}
- addPriceSkuInfoLst.Add(skuInfo);
+ skuParam.multi_price = skuInfo.multi_price;
+ skuParam.multi_price_in_yuan = skuInfo.multi_price_in_yuan.ParseToString();
+ skuParam.price = skuInfo.price;
+ skuParam.price_in_yuan = skuInfo.price_in_yuan.ParseToString();
+
+ 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);
}
- }
- #endregion
-
- PDDProductUploadParam prodParam = new PDDProductUploadParam();
- prodParam.goods_id = actProd.goods_id;
- prodParam.gallery = JsonHelper.DeserializeJsonToList(JsonHelper.SerializeObject(actProd.productInfo.detail.galleries));
-
- // 生成正常加价的sku列表
- int index = -1;
- prodParam.skus = new List();
- foreach (var skuGetRstInfo in actProd.lstPInfo.sku_list)
- {
- index++;
- var skuInfo = addPriceSkuInfoLst.FirstOrDefault(s => s.out_sku_sn == skuGetRstInfo.outSkuSn);
- if (skuInfo == null)
- skuInfo = addPriceSkuInfoLst[index];
-
- //var skuParam = JsonHelper.DeserializeJsonToObject(JsonHelper.SerializeObject(skuGetRstInfo));
- var skuParam = new sku_param();
- skuParam.sku_id = skuGetRstInfo.skuId;
- skuParam.thumb_url = skuGetRstInfo.skuThumbUrl;
- skuParam.quantity_delta = skuGetRstInfo.skuQuantity;
- skuParam.spec = new List();
- List spStrLst = skuGetRstInfo.newSpec.Split(',').ToList();
- int specIndex = -1;
- foreach (var spId in skuGetRstInfo.specIdList)
+ prodParamLst.Add(prodParam);
+ Invoke(new Action(() =>
{
- specIndex++;
- skuParam.spec.Add(new spec_param() { spec_id = spId, spec_name = spStrLst[specIndex] });
- }
-
- skuParam.multi_price = skuInfo.multi_price;
- skuParam.multi_price_in_yuan = skuInfo.multi_price_in_yuan.ParseToString();
- skuParam.price = skuInfo.price;
- skuParam.price_in_yuan = skuInfo.price_in_yuan.ParseToString();
-
- 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);
+ row.Cells["colOpResult"].Value = "正在等待批量提交";
+ }));
}
+ // 筛除初始化不符合报名条件的商品所在列表行
+ rowOperateLst = rowOperateLst.Where(r => prodParamLst.Any(p => p.goods_id == r.Cells["colSpuId"].Value.ParseToLong())).ToList();
bool sign22347 = chk22347.Checked && chk22347.Visible;
bool sign20981 = chk20981.Checked && chk20981.Visible;
@@ -2714,116 +3095,181 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
{
Invoke(new Action(() =>
{
- row.Cells["colOpResult"].Value = "未选择报名活动";
+ foreach (var row in rowOperateLst)
+ row.Cells["colOpResult"].Value = "未选择报名活动";
}));
break;
}
- string checkActivityRst = CheckActivity20981(shop, prodParam);
- if (!checkActivityRst.Contains("校验成功"))
+ // 检测是否可以报名活动
+ string checkActivityRst = "{\"success\":true,\"msg\":\"活动校验成功\",\"fail_list\":[]}";
+ checkActivityRst = CheckActivity20981(shop, prodParamLst);
+
+ // 完全失败直接返回
+ if (!checkActivityRst.Contains("\"success\":true"))
{
Invoke(new Action(() =>
{
- row.Cells["colOpResult"].Value = checkActivityRst;
+ foreach (var row in rowOperateLst)
+ row.Cells["colOpResult"].Value = BaseRegex.GetStringJson(ref checkActivityRst, "msg");
}));
- if (checkActivityRst.Contains("所有活动报价均低于产品期望价格") && chkDownNoPrice.Checked)
- {
- // 处理下架
- var downProdRst = PDDProductUpDownForm.down_goods(shop, actProd.goods_id.ParseToString());
- for (int i = 0; i < 5 && !downProdRst.Contains("\"success\":true"); i++)
- {
- Thread.Sleep(Randomx.GetId(500, 1500));
- downProdRst = PDDProductUpDownForm.down_goods(shop, actProd.goods_id.ParseToString());
- }
- if (!downProdRst.Contains("\"success\":true"))
- {
- Invoke(new Action(() =>
- {
- var error = BaseRegex.GetStringJson(ref downProdRst, "errorMsg");
- if (string.IsNullOrEmpty(error))
- error = downProdRst;
- row.Cells["colOpResult"].Value = checkActivityRst + " 尝试下架失败 " + error;
- }));
- }
- else
- {
- Invoke(new Action(() =>
- {
- row.Cells["colOpResult"].Value = checkActivityRst + " 下架成功";
- }));
- }
- }
continue;
}
- if (prodParam.skus.Any(s => s.sku69_code == "yes" && s.quantity_delta > 0))
+ var failStr = JsonHelper.SerializeObject(JsonHelper.JObjectParse(checkActivityRst)["fail_list"]);
+ var failList = JsonHelper.DeserializeJsonToList(failStr);
+ if (failList == null)
+ failList = new List();
+
+ if (1 == 1)
{
- PddEditProdStockQuantity prodQuantity = new PddEditProdStockQuantity();
- prodQuantity.data = new List();
- foreach (var sku in prodParam.skus)
+ foreach (var row in rowOperateLst)
{
- if (sku.sku69_code == "yes" && sku.quantity_delta > 0)
+ var fails = failList.Where(f => row.Cells["colSpuId"].Value.ParseToLong() == f.goods_id).ToList();
+ if (fails.Count > 0)
{
- prodQuantity.data.Add(new quantityData()
+ Invoke(new Action(() =>
{
- beforeQuantity = sku.quantity_delta,
- goodsId = prodParam.goods_id,
- quantity = -sku.quantity_delta,
- skuId = sku.sku_id,
- });
+ row.Cells["colOpResult"].Value = string.Join("\r\n", fails.Select(f => f.error_msg));
+ }));
}
}
- var mdyQuantityRst = increase_prod_stock_quantity(shop, prodQuantity);
- for (int i = 0; i < 5 && !mdyQuantityRst.Contains("\"success\":true"); i++)
- {
- Thread.Sleep(Randomx.GetId(500, 1500));
- mdyQuantityRst = increase_prod_stock_quantity(shop, prodQuantity);
- }
- if (!mdyQuantityRst.Contains("\"success\":true"))
- {
- var error = BaseRegex.GetStringJson(ref mdyQuantityRst, "error_msg");
- if (string.IsNullOrEmpty(error))
- error = mdyQuantityRst;
- Invoke(new Action(() =>
- {
- row.Cells["colOpResult"].Value = "商品编辑失败 " + error;
- }));
- continue;
- }
- else
+ // 删除校验未通过的商品
+ var goodsIds = failList.Select(f => f.goods_id).ToList();
+ prodParamLst.RemoveAll(p => goodsIds.Contains(p.goods_id));
+ // 筛除校验未通过的商品所在的列表行
+ rowOperateLst = rowOperateLst.Where(r => prodParamLst.Any(p => p.goods_id == r.Cells["colSpuId"].Value.ParseToLong())).ToList();
+
+ // 处理因报价低,需要下架的商品
+ goodsIds = failList.Where(f => f.error_msg.Contains("所有活动报价均低于产品期望价格")).Select(f => f.goods_id).ToList();
+ if (chkDownNoPrice.Checked)
{
- foreach (var sku in prodParam.skus)
+ if (goodsIds.Count > 0)
{
- if (sku.sku69_code == "yes" && sku.quantity_delta > 0)
+ var rws = dgvActProduct.Rows.Cast().Where(r => goodsIds.Contains(r.Cells["colSpuId"].Value.ParseToLong())).ToList();
+ var downProdRst = "";
+ for (int i = 0; i < 5 && !downProdRst.Contains("\"success\":true"); i++)
{
- sku.quantity_delta = 0;
+ Thread.Sleep(Randomx.GetId(500, 1500));
+ downProdRst = PDDProductUpDownForm.down_goods(shop, string.Join(",", goodsIds));
+ }
+ if (!downProdRst.Contains("\"success\":true"))
+ {
+ Invoke(new Action(() =>
+ {
+ var error = BaseRegex.GetStringJson(ref downProdRst, "errorMsg");
+ if (string.IsNullOrEmpty(error))
+ error = downProdRst;
+ foreach (var rw in rws)
+ rw.Cells["colOpResult"].Value += " 尝试下架失败 " + error;
+ }));
+ }
+ else
+ {
+ Invoke(new Action(() =>
+ {
+ foreach (var rw in rws)
+ rw.Cells["colOpResult"].Value += " 下架成功";
+ }));
}
}
}
+
+ goodsIds = new List();
+ // 编辑部分sku价格不可报价商品
+ foreach (var prodParam in prodParamLst)
+ {
+ if (prodParam.skus.Any(s => s.sku69_code == "yes" && s.quantity_delta > 0))
+ {
+ var rws = rowOperateLst.Where(r => prodParam.goods_id == r.Cells["colSpuId"].Value.ParseToLong()).ToList();
+ Invoke(new Action(() =>
+ {
+ foreach (var rw in rws)
+ rw.Cells["colOpResult"].Value += " 正在优化商品以报名活动";
+ }));
+ Thread.Sleep(Randomx.GetId(3000, 5000));
+
+ PddEditProdStockQuantity prodQuantity = new PddEditProdStockQuantity();
+ prodQuantity.data = new List();
+ foreach (var sku in prodParam.skus)
+ {
+ if (sku.sku69_code == "yes" && sku.quantity_delta > 0)
+ {
+ prodQuantity.data.Add(new quantityData()
+ {
+ beforeQuantity = sku.quantity_delta,
+ goodsId = prodParam.goods_id,
+ quantity = -sku.quantity_delta,
+ skuId = sku.sku_id,
+ });
+ }
+ }
+ var mdyQuantityRst = increase_prod_stock_quantity(shop, prodQuantity);
+ for (int i = 0; i < 5 && !mdyQuantityRst.Contains("\"success\":true"); i++)
+ {
+ Thread.Sleep(Randomx.GetId(500, 1500));
+ mdyQuantityRst = increase_prod_stock_quantity(shop, prodQuantity);
+ }
+ if (!mdyQuantityRst.Contains("\"success\":true"))
+ {
+ goodsIds.Add(prodParam.goods_id);
+ var error = BaseRegex.GetStringJson(ref mdyQuantityRst, "error_msg");
+ if (string.IsNullOrEmpty(error))
+ error = mdyQuantityRst;
+
+ Invoke(new Action(() =>
+ {
+ foreach (var rw in rws)
+ rw.Cells["colOpResult"].Value = rw.Cells["colOpResult"].Value.ParseToString().Replace("正在优化商品以报名活动", "商品优化失败 " + error);
+ }));
+ continue;
+ }
+ else
+ {
+ foreach (var sku in prodParam.skus)
+ {
+ if (sku.sku69_code == "yes" && sku.quantity_delta > 0)
+ {
+ sku.quantity_delta = 0;
+ }
+ }
+ }
+ }
+ }
+ prodParamLst.RemoveAll(p => goodsIds.Contains(p.goods_id));
+ // 筛除修改未给价sku失败的商品所在的列表行
+ rowOperateLst = rowOperateLst.Where(r => prodParamLst.Any(p => p.goods_id == r.Cells["colSpuId"].Value.ParseToLong())).ToList();
}
- string activityRsts = SignActivity(shop, prodParam, sign22347, sign20981, sign21365, sign15996, sign23513, sign23730, sign23456);
- var activityRstArr = activityRsts.Split(new string[] { "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries);
- var actSuccessStr = "";
- var actFailStr = "";
- foreach (var actRst in activityRstArr)
+ string activityRsts = SignActivity(shop, prodParamLst, sign22347, sign20981, sign21365, sign15996, sign23513, sign23730, sign23456);
+ failList = JsonHelper.DeserializeJsonToList(activityRsts);
+ foreach (var prodParam in prodParamLst)
{
- if (actRst.Contains("报名成功"))
- actSuccessStr += " " + actRst;
- else
- actFailStr += "\r\n" + actRst;
+ var prodActRsts = failList.Where(f => f.goods_id == prodParam.goods_id);
+ var actSuccessStr = "";
+ var actFailStr = "";
+ foreach (var actRst in prodActRsts)
+ {
+ if (actRst.error_msg.Contains("报名成功"))
+ actSuccessStr += " " + actRst.error_msg;
+ else
+ actFailStr += "\r\n" + actRst.error_msg;
+ }
+ Invoke(new Action(() =>
+ {
+ var rws = rowOperateLst.Where(r => prodParam.goods_id == r.Cells["colSpuId"].Value.ParseToLong()).ToList();
+ foreach (var rw in rws)
+ rw.Cells["colOpResult"].Value = (actSuccessStr + actFailStr).Trim('\r', '\n', ' ');
+ }));
}
- Invoke(new Action(() =>
- {
- row.Cells["colOpResult"].Value = (actSuccessStr + actFailStr).Trim('\r', '\n', ' ');
- }));
}
catch (Exception ex)
{
Invoke(new Action(() =>
{
- row.Cells["colOpResult"].Value = "发生错误 " + ex.Message;
+ foreach (var rw in rowOperateLst)
+ rw.Cells["colOpResult"].Value = "发生错误 " + ex.Message;
}));
}
}
@@ -2928,8 +3374,13 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
private void txtSleepTime_TextChanged(object sender, EventArgs e)
{
moreSleepTime = txtSleepTime.Text.Trim().ParseToDecimal();
- if (moreSleepTime < 5)
- moreSleepTime = 5;
+ if (moreSleepTime < 0)
+ moreSleepTime = 0;
+ }
+
+ private void txtMultiCnt_TextChanged(object sender, EventArgs e)
+ {
+
}
}
@@ -2962,4 +3413,10 @@ namespace TemuKJD.PDDForms.ProductForms.ActivityForms
///
public bool sign23456 { get; set; }
}
+
+ public class AddActivityFailInfo
+ {
+ public long? goods_id { get; set; }
+ public string error_msg { get; set; }
+ }
}
diff --git a/TEMUKJD/PDDForms/ProductForms/PDDProductUpDownForm.cs b/TEMUKJD/PDDForms/ProductForms/PDDProductUpDownForm.cs
index c71f298..5d25d72 100644
--- a/TEMUKJD/PDDForms/ProductForms/PDDProductUpDownForm.cs
+++ b/TEMUKJD/PDDForms/ProductForms/PDDProductUpDownForm.cs
@@ -512,7 +512,7 @@ namespace TemuKJD.PDDForms.ProductForms
{
Thread.Sleep(Randomx.GetId(500, 1500));
anti = shop.AntiContents[Randomx.GetId(shop.AntiContents.Count)];
- body = @"{""goodsIds"":" + prodIds + @",""crawlerInfo"":""" + anti + @"""}";
+ body = @"{""goodsIds"":[" + prodIds + @"],""crawlerInfo"":""" + anti + @"""}";
result = HttpResponseBLL.PDDPostResponse(shop, url, body.Replace("0asAntiContent", anti), refere, anti);
}
}
diff --git a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs
index 2f597d1..6ae2cd0 100644
--- a/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs
+++ b/TEMUKJD/PDDForms/ProductSelectForms/PDDDBProdUserSelectForm.cs
@@ -7269,6 +7269,8 @@ Content-Type: image/jpeg
}
KJDDBProduct dbProd = selectProd.kjdDbProduct;
+ if (dbProd == null)
+ dbProd = GetProductDetail(selectProd.out_product_Id.ToString());
if (dbProd == null)
dbProd = GetProductDetail(selectProd.out_product_Id.ToString());
if (!string.IsNullOrEmpty(dbProd.secret_spu_id))
diff --git a/TEMUKJD/WXForms/ProductForms/WXUserProdListForm.Designer.cs b/TEMUKJD/WXForms/ProductForms/WXUserProdListForm.Designer.cs
index 8fe73a0..fa314c7 100644
--- a/TEMUKJD/WXForms/ProductForms/WXUserProdListForm.Designer.cs
+++ b/TEMUKJD/WXForms/ProductForms/WXUserProdListForm.Designer.cs
@@ -420,7 +420,7 @@ namespace TemuKJD.WXForms.ProductForms
this.cmbCat3.DropDownWidth = 1;
this.cmbCat3.FormattingEnabled = true;
this.cmbCat3.IntegralHeight = false;
- this.cmbCat3.Location = new System.Drawing.Point(718, 5);
+ this.cmbCat3.Location = new System.Drawing.Point(718, 7);
this.cmbCat3.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbCat3.Name = "cmbCat3";
this.cmbCat3.Size = new System.Drawing.Size(146, 25);
@@ -448,7 +448,7 @@ namespace TemuKJD.WXForms.ProductForms
this.cmbCat2.DropDownWidth = 1;
this.cmbCat2.FormattingEnabled = true;
this.cmbCat2.IntegralHeight = false;
- this.cmbCat2.Location = new System.Drawing.Point(515, 5);
+ this.cmbCat2.Location = new System.Drawing.Point(515, 7);
this.cmbCat2.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbCat2.Name = "cmbCat2";
this.cmbCat2.Size = new System.Drawing.Size(146, 25);
@@ -476,7 +476,7 @@ namespace TemuKJD.WXForms.ProductForms
this.cmbCat1.DropDownWidth = 1;
this.cmbCat1.FormattingEnabled = true;
this.cmbCat1.IntegralHeight = false;
- this.cmbCat1.Location = new System.Drawing.Point(293, 7);
+ this.cmbCat1.Location = new System.Drawing.Point(293, 5);
this.cmbCat1.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbCat1.Name = "cmbCat1";
this.cmbCat1.Size = new System.Drawing.Size(146, 25);
@@ -536,7 +536,7 @@ namespace TemuKJD.WXForms.ProductForms
"安全+未校验",
"安全商品",
"未校验"});
- this.cmbWxSafe.Location = new System.Drawing.Point(71, 42);
+ this.cmbWxSafe.Location = new System.Drawing.Point(71, 40);
this.cmbWxSafe.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbWxSafe.Name = "cmbWxSafe";
this.cmbWxSafe.Size = new System.Drawing.Size(146, 25);
@@ -559,7 +559,7 @@ namespace TemuKJD.WXForms.ProductForms
//
this.cmbGroupFilter.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.cmbGroupFilter.FormattingEnabled = true;
- this.cmbGroupFilter.Location = new System.Drawing.Point(938, 5);
+ this.cmbGroupFilter.Location = new System.Drawing.Point(938, 7);
this.cmbGroupFilter.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbGroupFilter.Name = "cmbGroupFilter";
this.cmbGroupFilter.Size = new System.Drawing.Size(146, 25);
@@ -580,7 +580,7 @@ namespace TemuKJD.WXForms.ProductForms
"机会商品",
"以图搜品",
"外部数据"});
- this.cmbSourceType.Location = new System.Drawing.Point(718, 40);
+ this.cmbSourceType.Location = new System.Drawing.Point(718, 42);
this.cmbSourceType.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbSourceType.Name = "cmbSourceType";
this.cmbSourceType.Size = new System.Drawing.Size(146, 25);
@@ -610,7 +610,7 @@ namespace TemuKJD.WXForms.ProductForms
"",
"是",
"否"});
- this.cmbRelation.Location = new System.Drawing.Point(938, 40);
+ this.cmbRelation.Location = new System.Drawing.Point(938, 42);
this.cmbRelation.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.cmbRelation.Name = "cmbRelation";
this.cmbRelation.Size = new System.Drawing.Size(146, 25);
diff --git a/TEMUKJD/WXForms/TalkForms/BuyerOrderListForm.Designer.cs b/TEMUKJD/WXForms/TalkForms/BuyerOrderListForm.Designer.cs
index 4ca7935..e2086a8 100644
--- a/TEMUKJD/WXForms/TalkForms/BuyerOrderListForm.Designer.cs
+++ b/TEMUKJD/WXForms/TalkForms/BuyerOrderListForm.Designer.cs
@@ -44,10 +44,10 @@ namespace TemuKJD.WXForms.TalkForms
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(BuyerOrderListForm));
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
+ this.btnStopStop = new DevComponents.DotNetBar.PanelEx();
this.chkPause = new TemuKJD.UserComponent.UcCheckBox(this.components);
this.btnCheck = new DevComponents.DotNetBar.PanelEx();
this.btnRefresh = new DevComponents.DotNetBar.PanelEx();
- this.btnStopStop = new DevComponents.DotNetBar.PanelEx();
this.btnSearch = new DevComponents.DotNetBar.PanelEx();
this.btnAddBuyler = new DevComponents.DotNetBar.PanelEx();
this.btnDel = new DevComponents.DotNetBar.PanelEx();
@@ -80,6 +80,7 @@ namespace TemuKJD.WXForms.TalkForms
this.panelEx2 = new DevComponents.DotNetBar.PanelEx();
this.panelEx1 = new DevComponents.DotNetBar.PanelEx();
this.panel2 = new System.Windows.Forms.Panel();
+ this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.lblMsg = new System.Windows.Forms.Label();
this.btnRestore = new DevComponents.DotNetBar.PanelEx();
this.txtOrderSnFilter = new System.Windows.Forms.TextBox();
@@ -99,6 +100,7 @@ namespace TemuKJD.WXForms.TalkForms
this.colOExpressId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colOMsg = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.colSend = new System.Windows.Forms.DataGridViewLinkColumn();
+ this.colAfterSale = new System.Windows.Forms.DataGridViewLinkColumn();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.btnFilter = new DevComponents.DotNetBar.PanelEx();
this.label3 = new System.Windows.Forms.Label();
@@ -113,6 +115,7 @@ namespace TemuKJD.WXForms.TalkForms
this.chkOnlyShowCurrentShop = new TemuKJD.UserComponent.UcCheckBox(this.components);
this.lblCurrentShop = new System.Windows.Forms.Label();
this.statusBar = new TemuKJD.UserControls.StatusBarUserControl();
+ this.chkAutoAfterSale = new TemuKJD.UserComponent.UcCheckBox(this.components);
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
@@ -129,6 +132,7 @@ namespace TemuKJD.WXForms.TalkForms
this.splitContainer3.Panel2.SuspendLayout();
this.splitContainer3.SuspendLayout();
this.panel2.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dgvPddBuyerOrder)).BeginInit();
this.tableLayoutPanel1.SuspendLayout();
this.SuspendLayout();
@@ -144,10 +148,11 @@ namespace TemuKJD.WXForms.TalkForms
//
// splitContainer1.Panel1
//
+ this.splitContainer1.Panel1.Controls.Add(this.chkAutoAfterSale);
+ this.splitContainer1.Panel1.Controls.Add(this.btnStopStop);
this.splitContainer1.Panel1.Controls.Add(this.chkPause);
this.splitContainer1.Panel1.Controls.Add(this.btnCheck);
this.splitContainer1.Panel1.Controls.Add(this.btnRefresh);
- this.splitContainer1.Panel1.Controls.Add(this.btnStopStop);
this.splitContainer1.Panel1.Controls.Add(this.btnSearch);
this.splitContainer1.Panel1.Controls.Add(this.btnAddBuyler);
this.splitContainer1.Panel1.Controls.Add(this.btnDel);
@@ -157,14 +162,38 @@ namespace TemuKJD.WXForms.TalkForms
this.splitContainer1.Panel2.Controls.Add(this.pbLoading);
this.splitContainer1.Panel2.Controls.Add(this.dgvWxOrder);
this.splitContainer1.Panel2.Controls.Add(this.dgvBuyer);
- this.splitContainer1.Size = new System.Drawing.Size(372, 657);
- this.splitContainer1.SplitterDistance = 78;
+ this.splitContainer1.Size = new System.Drawing.Size(364, 657);
+ this.splitContainer1.SplitterDistance = 90;
this.splitContainer1.TabIndex = 1;
//
+ // btnStopStop
+ //
+ this.btnStopStop.CanvasColor = System.Drawing.SystemColors.Control;
+ this.btnStopStop.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
+ this.btnStopStop.DisabledBackColor = System.Drawing.Color.Empty;
+ this.btnStopStop.Location = new System.Drawing.Point(286, 38);
+ this.btnStopStop.Name = "btnStopStop";
+ this.btnStopStop.Size = new System.Drawing.Size(67, 25);
+ this.btnStopStop.Style.Alignment = System.Drawing.StringAlignment.Center;
+ this.btnStopStop.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
+ this.btnStopStop.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
+ this.btnStopStop.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
+ this.btnStopStop.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnStopStop.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
+ this.btnStopStop.Style.GradientAngle = 90;
+ this.btnStopStop.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center;
+ this.btnStopStop.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
+ this.btnStopStop.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnStopStop.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
+ this.btnStopStop.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
+ this.btnStopStop.TabIndex = 878;
+ this.btnStopStop.Text = "停止查询";
+ this.btnStopStop.Click += new System.EventHandler(this.btnStopStop_Click);
+ //
// chkPause
//
this.chkPause.AutoSize = true;
- this.chkPause.Location = new System.Drawing.Point(246, 41);
+ this.chkPause.Location = new System.Drawing.Point(242, 40);
this.chkPause.Name = "chkPause";
this.chkPause.Size = new System.Drawing.Size(51, 21);
this.chkPause.TabIndex = 937;
@@ -178,7 +207,7 @@ namespace TemuKJD.WXForms.TalkForms
this.btnCheck.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnCheck.DisabledBackColor = System.Drawing.Color.Empty;
this.btnCheck.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.btnCheck.Location = new System.Drawing.Point(126, 39);
+ this.btnCheck.Location = new System.Drawing.Point(126, 51);
this.btnCheck.Name = "btnCheck";
this.btnCheck.Size = new System.Drawing.Size(98, 25);
this.btnCheck.Style.Alignment = System.Drawing.StringAlignment.Center;
@@ -202,7 +231,7 @@ namespace TemuKJD.WXForms.TalkForms
this.btnRefresh.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnRefresh.DisabledBackColor = System.Drawing.Color.Empty;
this.btnRefresh.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.btnRefresh.Location = new System.Drawing.Point(126, 10);
+ this.btnRefresh.Location = new System.Drawing.Point(126, 13);
this.btnRefresh.Name = "btnRefresh";
this.btnRefresh.Size = new System.Drawing.Size(98, 25);
this.btnRefresh.Style.Alignment = System.Drawing.StringAlignment.Center;
@@ -220,39 +249,15 @@ namespace TemuKJD.WXForms.TalkForms
this.btnRefresh.Text = "刷新买手号";
this.btnRefresh.Click += new System.EventHandler(this.btnRefresh_Click);
//
- // btnStopStop
- //
- this.btnStopStop.CanvasColor = System.Drawing.SystemColors.Control;
- this.btnStopStop.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
- this.btnStopStop.DisabledBackColor = System.Drawing.Color.Empty;
- this.btnStopStop.Location = new System.Drawing.Point(297, 39);
- this.btnStopStop.Name = "btnStopStop";
- this.btnStopStop.Size = new System.Drawing.Size(67, 25);
- this.btnStopStop.Style.Alignment = System.Drawing.StringAlignment.Center;
- this.btnStopStop.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
- this.btnStopStop.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255)))));
- this.btnStopStop.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine;
- this.btnStopStop.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
- this.btnStopStop.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
- this.btnStopStop.Style.GradientAngle = 90;
- this.btnStopStop.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center;
- this.btnStopStop.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center;
- this.btnStopStop.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
- this.btnStopStop.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
- this.btnStopStop.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White;
- this.btnStopStop.TabIndex = 878;
- this.btnStopStop.Text = "停止查询";
- this.btnStopStop.Click += new System.EventHandler(this.btnStopStop_Click);
- //
// btnSearch
//
this.btnSearch.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnSearch.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnSearch.DisabledBackColor = System.Drawing.Color.Empty;
this.btnSearch.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.btnSearch.Location = new System.Drawing.Point(246, 10);
+ this.btnSearch.Location = new System.Drawing.Point(242, 8);
this.btnSearch.Name = "btnSearch";
- this.btnSearch.Size = new System.Drawing.Size(118, 25);
+ this.btnSearch.Size = new System.Drawing.Size(111, 25);
this.btnSearch.Style.Alignment = System.Drawing.StringAlignment.Center;
this.btnSearch.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
this.btnSearch.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255)))));
@@ -274,7 +279,7 @@ namespace TemuKJD.WXForms.TalkForms
this.btnAddBuyler.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnAddBuyler.DisabledBackColor = System.Drawing.Color.Empty;
this.btnAddBuyler.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.btnAddBuyler.Location = new System.Drawing.Point(10, 10);
+ this.btnAddBuyler.Location = new System.Drawing.Point(10, 13);
this.btnAddBuyler.Name = "btnAddBuyler";
this.btnAddBuyler.Size = new System.Drawing.Size(98, 25);
this.btnAddBuyler.Style.Alignment = System.Drawing.StringAlignment.Center;
@@ -298,7 +303,7 @@ namespace TemuKJD.WXForms.TalkForms
this.btnDel.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnDel.DisabledBackColor = System.Drawing.Color.Empty;
this.btnDel.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.btnDel.Location = new System.Drawing.Point(10, 39);
+ this.btnDel.Location = new System.Drawing.Point(10, 51);
this.btnDel.Name = "btnDel";
this.btnDel.Size = new System.Drawing.Size(98, 25);
this.btnDel.Style.Alignment = System.Drawing.StringAlignment.Center;
@@ -320,7 +325,7 @@ namespace TemuKJD.WXForms.TalkForms
//
this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None;
this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue;
- this.pbLoading.Location = new System.Drawing.Point(161, 262);
+ this.pbLoading.Location = new System.Drawing.Point(157, 256);
this.pbLoading.Name = "pbLoading";
this.pbLoading.Size = new System.Drawing.Size(50, 50);
this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
@@ -498,7 +503,7 @@ namespace TemuKJD.WXForms.TalkForms
this.dgvBuyer.ReadOnly = true;
this.dgvBuyer.RowHeadersWidth = 25;
this.dgvBuyer.RowTemplate.Height = 23;
- this.dgvBuyer.Size = new System.Drawing.Size(372, 575);
+ this.dgvBuyer.Size = new System.Drawing.Size(364, 563);
this.dgvBuyer.TabIndex = 7;
this.dgvBuyer.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellContentClick);
//
@@ -608,7 +613,7 @@ namespace TemuKJD.WXForms.TalkForms
this.splitContainer3.Panel2.Controls.Add(this.chkOnlyShowCurrentShop);
this.splitContainer3.Panel2.Controls.Add(this.lblCurrentShop);
this.splitContainer3.Size = new System.Drawing.Size(1430, 657);
- this.splitContainer3.SplitterDistance = 372;
+ this.splitContainer3.SplitterDistance = 364;
this.splitContainer3.TabIndex = 8;
//
// panelEx3
@@ -618,7 +623,7 @@ namespace TemuKJD.WXForms.TalkForms
this.panelEx3.Cursor = System.Windows.Forms.Cursors.Hand;
this.panelEx3.DisabledBackColor = System.Drawing.Color.Empty;
this.panelEx3.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.panelEx3.Location = new System.Drawing.Point(497, 638);
+ this.panelEx3.Location = new System.Drawing.Point(501, 638);
this.panelEx3.Name = "panelEx3";
this.panelEx3.Size = new System.Drawing.Size(61, 20);
this.panelEx3.Style.Alignment = System.Drawing.StringAlignment.Center;
@@ -634,7 +639,7 @@ namespace TemuKJD.WXForms.TalkForms
this.panelEx3.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255)))));
this.panelEx3.TabIndex = 898;
this.panelEx3.Text = "折叠";
- this.panelEx3.Click += new System.EventHandler(this.panelEx3_Click);
+ this.panelEx3.Click += new System.EventHandler(this.btnClose_Click);
//
// panelEx2
//
@@ -643,7 +648,7 @@ namespace TemuKJD.WXForms.TalkForms
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(1030, 624);
+ this.panelEx2.Location = new System.Drawing.Point(1038, 624);
this.panelEx2.Name = "panelEx2";
this.panelEx2.Size = new System.Drawing.Size(24, 25);
this.panelEx2.Style.Alignment = System.Drawing.StringAlignment.Center;
@@ -669,7 +674,7 @@ namespace TemuKJD.WXForms.TalkForms
this.panelEx1.Cursor = System.Windows.Forms.Cursors.Hand;
this.panelEx1.DisabledBackColor = System.Drawing.Color.Empty;
this.panelEx1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.panelEx1.Location = new System.Drawing.Point(1030, 593);
+ this.panelEx1.Location = new System.Drawing.Point(1038, 593);
this.panelEx1.Name = "panelEx1";
this.panelEx1.Size = new System.Drawing.Size(24, 25);
this.panelEx1.Style.Alignment = System.Drawing.StringAlignment.Center;
@@ -690,6 +695,7 @@ namespace TemuKJD.WXForms.TalkForms
//
// panel2
//
+ this.panel2.Controls.Add(this.pictureBox1);
this.panel2.Controls.Add(this.lblMsg);
this.panel2.Controls.Add(this.btnRestore);
this.panel2.Controls.Add(this.txtOrderSnFilter);
@@ -698,13 +704,24 @@ namespace TemuKJD.WXForms.TalkForms
this.panel2.Dock = System.Windows.Forms.DockStyle.Bottom;
this.panel2.Location = new System.Drawing.Point(0, 312);
this.panel2.Name = "panel2";
- this.panel2.Size = new System.Drawing.Size(1054, 345);
+ this.panel2.Size = new System.Drawing.Size(1062, 345);
this.panel2.TabIndex = 908;
//
+ // pictureBox1
+ //
+ this.pictureBox1.Anchor = System.Windows.Forms.AnchorStyles.None;
+ this.pictureBox1.Image = global::TemuKJD.Properties.Resources.loading_blue;
+ this.pictureBox1.Location = new System.Drawing.Point(506, 147);
+ this.pictureBox1.Name = "pictureBox1";
+ this.pictureBox1.Size = new System.Drawing.Size(50, 50);
+ this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
+ this.pictureBox1.TabIndex = 921;
+ this.pictureBox1.TabStop = false;
+ //
// lblMsg
//
this.lblMsg.AutoSize = true;
- this.lblMsg.Location = new System.Drawing.Point(400, 13);
+ this.lblMsg.Location = new System.Drawing.Point(400, 15);
this.lblMsg.Name = "lblMsg";
this.lblMsg.Size = new System.Drawing.Size(48, 17);
this.lblMsg.TabIndex = 914;
@@ -716,7 +733,7 @@ namespace TemuKJD.WXForms.TalkForms
this.btnRestore.CanvasColor = System.Drawing.SystemColors.Control;
this.btnRestore.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnRestore.DisabledBackColor = System.Drawing.Color.Empty;
- this.btnRestore.Location = new System.Drawing.Point(318, 10);
+ this.btnRestore.Location = new System.Drawing.Point(318, 12);
this.btnRestore.Name = "btnRestore";
this.btnRestore.Size = new System.Drawing.Size(61, 23);
this.btnRestore.Style.Alignment = System.Drawing.StringAlignment.Center;
@@ -737,7 +754,7 @@ namespace TemuKJD.WXForms.TalkForms
//
// txtOrderSnFilter
//
- this.txtOrderSnFilter.Location = new System.Drawing.Point(3, 10);
+ this.txtOrderSnFilter.Location = new System.Drawing.Point(3, 12);
this.txtOrderSnFilter.Name = "txtOrderSnFilter";
this.txtOrderSnFilter.Size = new System.Drawing.Size(242, 23);
this.txtOrderSnFilter.TabIndex = 903;
@@ -748,7 +765,7 @@ namespace TemuKJD.WXForms.TalkForms
this.btnFilterOrder.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnFilterOrder.DisabledBackColor = System.Drawing.Color.Empty;
this.btnFilterOrder.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.btnFilterOrder.Location = new System.Drawing.Point(251, 10);
+ this.btnFilterOrder.Location = new System.Drawing.Point(251, 12);
this.btnFilterOrder.Name = "btnFilterOrder";
this.btnFilterOrder.Size = new System.Drawing.Size(61, 23);
this.btnFilterOrder.Style.Alignment = System.Drawing.StringAlignment.Center;
@@ -802,13 +819,14 @@ namespace TemuKJD.WXForms.TalkForms
this.colOExpressName,
this.colOExpressId,
this.colOMsg,
- this.colSend});
- this.dgvPddBuyerOrder.Location = new System.Drawing.Point(2, 42);
+ this.colSend,
+ this.colAfterSale});
+ this.dgvPddBuyerOrder.Location = new System.Drawing.Point(2, 45);
this.dgvPddBuyerOrder.MultiSelectCheckBox = true;
this.dgvPddBuyerOrder.Name = "dgvPddBuyerOrder";
this.dgvPddBuyerOrder.ReadOnly = true;
this.dgvPddBuyerOrder.RowTemplate.Height = 23;
- this.dgvPddBuyerOrder.Size = new System.Drawing.Size(1049, 300);
+ this.dgvPddBuyerOrder.Size = new System.Drawing.Size(1057, 300);
this.dgvPddBuyerOrder.TabIndex = 886;
this.dgvPddBuyerOrder.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvPddBuyerOrder_CellContentClick);
//
@@ -917,6 +935,14 @@ namespace TemuKJD.WXForms.TalkForms
this.colSend.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.colSend.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
//
+ // colAfterSale
+ //
+ this.colAfterSale.FillWeight = 50F;
+ this.colAfterSale.HeaderText = "退货";
+ this.colAfterSale.Name = "colAfterSale";
+ this.colAfterSale.ReadOnly = true;
+ this.colAfterSale.Visible = false;
+ //
// tableLayoutPanel1
//
this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
@@ -952,7 +978,7 @@ namespace TemuKJD.WXForms.TalkForms
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33444F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33445F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33112F));
- this.tableLayoutPanel1.Size = new System.Drawing.Size(888, 105);
+ this.tableLayoutPanel1.Size = new System.Drawing.Size(896, 105);
this.tableLayoutPanel1.TabIndex = 679;
this.tableLayoutPanel1.Visible = false;
//
@@ -963,7 +989,7 @@ namespace TemuKJD.WXForms.TalkForms
this.btnFilter.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnFilter.DisabledBackColor = System.Drawing.Color.Empty;
this.btnFilter.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.btnFilter.Location = new System.Drawing.Point(815, 40);
+ this.btnFilter.Location = new System.Drawing.Point(823, 40);
this.btnFilter.Name = "btnFilter";
this.btnFilter.Size = new System.Drawing.Size(69, 25);
this.btnFilter.Style.Alignment = System.Drawing.StringAlignment.Center;
@@ -999,7 +1025,7 @@ namespace TemuKJD.WXForms.TalkForms
this.pnlEmpty.CanvasColor = System.Drawing.SystemColors.Control;
this.pnlEmpty.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.pnlEmpty.DisabledBackColor = System.Drawing.Color.Empty;
- this.pnlEmpty.Location = new System.Drawing.Point(763, 40);
+ this.pnlEmpty.Location = new System.Drawing.Point(771, 40);
this.pnlEmpty.Name = "pnlEmpty";
this.pnlEmpty.Size = new System.Drawing.Size(46, 25);
this.pnlEmpty.Style.Alignment = System.Drawing.StringAlignment.Center;
@@ -1023,7 +1049,7 @@ namespace TemuKJD.WXForms.TalkForms
//
this.label17.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.label17.AutoSize = true;
- this.label17.Location = new System.Drawing.Point(187, 44);
+ this.label17.Location = new System.Drawing.Point(189, 44);
this.label17.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0);
this.label17.Name = "label17";
this.label17.Size = new System.Drawing.Size(56, 17);
@@ -1034,10 +1060,10 @@ namespace TemuKJD.WXForms.TalkForms
// txtMobile
//
this.txtMobile.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
- this.txtMobile.Location = new System.Drawing.Point(243, 41);
+ this.txtMobile.Location = new System.Drawing.Point(245, 41);
this.txtMobile.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.txtMobile.Name = "txtMobile";
- this.txtMobile.Size = new System.Drawing.Size(122, 23);
+ this.txtMobile.Size = new System.Drawing.Size(124, 23);
this.txtMobile.TabIndex = 428;
this.txtMobile.Visible = false;
//
@@ -1047,7 +1073,7 @@ namespace TemuKJD.WXForms.TalkForms
this.txtOrderSn.Location = new System.Drawing.Point(59, 41);
this.txtOrderSn.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3);
this.txtOrderSn.Name = "txtOrderSn";
- this.txtOrderSn.Size = new System.Drawing.Size(122, 23);
+ this.txtOrderSn.Size = new System.Drawing.Size(124, 23);
this.txtOrderSn.TabIndex = 427;
this.txtOrderSn.Visible = false;
//
@@ -1055,7 +1081,7 @@ namespace TemuKJD.WXForms.TalkForms
//
this.label2.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.label2.AutoSize = true;
- this.label2.Location = new System.Drawing.Point(371, 44);
+ this.label2.Location = new System.Drawing.Point(375, 44);
this.label2.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(68, 17);
@@ -1066,9 +1092,9 @@ namespace TemuKJD.WXForms.TalkForms
// dtpStartTime
//
this.dtpStartTime.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
- this.dtpStartTime.Location = new System.Drawing.Point(442, 41);
+ this.dtpStartTime.Location = new System.Drawing.Point(446, 41);
this.dtpStartTime.Name = "dtpStartTime";
- this.dtpStartTime.Size = new System.Drawing.Size(119, 23);
+ this.dtpStartTime.Size = new System.Drawing.Size(121, 23);
this.dtpStartTime.TabIndex = 812;
this.dtpStartTime.Visible = false;
//
@@ -1076,7 +1102,7 @@ namespace TemuKJD.WXForms.TalkForms
//
this.label14.Anchor = System.Windows.Forms.AnchorStyles.Right;
this.label14.AutoSize = true;
- this.label14.Location = new System.Drawing.Point(567, 44);
+ this.label14.Location = new System.Drawing.Point(573, 44);
this.label14.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(68, 17);
@@ -1087,9 +1113,9 @@ namespace TemuKJD.WXForms.TalkForms
// dtpEndTime
//
this.dtpEndTime.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
- this.dtpEndTime.Location = new System.Drawing.Point(638, 41);
+ this.dtpEndTime.Location = new System.Drawing.Point(644, 41);
this.dtpEndTime.Name = "dtpEndTime";
- this.dtpEndTime.Size = new System.Drawing.Size(119, 23);
+ this.dtpEndTime.Size = new System.Drawing.Size(121, 23);
this.dtpEndTime.TabIndex = 813;
this.dtpEndTime.Visible = false;
//
@@ -1097,7 +1123,7 @@ namespace TemuKJD.WXForms.TalkForms
//
this.chkOnlyShowCurrentShop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.chkOnlyShowCurrentShop.AutoSize = true;
- this.chkOnlyShowCurrentShop.Location = new System.Drawing.Point(30, 498);
+ this.chkOnlyShowCurrentShop.Location = new System.Drawing.Point(38, 498);
this.chkOnlyShowCurrentShop.Name = "chkOnlyShowCurrentShop";
this.chkOnlyShowCurrentShop.Size = new System.Drawing.Size(135, 21);
this.chkOnlyShowCurrentShop.TabIndex = 885;
@@ -1110,7 +1136,7 @@ namespace TemuKJD.WXForms.TalkForms
this.lblCurrentShop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.lblCurrentShop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.lblCurrentShop.ForeColor = System.Drawing.Color.DarkOrange;
- this.lblCurrentShop.Location = new System.Drawing.Point(179, 498);
+ this.lblCurrentShop.Location = new System.Drawing.Point(187, 498);
this.lblCurrentShop.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
this.lblCurrentShop.Name = "lblCurrentShop";
this.lblCurrentShop.Size = new System.Drawing.Size(214, 17);
@@ -1130,6 +1156,16 @@ namespace TemuKJD.WXForms.TalkForms
this.statusBar.Size = new System.Drawing.Size(1438, 25);
this.statusBar.TabIndex = 5;
//
+ // chkAutoAfterSale
+ //
+ this.chkAutoAfterSale.Location = new System.Drawing.Point(242, 64);
+ this.chkAutoAfterSale.Name = "chkAutoAfterSale";
+ this.chkAutoAfterSale.Size = new System.Drawing.Size(113, 21);
+ this.chkAutoAfterSale.TabIndex = 953;
+ this.chkAutoAfterSale.Text = "未发货单自动售后";
+ this.chkAutoAfterSale.UseVisualStyleBackColor = true;
+ this.chkAutoAfterSale.CheckedChanged += new System.EventHandler(this.chkAutoAfterSale_CheckedChanged);
+ //
// BuyerOrderListForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
@@ -1166,6 +1202,7 @@ namespace TemuKJD.WXForms.TalkForms
this.splitContainer3.ResumeLayout(false);
this.panel2.ResumeLayout(false);
this.panel2.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dgvPddBuyerOrder)).EndInit();
this.tableLayoutPanel1.ResumeLayout(false);
this.tableLayoutPanel1.PerformLayout();
@@ -1225,6 +1262,13 @@ namespace TemuKJD.WXForms.TalkForms
private DevComponents.DotNetBar.PanelEx panelEx3;
private DevComponents.DotNetBar.PanelEx panelEx2;
private DevComponents.DotNetBar.PanelEx panelEx1;
+ private UserComponent.UcCheckBox chkPause;
+ private System.Windows.Forms.Panel panel2;
+ private DevComponents.DotNetBar.PanelEx btnRestore;
+ private System.Windows.Forms.TextBox txtOrderSnFilter;
+ private DevComponents.DotNetBar.PanelEx btnFilterOrder;
+ private System.Windows.Forms.Label lblMsg;
+ private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.DataGridViewCheckBoxColumn dataGridViewCheckBoxColumn1;
private System.Windows.Forms.DataGridViewTextBoxColumn colOBuyerId;
private System.Windows.Forms.DataGridViewTextBoxColumn colOBuyerName;
@@ -1239,11 +1283,7 @@ namespace TemuKJD.WXForms.TalkForms
private System.Windows.Forms.DataGridViewTextBoxColumn colOExpressId;
private System.Windows.Forms.DataGridViewTextBoxColumn colOMsg;
private System.Windows.Forms.DataGridViewLinkColumn colSend;
- private UserComponent.UcCheckBox chkPause;
- private System.Windows.Forms.Panel panel2;
- private DevComponents.DotNetBar.PanelEx btnRestore;
- private System.Windows.Forms.TextBox txtOrderSnFilter;
- private DevComponents.DotNetBar.PanelEx btnFilterOrder;
- private System.Windows.Forms.Label lblMsg;
+ private System.Windows.Forms.DataGridViewLinkColumn colAfterSale;
+ private UserComponent.UcCheckBox chkAutoAfterSale;
}
}
\ No newline at end of file
diff --git a/TEMUKJD/WXForms/TalkForms/BuyerOrderListForm.cs b/TEMUKJD/WXForms/TalkForms/BuyerOrderListForm.cs
index fd22be4..7e970c5 100644
--- a/TEMUKJD/WXForms/TalkForms/BuyerOrderListForm.cs
+++ b/TEMUKJD/WXForms/TalkForms/BuyerOrderListForm.cs
@@ -45,9 +45,13 @@ namespace TemuKJD.WXForms.TalkForms
ConcurrentList lstPddBuyerOrderInfoLite { get; set; } = new ConcurrentList();
public CancellationTokenSource cancellationTokenSource { get; set; } = new CancellationTokenSource();
public ChromiumWebBrowser cefWebBrowser = null;
- public bool loadComplate = false;
- public bool firstVisible = false;
+ public BuyerOrderConfig buyerOrderConfig = new BuyerOrderConfig();
public DateTime nextGetOrderTime = DateTime.MinValue;
+ public bool isLoadComplate = false;
+ public bool firstVisible = false;
+ bool isInitOrder = false;
+ bool isInitBuyer = false;
+ bool isReadOrder = false;
public BuyerOrderListForm()
{
@@ -64,31 +68,75 @@ namespace TemuKJD.WXForms.TalkForms
InitCef();
- lstPddBuyerOrderInfoLite = NaiBa.Util.Helper.ConfigHelper.LoadConfig> ("pdd_buyer_order");
+ buyerOrderConfig = NaiBa.Util.Helper.ConfigHelper.LoadConfig("pdd_buyer_order_config");
+ if (buyerOrderConfig == null)
+ buyerOrderConfig = new BuyerOrderConfig();
+
+ this.chkPause.Checked = buyerOrderConfig.IsPause;
+ this.chkAutoAfterSale.Checked = buyerOrderConfig.IsAutoAfterSale;
+
+ lstPddBuyerOrderInfoLite = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("pdd_buyer_order_list");
+ if (lstPddBuyerOrderInfoLite == null)
+ lstPddBuyerOrderInfoLite = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("pdd_buyer_order");
if (lstPddBuyerOrderInfoLite == null)
lstPddBuyerOrderInfoLite = new ConcurrentList();
- ShowOrder();
+ lstPddBuyerOrderInfoLite.RemoveAll(o => o.order_time < BaseClass.DateTimeToTimestampSeconds(DateTime.Now.AddMonths(-1)));
GetBuyer();
- AutoGetPddOrder();
- loadComplate = true;
+
+ Task.Run(() =>
+ {
+ while (isInitBuyer)
+ {
+ Thread.Sleep(500);
+ }
+ ShowExistOrder();
+
+ while (isInitOrder)
+ {
+ Thread.Sleep(500);
+ }
+ AutoGetPddOrder();
+ });
+
+ Task.Run(() =>
+ {
+ while(true)
+ {
+ Thread.Sleep(500);
+ if (isReadOrder || isInitBuyer || isInitOrder)
+ {
+ Invoke(new Action(() => { pictureBox1.Visible = true; }));
+ }
+ else
+ {
+ Invoke(new Action(() => { pictureBox1.Visible = false; }));
+ }
+ }
+ });
+
+ isLoadComplate = true;
}
private void ProductListForm_VisibleChanged(object sender, EventArgs e)
{
}
- void ShowOrder()
+ void ShowExistOrder()
{
+ isInitOrder = true;
Task.Run(() => {
-
foreach(var order in lstPddBuyerOrderInfoLite)
{
- Invoke(new Action(() =>
+ if (GlobalConfig.BuyerLoginList.Any(b => b.buyer_id == order.buyerId))
{
- ShowOrder(order);
- }));
+ Invoke(new Action(() =>
+ {
+ ShowOrder(order);
+ }));
+ }
}
+ isInitOrder = false;
});
}
@@ -113,8 +161,9 @@ namespace TemuKJD.WXForms.TalkForms
order.order_status_prompt,
order.outExpressCompanyName,
order.tracking_number,
- order.sendStatus,
- "发送"
+ order.sendStatus.IsNullOrEmpty() ? order.refundStatus : order.sendStatus,
+ "发送",
+ "退货"
);
row = dgvPddBuyerOrder.Rows[rowIndex];
row.Height = 40;
@@ -134,7 +183,22 @@ namespace TemuKJD.WXForms.TalkForms
row.Cells["dgvOStatus"].Value = order.order_status_prompt;
row.Cells["colOExpressName"].Value = order.outExpressCompanyName;
row.Cells["colOExpressId"].Value = order.tracking_number;
- row.Cells["colOMsg"].Value = order.sendStatus;
+ row.Cells["colOMsg"].Value = order.sendStatus.IsNullOrEmpty() ? order.refundStatus : order.sendStatus;
+ }
+ if (order.order_status_prompt.Contains("交易成功"))
+ {
+ row.Cells["colOMsg"].Value = "[完]" + row.Cells["colOMsg"].Value.ParseToString();
+ row.Cells["colOMsg"].Style.ForeColor = Color.Green;
+ }
+ if (order.order_status_prompt.Contains("退款成功") || order.order_status_prompt.Contains("交易已取消"))
+ {
+ row.Cells["colOMsg"].Value = "[退]" + row.Cells["colOMsg"].Value.ParseToString();
+ row.Cells["colOMsg"].Style.ForeColor = Color.Gray;
+ }
+ else if (order.refundStatus.Contains("待退款") || order.refundStatus.Contains("待退货"))
+ {
+ row.Cells["colOMsg"].Value = "[待退]" + row.Cells["colOMsg"].Value.ParseToString();
+ row.Cells["colOMsg"].Style.ForeColor = Color.Red;
}
}
@@ -249,7 +313,7 @@ namespace TemuKJD.WXForms.TalkForms
{
Invoke(new Action(() =>
{
- lblMsg.Text = "获取空商品列表,退出自动滑动 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+ lblMsg.Text = buyer.buyer_name + " 获取到空订单列表,退出自动滑动 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}));
currentReadBuyer = "";
return;
@@ -261,6 +325,12 @@ namespace TemuKJD.WXForms.TalkForms
return;
}
+
+ Invoke(new Action(() =>
+ {
+ lblMsg.Text = buyer.buyer_name + " 正在获取订单列表 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+ }));
+
var list = JsonHelper.DeserializeJsonToList(JsonHelper.JObjectParse(data)["orders"].ParseToString());
foreach (var o in list)
{
@@ -313,7 +383,7 @@ namespace TemuKJD.WXForms.TalkForms
ShowOrder(order);
}));
}
- NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order", lstPddBuyerOrderInfoLite);
+ NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", lstPddBuyerOrderInfoLite);
}
private bool RequestHandler_BeforeResourceLoad(object sender, string url, string postData, IRequest request)
@@ -346,56 +416,65 @@ namespace TemuKJD.WXForms.TalkForms
void GetBuyer()
{
+ isInitBuyer = true;
+
var ids = dgvBuyer.Rows.Cast().Where(r => r.Cells["colSelect"].Value.ParseToBool() == true).Select(s => s.Cells["colBuyerId"].Value.ParseToString()).ToList();
Invoke(new Action(() => { pbLoading.Visible = true; }));
Task.Run(() =>
{
- var url = BaseClass.BuildPDDObjString("user/get_buyer");
- var data = UserLogin.GetSignaturex();
- data += "&page_size=200";
-
- var result = GetHtml.PostUtf8(url, data);
- if (string.IsNullOrEmpty(result) || !result.Contains("\"code\":200"))
- result = GetHtml.PostUtf8(url, data);
-
- if (result.Contains("\"code\":200"))
+ try
{
- List loginInfoLst = JsonHelper.DeserializeJsonToList(JsonHelper.JObjectParse(result)["data"].ParseToString());
- GlobalConfig.BuyerLoginList.RemoveAll(bu => !loginInfoLst.Any(b => b.buyer_id == bu.buyer_id));
- foreach (var b in loginInfoLst)
+ var url = BaseClass.BuildPDDObjString("user/get_buyer");
+ var data = UserLogin.GetSignaturex();
+ data += "&page_size=200";
+
+ var result = GetHtml.PostUtf8(url, data);
+ if (string.IsNullOrEmpty(result) || !result.Contains("\"code\":200"))
+ result = GetHtml.PostUtf8(url, data);
+
+ if (result.Contains("\"code\":200"))
{
- var buyer = GlobalConfig.BuyerLoginList.FirstOrDefault(bu => bu.buyer_id == b.buyer_id);
- if (buyer == null)
- GlobalConfig.BuyerLoginList.Add(b);
- else
+ List loginInfoLst = JsonHelper.DeserializeJsonToList(JsonHelper.JObjectParse(result)["data"].ParseToString());
+ GlobalConfig.BuyerLoginList.RemoveAll(bu => !loginInfoLst.Any(b => b.buyer_id == bu.buyer_id));
+ foreach (var b in loginInfoLst)
{
- buyer.add_time = b.add_time;
- buyer.buyer_id = b.buyer_id;
- buyer.buyer_name = b.buyer_name;
- buyer.buyer_nick = b.buyer_nick;
- buyer.cookie = b.cookie;
- buyer.mdy_time = b.mdy_time;
- buyer.notes = b.notes;
- buyer.status = b.status;
- buyer.user_name = b.user_name;
+ var buyer = GlobalConfig.BuyerLoginList.FirstOrDefault(bu => bu.buyer_id == b.buyer_id);
+ if (buyer == null)
+ GlobalConfig.BuyerLoginList.Add(b);
+ else
+ {
+ buyer.add_time = b.add_time;
+ buyer.buyer_id = b.buyer_id;
+ buyer.buyer_name = b.buyer_name;
+ buyer.buyer_nick = b.buyer_nick;
+ buyer.cookie = b.cookie;
+ buyer.mdy_time = b.mdy_time;
+ buyer.notes = b.notes;
+ buyer.status = b.status;
+ buyer.user_name = b.user_name;
+ }
+ }
+
+ Invoke(new Action(() =>
+ {
+ dgvBuyer.Rows.Clear();
+ }));
+
+ foreach (var buyer in GlobalConfig.BuyerLoginList)
+ {
+ Invoke(new Action(() =>
+ {
+ BindBuyer(buyer, "", ids);
+ }));
}
}
-
- Invoke(new Action(() =>
- {
- dgvBuyer.Rows.Clear();
- }));
-
- foreach (var buyer in GlobalConfig.BuyerLoginList)
- {
- Invoke(new Action(() =>
- {
- BindBuyer(buyer, "", ids);
- }));
- }
+ }
+ catch
+ {
}
+ isInitBuyer = false;
Invoke(new Action(() =>
{
pbLoading.Visible = false;
@@ -477,6 +556,7 @@ namespace TemuKJD.WXForms.TalkForms
{
nextGetOrderTime = DateTime.Now.AddMinutes(30);
GetPddOrder();
+ MakeAfterSales();
}
Thread.Sleep(1000);
Invoke(new Action(() =>
@@ -490,9 +570,12 @@ namespace TemuKJD.WXForms.TalkForms
void GetPddOrder()
{
+ isReadOrder = true;
+
if (cancellationTokenSource != null)
cancellationTokenSource.Cancel();
cancellationTokenSource = new CancellationTokenSource();
+
Task.Run(() =>
{
currentReadBuyer = "";
@@ -525,18 +608,25 @@ namespace TemuKJD.WXForms.TalkForms
cefWebBrowser.Load("https://mobile.yangkeduo.com/orders.html?type=2");
Thread.Sleep(Randomx.GetId(2000, 3000));
+ int top = 0;
while (currentReadBuyer == readBuyer)
{
if (cancellationTokenSource.IsCancellationRequested)
break;
Thread.Sleep(Randomx.GetId(100,300));
+ top += Randomx.GetId(400, 500);
var jsStr = @"window.scroll({
top: document.body.scrollHeight,
left: 0,
behavior: 'smooth' // 可选,使滚动平滑
});";
+ jsStr = @"window.scroll({
+ top: " + top + @",
+ left: 0,
+ behavior: 'smooth' // 可选,使滚动平滑
+ });";
var t1 = cefWebBrowser.GetMainFrame().EvaluateScriptAsync(jsStr);
t1.Wait(1000);
}
@@ -547,11 +637,13 @@ namespace TemuKJD.WXForms.TalkForms
cefWebBrowser.Load("https://mobile.yangkeduo.com/orders.html?type=3");
Thread.Sleep(Randomx.GetId(2000, 3000));
+ top = 0;
while (currentReadBuyer == readBuyer)
{
if (cancellationTokenSource.IsCancellationRequested)
break;
+ top += Randomx.GetId(400, 500);
Thread.Sleep(Randomx.GetId(100, 300));
var jsStr = @"window.scroll({
@@ -559,6 +651,11 @@ namespace TemuKJD.WXForms.TalkForms
left: 0,
behavior: 'smooth' // 可选,使滚动平滑
});";
+ jsStr = @"window.scroll({
+ top: " + top + @",
+ left: 0,
+ behavior: 'smooth' // 可选,使滚动平滑
+ });";
var t1 = cefWebBrowser.GetMainFrame().EvaluateScriptAsync(jsStr);
t1.Wait(1000);
}
@@ -568,6 +665,7 @@ namespace TemuKJD.WXForms.TalkForms
}
Thread.Sleep(Randomx.GetId(6000, 8000));
}
+ isReadOrder = false;
}, cancellationTokenSource.Token);
}
@@ -575,6 +673,7 @@ namespace TemuKJD.WXForms.TalkForms
{
nextGetOrderTime = DateTime.Now.AddMinutes(30);
GetPddOrder();
+ MakeAfterSales();
}
private void pnlEmpty_Click(object sender, EventArgs e)
@@ -882,12 +981,6 @@ namespace TemuKJD.WXForms.TalkForms
case "详情":
case "编辑/详情":
break;
- case "发送":
- Task.Run(() =>
- {
- SendOrderE57(order, true);
- });
- break;
case "图片":
ShowImgForm imgFrom = new ShowImgForm(dgvPddBuyerOrder.Rows[e.RowIndex].Cells["colImgUrl"].Value.ParseToString().Replace("?imageView2/2/w/90/h/90", ""));
imgFrom.ShowDialog();
@@ -896,6 +989,20 @@ namespace TemuKJD.WXForms.TalkForms
case "全选":
dgvPddBuyerOrder.Rows[e.RowIndex].Cells["colCheck"].Value = !(bool)dgvPddBuyerOrder.Rows[e.RowIndex].Cells["colCheck"].Value;
break;
+ case "发送":
+ Task.Run(() =>
+ {
+ SendOrderE57(order, true);
+ });
+ break;
+ case "退货":
+ pictureBox1.Visible = true;
+ Task.Run(() =>
+ {
+ MakeAfterSale(order);
+ Invoke(new Action(() => { pictureBox1.Visible = false; }));
+ });
+ break;
default:
break;
}
@@ -906,20 +1013,28 @@ namespace TemuKJD.WXForms.TalkForms
if (resetSendStatus)
order.sendStatus = "";
- if (order.sendStatus == "已发送")
- //if (order.sendStatus == "已发货")
+ //if (order.sendStatus == "已发送")
+ // return;
+ //if (order.sendStatus == "已完成/退货")
+ // return;
+ if (order.sendStatus.Contains("外采订单已发货"))
{
return;
}
// 已发货且没有运单号的属于已退货,不再发送
- if (order.order_status_prompt != "拼单成功,待发货" && order.order_status_prompt != "免拼成功,待发货" && (string.IsNullOrEmpty(order.tracking_number) || string.IsNullOrEmpty(order.outExpressCompanyName)))
+ if (order.order_status_prompt != "拼单成功,待发货" && order.order_status_prompt != "免拼成功,待发货" && (
+ order.order_status_prompt.Contains("交易成功") ||
+ order.order_status_prompt.Contains("退款成功") ||
+ order.order_status_prompt.Contains("交易已取消") ||
+ string.IsNullOrEmpty(order.tracking_number) ||
+ string.IsNullOrEmpty(order.outExpressCompanyName)))
{
- order.sendStatus = "已发货退货";
+ order.refundStatus = "已完成/退货";
Invoke(new Action(() =>
{
ShowOrder(order);
}));
- NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order", lstPddBuyerOrderInfoLite);
+ NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", lstPddBuyerOrderInfoLite);
return;
}
@@ -938,20 +1053,20 @@ namespace TemuKJD.WXForms.TalkForms
var exportRst = WXHttpResponseBLL.e57PostResponse(url, dataStr, "");
if (exportRst.Contains("发送失败 操作超时"))
WXHttpResponseBLL.e57PostResponse(url, dataStr, "");
- if (exportRst.Contains("SUCCESS") || exportRst.Contains("已存在") || exportRst.Contains("同运单号拦截") || exportRst.Contains("订单已绑定外采订单"))
+ if (exportRst.Contains("SUCCESS") /*|| exportRst.Contains("已存在") || exportRst.Contains("同运单号拦截") || exportRst.Contains("订单已绑定外采订单")*/)
{
order.sendStatus = "已发送";
- NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order", lstPddBuyerOrderInfoLite);
+ NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", lstPddBuyerOrderInfoLite);
}
else if (exportRst != null && exportRst.Contains("") && exportRst.Contains(""))
{
order.sendStatus = exportRst.Substring(0, exportRst.IndexOf("")).Substring(exportRst.IndexOf("") + 5);
- NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order", lstPddBuyerOrderInfoLite);
+ NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", lstPddBuyerOrderInfoLite);
}
else
{
order.sendStatus = "发送失败 " + exportRst;
- NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order", lstPddBuyerOrderInfoLite);
+ NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", lstPddBuyerOrderInfoLite);
}
Invoke(new Action(() =>
{
@@ -960,7 +1075,127 @@ namespace TemuKJD.WXForms.TalkForms
//Thread.Sleep(500);
}
- private void panelEx3_Click(object sender, EventArgs e)
+ public void MakeAfterSales()
+ {
+ Task.Run(() =>
+ {
+ while (isReadOrder)
+ {
+ Thread.Sleep(500);
+ //break;
+ }
+
+ foreach (var buyer in GlobalConfig.BuyerLoginList)
+ {
+ //postman request POST 'https://po.e57.cn/prod-api/api/oms-api/external_procurement/hasAfterSsale' \
+ //--header 'Content-Type: application/json' \
+ //--body '{ "platform": "WEISHOP", "startTime": 1774763836, "endTime": "1776050614" , "userAccount": "闲鱼会开车的鱼2343"}'
+
+ JObject body = new JObject();
+ body["platform"] = "WEISHOP";
+ body["startTime"] = BaseClass.DateTimeToTimestampSeconds(DateTime.Now.AddDays(-7));
+ body["endTime"] = BaseClass.DateTimeToTimestampSeconds(DateTime.Now);
+ body["userAccount"] = buyer.buyer_name;
+ string url = "https://po.e57.cn/prod-api/api/oms-api/external_procurement/hasAfterSsale";
+ var getE57AfterSaleRst = WXHttpResponseBLL.e57PostResponse(url, JsonHelper.SerializeObject(body), "");
+ if (getE57AfterSaleRst.ParseToString().Contains("success"))
+ {
+ try
+ {
+ var rstData = getE57AfterSaleRst.Substring(0, getE57AfterSaleRst.IndexOf("")).Substring(getE57AfterSaleRst.IndexOf("") + "".Length);
+
+ List rstStrLst = rstData.Split(new string[] { "},{" }, StringSplitOptions.RemoveEmptyEntries).ToList();
+ foreach (var rstStr in rstStrLst)
+ {
+ var rstStrTmp = rstStr;
+ var outOrderNo = BaseRegex.GetStringJson(ref rstStrTmp, "outOrderNo");
+ if (outOrderNo.IsNullOrEmpty())
+ continue;
+ var afterSaleId = BaseRegex.GetStringJson(ref rstStrTmp, "afterSaleId");
+ var order = lstPddBuyerOrderInfoLite.FirstOrDefault(o => o.order_sn == outOrderNo);
+ if (order == null)
+ continue;
+
+ order.refundStatus = order.order_status_prompt.Contains("待发货") ? "待退款" : "待退货";
+ NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", lstPddBuyerOrderInfoLite);
+ Invoke(new Action(() =>
+ {
+ ShowOrder(order);
+ }));
+ if (chkAutoAfterSale.Checked)
+ {
+ MakeAfterSale(order);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ }
+ }
+ }
+ });
+ }
+
+ public string MakeAfterSale(PddBuyerOrderInfoLite order)
+ {
+ //if (isReadOrder)
+ //{
+ // BaseMsgForm.ShowError("正再读取订单,请稍候");
+ // return;
+ //}
+ //// 订单详情页
+ ////https://mobile.yangkeduo.com/order.html?order_sn=260417-318525949581688
+ //// 退货详情页
+ ////https://mobile.yangkeduo.com/complaint.html?order_sn=260417-357103060621688&after_sales_reason=0&after_sales_type=1&after_sales_code=1001
+
+ if(!order.order_status_prompt.Contains("待发货"))
+ {
+ return "{\"success\":false,\"msg\":\"仅未发货单可以自动退货\"}";
+ }
+
+ var buyer = GlobalConfig.BuyerLoginList.FirstOrDefault(b => b.buyer_id == order.buyerId);
+ var rst = YkdBuyerOrder.GetInitAfterSale(buyer, order.order_sn);
+ //
+ var mobile = BaseRegex.GetStringJson(ref rst, "userReceivePhone");
+ var applyAmount = BaseRegex.GetIntJson(ref rst, "applyAmount");
+ var refundAmount = BaseRegex.GetIntJson(ref rst, "refundAmount");
+ var newMaxApplyAmount = BaseRegex.GetIntJson(ref rst, "newMaxApplyAmount");
+ var shippingStatus = BaseRegex.GetIntJson(ref rst, "shippingStatus");
+ if (shippingStatus == 1 || !rst.Contains("\"shippingStatus\":0,") || !order.order_status_prompt.Contains("待发货"))
+ {
+ return "{\"success\":false,\"msg\":\"仅未发货单可以自动退货\"}";
+ }
+
+ if (applyAmount == 0) applyAmount = order.order_amount.ParseToInt();
+ if (refundAmount == 0) refundAmount = order.order_amount.ParseToInt();
+ if (newMaxApplyAmount == 0) newMaxApplyAmount = order.order_amount.ParseToInt();
+ if (string.IsNullOrEmpty(mobile))
+ {
+ return "{\"success\":false,\"msg\":\"退货信息获取失败,请检查买手是否掉线\"}";
+ }
+ Thread.Sleep(Randomx.GetId(1000, 2000));
+ var afterSaleRst = YkdBuyerOrder.SetOrderAfterSale(buyer, mobile, order.order_sn, applyAmount, refundAmount, newMaxApplyAmount);
+ if (afterSaleRst.Contains("\"after_sales_status\":1") || afterSaleRst.Contains("该订单已全额退款"))
+ {
+ order.refundStatus = "已完成/退货";
+ order.order_status_prompt = "退款成功";
+ NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_list", lstPddBuyerOrderInfoLite);
+ Invoke(new Action(() =>
+ {
+ ShowOrder(order);
+ }));
+ return "{\"success\":true,\"msg\":\"操作成功\"}";
+ }
+ else
+ {
+ var error_msg = BaseRegex.GetStringJson(ref afterSaleRst, "error_msg");
+ if (string.IsNullOrEmpty(error_msg))
+ error_msg = afterSaleRst;
+ return "{\"success\":false,\"msg\":\"" + error_msg + "\"}";
+ }
+ }
+
+ private void btnClose_Click(object sender, EventArgs e)
{
panel2.Visible = !panel2.Visible;
if (panel2.Visible == false)
@@ -993,6 +1228,8 @@ namespace TemuKJD.WXForms.TalkForms
else
PauseTick = nextGetOrderTime - DateTime.Now;
+ buyerOrderConfig.IsPause = chkPause.Checked;
+ NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_config", buyerOrderConfig);
}
private void btnFilterOrder_Click(object sender, EventArgs e)
@@ -1001,6 +1238,8 @@ namespace TemuKJD.WXForms.TalkForms
{
if (row.Cells["colOPddOrderSn"].Value.ParseToString().Contains(txtOrderSnFilter.Text.Trim()))
row.Visible = true;
+ else if (row.Cells["colOBuyerName"].Value.ParseToString().Contains(txtOrderSnFilter.Text.Trim()))
+ row.Visible = true;
else
row.Visible = false;
}
@@ -1016,11 +1255,37 @@ namespace TemuKJD.WXForms.TalkForms
{
}
+
+ private void chkAutoAfterSale_CheckedChanged(object sender, EventArgs e)
+ {
+ buyerOrderConfig.IsAutoAfterSale = chkAutoAfterSale.Checked;
+ NaiBa.Util.Helper.ConfigHelper.SaveConfig("pdd_buyer_order_config", buyerOrderConfig);
+ }
}
public class YkdBuyerOrder
{
+ public static string GetInitAfterSale(BuyerLoginInfo buyer, string orderSn)
+ {
+ string url = "https://mobile.yangkeduo.com/complaint.html?order_sn=" + orderSn + "&after_sales_reason=0&after_sales_type=1&after_sales_code=1001";
+ var rst = YkdHttpResponseBLL.YangkeduoGetPageResponse(buyer, url);
+ return rst;
+ }
+ public static string SetOrderAfterSale(BuyerLoginInfo buyer, string user_phone, string order_sn, int apply_amount, int refund_amount, int new_refund_amount)
+ {
+ string url = "https://mobile.yangkeduo.com/proxy/api/after_sales/create?pdduid=" + buyer.buyer_id;
+ string body = @"{""order_sn"":""260417-318525949581688"",""coupon_return_control_type"":0,""after_sales_type"":1,""user_ship_status"":0,""user_phone"":""17855141112"",""images"":[],""return_coupon_amount"":0,""question_type"":66,""question_desc"":"""",""apply_amount"":1568,""refund_amount"":1568,""new_refund_amount"":1568,""is_lite"":true}";
+ body = @"{""order_sn"":""" + order_sn + @""",""coupon_return_control_type"":0,""after_sales_type"":1,""user_ship_status"":0,""user_phone"":""" + user_phone +
+ @""",""images"":[],""return_coupon_amount"":0,""question_type"":66,""question_desc"":"""",""apply_amount"":" + apply_amount +
+ @",""refund_amount"":" + refund_amount + @",""new_refund_amount"":" + new_refund_amount + @",""is_lite"":true}";
+
+ string referer = "https://mobile.yangkeduo.com/complaint.html?order_sn=260417-318525949581688&refer_page_name=order_detail&refer_page_id=10038_1776391960785_p20v9j3op4&refer_page_sn=10038&after_sales_reason=66&after_sales_type=1&after_sales_code=1001";
+ referer = "https://mobile.yangkeduo.com/complaint.html?order_sn=" + order_sn + "&refer_page_name=order_detail&&after_sales_reason=66";
+
+ var rst = YkdHttpResponseBLL.YangkeduoPostResponse(buyer, url, body, referer);
+ return rst;
+ }
}
public class WxOrder
@@ -1046,4 +1311,10 @@ namespace TemuKJD.WXForms.TalkForms
return result;
}
}
+
+ public class BuyerOrderConfig
+ {
+ public bool IsPause = false;
+ public bool IsAutoAfterSale = true;
+ }
}
diff --git a/TEMUKJD/WXForms/TalkForms/BuyerOrderListForm.resx b/TEMUKJD/WXForms/TalkForms/BuyerOrderListForm.resx
index 28ed96d..b719165 100644
--- a/TEMUKJD/WXForms/TalkForms/BuyerOrderListForm.resx
+++ b/TEMUKJD/WXForms/TalkForms/BuyerOrderListForm.resx
@@ -216,6 +216,9 @@
True
+
+ True
+