From d2d2396804022ada4b1d719104beb9d77cc7ef63 Mon Sep 17 00:00:00 2001 From: wule Date: Sat, 28 Feb 2026 00:33:30 +0800 Subject: [PATCH] =?UTF-8?q?=E8=81=9A=E6=B0=B4=E6=BD=AD=E6=8E=88=E6=9D=83?= =?UTF-8?q?=20=20=E8=81=9A=E6=B0=B4=E6=BD=AD=E7=88=86=E6=AC=BE=E9=87=87?= =?UTF-8?q?=E9=9B=86=20=20=E5=85=B6=E4=BB=96=E5=8A=9F=E8=83=BD=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AllBase/BaseClass.cs | 2 +- AllBase/Model/Result/JSTListProductInfo.cs | 11 +- AllBase/Model/Result/KJDDBProduct.cs | 5 + .../BLL/BXX/BXXProductManage.cs | 44 +- .../Model/DBProductResultParam.cs | 2 + TEMUKJD/KJD.csproj | 18 + .../GetJuShuitanAuthForm.Designer.cs | 79 + TEMUKJD/ToolForms/GetJuShuitanAuthForm.cs | 29 + TEMUKJD/ToolForms/GetJuShuitanAuthForm.resx | 298 ++++ .../GetJuShuitanProdForm.Designer.cs | 211 ++- TEMUKJD/ToolForms/GetJuShuitanProdForm.cs | 477 ++++- TEMUKJD/ToolForms/GetJuShuitanProdForm.resx | 6 + .../WXDBProdUploadForm.Designer.cs | 209 +-- .../ProductForms/WXDBProdUploadForm.cs | 13 +- .../ProductForms/WXProdCouponOrderBoomForm.cs | 128 +- .../WXProdPreSaleForm.Designer.cs | 683 ++++---- .../WXForms/ProductForms/WXProdPreSaleForm.cs | 377 +++- .../ProductForms/WXProdPreSaleForm.resx | 3 + .../ProductForms/WXProdSyncForm.Designer.cs | 1555 +++++++++++++++++ .../WXForms/ProductForms/WXProdSyncForm.cs | 1286 ++++++++++++++ .../WXForms/ProductForms/WXProdSyncForm.resx | 228 +++ .../ProductForms/WXProductForm.Designer.cs | 14 +- TEMUKJD/WXForms/ProductForms/WXProductForm.cs | 6 +- TEMUKJD/WXForms/ShopForms/WXShopListForm.cs | 11 +- 24 files changed, 5000 insertions(+), 695 deletions(-) create mode 100644 TEMUKJD/ToolForms/GetJuShuitanAuthForm.Designer.cs create mode 100644 TEMUKJD/ToolForms/GetJuShuitanAuthForm.cs create mode 100644 TEMUKJD/ToolForms/GetJuShuitanAuthForm.resx create mode 100644 TEMUKJD/WXForms/ProductForms/WXProdSyncForm.Designer.cs create mode 100644 TEMUKJD/WXForms/ProductForms/WXProdSyncForm.cs create mode 100644 TEMUKJD/WXForms/ProductForms/WXProdSyncForm.resx diff --git a/AllBase/BaseClass.cs b/AllBase/BaseClass.cs index 9b7a8ec..000cd52 100644 --- a/AllBase/BaseClass.cs +++ b/AllBase/BaseClass.cs @@ -27,7 +27,7 @@ namespace AllBase /// /// 版本ID /// - public static int VersionCount = 868; + public static int VersionCount = 873; //public static int VersionCount = 613; /// diff --git a/AllBase/Model/Result/JSTListProductInfo.cs b/AllBase/Model/Result/JSTListProductInfo.cs index 64fdb63..7c61393 100644 --- a/AllBase/Model/Result/JSTListProductInfo.cs +++ b/AllBase/Model/Result/JSTListProductInfo.cs @@ -92,8 +92,8 @@ namespace AllBase.Model.Result public object afterSaleRateThirtyDay { get; set; } // null, public string regulatePriceIntercept { get; set; } // "UN_INTERCEPT", public bool? skuHaveRegulatePrice { get; set; } // false, - public List limitShelvesPlatformList { get; set; } // [ ], - public List limitShelvesPlatformListV2 { get; set; } // [ ], + public List limitShelvesPlatformList { get; set; } // [ "WXChannel" ], + public List limitShelvesPlatformListV2 { get; set; } // [ ], public object supSentGmv7d { get; set; } // null, public object sentCntIncrAvg7dRatio { get; set; } // null, public int? specNum { get; set; } // 2, @@ -116,4 +116,11 @@ namespace AllBase.Model.Result public string jstProductJson { get; set; } public string getProductMsg { get; set; } = ""; } + + public class limitShelvesPlatformV2Info + { + public string limitShelvesPlatform { get; set; } // "vipapis", + public bool? syncSupplier { get; set; } // false, + public List sourceList { get; set; } // [ "SUPPLIER_WAYBILL" ] + } } diff --git a/AllBase/Model/Result/KJDDBProduct.cs b/AllBase/Model/Result/KJDDBProduct.cs index 6d862c4..9036ecf 100644 --- a/AllBase/Model/Result/KJDDBProduct.cs +++ b/AllBase/Model/Result/KJDDBProduct.cs @@ -21,6 +21,11 @@ namespace AllBase.Model.Result /// skcId,聚水潭为商家coid /// public string skc_id { get; set; } + /// + /// 聚水潭爆款专区真实商家coid,供应商直采商品该字段留空 + /// + public string real_coid { get; set; } + public string real_spu_id { get; set; } public string main_cat_id { get; set; } public string cat_id { get; set; } public string main_cat_name { get; set; } diff --git a/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs b/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs index c24f555..cb1042a 100644 --- a/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs +++ b/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs @@ -36,8 +36,10 @@ namespace KJD_Web.BLL.BXX string offline_supplier_id = RegexUtils.GetStringQuery(ref inputData, "offline_supplier_id")?.Replace("'", "\\'"); string offline_supplier_name = RegexUtils.GetStringQuery(ref inputData, "offline_supplier_name")?.Replace("'", "\\'"); string spu_id = RegexUtils.GetStringQuery(ref inputData, "spu_id")?.Replace("'", "\\'"); - //厂商直采微信商品使用skcid存储coid数据 - string skc_id = RegexUtils.GetStringQuery(ref inputData, "skc_id")?.Replace("'", "\\'"); + //厂商直采聚水潭商品使用skcid存储coid数据 + string skc_id = RegexUtils.GetStringQuery(ref inputData, "skc_id")?.Replace("'", "\\'"); // skcId,聚水潭商品为coid + string real_coid = RegexUtils.GetStringQuery(ref inputData, "real_coid")?.Replace("'", "\\'"); // 聚水潭爆款专区真实商家coid,供应商直采商品该字段留空 + string real_spu_id = RegexUtils.GetStringQuery(ref inputData, "real_spu_id")?.Replace("'", "\\'"); // 聚水潭爆款专区真实商家spuid,供应商直采商品该字段留空 string price_text = RegexUtils.GetStringQuery(ref inputData, "price_text")?.Replace("'", "\\'"); string main_cat_id = RegexUtils.GetStringQuery(ref inputData, "main_cat_id")?.Replace("'", "\\'"); string main_cat_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "main_cat_name"))?.Replace("'", "\\'"); @@ -72,12 +74,12 @@ namespace KJD_Web.BLL.BXX string sql = ""; sql = "insert into "; sql += "bxx.product "; - sql += "(from_shop_id,from_shop_name,offline_supplier_id,offline_supplier_name,spu_id,skc_id,main_cat_id,main_cat_name,cat_id,cat_name,price_text," + - "product_name,ext_code,main_img,product_json,size_json,notes,product_get_type,sale_count,sale_count_text,special_prod_type,distribution_set," + - "add_time,mdy_time) " + + sql += "(from_shop_id,from_shop_name,offline_supplier_id,offline_supplier_name,spu_id,skc_id,real_coid,real_spu_id,main_cat_id,main_cat_name,cat_id," + + "cat_name,price_text,product_name,ext_code,main_img,product_json,size_json,notes,product_get_type,sale_count,sale_count_text,special_prod_type," + + "distribution_set,add_time,mdy_time) " + "values ('" + from_shop_id + "','" + from_shop_name + "','" + offline_supplier_id + "','" + offline_supplier_name + "','" + spu_id + "','" + - skc_id + "','" + main_cat_id + "','" + main_cat_name + "','" + cat_id + "','" + cat_name + "','" + price_text + "','" + product_name + "','" + - ext_code + "','" + main_img + "',@product_json,@size_json,'" + notes + "','" + product_get_type + "','" + + skc_id + "','" + real_coid + "','" + real_spu_id + "','" + main_cat_id + "','" + main_cat_name + "','" + cat_id + "','" + cat_name + "','" + + price_text + "','" + product_name + "','" + ext_code + "','" + main_img + "',@product_json,@size_json,'" + notes + "','" + product_get_type + "','" + sale_count + "','" + sale_count_text + "','" + special_prod_type + "'," + distribution_set.ParseToInt() + ",'" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "');"; @@ -115,7 +117,9 @@ namespace KJD_Web.BLL.BXX string offline_supplier_id = RegexUtils.GetStringQuery(ref inputData, "offline_supplier_id")?.Replace("'", "\\'"); string offline_supplier_name = RegexUtils.GetStringQuery(ref inputData, "offline_supplier_name")?.Replace("'", "\\'"); string spu_id = RegexUtils.GetStringQuery(ref inputData, "spu_id")?.Replace("'", "\\'"); - string skc_id = RegexUtils.GetStringQuery(ref inputData, "skc_id")?.Replace("'", "\\'"); + string skc_id = RegexUtils.GetStringQuery(ref inputData, "skc_id")?.Replace("'", "\\'"); // skcId,聚水潭商品为coid + string real_coid = RegexUtils.GetStringQuery(ref inputData, "real_coid")?.Replace("'", "\\'"); // 聚水潭爆款专区真实商家coid,供应商直采商品该字段留空 + string real_spu_id = RegexUtils.GetStringQuery(ref inputData, "real_spu_id")?.Replace("'", "\\'"); // 聚水潭爆款专区真实商家spuid,供应商直采商品该字段留空 string secret_spu_id = RegexUtils.GetStringQuery(ref inputData, "secret_spu_id")?.Replace("'", "\\'"); string price_text = RegexUtils.GetStringQuery(ref inputData, "price_text")?.Replace("'", "\\'"); string main_cat_id = RegexUtils.GetStringQuery(ref inputData, "main_cat_id")?.Replace("'", "\\'"); @@ -458,7 +462,7 @@ namespace KJD_Web.BLL.BXX sql = "select p.id,p.from_shop_id,p.spu_id,p.skc_id,p.main_cat_id,p.main_cat_name,p.cat_id,p.cat_name,p.price_text,p.ext_code,p.product_name," + " p.main_img,p.notes,p.add_time,p.mdy_time,p.select_total_count,p.fission_words,p.head_words,p.end_words,p.sku_img_replace_id,p.group," + " p.product_get_type,p.wx_safe_status,p.sale_count,p.sale_count_text,p.special_prod_type,p.from_shop_name,p.wx_cat_1,p.wx_cat_2,p.wx_cat_3," + - " p.wx_cat_leaf,p.send_to_out_server,p.secret_spu_id," + + " p.wx_cat_leaf,p.send_to_out_server,p.secret_spu_id,p.real_coid,p.real_spu_id," + " s.img_url,e.ext_code_price" + " FROM bxx.product p " + " left join bxx.sku_img_replace s ON p.sku_img_replace_id=s.id" + @@ -468,7 +472,7 @@ namespace KJD_Web.BLL.BXX sql = "SELECT p.id,p.from_shop_id,p.spu_id,p.skc_id,p.main_cat_id,p.main_cat_name,p.cat_id,p.cat_name,p.price_text,p.ext_code,p.product_name," + " p.main_img,p.notes,p.add_time,p.mdy_time,p.select_total_count,p.fission_words,p.head_words,p.end_words,p.sku_img_replace_id,p.group," + " p.product_get_type,p.wx_safe_status,p.sale_count,p.sale_count_text,p.special_prod_type,p.from_shop_name,p.wx_cat_1,p.wx_cat_2,p.wx_cat_3," + - " p.wx_cat_leaf,p.send_to_out_server,p.secret_spu_id," + + " p.wx_cat_leaf,p.send_to_out_server,p.secret_spu_id,p.real_coid,p.real_spu_id," + " s.img_url,COUNT(se.id) AS select_count,e.ext_code_price" + " FROM bxx.product p left join bxx.sku_img_replace s ON p.sku_img_replace_id=s.id LEFT JOIN bxx.product_select se ON p.id=se.out_product_id AND se.shop_id='" + select_shop_id + "' " + " LEFT JOIN bxx.ext_code_price e ON p.ext_code=e.ext_code" + @@ -536,6 +540,8 @@ namespace KJD_Web.BLL.BXX main_cat_name = row["main_cat_name"].ToString(), send_to_out_server = row["send_to_out_server"].ParseToInt(), secret_spu_id = row["secret_spu_id"].IsNullOrEmpty() ? null : row["secret_spu_id"].ParseToString(), + real_coid = row["real_coid"].IsNullOrEmpty() ? null : row["real_coid"].ParseToString(), + real_spu_id = row["real_spu_id"].IsNullOrEmpty() ? null : row["real_spu_id"].ParseToString(), }; if (isDetail) { @@ -681,14 +687,20 @@ namespace KJD_Web.BLL.BXX var password = RegexUtils.GetStringQuery(ref inputData, "password")?.Replace("'", "\\'"); var search_spu_ids = RegexUtils.GetStringQuery(ref inputData, "search_spu_ids")?.Replace("'", "\\'"); var search_sku_codes = RegexUtils.GetStringQuery(ref inputData, "search_sku_codes")?.Replace("'", "\\'"); + var search_secret_spu_ids = RegexUtils.GetStringQuery(ref inputData, "search_secret_spu_ids")?.Replace("'", "\\'"); int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt(); - int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(500); + int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(1000); string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; MysqlUtils mySql = new MysqlUtils(conn); - string sql = "select id,spuId,itemName,styleCode,itemCode,colourSpec,supplierCoId,supplierName,is_in_product_db,add_time from bxx.product_jst_update p where 1=1"; + string sql = "select id,spuId,itemName,styleCode,itemCode,colourSpec,supplierCoId,supplierName,is_in_product_db,secret_spu_id,secret_sku_id,add_time" + + " from bxx.product_jst_update p where 1=1"; + if (search_secret_spu_ids != null) + { + sql += " and p.secret_spu_id in ('" + string.Join("','", search_secret_spu_ids.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)) + "')"; + } if (search_spu_ids != null) { sql += " and p.spuId in ('" + string.Join("','", search_spu_ids.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)) + "')"; @@ -697,6 +709,7 @@ namespace KJD_Web.BLL.BXX { sql += " and p.itemCode in ('" + string.Join("','", search_sku_codes.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)) + "')"; } + sql += " limit " + Math.Max(page - 1, 0) * page_size + "," + page_size; var dt = mySql.ExecuteDataTable(sql); mySql.Close(); @@ -719,6 +732,8 @@ namespace KJD_Web.BLL.BXX supplierName = row["supplierName"].ToString(), add_time = Convert.ToDateTime(row["add_time"]), is_in_product_db = row["is_in_product_db"].ParseToInt(), + secret_spu_id = row["secret_spu_id"].ParseToString(), + secret_sku_id = row["secret_sku_id"].ParseToString(), }; productLst.Add(prod); } @@ -973,6 +988,7 @@ namespace KJD_Web.BLL.BXX var is_supplier_prod_ok = RegexUtils.GetStringQuery(ref inputData, "is_supplier_prod_ok")?.Replace("'", "\\'"); var is_not_count = (RegexUtils.GetStringQuery(ref inputData, "is_not_count")?.Replace("'", "\\'")).ParseToBool(); var prod_count = (RegexUtils.GetStringQuery(ref inputData, "prod_count")?.Replace("'", "\\'")).ParseToInt(); + var add_days_less = RegexUtils.GetStringQuery(ref inputData, "add_days_less")?.Replace("'", "\\'").ParseToNullableInt(); int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt(); int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(50); @@ -1038,6 +1054,10 @@ namespace KJD_Web.BLL.BXX else where += " and (wx_cat_leaf IS NULL or send_to_out_server!=1 or distribution_set=0)"; } + if (!add_days_less.IsNullOrZero()) + { + where += " and add_time > '" + DateTime.Now.AddDays(-add_days_less.ParseToInt()).ToString("yyyy-MM-dd") + "'"; + } sql += where; int count = prod_count; diff --git a/KJDService/KJD_WebService/Model/DBProductResultParam.cs b/KJDService/KJD_WebService/Model/DBProductResultParam.cs index ff33342..1b85243 100644 --- a/KJDService/KJD_WebService/Model/DBProductResultParam.cs +++ b/KJDService/KJD_WebService/Model/DBProductResultParam.cs @@ -98,5 +98,7 @@ namespace KJD_Web.Model public string wx_safe_status { get; set; } public string special_prod_type { get; set; } public int send_to_out_server { get; set; } + public string real_coid { get; set; } + public string real_spu_id { get; set; } } } \ No newline at end of file diff --git a/TEMUKJD/KJD.csproj b/TEMUKJD/KJD.csproj index f9caf73..f76f0d6 100644 --- a/TEMUKJD/KJD.csproj +++ b/TEMUKJD/KJD.csproj @@ -143,6 +143,12 @@ PDDGetChanceProdByImgForm.cs + + Form + + + GetJuShuitanAuthForm.cs + Form @@ -185,6 +191,12 @@ WXDBProdUploadCacheForm.cs + + Form + + + WXProdSyncForm.cs + Form @@ -1069,6 +1081,9 @@ PDDGetChanceProdByImgForm.cs + + GetJuShuitanAuthForm.cs + GetJuShuitanProdForm.cs @@ -1090,6 +1105,9 @@ WXDBProdUploadCacheForm.cs + + WXProdSyncForm.cs + WXProdCouponOrderBoomForm.cs diff --git a/TEMUKJD/ToolForms/GetJuShuitanAuthForm.Designer.cs b/TEMUKJD/ToolForms/GetJuShuitanAuthForm.Designer.cs new file mode 100644 index 0000000..afcff4f --- /dev/null +++ b/TEMUKJD/ToolForms/GetJuShuitanAuthForm.Designer.cs @@ -0,0 +1,79 @@ + +namespace TemuKJD.ToolForms +{ + partial class GetJuShuitanAuthForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(GetJuShuitanAuthForm)); + this.panel2 = new System.Windows.Forms.Panel(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.panel2.SuspendLayout(); + this.SuspendLayout(); + // + // panel2 + // + this.panel2.BackColor = System.Drawing.Color.White; + this.panel2.Controls.Add(this.textBox1); + this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel2.Location = new System.Drawing.Point(1, 33); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(330, 188); + this.panel2.TabIndex = 1; + // + // textBox1 + // + this.textBox1.Font = new System.Drawing.Font("微软雅黑", 13F); + this.textBox1.Location = new System.Drawing.Point(114, 72); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(100, 30); + this.textBox1.TabIndex = 0; + this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged); + // + // GetJuShuitanAuthForm + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(332, 222); + this.Controls.Add(this.panel2); + this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "GetJuShuitanAuthForm"; + this.Text = "请输入验证码"; + this.TitleText = "请输入验证码"; + this.Controls.SetChildIndex(this.panel2, 0); + this.panel2.ResumeLayout(false); + this.panel2.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Panel panel2; + public System.Windows.Forms.TextBox textBox1; + } +} \ No newline at end of file diff --git a/TEMUKJD/ToolForms/GetJuShuitanAuthForm.cs b/TEMUKJD/ToolForms/GetJuShuitanAuthForm.cs new file mode 100644 index 0000000..3082e1d --- /dev/null +++ b/TEMUKJD/ToolForms/GetJuShuitanAuthForm.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace TemuKJD.ToolForms +{ + public partial class GetJuShuitanAuthForm : BaseForms.BaseGeneralForm + { + public bool isAuth = false; + public string authStr = ""; + public GetJuShuitanAuthForm() + { + InitializeComponent(); + } + + private void textBox1_TextChanged(object sender, EventArgs e) + { + authStr = textBox1.Text; + if (textBox1.Text.Trim().Length >= 4) + this.Close(); + } + } +} diff --git a/TEMUKJD/ToolForms/GetJuShuitanAuthForm.resx b/TEMUKJD/ToolForms/GetJuShuitanAuthForm.resx new file mode 100644 index 0000000..2bdeb30 --- /dev/null +++ b/TEMUKJD/ToolForms/GetJuShuitanAuthForm.resx @@ -0,0 +1,298 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAgIAQAAAAAABoKAAAFgAAACgAAACAAAAAAAEAAAEABAAAAAAAACgAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP// + AAD///8AAAAAAAAAAAAAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMQ + AAAAAAAAAAAAAAAAAAAAAAAAABM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZkzEAAAAAAAAAAAAAAAAAAAAAADOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZMwAAAAAAAAAAAAAAAAAAABOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZkzAAAAAAAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmTEAAAAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAAAA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAADmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAA5mZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAADmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAGZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAJmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZAAAAAA + OZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmT + AAAAAZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmRAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZkwAAAZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZkwAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZMAAJmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZEAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkwCZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkRmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZOZmZOZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmP+JmZmZmZmZj/////// + ///4OZmZj/eZmZmZmZmZmPg5OZmZmZuI//iIuZmZmZmZmZmZmZM5mZmZmZmZmZmZmb//+JmZmZmZmP// + //////////OZmP//uZmZmZmZmY//+ZmZOZf///////h5k5mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZ + mZ/////////////4mZ///4mZmZmZmZP///uZmZmP////////+JmZmZmZmZmZkzmZmZmZmZmZmZmZj//4 + mZmZmZmf////////////+Jmf//+JmZmZmZmb///4mZmY//////////+JmZmZmZmZmZM5mZmZmZmZmZmZ + mY//+JmZmZmZn/////////////mZmP//iZmZmZmZk///+5mZj/////iP////+JmZmZmZmZmTOZmZmZmZ + mZmZmZmP//iZmZmZmZ////iIiIiIiIiZOZj//4mZmZmZmZP///uZmf////eZmT////+ZmZmZmZmZkzmZ + mZmZmZmZmZmZj//4mZmZmZmf//+JmZmZmZmZk5mY//+JmZmZmZmT///7mZj///+ZmZmZj///uZmZmZmZ + mZM5mZmZmZmZmZmZmY//+JmZmZmZn///iZmZmZmZmZmZmP//iZmZN5k5k///+5mY///zk5mZOT///4mZ + mZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ///4mZmZmZmZmZmZj//4mZmP/5k5P///uZmP//+ZmZmZmY + //+JmZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf///4iIiIiIg5mZmY//+JOb//+JmT///7mZj//4mZ + mZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn///////////85mZmP//iZn///+Jk///+5mf + //+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ////////////+ZmZj//4mY////85v/ + //uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf////////////mZmY//+Jv/// + //+Z///7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn///////////+JmZmP// + if//////if//+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ///////////4mZ + mZj//4j///////j///uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf//+JMzMz + MzOZOZmY//////+D///////7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn/// + iZmZmZmZmZmZmP//////mY//////+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZ + mZ///4mZmZmZmZmZmZj/////+5mf//////uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZMzM5j//4 + kzMzmZmf//+JMzMzMzM5mZmY/////4mTk//////7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmP// + /////////4mZn////////////4mZmP////+ZmZmP////+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZ + mY/////////////4mZ/////////////7mZj////7mZmZn/////uZmP//iZmZmZmY///5mZmZmZmZkzmZ + mZmZmZn//////////////5mf////////////+Jmf////iZmZk5P////4mZ///4mZmZmZmP//+ZmZmZmZ + mZM5mZmZmZmZj/////////////iZn/////////////iZmP///5mZmZmZj///+5mY//+JmZmZmZj//4mZ + mZmZmZmTOZmZmZmZmZ/////////////zmZP///////////+JmZP///uTmZmZmZj//4mZm///mZmZmZmZ + //85mZmZmZmZkzmZmZmZmZOZiIiIiIiIiIiImTmZOIiIiIiIiIiImTmZOIi5mZmZmZOZiIuZmZk4iZOZ + mZmZOZiDmZmZmZmZmZM5mZmZmZmZOZmZmZmZmZmZmZOZmZmZmZmZmZmZmZOZmZmZmZmZmZmZOZmZmZmZ + mZk5mZmZmZOZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmTuIiIiIs5mZmZmZmZ + mTu4i7mZmZmZmZmZmTMzmZOZmZkzOZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmTmbj///////+HmT + mZmZk4j/////iJmZmZk4iP////iZOZmZj/mZOZOIiIiIiIiIiDmZmZmZmZmZkzmZmZmZmZmZj/////// + ///4mZk5k4///4iI///4OZOY////////iZOZmb/5mZmP///////////4mZmZmZmZmZM5mZmZmZmZn/// + //////////mZmY///5mZmZP///iZmP////////+ZOZk/iZmY/////////////4mZmZmZmZmTOZmZmZmZ + mZ/////////////5mZ////+JmZmY////iZl/////////+ZmZP4mZP//////////////7mZmZmZmZkzmZ + mZmZmZmb////////////uZP/j///+HM3j/////+ZmYj///////iZmT+JmY//////////////+JmZmZmZ + mZM5mZmZmZmZmY//////////+JmT+Jv///////////iPmTmZOI/4mP//uTk/iZmP//////////////iZ + mZmZmZmTOZmZmZmZmZmf//////////mZmZmZ///////////5mZmZmZmTOZk///mZP4mZj/////////// + ///4mZmZmZmZkzmZmZmZmZmTmP////////+JOZmZOY//////////iZmZmZmZmZk5mf/4mT+JmY////// + ////////+JmZmZmZmZM5mZmZmZmZmZn/////////mZmZmZk//////////zmZmZmZmZmZmTmP/zm/iZmP + //////////////iZmZmZmZmTOZmZmZmZmZk5v///////85OZmZkzmP////////iZmZmZmZmZmZmZn//4 + /4mZj/////hzN4/////4mZmZmZmZkzmZmZmZmZmZmZj//////4mZmTmY/4j////////4mZmZmZmZmZmZ + mZj///+JmY////+JmZmY////+JmZmZmZmZM5mZmZmZmZmZmZ//////+ZmZmZj////////////4mZmZmZ + mZmZmZmb////+ZmP///4mZu5mY////iZmZmZmZmTOZmZmZmZmZmZOb/////4k5mZmP/////////////7 + mZmZmZmZmZmZk/////OZv///+ZmP+Jmf///4mZmZmZmZkzmZmZmZmZmZmZmf////+ZmZmZj////////4 + eI//+JmZmZmZmZmZmZP////4mb///4mY//+JmP//+5mZmZmZmZM5mZmZmZmZmZk5v/////uTmZmb//// + ///4mZmX//iZmZmZmZmZmZmZ////+Jmf//95n///+Zj///OZmZmZmZmTOZmZmZmZmZmZmf//////mZmZ + mY//////+ZOZmZiJmZmZmZmZmZmZmY////+ZmP//+I////iP//+JmZmZmZmZkzmZmZmZmZmZmZj///// + /4mZmZmf/////5k5mZOZmTmZmZmZmZmZmZmP///4mZP/////////////OZmZmZmZmZM5mZmZmZmZmZk/ + ///////zmZmZm/////iZmZmZmZmZmZmZmZmZmZmZj///85mZj///////////+JmZmZmZmZmTOZmZmZmZ + mZmZv///////+5mZmZmP///5mZmZmZmZmZmZmZmZmZmZmZ///3mZmZj//////////4mZmZmZmZmZkzmZ + mZmZmZmZmb///4j///uZmZmZmP//mTmZmZmZmZmZmZmZmZmZmZmY/4OZmZmZeP///////4eZmZmZmZmZ + mZM5mZmZmZmZmZmY/4OZOP+JmZmZmZmIiZOZmZmZmZmZmZmZmZmZmZmZmYiZmZmZmZk4iIiIiIOZmZmZ + mZmZmZmTOZmZmZmZmZmZmTOZmZkzmZmZmZmZmZk5mZmZmZmZmZmZmZmZmZmZmZmZk5mZmZmZmZmZmZmZ + mZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmTGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZkwmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZkwA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZMACZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmQAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAABmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTAAADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAJmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmRAAAAA5mZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAACZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmQAAAAAAGZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAOZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkwAAAAAA + AAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTAA + AAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZMAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZkwAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmTAAAAAAAAAAAAAAGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZEAAAAAAAAAAAAAAAA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAAAAAAAATmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZMQAAAAAAAAAAAAAAAAAAABOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZMQAAAAAAAAAAAAAAAAAAAAAAAzmZmZmZmZmZmZmZmZmZmZmZmZmZ + mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTMAAAAAAAAAAAAAAAAAAAAAAAAAAAEzMzMzMzMzMzMzMzMzMz + MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMxAAAAAAAAAAAAAAD////////////////////////4AAAA + AAAAAAAAAB//////wAAAAAAAAAAAAAAD/////wAAAAAAAAAAAAAAAP////wAAAAAAAAAAAAAAAA////w + AAAAAAAAAAAAAAAAD///4AAAAAAAAAAAAAAAAAf//8AAAAAAAAAAAAAAAAAD//+AAAAAAAAAAAAAAAAA + Af//AAAAAAAAAAAAAAAAAAD//gAAAAAAAAAAAAAAAAAAf/wAAAAAAAAAAAAAAAAAAD/4AAAAAAAAAAAA + AAAAAAAf+AAAAAAAAAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP4AAAAAAA + AAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AA + AAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA + AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA + AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA + AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA + AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA + AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA + AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA + AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA + AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA + AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA + AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA + AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA + AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA + AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA + AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA + AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA + AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA + AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA + AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA + AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA + AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA + AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA + AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA + AAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAAD4AAAAAAAAAAAAAAAAAAAA+AA + AAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH8AAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAA + AA/4AAAAAAAAAAAAAAAAAAAf/AAAAAAAAAAAAAAAAAAAH/wAAAAAAAAAAAAAAAAAAD/+AAAAAAAAAAAA + AAAAAAB//wAAAAAAAAAAAAAAAAAA//+AAAAAAAAAAAAAAAAAAf//wAAAAAAAAAAAAAAAAAP//+AAAAAA + AAAAAAAAAAAH///4AAAAAAAAAAAAAAAAD////AAAAAAAAAAAAAAAAD////8AAAAAAAAAAAAAAAD///// + wAAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAH////////////////////////w== + + + \ No newline at end of file diff --git a/TEMUKJD/ToolForms/GetJuShuitanProdForm.Designer.cs b/TEMUKJD/ToolForms/GetJuShuitanProdForm.Designer.cs index 176cf36..ab238a4 100644 --- a/TEMUKJD/ToolForms/GetJuShuitanProdForm.Designer.cs +++ b/TEMUKJD/ToolForms/GetJuShuitanProdForm.Designer.cs @@ -40,6 +40,7 @@ namespace TemuKJD.ToolForms 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(); this.splitContainer2 = new System.Windows.Forms.SplitContainer(); this.btnNext = new System.Windows.Forms.Button(); this.btnPrev = new System.Windows.Forms.Button(); @@ -47,6 +48,8 @@ namespace TemuKJD.ToolForms this.pbLoading = new System.Windows.Forms.PictureBox(); this.dgvProduct = new TemuKJD.UserComponent.DataGridViewEx(); this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colCoId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSupplierName = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colProductId = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colImgUrl = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colImg = new System.Windows.Forms.DataGridViewImageColumn(); @@ -95,6 +98,7 @@ namespace TemuKJD.ToolForms this.cmbMultiCookieName = new DevComponents.DotNetBar.Controls.ComboBoxEx(); this.btnMultiLogin = new DevComponents.DotNetBar.PanelEx(); this.btnDel = new DevComponents.DotNetBar.PanelEx(); + this.btnGetHotGood = new DevComponents.DotNetBar.PanelEx(); this.btnCancelSelect = new DevComponents.DotNetBar.PanelEx(); this.txtTitle = new System.Windows.Forms.TextBox(); this.btnSearchTitle = new DevComponents.DotNetBar.PanelEx(); @@ -111,7 +115,7 @@ namespace TemuKJD.ToolForms this.txtPageEnd = new System.Windows.Forms.TextBox(); this.txtPageStart = new System.Windows.Forms.TextBox(); this.label3 = new System.Windows.Forms.Label(); - this.btnCollect = new DevComponents.DotNetBar.PanelEx(); + this.btnCollectSupplier = new DevComponents.DotNetBar.PanelEx(); this.line1 = new DevComponents.DotNetBar.Controls.Line(); this.txtSupplierName = new System.Windows.Forms.TextBox(); this.txtFilterSaleCount = new System.Windows.Forms.TextBox(); @@ -156,7 +160,7 @@ namespace TemuKJD.ToolForms this.splitContainer2.Panel1.Controls.Add(this.btnNext); this.splitContainer2.Panel1.Controls.Add(this.btnPrev); this.splitContainer2.Panel1.Controls.Add(this.txtAddress); - this.splitContainer2.Size = new System.Drawing.Size(1390, 442); + this.splitContainer2.Size = new System.Drawing.Size(1390, 432); this.splitContainer2.SplitterDistance = 26; this.splitContainer2.TabIndex = 6; // @@ -195,7 +199,7 @@ namespace TemuKJD.ToolForms // this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None; this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue; - this.pbLoading.Location = new System.Drawing.Point(673, 197); + this.pbLoading.Location = new System.Drawing.Point(673, 193); this.pbLoading.Name = "pbLoading"; this.pbLoading.Size = new System.Drawing.Size(50, 50); this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; @@ -224,6 +228,8 @@ namespace TemuKJD.ToolForms this.dgvProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dgvProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.colCheck, + this.colCoId, + this.colSupplierName, this.colProductId, this.colImgUrl, this.colImg, @@ -239,7 +245,7 @@ namespace TemuKJD.ToolForms this.dgvProduct.Name = "dgvProduct"; this.dgvProduct.ReadOnly = true; this.dgvProduct.RowTemplate.Height = 23; - this.dgvProduct.Size = new System.Drawing.Size(1390, 441); + this.dgvProduct.Size = new System.Drawing.Size(1390, 432); this.dgvProduct.TabIndex = 7; this.dgvProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvProduct_CellContentClick); // @@ -252,6 +258,20 @@ namespace TemuKJD.ToolForms this.colCheck.Resizable = System.Windows.Forms.DataGridViewTriState.True; this.colCheck.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; // + // colCoId + // + this.colCoId.FillWeight = 50F; + this.colCoId.HeaderText = "供应商Id"; + this.colCoId.Name = "colCoId"; + this.colCoId.ReadOnly = true; + // + // colSupplierName + // + this.colSupplierName.FillWeight = 90F; + this.colSupplierName.HeaderText = "供应商名称"; + this.colSupplierName.Name = "colSupplierName"; + this.colSupplierName.ReadOnly = true; + // // colProductId // this.colProductId.FillWeight = 50F; @@ -281,35 +301,37 @@ namespace TemuKJD.ToolForms // dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True; this.colGoodsName.DefaultCellStyle = dataGridViewCellStyle3; - this.colGoodsName.FillWeight = 120F; this.colGoodsName.HeaderText = "商品名称"; this.colGoodsName.Name = "colGoodsName"; this.colGoodsName.ReadOnly = true; // // colHotValue // - this.colHotValue.FillWeight = 60F; + this.colHotValue.FillWeight = 50F; this.colHotValue.HeaderText = "7日销量"; this.colHotValue.Name = "colHotValue"; this.colHotValue.ReadOnly = true; // // colSales30 // - this.colSales30.FillWeight = 60F; + this.colSales30.FillWeight = 50F; this.colSales30.HeaderText = "30日销量"; this.colSales30.Name = "colSales30"; this.colSales30.ReadOnly = true; // // colCate // + dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colCate.DefaultCellStyle = dataGridViewCellStyle4; + this.colCate.FillWeight = 80F; this.colCate.HeaderText = "类目"; this.colCate.Name = "colCate"; this.colCate.ReadOnly = true; // // colPrice // - dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colPrice.DefaultCellStyle = dataGridViewCellStyle4; + dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colPrice.DefaultCellStyle = dataGridViewCellStyle5; this.colPrice.FillWeight = 70F; this.colPrice.HeaderText = "价格"; this.colPrice.Name = "colPrice"; @@ -324,9 +346,9 @@ namespace TemuKJD.ToolForms // // colMsg // - dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colMsg.DefaultCellStyle = dataGridViewCellStyle5; - this.colMsg.FillWeight = 200F; + dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colMsg.DefaultCellStyle = dataGridViewCellStyle6; + this.colMsg.FillWeight = 190F; this.colMsg.HeaderText = "操作结果"; this.colMsg.Name = "colMsg"; this.colMsg.ReadOnly = true; @@ -349,6 +371,7 @@ namespace TemuKJD.ToolForms // splitContainer1.Panel2 // this.splitContainer1.Panel2.BackColor = System.Drawing.Color.White; + this.splitContainer1.Panel2.Controls.Add(this.btnGetHotGood); this.splitContainer1.Panel2.Controls.Add(this.btnCancelSelect); this.splitContainer1.Panel2.Controls.Add(this.txtTitle); this.splitContainer1.Panel2.Controls.Add(this.btnSearchTitle); @@ -365,7 +388,7 @@ namespace TemuKJD.ToolForms this.splitContainer1.Panel2.Controls.Add(this.txtPageEnd); this.splitContainer1.Panel2.Controls.Add(this.txtPageStart); this.splitContainer1.Panel2.Controls.Add(this.label3); - this.splitContainer1.Panel2.Controls.Add(this.btnCollect); + this.splitContainer1.Panel2.Controls.Add(this.btnCollectSupplier); this.splitContainer1.Panel2.Controls.Add(this.line1); this.splitContainer1.Panel2.Controls.Add(this.txtSupplierName); this.splitContainer1.Panel2.Controls.Add(this.txtFilterSaleCount); @@ -375,7 +398,7 @@ namespace TemuKJD.ToolForms this.splitContainer1.Panel2.Controls.Add(this.btnImportCookie); this.splitContainer1.Panel2.Controls.Add(this.label2); this.splitContainer1.Size = new System.Drawing.Size(1404, 561); - this.splitContainer1.SplitterDistance = 478; + this.splitContainer1.SplitterDistance = 468; this.splitContainer1.SplitterWidth = 3; this.splitContainer1.TabIndex = 4; // @@ -391,7 +414,7 @@ namespace TemuKJD.ToolForms this.ucTabControlMetro1.Name = "ucTabControlMetro1"; this.ucTabControlMetro1.SelectedIndex = 0; this.ucTabControlMetro1.ShowCloseButton = false; - this.ucTabControlMetro1.Size = new System.Drawing.Size(1404, 478); + this.ucTabControlMetro1.Size = new System.Drawing.Size(1404, 468); this.ucTabControlMetro1.TabIndex = 462; this.ucTabControlMetro1.TabSelectColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.ucTabControlMetro1.TabSelectTextColor = System.Drawing.Color.Gray; @@ -403,7 +426,7 @@ namespace TemuKJD.ToolForms this.tabPage1.Location = new System.Drawing.Point(4, 26); this.tabPage1.Name = "tabPage1"; this.tabPage1.Padding = new System.Windows.Forms.Padding(3); - this.tabPage1.Size = new System.Drawing.Size(1396, 448); + this.tabPage1.Size = new System.Drawing.Size(1396, 438); this.tabPage1.TabIndex = 0; this.tabPage1.Text = "商品页面"; this.tabPage1.UseVisualStyleBackColor = true; @@ -415,7 +438,7 @@ namespace TemuKJD.ToolForms this.tabPage2.Location = new System.Drawing.Point(4, 26); this.tabPage2.Name = "tabPage2"; this.tabPage2.Padding = new System.Windows.Forms.Padding(3); - this.tabPage2.Size = new System.Drawing.Size(1396, 447); + this.tabPage2.Size = new System.Drawing.Size(1396, 438); this.tabPage2.TabIndex = 1; this.tabPage2.Text = "采集列表"; this.tabPage2.UseVisualStyleBackColor = true; @@ -425,7 +448,7 @@ namespace TemuKJD.ToolForms this.tabPage3.Controls.Add(this.splitContainer3); this.tabPage3.Location = new System.Drawing.Point(4, 26); this.tabPage3.Name = "tabPage3"; - this.tabPage3.Size = new System.Drawing.Size(1396, 448); + this.tabPage3.Size = new System.Drawing.Size(1396, 437); this.tabPage3.TabIndex = 2; this.tabPage3.Text = "下架SKU查询"; this.tabPage3.UseVisualStyleBackColor = true; @@ -457,7 +480,7 @@ namespace TemuKJD.ToolForms // this.splitContainer3.Panel2.Controls.Add(this.pictureBox1); this.splitContainer3.Panel2.Controls.Add(this.dgvDownSku); - this.splitContainer3.Size = new System.Drawing.Size(1396, 448); + this.splitContainer3.Size = new System.Drawing.Size(1396, 437); this.splitContainer3.SplitterDistance = 82; this.splitContainer3.TabIndex = 0; // @@ -615,7 +638,7 @@ namespace TemuKJD.ToolForms // this.pictureBox1.Anchor = System.Windows.Forms.AnchorStyles.None; this.pictureBox1.Image = global::TemuKJD.Properties.Resources.loading_blue; - this.pictureBox1.Location = new System.Drawing.Point(673, 156); + this.pictureBox1.Location = new System.Drawing.Point(673, 150); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(50, 50); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; @@ -627,20 +650,20 @@ namespace TemuKJD.ToolForms // this.dgvDownSku.AllowUserToAddRows = false; this.dgvDownSku.AllowUserToDeleteRows = false; - dataGridViewCellStyle6.BackColor = System.Drawing.Color.WhiteSmoke; - this.dgvDownSku.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle6; + dataGridViewCellStyle7.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvDownSku.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle7; this.dgvDownSku.AutoRowNumber = true; this.dgvDownSku.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; this.dgvDownSku.BackgroundColor = System.Drawing.Color.White; this.dgvDownSku.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle7.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle7.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle7.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle7.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle7.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvDownSku.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle7; + dataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle8.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle8.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle8.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle8.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle8.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvDownSku.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle8; this.dgvDownSku.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dgvDownSku.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.colDownSelect, @@ -663,7 +686,7 @@ namespace TemuKJD.ToolForms this.dgvDownSku.Name = "dgvDownSku"; this.dgvDownSku.ReadOnly = true; this.dgvDownSku.RowTemplate.Height = 23; - this.dgvDownSku.Size = new System.Drawing.Size(1396, 362); + this.dgvDownSku.Size = new System.Drawing.Size(1396, 351); this.dgvDownSku.TabIndex = 8; // // colDownSelect @@ -709,8 +732,8 @@ namespace TemuKJD.ToolForms // // colDownItemName // - dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colDownItemName.DefaultCellStyle = dataGridViewCellStyle8; + dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colDownItemName.DefaultCellStyle = dataGridViewCellStyle9; this.colDownItemName.FillWeight = 120F; this.colDownItemName.HeaderText = "商品名称"; this.colDownItemName.Name = "colDownItemName"; @@ -738,8 +761,8 @@ namespace TemuKJD.ToolForms // // colDownSupplyPrice // - dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colDownSupplyPrice.DefaultCellStyle = dataGridViewCellStyle9; + dataGridViewCellStyle10.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colDownSupplyPrice.DefaultCellStyle = dataGridViewCellStyle10; this.colDownSupplyPrice.FillWeight = 70F; this.colDownSupplyPrice.HeaderText = "供货价"; this.colDownSupplyPrice.Name = "colDownSupplyPrice"; @@ -775,8 +798,8 @@ namespace TemuKJD.ToolForms // // dataGridViewTextBoxColumn8 // - dataGridViewCellStyle10.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.dataGridViewTextBoxColumn8.DefaultCellStyle = dataGridViewCellStyle10; + dataGridViewCellStyle11.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dataGridViewTextBoxColumn8.DefaultCellStyle = dataGridViewCellStyle11; this.dataGridViewTextBoxColumn8.FillWeight = 160F; this.dataGridViewTextBoxColumn8.HeaderText = "操作结果"; this.dataGridViewTextBoxColumn8.Name = "dataGridViewTextBoxColumn8"; @@ -854,6 +877,31 @@ namespace TemuKJD.ToolForms this.btnDel.TabIndex = 409; this.btnDel.Text = "删"; // + // btnGetHotGood + // + this.btnGetHotGood.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnGetHotGood.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnGetHotGood.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnGetHotGood.DisabledBackColor = System.Drawing.Color.Empty; + this.btnGetHotGood.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnGetHotGood.Location = new System.Drawing.Point(1087, 58); + this.btnGetHotGood.Name = "btnGetHotGood"; + this.btnGetHotGood.Size = new System.Drawing.Size(76, 23); + this.btnGetHotGood.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnGetHotGood.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnGetHotGood.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnGetHotGood.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnGetHotGood.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnGetHotGood.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnGetHotGood.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnGetHotGood.Style.GradientAngle = 90; + this.btnGetHotGood.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnGetHotGood.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnGetHotGood.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnGetHotGood.TabIndex = 798; + this.btnGetHotGood.Text = "采集爆款"; + this.btnGetHotGood.Click += new System.EventHandler(this.btnCollectHot_Click); + // // btnCancelSelect // this.btnCancelSelect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); @@ -983,9 +1031,9 @@ namespace TemuKJD.ToolForms 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(1059, 58); + this.btnStopStop.Location = new System.Drawing.Point(1009, 58); this.btnStopStop.Name = "btnStopStop"; - this.btnStopStop.Size = new System.Drawing.Size(83, 23); + this.btnStopStop.Size = new System.Drawing.Size(76, 23); 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))))); @@ -1009,9 +1057,9 @@ namespace TemuKJD.ToolForms this.btnSaveDb.Cursor = System.Windows.Forms.Cursors.Hand; this.btnSaveDb.DisabledBackColor = System.Drawing.Color.Empty; this.btnSaveDb.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnSaveDb.Location = new System.Drawing.Point(1314, 58); + this.btnSaveDb.Location = new System.Drawing.Point(1321, 58); this.btnSaveDb.Name = "btnSaveDb"; - this.btnSaveDb.Size = new System.Drawing.Size(83, 23); + this.btnSaveDb.Size = new System.Drawing.Size(76, 23); this.btnSaveDb.Style.Alignment = System.Drawing.StringAlignment.Center; this.btnSaveDb.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.btnSaveDb.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); @@ -1034,9 +1082,9 @@ namespace TemuKJD.ToolForms this.btnGetDetail.Cursor = System.Windows.Forms.Cursors.Hand; this.btnGetDetail.DisabledBackColor = System.Drawing.Color.Empty; this.btnGetDetail.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnGetDetail.Location = new System.Drawing.Point(1229, 58); + this.btnGetDetail.Location = new System.Drawing.Point(1243, 58); this.btnGetDetail.Name = "btnGetDetail"; - this.btnGetDetail.Size = new System.Drawing.Size(83, 23); + this.btnGetDetail.Size = new System.Drawing.Size(76, 23); this.btnGetDetail.Style.Alignment = System.Drawing.StringAlignment.Center; this.btnGetDetail.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.btnGetDetail.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); @@ -1057,10 +1105,10 @@ namespace TemuKJD.ToolForms this.statusBar.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.statusBar.BackColor = System.Drawing.Color.White; this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.statusBar.Location = new System.Drawing.Point(317, 60); + this.statusBar.Location = new System.Drawing.Point(315, 60); this.statusBar.Margin = new System.Windows.Forms.Padding(0); this.statusBar.Name = "statusBar"; - this.statusBar.Size = new System.Drawing.Size(739, 25); + this.statusBar.Size = new System.Drawing.Size(689, 25); this.statusBar.TabIndex = 823; // // label4 @@ -1103,30 +1151,30 @@ namespace TemuKJD.ToolForms this.label3.TabIndex = 807; this.label3.Text = "起始页"; // - // btnCollect + // btnCollectSupplier // - this.btnCollect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnCollect.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.btnCollect.Cursor = System.Windows.Forms.Cursors.Hand; - this.btnCollect.DisabledBackColor = System.Drawing.Color.Empty; - this.btnCollect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnCollect.Location = new System.Drawing.Point(1144, 58); - this.btnCollect.Name = "btnCollect"; - this.btnCollect.Size = new System.Drawing.Size(83, 23); - this.btnCollect.Style.Alignment = System.Drawing.StringAlignment.Center; - this.btnCollect.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnCollect.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnCollect.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.btnCollect.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; - this.btnCollect.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; - this.btnCollect.Style.ForeColor.Color = System.Drawing.Color.White; - this.btnCollect.Style.GradientAngle = 90; - this.btnCollect.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; - this.btnCollect.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); - this.btnCollect.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); - this.btnCollect.TabIndex = 794; - this.btnCollect.Text = "采集列表"; - this.btnCollect.Click += new System.EventHandler(this.btnCollect_Click); + this.btnCollectSupplier.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnCollectSupplier.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnCollectSupplier.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnCollectSupplier.DisabledBackColor = System.Drawing.Color.Empty; + this.btnCollectSupplier.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnCollectSupplier.Location = new System.Drawing.Point(1165, 58); + this.btnCollectSupplier.Name = "btnCollectSupplier"; + this.btnCollectSupplier.Size = new System.Drawing.Size(76, 23); + this.btnCollectSupplier.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnCollectSupplier.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnCollectSupplier.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnCollectSupplier.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnCollectSupplier.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnCollectSupplier.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnCollectSupplier.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnCollectSupplier.Style.GradientAngle = 90; + this.btnCollectSupplier.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnCollectSupplier.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnCollectSupplier.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnCollectSupplier.TabIndex = 794; + this.btnCollectSupplier.Text = "采集供应商"; + this.btnCollectSupplier.Click += new System.EventHandler(this.btnCollectSupplier_Click); // // line1 // @@ -1308,7 +1356,7 @@ namespace TemuKJD.ToolForms private System.Windows.Forms.TextBox txtFilterSaleCount; private System.Windows.Forms.TextBox txtSupplierName; private System.Windows.Forms.Label label2; - private DevComponents.DotNetBar.PanelEx btnCollect; + private DevComponents.DotNetBar.PanelEx btnCollectSupplier; private DevComponents.DotNetBar.Controls.Line line1; private System.Windows.Forms.Label label4; private System.Windows.Forms.TextBox txtPageEnd; @@ -1321,17 +1369,6 @@ namespace TemuKJD.ToolForms private UserControls.StatusBarUserControl statusBar; private DevComponents.DotNetBar.PanelEx btnStopStop; private System.Windows.Forms.ComboBox cmbSaleCount; - private System.Windows.Forms.DataGridViewCheckBoxColumn colCheck; - private System.Windows.Forms.DataGridViewTextBoxColumn colProductId; - private System.Windows.Forms.DataGridViewTextBoxColumn colImgUrl; - private System.Windows.Forms.DataGridViewImageColumn colImg; - private System.Windows.Forms.DataGridViewTextBoxColumn colGoodsName; - private System.Windows.Forms.DataGridViewTextBoxColumn colHotValue; - private System.Windows.Forms.DataGridViewTextBoxColumn colSales30; - private System.Windows.Forms.DataGridViewTextBoxColumn colCate; - private System.Windows.Forms.DataGridViewTextBoxColumn colPrice; - private System.Windows.Forms.DataGridViewLinkColumn colDel; - private System.Windows.Forms.DataGridViewTextBoxColumn colMsg; private System.Windows.Forms.Label label1; private System.Windows.Forms.ComboBox cmbPlatformType; private UserComponent.UcCheckBox chkOverride; @@ -1372,5 +1409,19 @@ namespace TemuKJD.ToolForms private DevComponents.DotNetBar.PanelEx btnResetCache; private DevComponents.DotNetBar.PanelEx btnStopGetDownSku; private System.Windows.Forms.PictureBox pictureBox1; + private DevComponents.DotNetBar.PanelEx btnGetHotGood; + private System.Windows.Forms.DataGridViewCheckBoxColumn colCheck; + private System.Windows.Forms.DataGridViewTextBoxColumn colCoId; + private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierName; + private System.Windows.Forms.DataGridViewTextBoxColumn colProductId; + private System.Windows.Forms.DataGridViewTextBoxColumn colImgUrl; + private System.Windows.Forms.DataGridViewImageColumn colImg; + private System.Windows.Forms.DataGridViewTextBoxColumn colGoodsName; + private System.Windows.Forms.DataGridViewTextBoxColumn colHotValue; + private System.Windows.Forms.DataGridViewTextBoxColumn colSales30; + private System.Windows.Forms.DataGridViewTextBoxColumn colCate; + private System.Windows.Forms.DataGridViewTextBoxColumn colPrice; + private System.Windows.Forms.DataGridViewLinkColumn colDel; + private System.Windows.Forms.DataGridViewTextBoxColumn colMsg; } } \ No newline at end of file diff --git a/TEMUKJD/ToolForms/GetJuShuitanProdForm.cs b/TEMUKJD/ToolForms/GetJuShuitanProdForm.cs index 9f8cc49..221153f 100644 --- a/TEMUKJD/ToolForms/GetJuShuitanProdForm.cs +++ b/TEMUKJD/ToolForms/GetJuShuitanProdForm.cs @@ -30,12 +30,14 @@ namespace TemuKJD.ToolForms { public partial class GetJuShuitanProdForm : BaseForms.BaseForm { + Dictionary dicAfterSale = new Dictionary(); public CancellationTokenSource cancellationTokenSource { get; set; } = null; public CancellationTokenSource CancelGetDown { get; set; } = null; string InitUrl = "https://sc.scm121.com/suppliersManage/suppliersList/onlineSuppliers"; public ChromiumWebBrowser cefWebBrowser = null; private string currentUrl = ""; - private string currentGetListData = ""; + private string currentGetSupplierListParamData = ""; + private string currentGetHotListParamData = ""; private string currentSupplierName = ""; private string appVersion = ""; private string currentSupplierId = ""; @@ -99,6 +101,8 @@ namespace TemuKJD.ToolForms { var rowId = this.dgvProduct.Rows.Add( true, + prod.itemCoId, + prod.supplierName, prod.id, (prod.itemMainImage?.FirstOrDefault()).ParseToString().Replace("https://", "http://"), DataGridViewExtension.defaultBitmap, @@ -237,24 +241,43 @@ namespace TemuKJD.ToolForms private void RequestHandler_ResourceLoadComplete(object sender, string url, string postData, string responseData, IRequest request) { - if (url.Contains("api/goods/buyer/supplier/goods/list")) { if (request.Headers.AllKeys.Contains("App-Version")) appVersion = request.Headers["App-Version"]; - Task.Run(() => { GetCurrentSearchData(postData, responseData, request); }); + Task.Run(() => { GetCurrentSupplierSearchData(postData, responseData, request); }); + } + if (url.Contains("api/goods/freshman/mall/goods/list")) + { + + if (request.Headers.AllKeys.Contains("App-Version")) + appVersion = request.Headers["App-Version"]; + Task.Run(() => { GetCurrentHotSearchData(postData, responseData, request); }); } } - void GetCurrentSearchData(string postData, string responseData, IRequest request) + void GetCurrentSupplierSearchData(string postData, string responseData, IRequest request) { - currentGetListData = postData; + currentGetHotListParamData = ""; + currentGetSupplierListParamData = postData; currentSupplierId = BaseRegex.GetStringJson(ref postData, "supplierId"); currentSupplierName = BaseRegex.GetStringJson(ref responseData, "supplierName"); - Invoke(new Action(() => { + Invoke(new Action(() => + { txtSupplierName.Text = currentSupplierName; })); } + void GetCurrentHotSearchData(string postData, string responseData, IRequest request) + { + currentGetSupplierListParamData = ""; + currentGetHotListParamData = postData; + currentSupplierId = ""; + currentSupplierName = ""; + Invoke(new Action(() => + { + txtSupplierName.Text = "爆款专区"; + })); + } private bool RequestHandler_BeforeResourceLoad(object sender, string url, string postData, IRequest request) { @@ -376,9 +399,9 @@ namespace TemuKJD.ToolForms } } - private void btnCollect_Click(object sender, EventArgs e) + private void btnCollectSupplier_Click(object sender, EventArgs e) { - if (string.IsNullOrEmpty(currentGetListData)) + if (string.IsNullOrEmpty(currentGetSupplierListParamData)) { BaseMsgForm.ShowError("请在网页上选择要搜索的供应商商品列表页面"); return; @@ -400,7 +423,7 @@ namespace TemuKJD.ToolForms { try { - GetProdList(); + GetSupplierList(); } catch (Exception ex) { @@ -414,13 +437,13 @@ namespace TemuKJD.ToolForms }, cancellationTokenSource.Token); } - void GetProdList() + void GetSupplierList() { List cookieList = CEFBrowser.GetCookieList(".scm121.com", cefWebBrowser.GetCookieManager(null)); var shop = new ShopLoginInfo(); shop.Cookies = JsonHelper.SerializeObject(cookieList); - var Jobj = JsonHelper.JObjectParse(currentGetListData); + var Jobj = JsonHelper.JObjectParse(currentGetSupplierListParamData); Jobj["pageSize"] = 70; int page = pageStart; while(page <= pageEnd) @@ -429,7 +452,7 @@ namespace TemuKJD.ToolForms break; Jobj["pageNum"] = page; - Jobj["mallSort"] = "SELL_SEVEN"; + //Jobj["mallSort"] = "SELL_SEVEN"; // 采集近7日爆品 //CREATED 采集近30日新品 Jobj["platformType"] = platformType; Invoke(new Action(() => { @@ -461,7 +484,7 @@ namespace TemuKJD.ToolForms jstProd.dbProduct.offline_supplier_id = jstProd.offlineSupplierId; jstProd.dbProduct.offline_supplier_name = jstProd.offlineSupplierName; jstProd.dbProduct.spu_id = jstProd.spuId; - jstProd.dbProduct.skc_id = jstProd.coId; + jstProd.dbProduct.skc_id = jstProd.itemCoId; //jstProd.dbProduct.price_text = jstProd.minSalesPrice.ParseToString(); //jstProd.dbProduct.main_cat_id = jstProd.categoryLv1Id.ParseToString(); //jstProd.dbProduct.main_cat_name = jstProd.mainCategoryName.ParseToString(); @@ -498,6 +521,8 @@ namespace TemuKJD.ToolForms { var id = dgvProduct.Rows.Add( true, + prod.itemCoId, + prod.supplierName, prod.id, (prod.itemMainImage?.FirstOrDefault()).ParseToString().Replace("https://", "http://"), DataGridViewExtension.defaultBitmap, @@ -530,6 +555,200 @@ namespace TemuKJD.ToolForms })); } + private void btnCollectHot_Click(object sender, EventArgs e) + { + if (string.IsNullOrEmpty(currentGetHotListParamData)) + { + BaseMsgForm.ShowError("请在网页上选择爆款列表页面"); + return; + } + if (dgvProduct.Rows.Count > 0) + { + if (BaseMsgForm.ShowConfirm("当前列表已有采集数据,是否重新采集?").DialogResult == DialogResult.Cancel) + { + return; + } + } + + this.pbLoading.Visible = true; + dgvProduct.Rows.Clear(); + lstJSTListProductInfo.Clear(); + //if (cancellationTokenSource == null || cancellationTokenSource.IsCancellationRequested) + cancellationTokenSource = new CancellationTokenSource(); + Task.Run(() => + { + try + { + GetHotList(); + } + catch (Exception ex) + { + BaseMsgForm.ShowError(ex.Message); + } + Invoke(new Action(() => + { + this.pbLoading.Visible = false; + //this.statusBar.lblTaskStatus.Text = "正在删除..."; + })); + }, cancellationTokenSource.Token); + } + + void GetHotList() + { + List cookieList = CEFBrowser.GetCookieList(".scm121.com", cefWebBrowser.GetCookieManager(null)); + var shop = new ShopLoginInfo(); + shop.Cookies = JsonHelper.SerializeObject(cookieList); + + var Jobj = JsonHelper.JObjectParse(currentGetHotListParamData); + Jobj["pageSize"] = 70; + int page = pageStart; + while (page <= pageEnd) + { + if (cancellationTokenSource.IsCancellationRequested) + break; + + Jobj["pageNum"] = page; + //Jobj["mallSort"] = "SELL_SEVEN"; + Jobj["platformType"] = platformType; + Invoke(new Action(() => + { + this.statusBar.lblTaskStatus.Text = "正在采集第 " + page + " 页"; + })); + Thread.Sleep(Randomx.GetId(1000, 2000)); + page++; + + var lstRst = GetHotLst(shop, Jobj); + if (!lstRst.Contains("\"success\":true")) + { + var errMsg = BaseRegex.GetStringJson(ref lstRst, "message"); + if (string.IsNullOrEmpty(errMsg)) + errMsg = lstRst; + BaseMsgForm.ShowError("查询错误:" + errMsg); + return; + } + + List jstLst = new List(); + try + { + foreach (var jItem in JsonHelper.JObjectParse(lstRst)["data"]) + { + JSTListProductInfo jstProd = JsonHelper.DeserializeJsonToObject(JsonHelper.SerializeObject(jItem)); + jstProd.jstProductJson = JsonHelper.SerializeObject(jItem); + jstProd.dbProduct = new KJDDBProduct(); + jstProd.dbProduct.from_shop_id = jstProd.supplierName; // jstProd.supplierId; + jstProd.dbProduct.from_shop_name = jstProd.supplierName; + jstProd.dbProduct.offline_supplier_id = jstProd.offlineSupplierId; + jstProd.dbProduct.offline_supplier_name = jstProd.offlineSupplierName; + jstProd.dbProduct.spu_id = jstProd.spuId; + jstProd.dbProduct.skc_id = jstProd.itemCoId; + //jstProd.dbProduct.price_text = jstProd.minSalesPrice.ParseToString(); + //jstProd.dbProduct.main_cat_id = jstProd.categoryLv1Id.ParseToString(); + //jstProd.dbProduct.main_cat_name = jstProd.mainCategoryName.ParseToString(); + //jstProd.dbProduct.cat_id = jstProd.categoryLv3Id.ParseToString(); + jstProd.dbProduct.cat_name = jstProd.categoryName.ParseToString(); + jstProd.dbProduct.ext_code = jstProd.styleCode; + jstProd.dbProduct.product_name = jstProd.itemName; + jstProd.dbProduct.product_json = ""; + jstProd.dbProduct.size_json = "{}"; + jstProd.dbProduct.main_img = jstProd.itemMainImage?.FirstOrDefault(); + jstProd.dbProduct.sale_count = jstProd.saleSeven; + jstProd.dbProduct.sale_count_text = string.IsNullOrEmpty(jstProd.saleSevenDesensitized) ? jstProd.saleSeven.ParseToString() : jstProd.saleSevenDesensitized; + jstProd.dbProduct.product_get_type_text = "厂商直采"; + jstLst.Add(jstProd); + } + if (jstLst.Count <= 0) + break; + // 经销商销量小于设定值,则单品销量肯定小于设定值,退出 + //jstLst = jstLst.Where(p => p.supplierSaleSeven >= filterSaleCount).ToList(); + //if (jstLst.Count <= 0) + // break; + if (filterSaleCountDays == 7) + jstLst = jstLst.Where(p => p.saleSeven >= filterSaleCount).ToList(); + else + jstLst = jstLst.Where(p => p.saleThirty >= filterSaleCount).ToList(); + jstLst = jstLst.Where(p => !lstJSTListProductInfo.Any(p1 => p1.id == p.id)).ToList(); + jstLst = jstLst.Where(p => !p.limitShelvesPlatformList.Contains("WXChannel")).ToList(); // 过滤微信禁售不发货商品 + + // 查询真实上家 + var realCoidRst = BatchQueryRealCoid(shop, string.Join(",", jstLst.Select(j => j.itemSpuId)), "12840800"); + Thread.Sleep(Randomx.GetId(200, 800)); + if (!realCoidRst.Contains("\"success\":true")) + { + Thread.Sleep(Randomx.GetId(1000, 2000)); + realCoidRst = BatchQueryRealCoid(shop, string.Join(",", jstLst.Select(j => j.itemSpuId)), "12840800"); + } + if (!realCoidRst.Contains("\"success\":true")) + { + var errMsg = BaseRegex.GetStringJson(ref realCoidRst, "message"); + if (string.IsNullOrEmpty(errMsg)) + errMsg = realCoidRst; + BaseMsgForm.ShowError("查询产品源错误:" + errMsg); + return; + } + try + { + var realUpObjs = JsonHelper.JObjectParse(realCoidRst)["data"]; + foreach (var realUpObj in realUpObjs) + { + var jst = jstLst.FirstOrDefault(j => j.itemSpuId == realUpObj["itemSpuId"].ParseToString()); + if (jst != null) + { + jst.dbProduct.real_spu_id = realUpObj["highestSupplierSpuId"].ParseToString(); + jst.dbProduct.real_coid = realUpObj["supplierHierarchyList"].FirstOrDefault(sj => sj["level"].ParseToInt() == 1)["supCoId"].ParseToString(); + } + } + jstLst = jstLst.Where(j => !string.IsNullOrEmpty(j.dbProduct.real_coid) && !string.IsNullOrEmpty(j.dbProduct.real_spu_id)).ToList(); + } + catch (Exception ex) + { + BaseMsgForm.ShowError("查询产品源错误:" + ex.Message); + return; + } + + lstJSTListProductInfo.AddRange(jstLst); + //var t = Task.Run(() => + //{ + Invoke(new Action(() => + { + foreach (var prod in jstLst) + { + var id = dgvProduct.Rows.Add( + true, + prod.itemCoId, + prod.supplierName, + prod.id, + (prod.itemMainImage?.FirstOrDefault()).ParseToString().Replace("https://", "http://"), + DataGridViewExtension.defaultBitmap, + prod.itemName, + prod.saleSeven, + prod.saleThirty, + prod.categoryName, + "预估:" + prod.minSalesPrice + " 采集详情后显示实际值", + "删除" + ); + dgvProduct.Rows[id].Height = 60; + + } + })); + //}); + //t.Wait(5000); + } + catch (Exception ex) + { + Invoke(new Action(() => + { + this.statusBar.lblTaskStatus.Text = "发生错误 " + ex.Message; + })); + Thread.Sleep(2000); + } + } + Invoke(new Action(() => + { + BaseMsgForm.ShowInfo("采集完成"); + })); + } + + private void txtFilterSaleCount_TextChanged(object sender, EventArgs e) { filterSaleCount = txtFilterSaleCount.Text.Trim().ParseToInt(); @@ -611,8 +830,10 @@ namespace TemuKJD.ToolForms } bool isExist = false; - var existUrl = BaseClass.BuildPDDObjString("product/get_product_list"); - string existData = UserLogin.GetSignaturex() + "&search_spu=" + prod.spuId; + var existUrl = BaseClass.BuildPDDObjString("product/get_product_spu_id_list"); + string existData = UserLogin.GetSignaturex() + "&search_spu_ids=" + prod.spuId; + //if (!string.IsNullOrEmpty(prod.dbProduct.real_spu_id)) + // existData = UserLogin.GetSignaturex() + "&search_spu_ids=" + prod.spuId + "," + prod.dbProduct.real_spu_id; string html = GetHtml.PostUtf8(existUrl, existData); if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) html = GetHtml.PostUtf8(existUrl, existData); @@ -693,6 +914,10 @@ namespace TemuKJD.ToolForms "&cat_id=" + prod.dbProduct.cat_id + "&cat_name=" + HttpUtility.UrlEncode((prod.dbProduct.cat_name ?? prod.categoryName).ParseToString(), Encoding.UTF8); } + if (!string.IsNullOrEmpty(prod.dbProduct.real_coid)) + data += "&real_coid=" + prod.dbProduct.real_coid; + if (!string.IsNullOrEmpty(prod.dbProduct.real_spu_id)) + data += "&real_spu_id=" + prod.dbProduct.real_spu_id; //if (SetPartnerSpuRst.Contains("\"success\":true")) //{ // data += "&distribution_set=1"; @@ -814,8 +1039,10 @@ namespace TemuKJD.ToolForms continue; bool isExist = false; - var existUrl = BaseClass.BuildPDDObjString("product/get_product_list"); - string existData = UserLogin.GetSignaturex() + "&search_spu=" + prod.spuId; + var existUrl = BaseClass.BuildPDDObjString("product/get_product_spu_id_list"); + string existData = UserLogin.GetSignaturex() + "&search_spu_ids=" + prod.spuId; + //if (!string.IsNullOrEmpty(prod.dbProduct.real_spu_id)) + // existData = UserLogin.GetSignaturex() + "&search_spu_ids=" + prod.spuId + "," + prod.dbProduct.real_spu_id; string html = GetHtml.PostUtf8(existUrl, existData); if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) html = GetHtml.PostUtf8(existUrl, existData); @@ -841,6 +1068,142 @@ namespace TemuKJD.ToolForms } Thread.Sleep(Randomx.GetId(500, 1500)); + // 爆款专区查询真实供应商coid和供应商退货地址 + if (prod.itemCoId == "12840800" || prod.supplierName == "寻合作-爆款专区") + { + if (dicAfterSale.Keys.Contains(prod.dbProduct.skc_id + "->" + prod.dbProduct.real_coid)) + { + } + else + { + + var urlAfterSale = BaseClass.BuildObjString("product/wx_get_after_sale"); + var dataAfterSale = Work.UserLogin.GetSignaturex() + + "&coid=" + prod.dbProduct.skc_id + "->" + prod.dbProduct.real_coid; + var htmlAfterSale = GetHtml.PostUtf8(urlAfterSale, dataAfterSale); + if (string.IsNullOrEmpty(htmlAfterSale) || !htmlAfterSale.Contains("\"code\":200")) + htmlAfterSale = GetHtml.PostUtf8(urlAfterSale, dataAfterSale); + if (string.IsNullOrEmpty(htmlAfterSale) || !htmlAfterSale.Contains("\"code\":200")) + { + Invoke(new Action(() => + { + row.Cells["colMsg"].Value = "爆款售后地址比对失败,请下次重试,暂时跳过入库"; + })); + continue; + } + if (htmlAfterSale.Contains("\"data\":\"\"")) + { + var afterSaleRst = GetAfterSaleAddress(shop, prod.dbProduct.real_spu_id, prod.dbProduct.spu_id, prod.dbProduct.real_coid, prod.dbProduct.skc_id); + string address_id = BaseRegex.GetStringJson(ref afterSaleRst, "returnAddressId").ParseToString(); + string middlemanAddressId = BaseRegex.GetStringJson(ref afterSaleRst, "middlemanAddressId").ParseToString(); + if (address_id.IsNullOrEmpty() && middlemanAddressId.IsNullOrEmpty()) + { + Thread.Sleep(5000); + Invoke(new Action(() => + { + row.Cells["colMsg"].Value = "爆款售后地址获取失败,请下次重试,暂时跳过入库"; + })); + continue; + } + retry: + var afterSaleMobileRst = ""; + if (!address_id.IsNullOrEmpty()) + afterSaleMobileRst = GetAfterSaleAddressMobile(shop, address_id, + prod.dbProduct.real_spu_id, prod.dbProduct.spu_id, prod.dbProduct.real_coid, prod.dbProduct.skc_id); + else + afterSaleMobileRst = GetAfterSaleAddressMobileById(shop, middlemanAddressId, + prod.dbProduct.real_spu_id, prod.dbProduct.spu_id, prod.dbProduct.real_coid, prod.dbProduct.skc_id); + Thread.Sleep(Randomx.GetId(1000, 5000)); + //为了您的数据安全,复制手机号要求验证身份,已发送验证码到您手机:132*****859,请输入验证码后进行确认。 + string tel_number = BaseRegex.GetStringJson(ref afterSaleMobileRst, "data"); + if (tel_number.IsNullOrEmpty()) + { + if (afterSaleMobileRst.Contains("为了您的数据安全,复制手机号要求验证身份,已发送验证码到您手机")) + { + GetJuShuitanAuthForm GetJuShuitanAuthForm = new GetJuShuitanAuthForm(); + GetJuShuitanAuthForm.ShowDialog(); + var authStr = GetJuShuitanAuthForm.authStr; + var authRst = AuthV2(shop, prod, authStr); + + if (authRst.Contains("\"success\":true")) + goto retry; + else + { + if (BaseMsgForm.ShowConfirm("验证码校验失败,是否重试?").DialogResult == DialogResult.OK) + { + goto retry; + } + } + } + + Thread.Sleep(5000); + Invoke(new Action(() => + { + row.Cells["colMsg"].Value = "爆款售后电话获取失败,请下次重试,暂时跳过入库"; + })); + continue; + + } + + //聚水潭退货地址:{"success":true,"total":null,"data":{"supplierReturnAddresses":[{"supplierHierarchyChain":"12840800->14009332","spuId":"C1DE5AF0118D4588B32849FA87610622","hasReturnAddress":true,"currentSupplierName":"寻合作-爆款专区","returnAddress":{"uniqueKey":"12840800-1c6cef6a151608d52f032f03fa59fec9","province":"山东省","city":"聊城市","district":"茌平区","address":"顺河北街与信发路交汇处路北山东名威电子商务","recipientName":"乌先生","street":"信发街道","mobile":"1658***1111","encryptedMobile":"aRwLwihnqaLoahYFJ2+uXw==","returnAddressId":4101,"coId":14009332,"middlemanAddress":false,"middlemanAddressId":null}}]},"message":null,"code":"0000","hasNext":false,"now":1772178142906,"extra":{}} + //e57获取的地址格式{"address_id":null,"user_name":"孙庆裕","postal_code":null,"province_name":"浙江省","city_name":"金华市","county_name":"义乌市","street_name":"城西街道","detail_info":"城西街道圣达街18号金哥集团2号岗 5号电梯 三楼退件区","tel_number":"13024622251","number":"10010274","name":"义乌芸茄商贸有限公司"} + + string coid = BaseRegex.GetStringJson(ref afterSaleRst, "supplierHierarchyChain"); + string user_name = BaseRegex.GetStringJson(ref afterSaleRst, "recipientName"); + string province_name = BaseRegex.GetStringJson(ref afterSaleRst, "province"); + string city_name = BaseRegex.GetStringJson(ref afterSaleRst, "city"); + string county_name = BaseRegex.GetStringJson(ref afterSaleRst, "district"); + string street_name = BaseRegex.GetStringJson(ref afterSaleRst, "street"); + string detail_info = BaseRegex.GetStringJson(ref afterSaleRst, "address"); + // 电话号码上面查过立即赋值 + //string tel_number = BaseRegex.GetStringJson(ref afterSaleRst, "mobile"); + string number = prod.dbProduct.real_coid; + string name = BaseRegex.GetStringJson(ref afterSaleRst, "currentSupplierName"); + + var addressObj = new JObject(); + addressObj.Add("address_id", address_id.IsNullOrEmpty() ? middlemanAddressId : address_id); + addressObj.Add("user_name", user_name); + addressObj.Add("postal_code", null); + addressObj.Add("province_name", province_name); + addressObj.Add("city_name", city_name); + addressObj.Add("county_name", county_name); + addressObj.Add("street_name", street_name); + addressObj.Add("detail_info", detail_info); + addressObj.Add("tel_number", tel_number); + addressObj.Add("number", number); + addressObj.Add("name", name); + + if ((address_id + middlemanAddressId).IsNullOrEmpty() || coid.IsNullOrEmpty() || user_name.IsNullOrEmpty() || province_name.IsNullOrEmpty() || city_name.IsNullOrEmpty() || + county_name.IsNullOrEmpty() || street_name.IsNullOrEmpty() || detail_info.IsNullOrEmpty() || tel_number.IsNullOrEmpty() || number.IsNullOrEmpty() || + name.IsNullOrEmpty()) + { + Invoke(new Action(() => + { + row.Cells["colMsg"].Value = "爆款售后地址获取失败,请下次重试,暂时跳过入库"; + })); + continue; + } + + var urlSaveAfterSale = BaseClass.BuildObjString("product/wx_add_mdy_after_sale"); + var dataSaveAfterSale = Work.UserLogin.GetSignaturex() + + "&coid=" + coid + + "&after_sale_json=" + JsonHelper.SerializeObject(addressObj); + string htmlSaveAfterSale = GetHtml.PostUtf8(urlSaveAfterSale, dataSaveAfterSale); + if (string.IsNullOrEmpty(htmlSaveAfterSale) || !htmlSaveAfterSale.Contains("\"code\":200")) + htmlSaveAfterSale = GetHtml.PostUtf8(urlSaveAfterSale, dataSaveAfterSale); + if (string.IsNullOrEmpty(htmlSaveAfterSale) || !htmlSaveAfterSale.Contains("\"code\":200")) + { + Invoke(new Action(() => + { + row.Cells["colMsg"].Value = "爆款售后地址保存失败,请下次重试,暂时跳过入库"; + })); + continue; + } + + dicAfterSale[coid] = JsonHelper.SerializeObject(addressObj); + } + } + } //设置分销 var SetPartnerSpuRst = SetPartnerSpu(shop, prod); @@ -1111,6 +1474,19 @@ namespace TemuKJD.ToolForms return lstRst; } + public string GetHotLst(ShopLoginInfo shop, JObject searchDataObj) + { + string url = "https://sc.ttdahuo.com/api/goods/freshman/mall/goods/list"; + string referer = "https://sc.ttdahuo.com/findCooperation/newlywedZone"; + var lstRst = JSTHttpResponseBLL.JSTPostResponse(shop, url, JsonHelper.SerializeObject(searchDataObj), referer, appVersion); + for (int i = 0; i < 3 && !lstRst.Contains("\"success\":true"); i++) + { + Thread.Sleep(Randomx.GetId(1000, 2000)); + lstRst = JSTHttpResponseBLL.JSTPostResponse(shop, url, JsonHelper.SerializeObject(searchDataObj), referer, appVersion); + } + return lstRst; + } + public string GetPddBaseData(ShopLoginInfo shop, JSTListProductInfo jstLstProd) { string url = "https://sc.scm121.com/api/goods/goods/goGoodsPdd/queryBaseData?itemSpuId=" + jstLstProd.itemSpuId + "&shelvesType=DISTRIBUTION&originator=SUPPLIER&itemCoId=" + jstLstProd.itemCoId; @@ -1169,6 +1545,53 @@ namespace TemuKJD.ToolForms return response; } + public string QueryRealCoid(ShopLoginInfo shop, JSTListProductInfo jstProd) + { + string url = "https://sc.scm121.com/api/goods/goodsQuery/queryGoodsDistributionHierarchyV2"; + string referer = "https://sc.scm121.com/findCooperation/newlywedZone/goodsDetail/" + jstProd.itemSpuId + "?itemCoId=" + jstProd.itemCoId + + "&lookingFor=findCooperation&noBack=true"; + string data = "[{\"supplierCoId\":\"" + jstProd.itemCoId + "\",\"itemSpuIdList\":[\"" + jstProd.itemSpuId + "\"]}]"; + var response = JSTHttpResponseBLL.JSTPostResponse(shop, url, data, referer, appVersion); + return response; + } + + public string BatchQueryRealCoid(ShopLoginInfo shop, string spuIds, string coid0 = "12840800") + { + string url = "https://sc.scm121.com/api/goods/goodsQuery/queryGoodsDistributionHierarchyV2"; + string referer = "https://sc.ttdahuo.com/findCooperation/newlywedZone"; + string data = "[{\"supplierCoId\":\"" + coid0 + "\",\"itemSpuIdList\":[\"" + spuIds.Replace(",", "\",\"") + "\"]}]"; + var response = JSTHttpResponseBLL.JSTPostResponse(shop, url, data, referer, appVersion); + return response; + } + + public string GetAfterSaleAddress(ShopLoginInfo shop, string realSpuId, string spuId, string supCoId1, string supCoId0 = "12840800") + { + string url = "https://innerapi.scm121.com/api/aftersale/addresses/queryMultiLevelSupplierReturnAddressWithSwitch"; + string referer = "https://sc.scm121.com/findCooperation/newlywedZone/goodsDetail/" + spuId + "?itemCoId=" + supCoId0 + "&lookingFor=findCooperation&noBack=true"; + string data = @"{""params"":[{""supplierHierarchyInfos"":[{""supCoId"":""" + supCoId0 + @""",""level"":0},{""supCoId"":""" + supCoId1 + + @""",""level"":1}],""spuId"":""" + realSpuId + @"""}]}"; + var response = JSTHttpResponseBLL.JSTPostResponse(shop, url, data, referer, appVersion); + return response; + } + + public string GetAfterSaleAddressMobile(ShopLoginInfo shop, string addressId, string realSpuId, string spuId, string realCoid, string supCoId = "12840800") + { + string url = "https://sc.scm121.com/api/company/phoneQuery/aftersale/supplier/getReturnPhone?returnAddressId=" + addressId + "&supplierCoId=" + realCoid; + string referer = "https://sc.scm121.com/findCooperation/newlywedZone/goodsDetail/" + spuId + "?itemCoId=" + supCoId + "&lookingFor=findCooperation&noBack=true"; + + var response = JSTHttpResponseBLL.JSTGetResponse(shop, url, referer, appVersion); + return response; + } + public string GetAfterSaleAddressMobileById(ShopLoginInfo shop, string Id, string realSpuId, string spuId, string realCoid, string supCoId = "12840800") + { + string url = "https://innerapi.scm121.com/api/aftersale/middleman/addresses/queryPhone?id=" + Id; + string referer = "https://sc.scm121.com/findCooperation/newlywedZone/goodsDetail/" + spuId + "?itemCoId=" + supCoId + "&lookingFor=findCooperation&noBack=true"; + // "https://sc.scm121.com/findCooperation/newlywedZone/goodsDetail/ ?itemCoId= &lookingFor=findCooperation&noBack=true + + var response = JSTHttpResponseBLL.JSTGetResponse(shop, url, referer, appVersion); + return response; + } + public string SetPartnerSpu(ShopLoginInfo shop, JSTListProductInfo jstProd) { string url = "https://sc.scm121.com/api/goods/buyer/partnerSpu/add"; @@ -1179,6 +1602,18 @@ namespace TemuKJD.ToolForms } + + public string AuthV2(ShopLoginInfo shop, JSTListProductInfo jstProd, string authStr) + { + string url = "https://sc.scm121.com/api/company/open/auth/grantAuthV2"; + string referer = "https://sc.scm121.com/findCooperation/newlywedZone/goodsDetail/" + jstProd.spuId + "?itemCoId=" + jstProd.itemCoId + + "&lookingFor=findCooperation&noBack=true"; + string data = @"{""code"":""" + authStr + @""",""sensitiveOperationErrorCode"":""50716""}"; + var response = JSTHttpResponseBLL.JSTPostResponse(shop, url, data, referer, appVersion); + return response; + } + + public string GetDownSkuLst(ShopLoginInfo shop, DateTime startTime, DateTime endTime, int pageNum, int pageSize) { string url = "https://sc.scm121.com/api/goods/goChannelPartnerSku/queryChannelPartnerSkuList"; @@ -1261,7 +1696,7 @@ namespace TemuKJD.ToolForms if (jstDownSkuGetInfo.status != "done") BaseMsgForm.ShowError("采集并同步产品中断!"); else - BaseMsgForm.ShowError("采集并同步产品完成!"); + BaseMsgForm.ShowInfo("采集并同步产品完成!"); pictureBox1.Visible = false; })); }, CancelGetDown.Token); @@ -1355,9 +1790,9 @@ namespace TemuKJD.ToolForms result = GetHtml.PostUtf8(url, data); if (!result.Contains("\"code\":200")) { - var errMsg = BaseRegex.GetStringJson(ref rst, "message"); + var errMsg = BaseRegex.GetStringJson(ref result, "msg"); if (string.IsNullOrEmpty(errMsg)) - errMsg = rst; + errMsg = result; Invoke(new Action(() => { this.statusBarUserControl1.lblTaskStatus.Text = "查询下架库错误:" + errMsg; @@ -1527,7 +1962,7 @@ namespace TemuKJD.ToolForms "&supplierName=" + downSku.supplierName + "&shelvesTime=" + downSku.shelvesTime + "&supplierCoId=" + downSku.supplierCoId + - "&coId=" + downSku.coId + + "&coId=" + downSku.coId + // 此处coId数值与供应商商品列表的coId不同,注意区分 "&spuId=" + downSku.spuId + "&partnerSkuId=" + downSku.partnerSkuId + "&partnerSpuId=" + downSku.partnerSpuId + diff --git a/TEMUKJD/ToolForms/GetJuShuitanProdForm.resx b/TEMUKJD/ToolForms/GetJuShuitanProdForm.resx index 04baba3..575b8bc 100644 --- a/TEMUKJD/ToolForms/GetJuShuitanProdForm.resx +++ b/TEMUKJD/ToolForms/GetJuShuitanProdForm.resx @@ -120,6 +120,12 @@ True + + True + + + True + True diff --git a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs index fa00e47..687de09 100644 --- a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs +++ b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs @@ -114,6 +114,7 @@ namespace TemuKJD.WXForms.ProductForms this.lblWaitToUp = new System.Windows.Forms.Label(); this.txtAddCount = new System.Windows.Forms.TextBox(); this.btnRandomAdd = new DevComponents.DotNetBar.PanelEx(); + this.chkSevenDays = new TemuKJD.UserComponent.UcCheckBox(this.components); this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); this.btnRefreshAuthor = new DevComponents.DotNetBar.PanelEx(); this.btnSelectOffline = new DevComponents.DotNetBar.PanelEx(); @@ -152,11 +153,6 @@ namespace TemuKJD.WXForms.ProductForms this.txtSinglePriceAdd = new System.Windows.Forms.TextBox(); this.chkTestNoAuditUpload = new TemuKJD.UserComponent.UcCheckBox(this.components); this.dgvSelectProduct = new TemuKJD.UserComponent.DataGridViewEx(); - this.splitContainer4 = new System.Windows.Forms.SplitContainer(); - this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); - this.btnClear = new DevComponents.DotNetBar.PanelEx(); - this.panelEx1 = new DevComponents.DotNetBar.PanelEx(); - this.panel1 = new System.Windows.Forms.Panel(); this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn(); this.colSelectId = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colSupplierId = new System.Windows.Forms.DataGridViewTextBoxColumn(); @@ -179,6 +175,11 @@ namespace TemuKJD.WXForms.ProductForms this.ColDelete = new System.Windows.Forms.DataGridViewLinkColumn(); this.colAddTime = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colOpResult = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.splitContainer4 = new System.Windows.Forms.SplitContainer(); + this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); + this.btnClear = new DevComponents.DotNetBar.PanelEx(); + this.panelEx1 = new DevComponents.DotNetBar.PanelEx(); + this.panel1 = new System.Windows.Forms.Panel(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); @@ -924,6 +925,7 @@ namespace TemuKJD.WXForms.ProductForms this.ucGroupBoxEx4.Controls.Add(this.lblWaitToUp); this.ucGroupBoxEx4.Controls.Add(this.txtAddCount); this.ucGroupBoxEx4.Controls.Add(this.btnRandomAdd); + this.ucGroupBoxEx4.Controls.Add(this.chkSevenDays); this.ucGroupBoxEx4.Location = new System.Drawing.Point(162, 2); this.ucGroupBoxEx4.Name = "ucGroupBoxEx4"; this.ucGroupBoxEx4.Size = new System.Drawing.Size(410, 165); @@ -1120,10 +1122,10 @@ namespace TemuKJD.WXForms.ProductForms this.btnClearFilter.CanvasColor = System.Drawing.SystemColors.Control; this.btnClearFilter.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.btnClearFilter.DisabledBackColor = System.Drawing.Color.Empty; - this.btnClearFilter.Location = new System.Drawing.Point(343, 101); + this.btnClearFilter.Location = new System.Drawing.Point(368, 101); this.btnClearFilter.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); this.btnClearFilter.Name = "btnClearFilter"; - this.btnClearFilter.Size = new System.Drawing.Size(58, 25); + this.btnClearFilter.Size = new System.Drawing.Size(33, 25); this.btnClearFilter.Style.Alignment = System.Drawing.StringAlignment.Center; this.btnClearFilter.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); this.btnClearFilter.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); @@ -1137,7 +1139,7 @@ namespace TemuKJD.WXForms.ProductForms this.btnClearFilter.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.btnClearFilter.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; this.btnClearFilter.TabIndex = 559; - this.btnClearFilter.Text = "清除筛选"; + this.btnClearFilter.Text = "清除"; this.btnClearFilter.Click += new System.EventHandler(this.btnClearFilter_Click); // // lblGoodsCount @@ -1267,6 +1269,16 @@ namespace TemuKJD.WXForms.ProductForms this.btnRandomAdd.Text = "随机添加"; this.btnRandomAdd.Click += new System.EventHandler(this.btnRandomAdd_Click); // + // chkSevenDays + // + this.chkSevenDays.AutoSize = true; + this.chkSevenDays.Location = new System.Drawing.Point(282, 103); + this.chkSevenDays.Name = "chkSevenDays"; + this.chkSevenDays.Size = new System.Drawing.Size(87, 21); + this.chkSevenDays.TabIndex = 805; + this.chkSevenDays.Text = "近七日爆款"; + this.chkSevenDays.UseVisualStyleBackColor = true; + // // ucGroupBoxEx1 // this.ucGroupBoxEx1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) @@ -1906,96 +1918,6 @@ namespace TemuKJD.WXForms.ProductForms this.dgvSelectProduct.TabIndex = 187; this.dgvSelectProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvSelectProduct_CellContentClick); // - // splitContainer4 - // - this.splitContainer4.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer4.FixedPanel = System.Windows.Forms.FixedPanel.Panel2; - this.splitContainer4.Location = new System.Drawing.Point(0, 0); - this.splitContainer4.Name = "splitContainer4"; - // - // splitContainer4.Panel1 - // - this.splitContainer4.Panel1.Controls.Add(this.statusBar); - // - // splitContainer4.Panel2 - // - this.splitContainer4.Panel2.Controls.Add(this.btnClear); - this.splitContainer4.Panel2.Controls.Add(this.panelEx1); - this.splitContainer4.Size = new System.Drawing.Size(1542, 26); - this.splitContainer4.SplitterDistance = 851; - this.splitContainer4.TabIndex = 3; - // - // statusBar - // - this.statusBar.BackColor = System.Drawing.Color.White; - this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill; - this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - 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(851, 26); - this.statusBar.TabIndex = 2; - // - // btnClear - // - this.btnClear.Anchor = System.Windows.Forms.AnchorStyles.Right; - this.btnClear.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.btnClear.Cursor = System.Windows.Forms.Cursors.Hand; - this.btnClear.DisabledBackColor = System.Drawing.Color.Empty; - this.btnClear.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnClear.Location = new System.Drawing.Point(475, 2); - this.btnClear.Name = "btnClear"; - this.btnClear.Size = new System.Drawing.Size(90, 21); - this.btnClear.Style.Alignment = System.Drawing.StringAlignment.Center; - this.btnClear.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnClear.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnClear.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.btnClear.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; - this.btnClear.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; - this.btnClear.Style.ForeColor.Color = System.Drawing.Color.White; - this.btnClear.Style.GradientAngle = 90; - this.btnClear.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; - this.btnClear.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); - this.btnClear.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); - this.btnClear.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; - this.btnClear.TabIndex = 440; - this.btnClear.Text = "清空结果"; - this.btnClear.Visible = false; - // - // panelEx1 - // - this.panelEx1.CanvasColor = System.Drawing.SystemColors.Control; - this.panelEx1.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.panelEx1.DisabledBackColor = System.Drawing.Color.Empty; - this.panelEx1.Location = new System.Drawing.Point(568, 2); - this.panelEx1.Name = "panelEx1"; - this.panelEx1.Size = new System.Drawing.Size(115, 21); - this.panelEx1.Style.Alignment = System.Drawing.StringAlignment.Center; - this.panelEx1.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); - this.panelEx1.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); - this.panelEx1.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.panelEx1.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.panelEx1.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; - this.panelEx1.Style.GradientAngle = 90; - this.panelEx1.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; - this.panelEx1.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; - this.panelEx1.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.panelEx1.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.panelEx1.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; - this.panelEx1.TabIndex = 668; - this.panelEx1.Text = "停止当前操作"; - this.panelEx1.Visible = false; - // - // panel1 - // - this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | 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.TabIndex = 189; - // // colCheck // this.colCheck.Frozen = true; @@ -2176,6 +2098,96 @@ namespace TemuKJD.WXForms.ProductForms this.colOpResult.ReadOnly = true; this.colOpResult.Width = 290; // + // splitContainer4 + // + this.splitContainer4.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer4.FixedPanel = System.Windows.Forms.FixedPanel.Panel2; + this.splitContainer4.Location = new System.Drawing.Point(0, 0); + this.splitContainer4.Name = "splitContainer4"; + // + // splitContainer4.Panel1 + // + this.splitContainer4.Panel1.Controls.Add(this.statusBar); + // + // splitContainer4.Panel2 + // + this.splitContainer4.Panel2.Controls.Add(this.btnClear); + this.splitContainer4.Panel2.Controls.Add(this.panelEx1); + this.splitContainer4.Size = new System.Drawing.Size(1542, 26); + this.splitContainer4.SplitterDistance = 851; + this.splitContainer4.TabIndex = 3; + // + // statusBar + // + this.statusBar.BackColor = System.Drawing.Color.White; + this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill; + this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + 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(851, 26); + this.statusBar.TabIndex = 2; + // + // btnClear + // + this.btnClear.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.btnClear.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnClear.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnClear.DisabledBackColor = System.Drawing.Color.Empty; + this.btnClear.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnClear.Location = new System.Drawing.Point(475, 2); + this.btnClear.Name = "btnClear"; + this.btnClear.Size = new System.Drawing.Size(90, 21); + this.btnClear.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnClear.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClear.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClear.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnClear.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnClear.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnClear.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnClear.Style.GradientAngle = 90; + this.btnClear.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnClear.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnClear.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnClear.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnClear.TabIndex = 440; + this.btnClear.Text = "清空结果"; + this.btnClear.Visible = false; + // + // panelEx1 + // + this.panelEx1.CanvasColor = System.Drawing.SystemColors.Control; + this.panelEx1.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.panelEx1.DisabledBackColor = System.Drawing.Color.Empty; + this.panelEx1.Location = new System.Drawing.Point(568, 2); + this.panelEx1.Name = "panelEx1"; + this.panelEx1.Size = new System.Drawing.Size(115, 21); + this.panelEx1.Style.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx1.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.panelEx1.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.panelEx1.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.panelEx1.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx1.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.panelEx1.Style.GradientAngle = 90; + this.panelEx1.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx1.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx1.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx1.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx1.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.panelEx1.TabIndex = 668; + this.panelEx1.Text = "停止当前操作"; + this.panelEx1.Visible = false; + // + // panel1 + // + this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | 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.TabIndex = 189; + // // WXDBProdUploadForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; @@ -2367,5 +2379,6 @@ namespace TemuKJD.WXForms.ProductForms private System.Windows.Forms.DataGridViewLinkColumn ColDelete; private System.Windows.Forms.DataGridViewTextBoxColumn colAddTime; private System.Windows.Forms.DataGridViewTextBoxColumn colOpResult; + private UserComponent.UcCheckBox chkSevenDays; } } \ No newline at end of file diff --git a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs index 18904af..c6dd2ba 100644 --- a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs +++ b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs @@ -2022,8 +2022,11 @@ namespace TemuKJD.WXForms.ProductForms { var urlAfterSale = BaseClass.BuildObjString("product/wx_get_after_sale"); - var dataAfterSale = Work.UserLogin.GetSignaturex() + - "&coid=" + dbProd.skc_id; + var dataAfterSale = Work.UserLogin.GetSignaturex(); + if (!string.IsNullOrEmpty(dbProd.real_coid)) + dataAfterSale += "&coid=" + dbProd.skc_id + "->" + dbProd.real_coid; + else + dataAfterSale += "&coid=" + dbProd.skc_id; var htmlAfterSale = GetHtml.PostUtf8(urlAfterSale, dataAfterSale); if (string.IsNullOrEmpty(htmlAfterSale) || !htmlAfterSale.Contains("\"code\":200")) htmlAfterSale = GetHtml.PostUtf8(urlAfterSale, dataAfterSale); @@ -2954,6 +2957,10 @@ namespace TemuKJD.WXForms.ProductForms } } } + if (!prodInfo.detail.sku.Any(s => s.quantity.ParseToInt() > 0)) + { + return "{\"success\":false,\"draftId\":0,\"status\":\"未上传\",\"errMsg\":\"源商品库存为0\"}"; + } foreach (var skuInfo in prodInfo.detail.sku) { productSkuParam skuParam = new productSkuParam(); @@ -3727,6 +3734,8 @@ namespace TemuKJD.WXForms.ProductForms data += "&wx_safe_status=" + cmbWxSafe.Text.Trim().Replace("安全+未校验", "安全商品,未校验"); data += "&is_supplier_prod_ok=" + cmbJstInitSet.Text.Trim(); data += "&product_name=" + txtSearchGoodsName.Text.Trim(); + if (chkSevenDays.Checked) + data += "&add_days_less=7"; })); var html = GetHtml.PostUtf8(url, data); if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) diff --git a/TEMUKJD/WXForms/ProductForms/WXProdCouponOrderBoomForm.cs b/TEMUKJD/WXForms/ProductForms/WXProdCouponOrderBoomForm.cs index ee7138f..b968f9e 100644 --- a/TEMUKJD/WXForms/ProductForms/WXProdCouponOrderBoomForm.cs +++ b/TEMUKJD/WXForms/ProductForms/WXProdCouponOrderBoomForm.cs @@ -704,11 +704,30 @@ namespace TemuKJD.WXForms.ProductForms { row.Cells["colCouponNum"].Value = totalNum; })); - if (totalNum.ParseToInt() > 0) + + var issuedNum = 0; + try + { + var jCoupons = JsonHelper.JObjectParse(searchCouponRst); + foreach(var coupon in jCoupons) + { + var couponStr = JsonHelper.SerializeObject(coupon); + + //var receiveNum = BaseRegex.GetStringJson(ref couponStr, "receiveNum"); + issuedNum = BaseRegex.GetStringJson(ref couponStr, "issuedNum").ParseToInt(); + if (issuedNum > 0) + break; + } + } + catch + { + } + + if (issuedNum.ParseToInt() > 0) { Invoke(new Action(() => { - row.Cells["colOpResult"].Value = "商品已设置专属优惠券,跳过"; + row.Cells["colOpResult"].Value = "商品还有未领取的专属优惠券,跳过"; })); continue; } @@ -824,7 +843,7 @@ namespace TemuKJD.WXForms.ProductForms Invoke(new Action(() => { if (shopRow != null) { - shopRow.Cells["colMsg"].Value = error; + shopRow.Cells["colOpResult"].Value = error; } })); break; @@ -1062,109 +1081,6 @@ namespace TemuKJD.WXForms.ProductForms PreType = cmbPreType.Text.Trim(); } - private void btnDown_Click(object sender, EventArgs e) - { - var rowLst = dgvSelectProduct.Rows.Cast().Where(r => r.Cells["colCheck"].Value.ParseToBool() == true).ToList(); - if (rowLst.Count <= 0) - { - BaseMsgForm.ShowError("请勾选需要操作的商品!"); - return; - } - - this.pbLoading.Visible = true; - this.btnSetPreSale.Enabled = false; - cancellationTokenSource = new CancellationTokenSource(); - Task.Run(() => - { - SetProdDown(rowLst); - Invoke(new Action(() => - { - this.statusBar.lblTaskStatus.Text = "商品下架完毕"; - BaseMsgForm.ShowInfo("商品下架完毕"); - this.pbLoading.Visible = false; - this.btnSetPreSale.Enabled = true; - })); - }, cancellationTokenSource.Token); - - } - - void SetProdDown(List rowLst) - { - Invoke(new Action(() => - { - this.pbLoading.Visible = true; - this.statusBar.lblTaskStatus.Text = "正在下架" + "...".Substring(0, DateTime.Now.Second % 4); - this.statusBar.pgbTaskProgress.Maximum = dgvSelectProduct.Rows.Count; - this.statusBar.UpdateProgressBar(0); - })); - - foreach (var row in rowLst) - { - Invoke(new Action(() => - { - row.Cells["colOpResult"].Value = ""; - })); - - if (cancellationTokenSource.IsCancellationRequested) - break; - - var prodId = row.Cells["colDraftId"].Value.ParseToString(); - var shopId = row.Cells["colSupplierId"].Value.ParseToString(); - var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId); - if (shop == null) - { - Invoke(new Action(() => - { - row.Cells["colOpResult"].Value = "店铺不存在"; - })); - continue; - } - if (shop.LoginStatus != "登录成功") - { - Invoke(new Action(() => - { - row.Cells["colOpResult"].Value = "店铺掉线"; - })); - continue; - } - - var downProdRst = WXPreSale.DownProd(shop, prodId.ParseToLong()); - System.Threading.Thread.Sleep(Randomx.GetId(200, 500)); - if (!downProdRst.Contains("\"code\":0")) - { - if (downProdRst.Contains("biz magic invalid")) - { - WXShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false); - if (shop.LoginStatus != "登录成功") - { - Invoke(new Action(() => - { - row.Cells["colOpResult"].Value = "店铺掉线"; - })); - continue; - } - } - - var errmsg = BaseRegex.GetStringJson(ref downProdRst, "msg"); - if (string.IsNullOrWhiteSpace(errmsg)) - errmsg = downProdRst; - - Invoke(new Action(() => - { - row.Cells["colOpResult"].Value = errmsg; - })); - } - - if (downProdRst.Contains("\"code\":0")) - { - Invoke(new Action(() => - { - row.Cells["colOpResult"].Value = "下架成功"; - })); - } - } - } - private void btnFiltSelectMoreThan_Click(object sender, EventArgs e) { foreach(DataGridViewRow row in dgvSelectProduct.Rows) diff --git a/TEMUKJD/WXForms/ProductForms/WXProdPreSaleForm.Designer.cs b/TEMUKJD/WXForms/ProductForms/WXProdPreSaleForm.Designer.cs index 020818e..b2ad029 100644 --- a/TEMUKJD/WXForms/ProductForms/WXProdPreSaleForm.Designer.cs +++ b/TEMUKJD/WXForms/ProductForms/WXProdPreSaleForm.Designer.cs @@ -32,15 +32,20 @@ namespace TemuKJD.WXForms.ProductForms 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 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.ucGroupBoxEx3 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); + this.btnBatchDel = new DevComponents.DotNetBar.PanelEx(); + this.label4 = new System.Windows.Forms.Label(); + this.txtFiltSaleNum = new System.Windows.Forms.TextBox(); + this.btnFiltSelect = new DevComponents.DotNetBar.PanelEx(); this.panelEx3 = new DevComponents.DotNetBar.PanelEx(); this.panelEx4 = new DevComponents.DotNetBar.PanelEx(); this.btnDown = new DevComponents.DotNetBar.PanelEx(); @@ -54,19 +59,21 @@ namespace TemuKJD.WXForms.ProductForms this.btnClearDgv = new DevComponents.DotNetBar.PanelEx(); this.btnSetPreSale = new DevComponents.DotNetBar.PanelEx(); this.ucGroupBoxEx4 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); + this.cmbOnSaleStatus = new System.Windows.Forms.ComboBox(); this.cmbPreType = new System.Windows.Forms.ComboBox(); this.label3 = new System.Windows.Forms.Label(); + this.txtIdFilter = new System.Windows.Forms.TextBox(); + this.lblIdFilter = new System.Windows.Forms.Label(); this.panelEx2 = new DevComponents.DotNetBar.PanelEx(); this.txtPageEnd = new System.Windows.Forms.TextBox(); this.label2 = new System.Windows.Forms.Label(); this.txtProductName = new System.Windows.Forms.TextBox(); this.label11 = new System.Windows.Forms.Label(); this.btnClearFilter = new DevComponents.DotNetBar.PanelEx(); - this.txtIdFilter = new System.Windows.Forms.TextBox(); this.txtExtCodeFilter = new System.Windows.Forms.TextBox(); - this.lblIdFilter = new System.Windows.Forms.Label(); this.lblExtCodeFilter = new System.Windows.Forms.Label(); this.btnSearchProd = new DevComponents.DotNetBar.PanelEx(); + this.label5 = new System.Windows.Forms.Label(); this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); this.btnRefreshAuthor = new DevComponents.DotNetBar.PanelEx(); this.btnSelectOffline = new DevComponents.DotNetBar.PanelEx(); @@ -104,6 +111,10 @@ namespace TemuKJD.WXForms.ProductForms this.pbLoading = new System.Windows.Forms.PictureBox(); this.chkTestNoAuditUpload = new TemuKJD.UserComponent.UcCheckBox(this.components); this.dgvSelectProduct = new TemuKJD.UserComponent.DataGridViewEx(); + this.splitContainer4 = new System.Windows.Forms.SplitContainer(); + this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); + this.btnClear = new DevComponents.DotNetBar.PanelEx(); + this.panelEx1 = new DevComponents.DotNetBar.PanelEx(); this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn(); this.colSelectId = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colSupplierId = new System.Windows.Forms.DataGridViewTextBoxColumn(); @@ -123,18 +134,12 @@ namespace TemuKJD.WXForms.ProductForms this.colPrice = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colSoldNum = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colMsg = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colPreSale = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colUserNotes = new System.Windows.Forms.DataGridViewLinkColumn(); this.ColDelete = new System.Windows.Forms.DataGridViewLinkColumn(); this.colAddTime = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colOpResult = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.splitContainer4 = new System.Windows.Forms.SplitContainer(); - this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); - this.btnClear = new DevComponents.DotNetBar.PanelEx(); - this.panelEx1 = new DevComponents.DotNetBar.PanelEx(); - this.txtFiltSaleNum = new System.Windows.Forms.TextBox(); - this.btnFiltSelect = new DevComponents.DotNetBar.PanelEx(); - this.label4 = new System.Windows.Forms.Label(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); @@ -190,6 +195,7 @@ namespace TemuKJD.WXForms.ProductForms this.ucGroupBoxEx3.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; this.ucGroupBoxEx3.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.ucGroupBoxEx3.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND; + this.ucGroupBoxEx3.Controls.Add(this.btnBatchDel); this.ucGroupBoxEx3.Controls.Add(this.label4); this.ucGroupBoxEx3.Controls.Add(this.txtFiltSaleNum); this.ucGroupBoxEx3.Controls.Add(this.btnFiltSelect); @@ -203,13 +209,82 @@ namespace TemuKJD.WXForms.ProductForms this.ucGroupBoxEx3.TabStop = false; this.ucGroupBoxEx3.Text = "商品下架"; // + // btnBatchDel + // + this.btnBatchDel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnBatchDel.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnBatchDel.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnBatchDel.DisabledBackColor = System.Drawing.Color.Empty; + this.btnBatchDel.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnBatchDel.Location = new System.Drawing.Point(208, 61); + this.btnBatchDel.Name = "btnBatchDel"; + this.btnBatchDel.Size = new System.Drawing.Size(84, 23); + this.btnBatchDel.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnBatchDel.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnBatchDel.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnBatchDel.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnBatchDel.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnBatchDel.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnBatchDel.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnBatchDel.Style.GradientAngle = 90; + this.btnBatchDel.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnBatchDel.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnBatchDel.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnBatchDel.TabIndex = 817; + this.btnBatchDel.Text = "批量刪除"; + this.btnBatchDel.Click += new System.EventHandler(this.btnBatchDel_Click); + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(96, 34); + this.label4.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(56, 17); + this.label4.TabIndex = 801; + this.label4.Text = "销量低于"; + // + // txtFiltSaleNum + // + this.txtFiltSaleNum.Location = new System.Drawing.Point(152, 31); + this.txtFiltSaleNum.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); + this.txtFiltSaleNum.Name = "txtFiltSaleNum"; + this.txtFiltSaleNum.Size = new System.Drawing.Size(33, 23); + this.txtFiltSaleNum.TabIndex = 795; + this.txtFiltSaleNum.Text = "1"; + // + // btnFiltSelect + // + this.btnFiltSelect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnFiltSelect.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnFiltSelect.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnFiltSelect.DisabledBackColor = System.Drawing.Color.Empty; + this.btnFiltSelect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnFiltSelect.Location = new System.Drawing.Point(32, 31); + this.btnFiltSelect.Name = "btnFiltSelect"; + this.btnFiltSelect.Size = new System.Drawing.Size(62, 23); + this.btnFiltSelect.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnFiltSelect.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnFiltSelect.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnFiltSelect.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnFiltSelect.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnFiltSelect.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnFiltSelect.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnFiltSelect.Style.GradientAngle = 90; + this.btnFiltSelect.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnFiltSelect.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnFiltSelect.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnFiltSelect.TabIndex = 794; + this.btnFiltSelect.Text = "批量选择"; + this.btnFiltSelect.Click += new System.EventHandler(this.btnFiltSelect_Click); + // // panelEx3 // this.panelEx3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.panelEx3.CanvasColor = System.Drawing.SystemColors.Control; this.panelEx3.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.panelEx3.DisabledBackColor = System.Drawing.Color.Empty; - this.panelEx3.Location = new System.Drawing.Point(208, 62); + this.panelEx3.Location = new System.Drawing.Point(208, 91); this.panelEx3.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); this.panelEx3.Name = "panelEx3"; this.panelEx3.Size = new System.Drawing.Size(84, 23); @@ -226,7 +301,7 @@ namespace TemuKJD.WXForms.ProductForms this.panelEx3.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.panelEx3.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; this.panelEx3.TabIndex = 546; - this.panelEx3.Text = "停止下架"; + this.panelEx3.Text = "停止下/刪"; this.panelEx3.Click += new System.EventHandler(this.btnStop_Click); // // panelEx4 @@ -235,7 +310,7 @@ namespace TemuKJD.WXForms.ProductForms this.panelEx4.CanvasColor = System.Drawing.SystemColors.Control; this.panelEx4.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.panelEx4.DisabledBackColor = System.Drawing.Color.Empty; - this.panelEx4.Location = new System.Drawing.Point(208, 93); + this.panelEx4.Location = new System.Drawing.Point(208, 121); this.panelEx4.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); this.panelEx4.Name = "panelEx4"; this.panelEx4.Size = new System.Drawing.Size(84, 23); @@ -440,19 +515,21 @@ namespace TemuKJD.WXForms.ProductForms | System.Windows.Forms.AnchorStyles.Left))); this.ucGroupBoxEx4.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); this.ucGroupBoxEx4.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND; + this.ucGroupBoxEx4.Controls.Add(this.cmbOnSaleStatus); this.ucGroupBoxEx4.Controls.Add(this.cmbPreType); this.ucGroupBoxEx4.Controls.Add(this.label3); + this.ucGroupBoxEx4.Controls.Add(this.txtIdFilter); + this.ucGroupBoxEx4.Controls.Add(this.lblIdFilter); this.ucGroupBoxEx4.Controls.Add(this.panelEx2); this.ucGroupBoxEx4.Controls.Add(this.txtPageEnd); this.ucGroupBoxEx4.Controls.Add(this.label2); this.ucGroupBoxEx4.Controls.Add(this.txtProductName); this.ucGroupBoxEx4.Controls.Add(this.label11); this.ucGroupBoxEx4.Controls.Add(this.btnClearFilter); - this.ucGroupBoxEx4.Controls.Add(this.txtIdFilter); this.ucGroupBoxEx4.Controls.Add(this.txtExtCodeFilter); - this.ucGroupBoxEx4.Controls.Add(this.lblIdFilter); this.ucGroupBoxEx4.Controls.Add(this.lblExtCodeFilter); this.ucGroupBoxEx4.Controls.Add(this.btnSearchProd); + this.ucGroupBoxEx4.Controls.Add(this.label5); this.ucGroupBoxEx4.Location = new System.Drawing.Point(162, 2); this.ucGroupBoxEx4.Name = "ucGroupBoxEx4"; this.ucGroupBoxEx4.Size = new System.Drawing.Size(410, 165); @@ -460,6 +537,21 @@ namespace TemuKJD.WXForms.ProductForms this.ucGroupBoxEx4.TabStop = false; this.ucGroupBoxEx4.Text = "商品查询"; // + // cmbOnSaleStatus + // + this.cmbOnSaleStatus.FormattingEnabled = true; + this.cmbOnSaleStatus.Items.AddRange(new object[] { + "全部", + "在售", + "下架"}); + this.cmbOnSaleStatus.Location = new System.Drawing.Point(68, 59); + this.cmbOnSaleStatus.Name = "cmbOnSaleStatus"; + this.cmbOnSaleStatus.Size = new System.Drawing.Size(134, 25); + this.cmbOnSaleStatus.TabIndex = 817; + this.cmbOnSaleStatus.Text = "在售"; + this.cmbOnSaleStatus.SelectedIndexChanged += new System.EventHandler(this.cmbOnSaleStatus_SelectedIndexChanged); + this.cmbOnSaleStatus.TextChanged += new System.EventHandler(this.cmbOnSaleStatus_TextChanged); + // // cmbPreType // this.cmbPreType.FormattingEnabled = true; @@ -484,13 +576,34 @@ namespace TemuKJD.WXForms.ProductForms this.label3.TabIndex = 806; this.label3.Text = "预售状态"; // + // txtIdFilter + // + this.txtIdFilter.Font = new System.Drawing.Font("微软雅黑", 10F); + this.txtIdFilter.Location = new System.Drawing.Point(262, 59); + this.txtIdFilter.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtIdFilter.Name = "txtIdFilter"; + this.txtIdFilter.Size = new System.Drawing.Size(134, 25); + this.txtIdFilter.TabIndex = 652; + this.txtIdFilter.Visible = false; + // + // lblIdFilter + // + this.lblIdFilter.AutoSize = true; + this.lblIdFilter.Location = new System.Drawing.Point(242, 63); + this.lblIdFilter.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.lblIdFilter.Name = "lblIdFilter"; + this.lblIdFilter.Size = new System.Drawing.Size(21, 17); + this.lblIdFilter.TabIndex = 651; + this.lblIdFilter.Text = "ID"; + this.lblIdFilter.Visible = false; + // // panelEx2 // this.panelEx2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.panelEx2.CanvasColor = System.Drawing.SystemColors.Control; this.panelEx2.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.panelEx2.DisabledBackColor = System.Drawing.Color.Empty; - this.panelEx2.Location = new System.Drawing.Point(338, 128); + this.panelEx2.Location = new System.Drawing.Point(338, 127); this.panelEx2.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); this.panelEx2.Name = "panelEx2"; this.panelEx2.Size = new System.Drawing.Size(58, 25); @@ -535,7 +648,7 @@ namespace TemuKJD.WXForms.ProductForms // txtProductName // this.txtProductName.Font = new System.Drawing.Font("微软雅黑", 10F); - this.txtProductName.Location = new System.Drawing.Point(68, 95); + this.txtProductName.Location = new System.Drawing.Point(68, 93); this.txtProductName.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); this.txtProductName.Name = "txtProductName"; this.txtProductName.Size = new System.Drawing.Size(328, 25); @@ -559,7 +672,7 @@ namespace TemuKJD.WXForms.ProductForms this.btnClearFilter.CanvasColor = System.Drawing.SystemColors.Control; this.btnClearFilter.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.btnClearFilter.DisabledBackColor = System.Drawing.Color.Empty; - this.btnClearFilter.Location = new System.Drawing.Point(276, 128); + this.btnClearFilter.Location = new System.Drawing.Point(276, 127); this.btnClearFilter.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); this.btnClearFilter.Name = "btnClearFilter"; this.btnClearFilter.Size = new System.Drawing.Size(58, 25); @@ -579,41 +692,20 @@ namespace TemuKJD.WXForms.ProductForms this.btnClearFilter.Text = "清空条件"; this.btnClearFilter.Click += new System.EventHandler(this.btnClearFilter_Click); // - // txtIdFilter - // - this.txtIdFilter.Font = new System.Drawing.Font("微软雅黑", 10F); - this.txtIdFilter.Location = new System.Drawing.Point(68, 60); - this.txtIdFilter.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); - this.txtIdFilter.Name = "txtIdFilter"; - this.txtIdFilter.Size = new System.Drawing.Size(134, 25); - this.txtIdFilter.TabIndex = 652; - this.txtIdFilter.Visible = false; - // // txtExtCodeFilter // this.txtExtCodeFilter.Font = new System.Drawing.Font("微软雅黑", 10F); - this.txtExtCodeFilter.Location = new System.Drawing.Point(262, 60); + this.txtExtCodeFilter.Location = new System.Drawing.Point(68, 127); this.txtExtCodeFilter.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); this.txtExtCodeFilter.Name = "txtExtCodeFilter"; this.txtExtCodeFilter.Size = new System.Drawing.Size(134, 25); this.txtExtCodeFilter.TabIndex = 555; this.txtExtCodeFilter.Visible = false; // - // lblIdFilter - // - this.lblIdFilter.AutoSize = true; - this.lblIdFilter.Location = new System.Drawing.Point(48, 65); - this.lblIdFilter.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); - this.lblIdFilter.Name = "lblIdFilter"; - this.lblIdFilter.Size = new System.Drawing.Size(21, 17); - this.lblIdFilter.TabIndex = 651; - this.lblIdFilter.Text = "ID"; - this.lblIdFilter.Visible = false; - // // lblExtCodeFilter // this.lblExtCodeFilter.AutoSize = true; - this.lblExtCodeFilter.Location = new System.Drawing.Point(231, 64); + this.lblExtCodeFilter.Location = new System.Drawing.Point(37, 131); this.lblExtCodeFilter.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.lblExtCodeFilter.Name = "lblExtCodeFilter"; this.lblExtCodeFilter.Size = new System.Drawing.Size(32, 17); @@ -627,7 +719,7 @@ namespace TemuKJD.WXForms.ProductForms this.btnSearchProd.Cursor = System.Windows.Forms.Cursors.Hand; this.btnSearchProd.DisabledBackColor = System.Drawing.Color.Empty; this.btnSearchProd.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnSearchProd.Location = new System.Drawing.Point(213, 128); + this.btnSearchProd.Location = new System.Drawing.Point(213, 127); this.btnSearchProd.Name = "btnSearchProd"; this.btnSearchProd.Size = new System.Drawing.Size(58, 25); this.btnSearchProd.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -645,6 +737,17 @@ namespace TemuKJD.WXForms.ProductForms this.btnSearchProd.Text = "商品查询"; this.btnSearchProd.Click += new System.EventHandler(this.btnSearchProd_Click); // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(13, 63); + this.label5.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label5.Name = "label5"; + this.label5.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.label5.Size = new System.Drawing.Size(56, 17); + this.label5.TabIndex = 818; + this.label5.Text = "商品状态"; + // // ucGroupBoxEx1 // this.ucGroupBoxEx1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) @@ -1015,19 +1118,19 @@ namespace TemuKJD.WXForms.ProductForms // 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, @@ -1198,19 +1301,19 @@ namespace TemuKJD.WXForms.ProductForms // this.dgvSelectProduct.AllowUserToAddRows = false; this.dgvSelectProduct.AllowUserToDeleteRows = false; - dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke; - this.dgvSelectProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3; + dataGridViewCellStyle11.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvSelectProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle11; this.dgvSelectProduct.AutoRowNumber = true; this.dgvSelectProduct.BackgroundColor = System.Drawing.Color.White; this.dgvSelectProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle4.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dgvSelectProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4; + 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.dgvSelectProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle12; this.dgvSelectProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dgvSelectProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.colCheck, @@ -1232,6 +1335,7 @@ namespace TemuKJD.WXForms.ProductForms this.colPrice, this.colSoldNum, this.colMsg, + this.colPreSale, this.colNotes, this.colUserNotes, this.ColDelete, @@ -1246,201 +1350,6 @@ namespace TemuKJD.WXForms.ProductForms this.dgvSelectProduct.TabIndex = 187; this.dgvSelectProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvSelectProduct_CellContentClick); // - // colCheck - // - this.colCheck.Frozen = true; - this.colCheck.HeaderText = "选择"; - this.colCheck.Name = "colCheck"; - this.colCheck.ReadOnly = true; - this.colCheck.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colCheck.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colCheck.Width = 30; - // - // colSelectId - // - this.colSelectId.HeaderText = "认领Id"; - this.colSelectId.Name = "colSelectId"; - this.colSelectId.ReadOnly = true; - this.colSelectId.Visible = false; - // - // colSupplierId - // - this.colSupplierId.Frozen = true; - this.colSupplierId.HeaderText = "店铺Id"; - this.colSupplierId.Name = "colSupplierId"; - this.colSupplierId.ReadOnly = true; - // - // colSupplierName - // - dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle5; - this.colSupplierName.Frozen = true; - this.colSupplierName.HeaderText = "店铺名称"; - this.colSupplierName.Name = "colSupplierName"; - this.colSupplierName.ReadOnly = true; - // - // colLogin - // - this.colLogin.HeaderText = "登录"; - this.colLogin.Name = "colLogin"; - this.colLogin.ReadOnly = true; - this.colLogin.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colLogin.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colLogin.Width = 40; - // - // colInShop - // - this.colInShop.HeaderText = "进店"; - this.colInShop.Name = "colInShop"; - this.colInShop.ReadOnly = true; - this.colInShop.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colInShop.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colInShop.Width = 40; - // - // colSpuId - // - this.colSpuId.HeaderText = "源商品ID"; - this.colSpuId.Name = "colSpuId"; - this.colSpuId.ReadOnly = true; - this.colSpuId.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colSpuId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colSpuId.Visible = false; - // - // colSkcId - // - this.colSkcId.FillWeight = 150F; - this.colSkcId.HeaderText = "商品SKC"; - this.colSkcId.Name = "colSkcId"; - this.colSkcId.ReadOnly = true; - this.colSkcId.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colSkcId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colSkcId.Visible = false; - this.colSkcId.Width = 80; - // - // colDraftId - // - this.colDraftId.HeaderText = "商品Id"; - this.colDraftId.Name = "colDraftId"; - this.colDraftId.ReadOnly = true; - this.colDraftId.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colDraftId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; - this.colDraftId.Width = 120; - // - // colImgUrl - // - this.colImgUrl.HeaderText = "图片地址"; - this.colImgUrl.Name = "colImgUrl"; - this.colImgUrl.ReadOnly = true; - this.colImgUrl.Visible = false; - // - // colProductSkcPic - // - this.colProductSkcPic.HeaderText = "图片"; - this.colProductSkcPic.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom; - this.colProductSkcPic.Name = "colProductSkcPic"; - this.colProductSkcPic.ReadOnly = true; - this.colProductSkcPic.Width = 60; - // - // colSkuFakeImgUrl - // - this.colSkuFakeImgUrl.HeaderText = "SKU替换图地址"; - this.colSkuFakeImgUrl.Name = "colSkuFakeImgUrl"; - this.colSkuFakeImgUrl.ReadOnly = true; - this.colSkuFakeImgUrl.Visible = false; - // - // colSkuFakeImg - // - this.colSkuFakeImg.HeaderText = "SKU替换图"; - this.colSkuFakeImg.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom; - this.colSkuFakeImg.Name = "colSkuFakeImg"; - this.colSkuFakeImg.ReadOnly = true; - this.colSkuFakeImg.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colSkuFakeImg.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.colSkuFakeImg.Visible = false; - this.colSkuFakeImg.Width = 60; - // - // colProductName - // - dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colProductName.DefaultCellStyle = dataGridViewCellStyle6; - this.colProductName.HeaderText = "商品标题"; - this.colProductName.Name = "colProductName"; - this.colProductName.ReadOnly = true; - this.colProductName.Width = 150; - // - // colProductCat - // - dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.colProductCat.DefaultCellStyle = dataGridViewCellStyle7; - this.colProductCat.HeaderText = "商品类目"; - this.colProductCat.Name = "colProductCat"; - this.colProductCat.ReadOnly = true; - this.colProductCat.Width = 90; - // - // colExtCode - // - this.colExtCode.HeaderText = "商品货号"; - this.colExtCode.Name = "colExtCode"; - this.colExtCode.ReadOnly = true; - this.colExtCode.Width = 145; - // - // colPrice - // - this.colPrice.HeaderText = "价格"; - this.colPrice.Name = "colPrice"; - this.colPrice.ReadOnly = true; - this.colPrice.Width = 60; - // - // colSoldNum - // - this.colSoldNum.HeaderText = "销量"; - this.colSoldNum.Name = "colSoldNum"; - this.colSoldNum.ReadOnly = true; - this.colSoldNum.Width = 60; - // - // colMsg - // - this.colMsg.HeaderText = "状态"; - this.colMsg.Name = "colMsg"; - this.colMsg.ReadOnly = true; - // - // colNotes - // - this.colNotes.HeaderText = "上传备注"; - this.colNotes.Name = "colNotes"; - this.colNotes.ReadOnly = true; - this.colNotes.Visible = false; - // - // colUserNotes - // - this.colUserNotes.HeaderText = "重上/已买"; - this.colUserNotes.Name = "colUserNotes"; - this.colUserNotes.ReadOnly = true; - this.colUserNotes.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.colUserNotes.Visible = false; - this.colUserNotes.Width = 75; - // - // ColDelete - // - this.ColDelete.HeaderText = "删除"; - this.ColDelete.Name = "ColDelete"; - this.ColDelete.ReadOnly = true; - this.ColDelete.Visible = false; - this.ColDelete.Width = 75; - // - // colAddTime - // - this.colAddTime.HeaderText = "上架时间"; - this.colAddTime.Name = "colAddTime"; - this.colAddTime.ReadOnly = true; - // - // colOpResult - // - this.colOpResult.HeaderText = "操作结果"; - this.colOpResult.Name = "colOpResult"; - this.colOpResult.ReadOnly = true; - this.colOpResult.Width = 260; - // // splitContainer4 // this.splitContainer4.Dock = System.Windows.Forms.DockStyle.Fill; @@ -1521,49 +1430,211 @@ namespace TemuKJD.WXForms.ProductForms this.panelEx1.Text = "停止当前操作"; this.panelEx1.Visible = false; // - // txtFiltSaleNum + // colCheck // - this.txtFiltSaleNum.Location = new System.Drawing.Point(152, 31); - this.txtFiltSaleNum.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); - this.txtFiltSaleNum.Name = "txtFiltSaleNum"; - this.txtFiltSaleNum.Size = new System.Drawing.Size(33, 23); - this.txtFiltSaleNum.TabIndex = 795; - this.txtFiltSaleNum.Text = "1"; + this.colCheck.Frozen = true; + this.colCheck.HeaderText = "选择"; + this.colCheck.Name = "colCheck"; + this.colCheck.ReadOnly = true; + this.colCheck.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colCheck.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colCheck.Width = 30; // - // btnFiltSelect + // colSelectId // - this.btnFiltSelect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnFiltSelect.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.btnFiltSelect.Cursor = System.Windows.Forms.Cursors.Hand; - this.btnFiltSelect.DisabledBackColor = System.Drawing.Color.Empty; - this.btnFiltSelect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnFiltSelect.Location = new System.Drawing.Point(32, 31); - this.btnFiltSelect.Name = "btnFiltSelect"; - this.btnFiltSelect.Size = new System.Drawing.Size(62, 23); - this.btnFiltSelect.Style.Alignment = System.Drawing.StringAlignment.Center; - this.btnFiltSelect.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnFiltSelect.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); - this.btnFiltSelect.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.btnFiltSelect.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; - this.btnFiltSelect.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; - this.btnFiltSelect.Style.ForeColor.Color = System.Drawing.Color.White; - this.btnFiltSelect.Style.GradientAngle = 90; - this.btnFiltSelect.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; - this.btnFiltSelect.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); - this.btnFiltSelect.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); - this.btnFiltSelect.TabIndex = 794; - this.btnFiltSelect.Text = "批量选择"; - this.btnFiltSelect.Click += new System.EventHandler(this.btnFiltSelect_Click); + this.colSelectId.HeaderText = "认领Id"; + this.colSelectId.Name = "colSelectId"; + this.colSelectId.ReadOnly = true; + this.colSelectId.Visible = false; // - // label4 + // colSupplierId // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(96, 34); - this.label4.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(56, 17); - this.label4.TabIndex = 801; - this.label4.Text = "销量低于"; + this.colSupplierId.Frozen = true; + this.colSupplierId.HeaderText = "店铺Id"; + this.colSupplierId.Name = "colSupplierId"; + this.colSupplierId.ReadOnly = true; + // + // colSupplierName + // + dataGridViewCellStyle13.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle13; + this.colSupplierName.Frozen = true; + this.colSupplierName.HeaderText = "店铺名称"; + this.colSupplierName.Name = "colSupplierName"; + this.colSupplierName.ReadOnly = true; + // + // colLogin + // + this.colLogin.HeaderText = "登录"; + this.colLogin.Name = "colLogin"; + this.colLogin.ReadOnly = true; + this.colLogin.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colLogin.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colLogin.Width = 40; + // + // colInShop + // + this.colInShop.HeaderText = "进店"; + this.colInShop.Name = "colInShop"; + this.colInShop.ReadOnly = true; + this.colInShop.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colInShop.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colInShop.Width = 40; + // + // colSpuId + // + this.colSpuId.HeaderText = "源商品ID"; + this.colSpuId.Name = "colSpuId"; + this.colSpuId.ReadOnly = true; + this.colSpuId.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSpuId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSpuId.Visible = false; + // + // colSkcId + // + this.colSkcId.FillWeight = 150F; + this.colSkcId.HeaderText = "商品SKC"; + this.colSkcId.Name = "colSkcId"; + this.colSkcId.ReadOnly = true; + this.colSkcId.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSkcId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSkcId.Visible = false; + this.colSkcId.Width = 80; + // + // colDraftId + // + this.colDraftId.HeaderText = "商品Id"; + this.colDraftId.Name = "colDraftId"; + this.colDraftId.ReadOnly = true; + this.colDraftId.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colDraftId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + this.colDraftId.Width = 115; + // + // colImgUrl + // + this.colImgUrl.HeaderText = "图片地址"; + this.colImgUrl.Name = "colImgUrl"; + this.colImgUrl.ReadOnly = true; + this.colImgUrl.Visible = false; + // + // colProductSkcPic + // + this.colProductSkcPic.HeaderText = "图片"; + this.colProductSkcPic.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom; + this.colProductSkcPic.Name = "colProductSkcPic"; + this.colProductSkcPic.ReadOnly = true; + this.colProductSkcPic.Width = 60; + // + // colSkuFakeImgUrl + // + this.colSkuFakeImgUrl.HeaderText = "SKU替换图地址"; + this.colSkuFakeImgUrl.Name = "colSkuFakeImgUrl"; + this.colSkuFakeImgUrl.ReadOnly = true; + this.colSkuFakeImgUrl.Visible = false; + // + // colSkuFakeImg + // + this.colSkuFakeImg.HeaderText = "SKU替换图"; + this.colSkuFakeImg.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom; + this.colSkuFakeImg.Name = "colSkuFakeImg"; + this.colSkuFakeImg.ReadOnly = true; + this.colSkuFakeImg.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSkuFakeImg.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSkuFakeImg.Visible = false; + this.colSkuFakeImg.Width = 60; + // + // colProductName + // + dataGridViewCellStyle14.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colProductName.DefaultCellStyle = dataGridViewCellStyle14; + this.colProductName.HeaderText = "商品标题"; + this.colProductName.Name = "colProductName"; + this.colProductName.ReadOnly = true; + this.colProductName.Width = 140; + // + // colProductCat + // + dataGridViewCellStyle15.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colProductCat.DefaultCellStyle = dataGridViewCellStyle15; + this.colProductCat.HeaderText = "商品类目"; + this.colProductCat.Name = "colProductCat"; + this.colProductCat.ReadOnly = true; + this.colProductCat.Width = 80; + // + // colExtCode + // + this.colExtCode.HeaderText = "商品货号"; + this.colExtCode.Name = "colExtCode"; + this.colExtCode.ReadOnly = true; + this.colExtCode.Width = 145; + // + // colPrice + // + this.colPrice.HeaderText = "价格"; + this.colPrice.Name = "colPrice"; + this.colPrice.ReadOnly = true; + this.colPrice.Width = 50; + // + // colSoldNum + // + this.colSoldNum.HeaderText = "销量"; + this.colSoldNum.Name = "colSoldNum"; + this.colSoldNum.ReadOnly = true; + this.colSoldNum.Width = 50; + // + // colMsg + // + this.colMsg.HeaderText = "状态"; + this.colMsg.Name = "colMsg"; + this.colMsg.ReadOnly = true; + this.colMsg.Width = 50; + // + // colPreSale + // + this.colPreSale.HeaderText = "预售"; + this.colPreSale.Name = "colPreSale"; + this.colPreSale.ReadOnly = true; + this.colPreSale.Width = 50; + // + // colNotes + // + this.colNotes.HeaderText = "上传备注"; + this.colNotes.Name = "colNotes"; + this.colNotes.ReadOnly = true; + this.colNotes.Visible = false; + // + // colUserNotes + // + this.colUserNotes.HeaderText = "重上/已买"; + this.colUserNotes.Name = "colUserNotes"; + this.colUserNotes.ReadOnly = true; + this.colUserNotes.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colUserNotes.Visible = false; + this.colUserNotes.Width = 75; + // + // ColDelete + // + this.ColDelete.HeaderText = "删除"; + this.ColDelete.Name = "ColDelete"; + this.ColDelete.ReadOnly = true; + this.ColDelete.Visible = false; + this.ColDelete.Width = 75; + // + // colAddTime + // + dataGridViewCellStyle16.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colAddTime.DefaultCellStyle = dataGridViewCellStyle16; + this.colAddTime.HeaderText = "上架时间"; + this.colAddTime.Name = "colAddTime"; + this.colAddTime.ReadOnly = true; + this.colAddTime.Width = 80; + // + // colOpResult + // + this.colOpResult.HeaderText = "操作结果"; + this.colOpResult.Name = "colOpResult"; + this.colOpResult.ReadOnly = true; + this.colOpResult.Width = 240; // // WXProdPreSaleForm // @@ -1681,6 +1752,12 @@ namespace TemuKJD.WXForms.ProductForms private DevComponents.DotNetBar.PanelEx panelEx3; private DevComponents.DotNetBar.PanelEx panelEx4; private DevComponents.DotNetBar.PanelEx btnDown; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox txtFiltSaleNum; + private DevComponents.DotNetBar.PanelEx btnFiltSelect; + private DevComponents.DotNetBar.PanelEx btnBatchDel; + private System.Windows.Forms.ComboBox cmbOnSaleStatus; + private System.Windows.Forms.Label label5; private System.Windows.Forms.DataGridViewCheckBoxColumn colCheck; private System.Windows.Forms.DataGridViewTextBoxColumn colSelectId; private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierId; @@ -1700,13 +1777,11 @@ namespace TemuKJD.WXForms.ProductForms private System.Windows.Forms.DataGridViewTextBoxColumn colPrice; private System.Windows.Forms.DataGridViewTextBoxColumn colSoldNum; private System.Windows.Forms.DataGridViewTextBoxColumn colMsg; + private System.Windows.Forms.DataGridViewTextBoxColumn colPreSale; private System.Windows.Forms.DataGridViewTextBoxColumn colNotes; private System.Windows.Forms.DataGridViewLinkColumn colUserNotes; private System.Windows.Forms.DataGridViewLinkColumn ColDelete; private System.Windows.Forms.DataGridViewTextBoxColumn colAddTime; private System.Windows.Forms.DataGridViewTextBoxColumn colOpResult; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.TextBox txtFiltSaleNum; - private DevComponents.DotNetBar.PanelEx btnFiltSelect; } } \ No newline at end of file diff --git a/TEMUKJD/WXForms/ProductForms/WXProdPreSaleForm.cs b/TEMUKJD/WXForms/ProductForms/WXProdPreSaleForm.cs index 106552d..563020f 100644 --- a/TEMUKJD/WXForms/ProductForms/WXProdPreSaleForm.cs +++ b/TEMUKJD/WXForms/ProductForms/WXProdPreSaleForm.cs @@ -37,10 +37,12 @@ namespace TemuKJD.WXForms.ProductForms int PageBegin = 1; int PageEnd = 999; string PreType = ""; + string OnSaleStatus = "在售"; + public CancellationTokenSource cancellationTokenSource { get; set; } = null; public bool IsLoadComplate { get; set; } = false; - bool isInit = false; + bool isInit = false; CheckBox chkSelectAll = null; ConcurrentList lstShopAuthInfo = new ConcurrentList(); ConcurrentList lstWXShopTokenInfo = new ConcurrentList(); @@ -52,8 +54,8 @@ namespace TemuKJD.WXForms.ProductForms public Dictionary dicCheckedShopId = new Dictionary(); public Dictionary dicShopUpload = new Dictionary(); public string pdd_product_cates = ""; - public List forceFilteKeyWords = new List() - { + public List forceFilteKeyWords = new List() + { "亏本", "冲量", "白菜价", "跳楼价", "xxx", "xx", "最大", "最小", "低价", "降价", "成本", "赔钱", "甩卖", "真丝", "蚕丝", "香云纱", "羊绒", "羊毛", "羊羔绒", "羊羔毛", "羽绒", "皮草" }; @@ -80,7 +82,7 @@ namespace TemuKJD.WXForms.ProductForms lstAddPriceRule = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("wx_add_price_rules"); if (lstAddPriceRule == null) - { + { lstAddPriceRule = new NaiBa.Util.ConcurrentList(); lstAddPriceRule.Add(new AddPriceRule() { MoreThanPrice = 0, LessThanPrice = 10, AddPriceTimes = 2, AddMorePrice = 10, SinglePriceAdd = 1 }); lstAddPriceRule.Add(new AddPriceRule() { MoreThanPrice = 10, LessThanPrice = 20, AddPriceTimes = 2, AddMorePrice = 10, SinglePriceAdd = 1 }); @@ -96,7 +98,7 @@ namespace TemuKJD.WXForms.ProductForms defaultAddPriceRule = NaiBa.Util.Helper.ConfigHelper.LoadConfig("wx_default_add_price_rule"); if (defaultAddPriceRule == null) - { + { defaultAddPriceRule = new AddPriceRule() { AddPriceTimes = 1.3m, AddMorePrice = 1, SinglePriceAdd = 1 }; } @@ -170,7 +172,7 @@ namespace TemuKJD.WXForms.ProductForms // } //} -//#if DEBUG + //#if DEBUG if (BaseClass.SaLevel == 1) { //txtIdFilter.Visible = true; @@ -178,7 +180,7 @@ namespace TemuKJD.WXForms.ProductForms //lblIdFilter.Visible = true; //lblExtCodeFilter.Visible = true; } -//#endif + //#endif IsLoadComplate = true; } @@ -262,7 +264,7 @@ namespace TemuKJD.WXForms.ProductForms while (tList.Where(ta => !ta.IsFaulted && !ta.IsCompleted).Count() >= 20) { Thread.Sleep(100); } } while (tList.Where(ta => !ta.IsFaulted && !ta.IsCompleted).Count() >= 1) { Thread.Sleep(100); } - NaiBa.Util.Helper.ConfigHelper.SaveConfig( "wx_shop_auth_list", lstShopAuthInfo); + NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_shop_auth_list", lstShopAuthInfo); Invoke(new Action(() => { pbLoadingShop.Visible = false; })); }); } @@ -282,7 +284,7 @@ namespace TemuKJD.WXForms.ProductForms foreach (DataGridViewRow row in dgvShop.Rows) { //if (list.Any(l => l == row.Cells["colShopId"]?.Value?.ToString())) - if(row.Visible == true) + if (row.Visible == true) row.Cells["colSelect"].Value = true; } } @@ -381,7 +383,7 @@ namespace TemuKJD.WXForms.ProductForms canUse ? "在线" : "掉线", lstShopAuthInfo.FirstOrDefault(sa => sa.ShopId == shopEntity.ShopId)?.ExpiresTime > DateTime.Now.AddMinutes(5) ? "可用" : "过期", canUse, - dicShopUpload.ContainsKey(shopEntity.ShopId) && dicShopUpload[shopEntity.ShopId].DicDayUploadCount.ContainsKey(day) ? + dicShopUpload.ContainsKey(shopEntity.ShopId) && dicShopUpload[shopEntity.ShopId].DicDayUploadCount.ContainsKey(day) ? dicShopUpload[shopEntity.ShopId].DicDayUploadCount[day] : 0, dicShopUpload.ContainsKey(shopEntity.ShopId) && dicShopUpload[shopEntity.ShopId].OnSaleRefreshDay == DateTime.Now.ToString("yyyyMMdd").ParseToInt() ? dicShopUpload[shopEntity.ShopId].OnSaleCount : 0, @@ -614,7 +616,7 @@ namespace TemuKJD.WXForms.ProductForms this.statusBar.pgbTaskProgress.Maximum = dgvSelectProduct.Rows.Count; this.statusBar.UpdateProgressBar(0); })); - + foreach (var row in rowLst) { Invoke(new Action(() => @@ -630,7 +632,7 @@ namespace TemuKJD.WXForms.ProductForms var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId); if (shop == null) { - Invoke(new Action(() => + Invoke(new Action(() => { row.Cells["colOpResult"].Value = "店铺不存在"; })); @@ -647,7 +649,7 @@ namespace TemuKJD.WXForms.ProductForms //shop = new ShopLoginInfo(); var getEditProdRst = WXUpload.getEditProductV2(shop, prodId); Thread.Sleep(Randomx.GetId(50, 100)); - if(getEditProdRst.Contains("biz magic invalid")) + if (getEditProdRst.Contains("biz magic invalid")) { WXShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false); } @@ -690,6 +692,7 @@ namespace TemuKJD.WXForms.ProductForms // 提交免审修改(实际生效接口) var listingAuditFreeRst = WXUpload.listingAuditFree(shop, productJson, prodId, time1, time2); + System.Threading.Thread.Sleep(Randomx.GetId(100, 500)); if (!listingAuditFreeRst.Contains("\"code\":0")) { var errmsg = BaseRegex.GetStringJson(ref listingAuditFreeRst, "msg"); @@ -711,8 +714,8 @@ namespace TemuKJD.WXForms.ProductForms } if (/*chkPreSale.Checked &&*/ chkFailDownProd.Checked) - { - var downProd = WXPreSale.DownProd(shop, prodId.ParseToLong()); + { + var downProd = WXPreSale.DownProd(shop, prodId); System.Threading.Thread.Sleep(Randomx.GetId(50, 100)); if (downProd.Contains("\"code\":0")) { @@ -736,7 +739,7 @@ namespace TemuKJD.WXForms.ProductForms } } } - + private void btnStop_Click(object sender, EventArgs e) { if (this.cancellationTokenSource != null) @@ -760,7 +763,7 @@ namespace TemuKJD.WXForms.ProductForms { GetProduct(shopIdLst); Invoke(new Action(() => - { + { this.statusBar.lblTaskStatus.Text = "商品查询完毕"; BaseMsgForm.ShowInfo("商品查询完毕"); pbLoading.Visible = false; @@ -772,9 +775,9 @@ namespace TemuKJD.WXForms.ProductForms void GetProduct(List shopIdLst) { List shopLst = GlobalConfig.ShopLoginList.Where(s => shopIdLst.Contains(s.ShopId)).ToList(); - foreach(var shop in shopLst) + foreach (var shop in shopLst) { - if(cancellationTokenSource.IsCancellationRequested) + if (cancellationTokenSource.IsCancellationRequested) break; if (shop.LoginStatus != "登录成功") @@ -794,11 +797,16 @@ namespace TemuKJD.WXForms.ProductForms break; string getProdOnSaleRst = ""; + int onSaleStatusCode = -1; + if (OnSaleStatus == "在售") + onSaleStatusCode = 5; + else if (OnSaleStatus == "下架") + onSaleStatusCode = 11; if (string.IsNullOrEmpty(PreType)) - getProdOnSaleRst = WXPreSale.scanProductPreview(shop, page, nextKey, pageSize); + getProdOnSaleRst = WXPreSale.scanProductPreview(shop, page, nextKey, pageSize, onSaleStatusCode); else - getProdOnSaleRst = WXPreSale.searchProduct(shop, page, PreType == "预售" ? 1 : 0, pageSize); + getProdOnSaleRst = WXPreSale.searchProduct(shop, page, PreType == "预售" ? 1 : 0, pageSize, onSaleStatusCode); Thread.Sleep(Randomx.GetId(50, 100)); if (!getProdOnSaleRst.Contains("\"success\":true")) { @@ -806,17 +814,18 @@ namespace TemuKJD.WXForms.ProductForms if (string.IsNullOrEmpty(error)) error = getProdOnSaleRst; - WXShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false); + WXShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false); if (shop.LoginStatus != "登录成功") { Invoke(new Action(() => { BindShop(shop, shopIdLst, "店铺掉线"); })); } var shopRow = dgvShop.Rows.Cast().FirstOrDefault(r => r.Cells["colShopId"].Value.ParseToString() == shop.ShopId); - Invoke(new Action(() => { + Invoke(new Action(() => + { if (shopRow != null) { - shopRow.Cells["colMsg"].Value = error; + shopRow.Cells["colOpResult"].Value = error; } })); break; @@ -841,16 +850,21 @@ namespace TemuKJD.WXForms.ProductForms foreach (JObject prod in prodObjs["productList"]) { var pStr = JsonHelper.SerializeObject(prod); - Invoke(new Action(() => + Invoke(new Action(() => { decimal? price = null; try { price = prod["skuList"][0]["price"].ParseToDecimal() / 100; } catch { } var prodId = prod["productId"].ParseToString(); if (dgvSelectProduct.Rows.Cast().Any(r => r.Cells["colDraftId"].ParseToString() == prodId)) { - + } - + string StatusStr = "其他"; + if (prod["status"].ParseToInt() == 5) + StatusStr = "在售"; + if (prod["status"].ParseToInt() == 11) + StatusStr = "下架"; + var rowIndex = this.dgvSelectProduct.Rows.Add( false, "", @@ -866,13 +880,14 @@ namespace TemuKJD.WXForms.ProductForms "", // 替换图地址 null, // 替换图 prod["title"].ParseToString(), // 用户端显示商品原名 - (prod["recommendCategory"].IsJTokenNullOrEmpty() || prod["recommendCategory"]["categoryNames"].IsJTokenNullOrEmpty()) ? + (prod["recommendCategory"].IsJTokenNullOrEmpty() || prod["recommendCategory"]["categoryNames"].IsJTokenNullOrEmpty()) ? "" : string.Join(" >> ", prod["recommendCategory"]["categoryNames"].Select(s => s.ParseToString())), // 类目名称 prod["spuCode"].ParseToString(), //price, prod["price"].ParseToDecimal() * 0.01m, prod["soldNum"].ParseToInt(), - "在售" + (prod["presaleTag"].ParseToInt() == 1 ? "[预售]" : ""), + StatusStr, + prod["presaleTag"].ParseToInt() == 1 ? "[预售]" : "", "", // 备注 "", "删除", @@ -880,13 +895,14 @@ namespace TemuKJD.WXForms.ProductForms ""); dgvSelectProduct.Rows[rowIndex].Height = 60; - dgvSelectProduct.Rows[rowIndex].Cells["colMsg"].Style.ForeColor = dgvSelectProduct.Rows[rowIndex].Cells["colMsg"].Value.ParseToString().Contains("预售") ? Color.Orange : Color.Blue; + dgvSelectProduct.Rows[rowIndex].Cells["colMsg"].Style.ForeColor = dgvSelectProduct.Rows[rowIndex].Cells["colMsg"].Value.ParseToString().Contains("在售") ? Color.Blue : Color.Red; + dgvSelectProduct.Rows[rowIndex].Cells["colPreSale"].Style.ForeColor = dgvSelectProduct.Rows[rowIndex].Cells["colPreSale"].Value.ParseToString().Contains("预售") ? Color.Green : Color.Blue; })); } } catch (Exception ex) { - + } } } @@ -913,6 +929,8 @@ namespace TemuKJD.WXForms.ProductForms txtIdFilter.Text = ""; txtExtCodeFilter.Text = ""; txtProductName.Text = ""; + cmbPreType.Text = ""; + cmbOnSaleStatus.Text = "在售"; } private void txtPreDays_TextChanged(object sender, EventArgs e) @@ -931,7 +949,7 @@ namespace TemuKJD.WXForms.ProductForms private void btnFilterShop_Click(object sender, EventArgs e) { - foreach(DataGridViewRow row in dgvShop.Rows) + foreach (DataGridViewRow row in dgvShop.Rows) { string notes = cmbFilterShopNotes.Text.Trim().Trim(';'); if (notes == "全部") @@ -963,7 +981,7 @@ namespace TemuKJD.WXForms.ProductForms private void btnReverse_Click(object sender, EventArgs e) { - foreach(DataGridViewRow row in dgvShop.Rows) + foreach (DataGridViewRow row in dgvShop.Rows) { if (row.Visible == true) row.Cells["colSelect"].Value = !row.Cells["colSelect"].Value.ParseToBool(); @@ -1066,7 +1084,7 @@ namespace TemuKJD.WXForms.ProductForms private void btnSelectPre_Click(object sender, EventArgs e) { - foreach(DataGridViewRow row in dgvSelectProduct.Rows) + foreach (DataGridViewRow row in dgvSelectProduct.Rows) { Invoke(new Action(() => { })); } @@ -1088,14 +1106,25 @@ namespace TemuKJD.WXForms.ProductForms this.pbLoading.Visible = true; this.btnSetPreSale.Enabled = false; + if (cancellationTokenSource != null && !cancellationTokenSource.IsCancellationRequested) + cancellationTokenSource.Cancel(); cancellationTokenSource = new CancellationTokenSource(); Task.Run(() => { SetProdDown(rowLst); Invoke(new Action(() => { - this.statusBar.lblTaskStatus.Text = "商品下架完毕"; - BaseMsgForm.ShowInfo("商品下架完毕"); + if (cancellationTokenSource.IsCancellationRequested) + { + this.statusBar.lblTaskStatus.Text = "商品下架中断"; + BaseMsgForm.ShowInfo("商品下架中断"); + } + else + { + this.statusBar.lblTaskStatus.Text = "商品下架完毕"; + BaseMsgForm.ShowInfo("商品下架完毕"); + } + this.pbLoading.Visible = false; this.btnSetPreSale.Enabled = true; })); @@ -1113,24 +1142,35 @@ namespace TemuKJD.WXForms.ProductForms this.statusBar.UpdateProgressBar(0); })); - foreach (var row in rowLst) + while (rowLst.Count > 0) { - Invoke(new Action(() => - { - row.Cells["colOpResult"].Value = ""; - })); - if (cancellationTokenSource.IsCancellationRequested) break; - var prodId = row.Cells["colDraftId"].Value.ParseToString(); - var shopId = row.Cells["colSupplierId"].Value.ParseToString(); + var r0 = rowLst.FirstOrDefault(); + var shopId = r0.Cells["colSupplierId"].Value.ParseToString(); var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId); + var rowLstTmp = rowLst.Where(r => r.Cells["colSupplierId"].Value.ParseToString() == shopId).Take(50).ToList(); + + foreach (var r in rowLstTmp) + { + rowLst.Remove(r); + + Invoke(new Action(() => + { + this.statusBar.lblTaskStatus.Text = "正在下架" + "...".Substring(0, DateTime.Now.Second % 4); + this.statusBar.UpdateProgressBar(this.statusBar.pgbTaskProgress.Value + 1); + r.Cells["colOpResult"].Value = ""; + })); + } if (shop == null) { Invoke(new Action(() => { - row.Cells["colOpResult"].Value = "店铺不存在"; + foreach (var r in rowLstTmp) + { + r.Cells["colOpResult"].Value = "店铺不存在"; + } })); continue; } @@ -1138,13 +1178,23 @@ namespace TemuKJD.WXForms.ProductForms { Invoke(new Action(() => { - row.Cells["colOpResult"].Value = "店铺掉线"; + foreach (var r in rowLstTmp) + { + r.Cells["colOpResult"].Value = "店铺掉线"; + } })); continue; } - - var downProdRst = WXPreSale.DownProd(shop, prodId.ParseToLong()); - System.Threading.Thread.Sleep(Randomx.GetId(200, 500)); + + List prodIdLst = new List(); + foreach (var row in rowLstTmp) + { + var prodId = row.Cells["colDraftId"].Value.ParseToString(); + prodIdLst.Add(prodId); + } + + var downProdRst = WXPreSale.DownProd(shop, string.Join(",", prodIdLst)); + Thread.Sleep(Randomx.GetId(1000, 1500)); if (!downProdRst.Contains("\"code\":0")) { if (downProdRst.Contains("biz magic invalid")) @@ -1154,7 +1204,10 @@ namespace TemuKJD.WXForms.ProductForms { Invoke(new Action(() => { - row.Cells["colOpResult"].Value = "店铺掉线"; + foreach (var row in rowLstTmp) + { + row.Cells["colOpResult"].Value = "店铺掉线"; + } })); continue; } @@ -1166,15 +1219,30 @@ namespace TemuKJD.WXForms.ProductForms Invoke(new Action(() => { - row.Cells["colOpResult"].Value = errmsg; + foreach (var row in rowLstTmp) + { + if (downProdRst.Contains("\"code\":108002")) + { + var prodId = row.Cells["colDraftId"].Value.ParseToString(); + if (downProdRst.Contains(prodId)) + row.Cells["colOpResult"].Value = "下架失败,请检查商品是否已下架或不存在"; + else + row.Cells["colOpResult"].Value = "下架成功"; + } + else + row.Cells["colOpResult"].Value = errmsg; + } })); } - + if (downProdRst.Contains("\"code\":0")) { Invoke(new Action(() => { - row.Cells["colOpResult"].Value = "下架成功"; + foreach (var row in rowLstTmp) + { + row.Cells["colOpResult"].Value = "下架成功"; + } })); } } @@ -1182,7 +1250,7 @@ namespace TemuKJD.WXForms.ProductForms private void btnFiltSelect_Click(object sender, EventArgs e) { - foreach(DataGridViewRow row in dgvSelectProduct.Rows) + foreach (DataGridViewRow row in dgvSelectProduct.Rows) { if (row.Cells["colSoldNum"].Value.ParseToInt() >= txtFiltSaleNum.Text.Trim().ParseToInt()) row.Cells["colCheck"].Value = false; @@ -1190,15 +1258,183 @@ namespace TemuKJD.WXForms.ProductForms row.Cells["colCheck"].Value = true; } } + + private void cmbOnSaleStatus_SelectedIndexChanged(object sender, EventArgs e) + { + + } + + private void cmbOnSaleStatus_TextChanged(object sender, EventArgs e) + { + OnSaleStatus = cmbOnSaleStatus.Text; + } + + private void btnBatchDel_Click(object sender, EventArgs e) + { + var rowLst = dgvSelectProduct.Rows.Cast().Where(r => r.Cells["colCheck"].Value.ParseToBool() == true).ToList(); + if (rowLst.Count <= 0) + { + BaseMsgForm.ShowError("请勾选需要操作的商品!"); + return; + } + + this.pbLoading.Visible = true; + this.btnSetPreSale.Enabled = false; + if (cancellationTokenSource != null && !cancellationTokenSource.IsCancellationRequested) + cancellationTokenSource.Cancel(); + cancellationTokenSource = new CancellationTokenSource(); + Task.Run(() => + { + SetProdDel(rowLst); + Invoke(new Action(() => + { + if (cancellationTokenSource.IsCancellationRequested) + { + this.statusBar.lblTaskStatus.Text = "商品删除中断"; + BaseMsgForm.ShowInfo("商品删除中断"); + } + else + { + this.statusBar.lblTaskStatus.Text = "商品删除完毕"; + BaseMsgForm.ShowInfo("商品删除完毕"); + } + + this.pbLoading.Visible = false; + this.btnSetPreSale.Enabled = true; + })); + }, cancellationTokenSource.Token); + + } + + void SetProdDel(List rowLst) + { + Invoke(new Action(() => + { + this.pbLoading.Visible = true; + this.statusBar.lblTaskStatus.Text = "正在删除" + "...".Substring(0, DateTime.Now.Second % 4); + this.statusBar.pgbTaskProgress.Maximum = dgvSelectProduct.Rows.Count; + this.statusBar.UpdateProgressBar(0); + })); + + while (rowLst.Count > 0) + { + if (cancellationTokenSource.IsCancellationRequested) + break; + + var r0 = rowLst.FirstOrDefault(); + var shopId = r0.Cells["colSupplierId"].Value.ParseToString(); + var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId); + var rowLstTmp = rowLst.Where(r => r.Cells["colSupplierId"].Value.ParseToString() == shopId).Take(50).ToList(); + + foreach (var r in rowLstTmp) + { + rowLst.Remove(r); + + Invoke(new Action(() => + { + this.statusBar.lblTaskStatus.Text = "正在删除" + "...".Substring(0, DateTime.Now.Second % 4); + this.statusBar.UpdateProgressBar(this.statusBar.pgbTaskProgress.Value + 1); + r.Cells["colOpResult"].Value = ""; + })); + } + if (shop == null) + { + Invoke(new Action(() => + { + foreach (var r in rowLstTmp) + { + r.Cells["colOpResult"].Value = "店铺不存在"; + } + })); + continue; + } + if (shop.LoginStatus != "登录成功") + { + Invoke(new Action(() => + { + foreach (var r in rowLstTmp) + { + r.Cells["colOpResult"].Value = "店铺掉线"; + } + })); + continue; + } + + List prodIdLst = new List(); + foreach (var row in rowLstTmp) + { + var prodId = row.Cells["colDraftId"].Value.ParseToString(); + prodIdLst.Add(prodId); + } + + var downProdRst = WXPreSale.DelProd(shop, string.Join(",", prodIdLst)); + Thread.Sleep(Randomx.GetId(1000, 1500)); + if (!downProdRst.Contains("\"code\":0")) + { + if (downProdRst.Contains("biz magic invalid")) + { + WXShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false); + if (shop.LoginStatus != "登录成功") + { + Invoke(new Action(() => + { + foreach (var row in rowLstTmp) + { + row.Cells["colOpResult"].Value = "店铺掉线"; + } + })); + continue; + } + } + + var errmsg = BaseRegex.GetStringJson(ref downProdRst, "msg"); + if (string.IsNullOrWhiteSpace(errmsg)) + errmsg = downProdRst; + + Invoke(new Action(() => + { + foreach (var row in rowLstTmp) + { + if (downProdRst.Contains("\"code\":108002")) + { + var prodId = row.Cells["colDraftId"].Value.ParseToString(); + if (downProdRst.Contains(prodId)) + row.Cells["colOpResult"].Value = "删除失败,请检查商品是否已删除"; + else + row.Cells["colOpResult"].Value = "删除成功"; + } + else + row.Cells["colOpResult"].Value = errmsg; + } + })); + } + + if (downProdRst.Contains("\"code\":0")) + { + Invoke(new Action(() => + { + foreach (var row in rowLstTmp) + { + row.Cells["colOpResult"].Value = "删除成功"; + } + })); + } + } + } } public class WXPreSale { - public static string searchProduct(ShopLoginInfo shop, int pageNum, int? presaleType = null, int pageSize = 50, int? sortType = null) + /// + /// -1 全部 5 在售 11 下架 + /// + /// -1 全部 5 在售 11 下架 + /// + public static string searchProduct(ShopLoginInfo shop, int pageNum, int? presaleType = null, int pageSize = 50, int? sortType = null, int status=5) { //https://store.weixin.qq.com/shop-faas/mmchannelstradeproductcore/cgi/goods/searchProduct?token=&lang=zh_CN&pageSize=20&productStatus[]=-1&productSource=[1,16,32]&searchSource=1&useNew=true&pageNum=44&status[]=5&presaleType[]=1 string url = "https://store.weixin.qq.com/shop-faas/mmchannelstradeproductcore/cgi/goods/searchProduct?token=&lang=zh_CN&" + - "pageSize=" + pageSize + "&productStatus[]=-1&productSource=[1,16,32]&searchSource=1&useNew=true&pageNum=" + pageNum + "&status[]=5"; + "pageSize=" + pageSize + "&productStatus[]=-1&productSource=[1,16,32]&searchSource=1&useNew=true&pageNum=" + pageNum + "&status[]=" + status; if (presaleType != null) url += "&presaleType[]=" + presaleType; if (sortType != null) @@ -1209,7 +1445,12 @@ namespace TemuKJD.WXForms.ProductForms return result; } - public static string scanProductPreview(ShopLoginInfo shop, int page, string nextKey = "", int pageSize = 50) + /// + /// -1 全部 5 在售 11 下架 + /// + /// -1 全部 5 在售 11 下架 + /// + public static string scanProductPreview(ShopLoginInfo shop, int page, string nextKey = "", int pageSize = 50, int saleStatus = 5) { string url = "https://store.weixin.qq.com/shop-faas/mmchannelstradeproductcore/cgi/goods/scanProductPreview?token=&lang=zh_CN"; string referer = "https://store.weixin.qq.com/shop/goods/list?currentTab=PRODUCT_STATUS_ON"; @@ -1218,7 +1459,7 @@ namespace TemuKJD.WXForms.ProductForms //string body = @"{""pageSize"":20,""productStatus"":[-1],""productSource"":""[1,16,32]"",""searchSource"":1,""useNew"":true,""pageNum"":1,""status"":[5]}"; //string body = @"{""pageSize"":20,""productStatus"":[-1],""productSource"":""[1,16,32]"",""searchSource"":1,""useNew"":true,""pageNum"":2,""status"":[5],""nextKey"":""ChwItc+24YajAhCD14bMBhjqLiDoDCgAMITXhswGEhwIy8im34ajAhCa74XMBhiaXyDeBygAMJrvhcwGGAEgeiiIEw==""}"; string body = @"{""pageSize"":" + pageSize + @",""productStatus"":[-1],""productSource"":""[1,16,32]"",""searchSource"":1,""useNew"":true,""pageNum"":" + page + - @",""status"":[5],""nextKey"":""" + nextKey + @"""}"; + @",""status"":[" + saleStatus + @"],""nextKey"":""" + nextKey + @"""}"; var result = WXHttpResponseBLL.WeiXinPostResponse(shop, url, body, referer); return result; } @@ -1229,11 +1470,27 @@ namespace TemuKJD.WXForms.ProductForms /// /// /// - public static string DownProd(ShopLoginInfo shop, long prodId) + public static string DownProd(ShopLoginInfo shop, string prodIds) { string url = "https://store.weixin.qq.com/shop-faas/mmecnodeproductlist/cgi/goods/BatchUnListing?token=&lang=zh_CN"; string referer = "https://store.weixin.qq.com/shop/goods/list"; - string body = @"{""ids"":[" + prodId + @"],""uploadSource"":6}"; + string body = @"{""ids"":[" + prodIds + @"],""uploadSource"":6}"; + var result = WXHttpResponseBLL.WeiXinPostResponse(shop, url, body, referer); + return result; + } + + + /// + /// 下架商品 + /// + /// + /// + /// + public static string DelProd(ShopLoginInfo shop, string prodIds) + { + string url = "https://store.weixin.qq.com/shop-faas/mmecnodeproductlist/cgi/goods/batchDel?token=&lang=zh_CN"; + string referer = "https://store.weixin.qq.com/shop/goods/list"; + string body = @"{""ids"":[" + prodIds + @"],""uploadSource"":6}"; var result = WXHttpResponseBLL.WeiXinPostResponse(shop, url, body, referer); return result; } diff --git a/TEMUKJD/WXForms/ProductForms/WXProdPreSaleForm.resx b/TEMUKJD/WXForms/ProductForms/WXProdPreSaleForm.resx index ac91840..438e4c9 100644 --- a/TEMUKJD/WXForms/ProductForms/WXProdPreSaleForm.resx +++ b/TEMUKJD/WXForms/ProductForms/WXProdPreSaleForm.resx @@ -207,6 +207,9 @@ True + + True + True diff --git a/TEMUKJD/WXForms/ProductForms/WXProdSyncForm.Designer.cs b/TEMUKJD/WXForms/ProductForms/WXProdSyncForm.Designer.cs new file mode 100644 index 0000000..671896d --- /dev/null +++ b/TEMUKJD/WXForms/ProductForms/WXProdSyncForm.Designer.cs @@ -0,0 +1,1555 @@ + +using TemuKJD.PDDForms.ProductSelectForms; + +namespace TemuKJD.WXForms.ProductForms +{ + partial class WXProdSyncForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + 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(); + this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.ucGroupBoxEx3 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); + this.cmbSaleSort = new System.Windows.Forms.ComboBox(); + this.label6 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.panelEx6 = new DevComponents.DotNetBar.PanelEx(); + this.btnClearDgv = new DevComponents.DotNetBar.PanelEx(); + this.txtPageEnd = new System.Windows.Forms.TextBox(); + this.txtFiltSaleNumLessThan = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.btnFiltSelectLessThan = new DevComponents.DotNetBar.PanelEx(); + this.txtFiltSaleNumMoreThan = new System.Windows.Forms.TextBox(); + this.btnSearchProd = new DevComponents.DotNetBar.PanelEx(); + this.cmbPreType = new System.Windows.Forms.ComboBox(); + this.btnFiltSelectMoreThan = new DevComponents.DotNetBar.PanelEx(); + this.btnClearFilter = new DevComponents.DotNetBar.PanelEx(); + this.label3 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.ucGroupBoxEx4 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); + this.chkFailDownProd = new TemuKJD.UserComponent.UcCheckBox(this.components); + this.btnPromotion = new DevComponents.DotNetBar.PanelEx(); + this.panelEx2 = new DevComponents.DotNetBar.PanelEx(); + this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); + this.btnRefreshAuthor = new DevComponents.DotNetBar.PanelEx(); + this.btnSelectOffline = new DevComponents.DotNetBar.PanelEx(); + this.btnSelectOnline = new DevComponents.DotNetBar.PanelEx(); + this.btnAddUnSelect = new DevComponents.DotNetBar.PanelEx(); + this.btnReverse = new DevComponents.DotNetBar.PanelEx(); + this.cmbFilterShopNotes = new TemuKJD.UserComponent.UcComboBoxMutiSelect(); + this.btnAddSelect = new DevComponents.DotNetBar.PanelEx(); + this.btnEmptyShop = new DevComponents.DotNetBar.PanelEx(); + this.btnFilterShop = new DevComponents.DotNetBar.PanelEx(); + this.label16 = new System.Windows.Forms.Label(); + this.txtFilterShopName = new System.Windows.Forms.TextBox(); + this.btnRefreshShop = new DevComponents.DotNetBar.PanelEx(); + this.label17 = new System.Windows.Forms.Label(); + this.splitContainer3 = new System.Windows.Forms.SplitContainer(); + this.splitContainer2 = new System.Windows.Forms.SplitContainer(); + this.pbLoadingShop = new System.Windows.Forms.PictureBox(); + this.txtPageBegin = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.dgvShop = new TemuKJD.UserComponent.DataGridViewEx(); + this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colShopLoginName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colShopNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSelectProduct = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colLoginStatus = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colApi = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colCanUse = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colUploadCount = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colOnSaleNum = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colRemaining = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colMessage = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.pbLoading = new System.Windows.Forms.PictureBox(); + this.chkTestNoAuditUpload = new TemuKJD.UserComponent.UcCheckBox(this.components); + this.dgvSelectProduct = new TemuKJD.UserComponent.DataGridViewEx(); + this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.colSelectId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSupplierId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSupplierName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colLogin = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colInShop = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colSpuId = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colSkcId = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colDraftId = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colImgUrl = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colProductSkcPic = new System.Windows.Forms.DataGridViewImageColumn(); + this.colSkuFakeImgUrl = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSkuFakeImg = new System.Windows.Forms.DataGridViewImageColumn(); + this.colProductName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colProductCat = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colExtCode = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colPrice = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colSoldNum = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colMsg = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colNotes = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colUserNotes = new System.Windows.Forms.DataGridViewLinkColumn(); + this.ColDelete = new System.Windows.Forms.DataGridViewLinkColumn(); + this.colAddTime = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colCouponNum = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.colOpResult = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.splitContainer4 = new System.Windows.Forms.SplitContainer(); + this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); + this.btnClear = new DevComponents.DotNetBar.PanelEx(); + this.panelEx1 = new DevComponents.DotNetBar.PanelEx(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); + this.splitContainer1.Panel1.SuspendLayout(); + this.splitContainer1.Panel2.SuspendLayout(); + this.splitContainer1.SuspendLayout(); + this.ucGroupBoxEx3.SuspendLayout(); + this.ucGroupBoxEx4.SuspendLayout(); + this.ucGroupBoxEx1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).BeginInit(); + this.splitContainer3.Panel1.SuspendLayout(); + this.splitContainer3.Panel2.SuspendLayout(); + this.splitContainer3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit(); + this.splitContainer2.Panel1.SuspendLayout(); + this.splitContainer2.Panel2.SuspendLayout(); + this.splitContainer2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pbLoadingShop)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvShop)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvSelectProduct)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer4)).BeginInit(); + this.splitContainer4.Panel1.SuspendLayout(); + this.splitContainer4.Panel2.SuspendLayout(); + this.splitContainer4.SuspendLayout(); + this.SuspendLayout(); + // + // splitContainer1 + // + this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1; + this.splitContainer1.Location = new System.Drawing.Point(0, 0); + this.splitContainer1.Name = "splitContainer1"; + this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // splitContainer1.Panel1 + // + this.splitContainer1.Panel1.Controls.Add(this.ucGroupBoxEx3); + this.splitContainer1.Panel1.Controls.Add(this.ucGroupBoxEx4); + this.splitContainer1.Panel1.Controls.Add(this.ucGroupBoxEx1); + // + // splitContainer1.Panel2 + // + this.splitContainer1.Panel2.Controls.Add(this.splitContainer3); + this.splitContainer1.Size = new System.Drawing.Size(1424, 641); + this.splitContainer1.SplitterDistance = 165; + this.splitContainer1.TabIndex = 11; + // + // ucGroupBoxEx3 + // + this.ucGroupBoxEx3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.ucGroupBoxEx3.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.ucGroupBoxEx3.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.ucGroupBoxEx3.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND; + this.ucGroupBoxEx3.Controls.Add(this.cmbSaleSort); + this.ucGroupBoxEx3.Controls.Add(this.label6); + this.ucGroupBoxEx3.Controls.Add(this.label5); + this.ucGroupBoxEx3.Controls.Add(this.panelEx6); + this.ucGroupBoxEx3.Controls.Add(this.btnClearDgv); + this.ucGroupBoxEx3.Controls.Add(this.txtPageEnd); + this.ucGroupBoxEx3.Controls.Add(this.txtFiltSaleNumLessThan); + this.ucGroupBoxEx3.Controls.Add(this.label4); + this.ucGroupBoxEx3.Controls.Add(this.btnFiltSelectLessThan); + this.ucGroupBoxEx3.Controls.Add(this.txtFiltSaleNumMoreThan); + this.ucGroupBoxEx3.Controls.Add(this.btnSearchProd); + this.ucGroupBoxEx3.Controls.Add(this.cmbPreType); + this.ucGroupBoxEx3.Controls.Add(this.btnFiltSelectMoreThan); + this.ucGroupBoxEx3.Controls.Add(this.btnClearFilter); + this.ucGroupBoxEx3.Controls.Add(this.label3); + this.ucGroupBoxEx3.Controls.Add(this.label2); + this.ucGroupBoxEx3.Location = new System.Drawing.Point(162, 2); + this.ucGroupBoxEx3.Name = "ucGroupBoxEx3"; + this.ucGroupBoxEx3.Size = new System.Drawing.Size(357, 165); + this.ucGroupBoxEx3.TabIndex = 668; + this.ucGroupBoxEx3.TabStop = false; + this.ucGroupBoxEx3.Text = "商品查询"; + // + // cmbSaleSort + // + this.cmbSaleSort.FormattingEnabled = true; + this.cmbSaleSort.Items.AddRange(new object[] { + "", + "降序", + "升序"}); + this.cmbSaleSort.Location = new System.Drawing.Point(64, 60); + this.cmbSaleSort.Name = "cmbSaleSort"; + this.cmbSaleSort.Size = new System.Drawing.Size(112, 25); + this.cmbSaleSort.TabIndex = 869; + this.cmbSaleSort.TextChanged += new System.EventHandler(this.cmbSaleSort_TextChanged); + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(9, 64); + this.label6.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label6.Name = "label6"; + this.label6.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.label6.Size = new System.Drawing.Size(56, 17); + this.label6.TabIndex = 868; + this.label6.Text = "销量排序"; + // + // label5 + // + this.label5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(256, 28); + this.label5.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(56, 17); + this.label5.TabIndex = 844; + this.label5.Text = "销量小于"; + // + // panelEx6 + // + this.panelEx6.CanvasColor = System.Drawing.SystemColors.Control; + this.panelEx6.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.panelEx6.DisabledBackColor = System.Drawing.Color.Empty; + this.panelEx6.Location = new System.Drawing.Point(288, 127); + this.panelEx6.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); + this.panelEx6.Name = "panelEx6"; + this.panelEx6.Size = new System.Drawing.Size(58, 25); + this.panelEx6.Style.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx6.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.panelEx6.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.panelEx6.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.panelEx6.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx6.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.panelEx6.Style.GradientAngle = 90; + this.panelEx6.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx6.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx6.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx6.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx6.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.panelEx6.TabIndex = 848; + this.panelEx6.Text = "停止查询"; + this.panelEx6.Click += new System.EventHandler(this.btnStop_Click); + // + // btnClearDgv + // + this.btnClearDgv.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnClearDgv.CanvasColor = System.Drawing.SystemColors.Control; + this.btnClearDgv.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnClearDgv.DisabledBackColor = System.Drawing.Color.Empty; + this.btnClearDgv.Location = new System.Drawing.Point(12, 127); + this.btnClearDgv.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); + this.btnClearDgv.Name = "btnClearDgv"; + this.btnClearDgv.Size = new System.Drawing.Size(85, 25); + this.btnClearDgv.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnClearDgv.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnClearDgv.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnClearDgv.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnClearDgv.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClearDgv.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnClearDgv.Style.GradientAngle = 90; + this.btnClearDgv.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnClearDgv.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnClearDgv.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClearDgv.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClearDgv.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnClearDgv.TabIndex = 612; + this.btnClearDgv.Text = "清空列表选中"; + this.btnClearDgv.Click += new System.EventHandler(this.btnClearDgv_Click); + // + // txtPageEnd + // + this.txtPageEnd.Font = new System.Drawing.Font("微软雅黑", 10F); + this.txtPageEnd.Location = new System.Drawing.Point(64, 24); + this.txtPageEnd.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtPageEnd.Name = "txtPageEnd"; + this.txtPageEnd.Size = new System.Drawing.Size(112, 25); + this.txtPageEnd.TabIndex = 792; + this.txtPageEnd.Text = "999"; + this.txtPageEnd.TextChanged += new System.EventHandler(this.txtPageEnd_TextChanged); + // + // txtFiltSaleNumLessThan + // + this.txtFiltSaleNumLessThan.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.txtFiltSaleNumLessThan.Location = new System.Drawing.Point(312, 25); + this.txtFiltSaleNumLessThan.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); + this.txtFiltSaleNumLessThan.Name = "txtFiltSaleNumLessThan"; + this.txtFiltSaleNumLessThan.Size = new System.Drawing.Size(33, 23); + this.txtFiltSaleNumLessThan.TabIndex = 843; + this.txtFiltSaleNumLessThan.Text = "1"; + // + // label4 + // + this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(256, 64); + this.label4.Margin = new System.Windows.Forms.Padding(3, 0, 0, 0); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(56, 17); + this.label4.TabIndex = 801; + this.label4.Text = "销量大于"; + // + // btnFiltSelectLessThan + // + this.btnFiltSelectLessThan.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnFiltSelectLessThan.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnFiltSelectLessThan.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnFiltSelectLessThan.DisabledBackColor = System.Drawing.Color.Empty; + this.btnFiltSelectLessThan.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnFiltSelectLessThan.Location = new System.Drawing.Point(192, 24); + this.btnFiltSelectLessThan.Name = "btnFiltSelectLessThan"; + this.btnFiltSelectLessThan.Size = new System.Drawing.Size(62, 25); + this.btnFiltSelectLessThan.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnFiltSelectLessThan.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnFiltSelectLessThan.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnFiltSelectLessThan.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnFiltSelectLessThan.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnFiltSelectLessThan.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnFiltSelectLessThan.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnFiltSelectLessThan.Style.GradientAngle = 90; + this.btnFiltSelectLessThan.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnFiltSelectLessThan.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnFiltSelectLessThan.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnFiltSelectLessThan.TabIndex = 842; + this.btnFiltSelectLessThan.Text = "批量选择"; + this.btnFiltSelectLessThan.Click += new System.EventHandler(this.btnFiltSelectLessThan_Click); + // + // txtFiltSaleNumMoreThan + // + this.txtFiltSaleNumMoreThan.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.txtFiltSaleNumMoreThan.Location = new System.Drawing.Point(312, 61); + this.txtFiltSaleNumMoreThan.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); + this.txtFiltSaleNumMoreThan.Name = "txtFiltSaleNumMoreThan"; + this.txtFiltSaleNumMoreThan.Size = new System.Drawing.Size(33, 23); + this.txtFiltSaleNumMoreThan.TabIndex = 795; + this.txtFiltSaleNumMoreThan.Text = "0"; + // + // btnSearchProd + // + this.btnSearchProd.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnSearchProd.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnSearchProd.DisabledBackColor = System.Drawing.Color.Empty; + this.btnSearchProd.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnSearchProd.Location = new System.Drawing.Point(164, 127); + this.btnSearchProd.Name = "btnSearchProd"; + this.btnSearchProd.Size = new System.Drawing.Size(58, 25); + this.btnSearchProd.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnSearchProd.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSearchProd.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSearchProd.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnSearchProd.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnSearchProd.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnSearchProd.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnSearchProd.Style.GradientAngle = 90; + this.btnSearchProd.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnSearchProd.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSearchProd.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSearchProd.TabIndex = 431; + this.btnSearchProd.Text = "商品查询"; + this.btnSearchProd.Click += new System.EventHandler(this.btnSearchProd_Click); + // + // cmbPreType + // + this.cmbPreType.FormattingEnabled = true; + this.cmbPreType.Items.AddRange(new object[] { + "", + "预售", + "非预售"}); + this.cmbPreType.Location = new System.Drawing.Point(64, 95); + this.cmbPreType.Name = "cmbPreType"; + this.cmbPreType.Size = new System.Drawing.Size(112, 25); + this.cmbPreType.TabIndex = 807; + this.cmbPreType.Visible = false; + this.cmbPreType.SelectedIndexChanged += new System.EventHandler(this.cmbPreType_SelectedIndexChanged); + // + // btnFiltSelectMoreThan + // + this.btnFiltSelectMoreThan.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnFiltSelectMoreThan.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnFiltSelectMoreThan.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnFiltSelectMoreThan.DisabledBackColor = System.Drawing.Color.Empty; + this.btnFiltSelectMoreThan.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnFiltSelectMoreThan.Location = new System.Drawing.Point(192, 60); + this.btnFiltSelectMoreThan.Name = "btnFiltSelectMoreThan"; + this.btnFiltSelectMoreThan.Size = new System.Drawing.Size(62, 25); + this.btnFiltSelectMoreThan.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnFiltSelectMoreThan.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnFiltSelectMoreThan.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnFiltSelectMoreThan.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnFiltSelectMoreThan.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnFiltSelectMoreThan.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnFiltSelectMoreThan.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnFiltSelectMoreThan.Style.GradientAngle = 90; + this.btnFiltSelectMoreThan.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnFiltSelectMoreThan.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnFiltSelectMoreThan.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnFiltSelectMoreThan.TabIndex = 794; + this.btnFiltSelectMoreThan.Text = "批量选择"; + this.btnFiltSelectMoreThan.Click += new System.EventHandler(this.btnFiltSelectMoreThan_Click); + // + // btnClearFilter + // + this.btnClearFilter.CanvasColor = System.Drawing.SystemColors.Control; + this.btnClearFilter.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnClearFilter.DisabledBackColor = System.Drawing.Color.Empty; + this.btnClearFilter.Location = new System.Drawing.Point(226, 127); + this.btnClearFilter.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); + this.btnClearFilter.Name = "btnClearFilter"; + this.btnClearFilter.Size = new System.Drawing.Size(58, 25); + this.btnClearFilter.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnClearFilter.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnClearFilter.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnClearFilter.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnClearFilter.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClearFilter.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnClearFilter.Style.GradientAngle = 90; + this.btnClearFilter.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnClearFilter.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnClearFilter.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClearFilter.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClearFilter.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnClearFilter.TabIndex = 548; + this.btnClearFilter.Text = "清空条件"; + this.btnClearFilter.Click += new System.EventHandler(this.btnClearFilter_Click); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(9, 99); + this.label3.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label3.Name = "label3"; + this.label3.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.label3.Size = new System.Drawing.Size(56, 17); + this.label3.TabIndex = 806; + this.label3.Text = "预售状态"; + this.label3.Visible = false; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(9, 28); + this.label2.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label2.Name = "label2"; + this.label2.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.label2.Size = new System.Drawing.Size(56, 17); + this.label2.TabIndex = 793; + this.label2.Text = "查询页数"; + // + // ucGroupBoxEx4 + // + this.ucGroupBoxEx4.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.ucGroupBoxEx4.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.ucGroupBoxEx4.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND; + this.ucGroupBoxEx4.Controls.Add(this.chkFailDownProd); + this.ucGroupBoxEx4.Controls.Add(this.btnPromotion); + this.ucGroupBoxEx4.Controls.Add(this.panelEx2); + this.ucGroupBoxEx4.Location = new System.Drawing.Point(518, 2); + this.ucGroupBoxEx4.Name = "ucGroupBoxEx4"; + this.ucGroupBoxEx4.Size = new System.Drawing.Size(904, 165); + this.ucGroupBoxEx4.TabIndex = 666; + this.ucGroupBoxEx4.TabStop = false; + this.ucGroupBoxEx4.Text = "商品同步"; + // + // chkFailDownProd + // + this.chkFailDownProd.AutoSize = true; + this.chkFailDownProd.Location = new System.Drawing.Point(24, 27); + this.chkFailDownProd.Name = "chkFailDownProd"; + this.chkFailDownProd.Size = new System.Drawing.Size(183, 21); + this.chkFailDownProd.TabIndex = 821; + this.chkFailDownProd.Text = "如果同步操作失败则下架商品"; + this.chkFailDownProd.UseVisualStyleBackColor = true; + // + // btnPromotion + // + this.btnPromotion.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnPromotion.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnPromotion.DisabledBackColor = System.Drawing.Color.Empty; + this.btnPromotion.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnPromotion.Location = new System.Drawing.Point(23, 61); + this.btnPromotion.Name = "btnPromotion"; + this.btnPromotion.Size = new System.Drawing.Size(108, 25); + this.btnPromotion.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnPromotion.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnPromotion.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnPromotion.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnPromotion.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnPromotion.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnPromotion.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnPromotion.Style.GradientAngle = 90; + this.btnPromotion.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnPromotion.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnPromotion.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnPromotion.TabIndex = 521; + this.btnPromotion.Text = "批量同步商品"; + this.btnPromotion.Click += new System.EventHandler(this.btnSync_Click); + // + // panelEx2 + // + this.panelEx2.CanvasColor = System.Drawing.SystemColors.Control; + this.panelEx2.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.panelEx2.DisabledBackColor = System.Drawing.Color.Empty; + this.panelEx2.Location = new System.Drawing.Point(135, 61); + this.panelEx2.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); + this.panelEx2.Name = "panelEx2"; + this.panelEx2.Size = new System.Drawing.Size(58, 25); + this.panelEx2.Style.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx2.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.panelEx2.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.panelEx2.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.panelEx2.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx2.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.panelEx2.Style.GradientAngle = 90; + this.panelEx2.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx2.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx2.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx2.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx2.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.panelEx2.TabIndex = 805; + this.panelEx2.Text = "停止操作"; + this.panelEx2.Click += new System.EventHandler(this.btnStop_Click); + // + // ucGroupBoxEx1 + // + this.ucGroupBoxEx1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.ucGroupBoxEx1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.ucGroupBoxEx1.BorderStyle = TemuKJD.UserComponent.UcGroupBoxEx.GroupBoxBorderStyle.ROUND; + this.ucGroupBoxEx1.Controls.Add(this.btnRefreshAuthor); + this.ucGroupBoxEx1.Controls.Add(this.btnSelectOffline); + this.ucGroupBoxEx1.Controls.Add(this.btnSelectOnline); + this.ucGroupBoxEx1.Controls.Add(this.btnAddUnSelect); + this.ucGroupBoxEx1.Controls.Add(this.btnReverse); + this.ucGroupBoxEx1.Controls.Add(this.cmbFilterShopNotes); + this.ucGroupBoxEx1.Controls.Add(this.btnAddSelect); + this.ucGroupBoxEx1.Controls.Add(this.btnEmptyShop); + this.ucGroupBoxEx1.Controls.Add(this.btnFilterShop); + this.ucGroupBoxEx1.Controls.Add(this.label16); + this.ucGroupBoxEx1.Controls.Add(this.txtFilterShopName); + this.ucGroupBoxEx1.Controls.Add(this.btnRefreshShop); + this.ucGroupBoxEx1.Controls.Add(this.label17); + this.ucGroupBoxEx1.Location = new System.Drawing.Point(3, 2); + this.ucGroupBoxEx1.Name = "ucGroupBoxEx1"; + this.ucGroupBoxEx1.Size = new System.Drawing.Size(160, 165); + this.ucGroupBoxEx1.TabIndex = 399; + this.ucGroupBoxEx1.TabStop = false; + this.ucGroupBoxEx1.Text = "基础"; + // + // btnRefreshAuthor + // + this.btnRefreshAuthor.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnRefreshAuthor.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnRefreshAuthor.DisabledBackColor = System.Drawing.Color.Empty; + this.btnRefreshAuthor.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnRefreshAuthor.Location = new System.Drawing.Point(81, 17); + this.btnRefreshAuthor.Name = "btnRefreshAuthor"; + this.btnRefreshAuthor.Size = new System.Drawing.Size(70, 20); + this.btnRefreshAuthor.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnRefreshAuthor.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnRefreshAuthor.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnRefreshAuthor.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnRefreshAuthor.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnRefreshAuthor.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnRefreshAuthor.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnRefreshAuthor.Style.GradientAngle = 90; + this.btnRefreshAuthor.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnRefreshAuthor.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnRefreshAuthor.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnRefreshAuthor.TabIndex = 800; + this.btnRefreshAuthor.Text = "刷新授权"; + this.btnRefreshAuthor.Click += new System.EventHandler(this.btnRefreshAuthor_Click); + // + // btnSelectOffline + // + this.btnSelectOffline.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnSelectOffline.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnSelectOffline.DisabledBackColor = System.Drawing.Color.Empty; + this.btnSelectOffline.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnSelectOffline.Location = new System.Drawing.Point(61, 137); + this.btnSelectOffline.Name = "btnSelectOffline"; + this.btnSelectOffline.Size = new System.Drawing.Size(50, 20); + this.btnSelectOffline.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnSelectOffline.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSelectOffline.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSelectOffline.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnSelectOffline.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnSelectOffline.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnSelectOffline.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnSelectOffline.Style.GradientAngle = 90; + this.btnSelectOffline.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnSelectOffline.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSelectOffline.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSelectOffline.TabIndex = 772; + this.btnSelectOffline.Text = "选掉线"; + this.btnSelectOffline.Click += new System.EventHandler(this.btnSelectOffline_Click); + // + // btnSelectOnline + // + this.btnSelectOnline.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnSelectOnline.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnSelectOnline.DisabledBackColor = System.Drawing.Color.Empty; + this.btnSelectOnline.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnSelectOnline.Location = new System.Drawing.Point(9, 137); + this.btnSelectOnline.Name = "btnSelectOnline"; + this.btnSelectOnline.Size = new System.Drawing.Size(50, 20); + this.btnSelectOnline.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnSelectOnline.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSelectOnline.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSelectOnline.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnSelectOnline.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnSelectOnline.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnSelectOnline.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnSelectOnline.Style.GradientAngle = 90; + this.btnSelectOnline.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnSelectOnline.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSelectOnline.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSelectOnline.TabIndex = 768; + this.btnSelectOnline.Text = "选在线"; + this.btnSelectOnline.Click += new System.EventHandler(this.btnSelectOnline_Click); + // + // btnAddUnSelect + // + this.btnAddUnSelect.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnAddUnSelect.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnAddUnSelect.DisabledBackColor = System.Drawing.Color.Empty; + this.btnAddUnSelect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnAddUnSelect.Location = new System.Drawing.Point(81, 115); + this.btnAddUnSelect.Name = "btnAddUnSelect"; + this.btnAddUnSelect.Size = new System.Drawing.Size(70, 20); + this.btnAddUnSelect.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnAddUnSelect.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnAddUnSelect.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnAddUnSelect.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnAddUnSelect.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnAddUnSelect.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnAddUnSelect.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnAddUnSelect.Style.GradientAngle = 90; + this.btnAddUnSelect.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnAddUnSelect.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnAddUnSelect.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnAddUnSelect.TabIndex = 746; + this.btnAddUnSelect.Text = "弃选条件"; + this.btnAddUnSelect.Click += new System.EventHandler(this.btnAddUnSelect_Click); + // + // btnReverse + // + this.btnReverse.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnReverse.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnReverse.DisabledBackColor = System.Drawing.Color.Empty; + this.btnReverse.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnReverse.Location = new System.Drawing.Point(113, 137); + this.btnReverse.Name = "btnReverse"; + this.btnReverse.Size = new System.Drawing.Size(38, 20); + this.btnReverse.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnReverse.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnReverse.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnReverse.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnReverse.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnReverse.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnReverse.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnReverse.Style.GradientAngle = 90; + this.btnReverse.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnReverse.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnReverse.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnReverse.TabIndex = 726; + this.btnReverse.Text = "反选"; + this.btnReverse.Click += new System.EventHandler(this.btnReverse_Click); + // + // cmbFilterShopNotes + // + this.cmbFilterShopNotes.DefaultText = "全部"; + this.cmbFilterShopNotes.DropDownHeight = 1; + this.cmbFilterShopNotes.DropDownWidth = 1; + this.cmbFilterShopNotes.FormattingEnabled = true; + this.cmbFilterShopNotes.IntegralHeight = false; + this.cmbFilterShopNotes.Location = new System.Drawing.Point(38, 66); + this.cmbFilterShopNotes.Name = "cmbFilterShopNotes"; + this.cmbFilterShopNotes.Size = new System.Drawing.Size(113, 25); + this.cmbFilterShopNotes.TabIndex = 442; + this.cmbFilterShopNotes.Text = "全部"; + // + // btnAddSelect + // + this.btnAddSelect.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnAddSelect.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnAddSelect.DisabledBackColor = System.Drawing.Color.Empty; + this.btnAddSelect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnAddSelect.Location = new System.Drawing.Point(9, 115); + this.btnAddSelect.Name = "btnAddSelect"; + this.btnAddSelect.Size = new System.Drawing.Size(70, 20); + this.btnAddSelect.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnAddSelect.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnAddSelect.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnAddSelect.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnAddSelect.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnAddSelect.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnAddSelect.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnAddSelect.Style.GradientAngle = 90; + this.btnAddSelect.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnAddSelect.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnAddSelect.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnAddSelect.TabIndex = 742; + this.btnAddSelect.Text = "选中条件"; + this.btnAddSelect.Click += new System.EventHandler(this.btnAddSelect_Click); + // + // btnEmptyShop + // + this.btnEmptyShop.CanvasColor = System.Drawing.SystemColors.Control; + this.btnEmptyShop.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnEmptyShop.DisabledBackColor = System.Drawing.Color.Empty; + this.btnEmptyShop.Location = new System.Drawing.Point(113, 93); + this.btnEmptyShop.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); + this.btnEmptyShop.Name = "btnEmptyShop"; + this.btnEmptyShop.Size = new System.Drawing.Size(38, 20); + this.btnEmptyShop.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnEmptyShop.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnEmptyShop.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.btnEmptyShop.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.btnEmptyShop.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnEmptyShop.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.btnEmptyShop.Style.GradientAngle = 90; + this.btnEmptyShop.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.btnEmptyShop.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnEmptyShop.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnEmptyShop.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnEmptyShop.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnEmptyShop.TabIndex = 713; + this.btnEmptyShop.Text = "清空"; + this.btnEmptyShop.Click += new System.EventHandler(this.btnEmptyShop_Click); + // + // btnFilterShop + // + this.btnFilterShop.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnFilterShop.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnFilterShop.DisabledBackColor = System.Drawing.Color.Empty; + this.btnFilterShop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnFilterShop.Location = new System.Drawing.Point(9, 93); + this.btnFilterShop.Name = "btnFilterShop"; + this.btnFilterShop.Size = new System.Drawing.Size(102, 20); + this.btnFilterShop.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnFilterShop.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnFilterShop.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnFilterShop.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnFilterShop.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnFilterShop.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnFilterShop.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnFilterShop.Style.GradientAngle = 90; + this.btnFilterShop.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnFilterShop.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnFilterShop.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnFilterShop.TabIndex = 703; + this.btnFilterShop.Text = "过滤店铺"; + this.btnFilterShop.Click += new System.EventHandler(this.btnFilterShop_Click); + // + // label16 + // + this.label16.AutoSize = true; + this.label16.Location = new System.Drawing.Point(7, 70); + this.label16.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(32, 17); + this.label16.TabIndex = 697; + this.label16.Text = "备注"; + // + // txtFilterShopName + // + this.txtFilterShopName.Font = new System.Drawing.Font("微软雅黑", 10F); + this.txtFilterShopName.Location = new System.Drawing.Point(38, 39); + this.txtFilterShopName.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtFilterShopName.Name = "txtFilterShopName"; + this.txtFilterShopName.Size = new System.Drawing.Size(113, 25); + this.txtFilterShopName.TabIndex = 653; + // + // btnRefreshShop + // + this.btnRefreshShop.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnRefreshShop.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnRefreshShop.DisabledBackColor = System.Drawing.Color.Empty; + this.btnRefreshShop.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnRefreshShop.Location = new System.Drawing.Point(9, 17); + this.btnRefreshShop.Name = "btnRefreshShop"; + this.btnRefreshShop.Size = new System.Drawing.Size(70, 20); + this.btnRefreshShop.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnRefreshShop.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnRefreshShop.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnRefreshShop.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnRefreshShop.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnRefreshShop.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnRefreshShop.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnRefreshShop.Style.GradientAngle = 90; + this.btnRefreshShop.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnRefreshShop.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnRefreshShop.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnRefreshShop.TabIndex = 431; + this.btnRefreshShop.Text = "刷新店铺"; + this.btnRefreshShop.Click += new System.EventHandler(this.btnRefreshShop_Click); + // + // label17 + // + this.label17.AutoSize = true; + this.label17.Location = new System.Drawing.Point(7, 43); + this.label17.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size(32, 17); + this.label17.TabIndex = 699; + this.label17.Text = "名称"; + // + // splitContainer3 + // + this.splitContainer3.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer3.FixedPanel = System.Windows.Forms.FixedPanel.Panel2; + this.splitContainer3.Location = new System.Drawing.Point(0, 0); + this.splitContainer3.Name = "splitContainer3"; + this.splitContainer3.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // splitContainer3.Panel1 + // + this.splitContainer3.Panel1.Controls.Add(this.splitContainer2); + // + // splitContainer3.Panel2 + // + this.splitContainer3.Panel2.Controls.Add(this.splitContainer4); + this.splitContainer3.Size = new System.Drawing.Size(1424, 472); + this.splitContainer3.SplitterDistance = 442; + this.splitContainer3.TabIndex = 1; + // + // splitContainer2 + // + this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer2.FixedPanel = System.Windows.Forms.FixedPanel.Panel1; + this.splitContainer2.Location = new System.Drawing.Point(0, 0); + this.splitContainer2.Name = "splitContainer2"; + // + // splitContainer2.Panel1 + // + this.splitContainer2.Panel1.Controls.Add(this.pbLoadingShop); + this.splitContainer2.Panel1.Controls.Add(this.txtPageBegin); + this.splitContainer2.Panel1.Controls.Add(this.label1); + this.splitContainer2.Panel1.Controls.Add(this.dgvShop); + this.splitContainer2.Panel1.Padding = new System.Windows.Forms.Padding(4, 0, 0, 0); + // + // splitContainer2.Panel2 + // + this.splitContainer2.Panel2.Controls.Add(this.pbLoading); + this.splitContainer2.Panel2.Controls.Add(this.chkTestNoAuditUpload); + this.splitContainer2.Panel2.Controls.Add(this.dgvSelectProduct); + this.splitContainer2.Panel2.Padding = new System.Windows.Forms.Padding(0, 0, 4, 0); + this.splitContainer2.Size = new System.Drawing.Size(1424, 442); + this.splitContainer2.SplitterDistance = 350; + this.splitContainer2.TabIndex = 0; + // + // pbLoadingShop + // + this.pbLoadingShop.Anchor = System.Windows.Forms.AnchorStyles.None; + this.pbLoadingShop.Image = global::TemuKJD.Properties.Resources.loading_blue; + this.pbLoadingShop.Location = new System.Drawing.Point(150, 196); + this.pbLoadingShop.Name = "pbLoadingShop"; + this.pbLoadingShop.Size = new System.Drawing.Size(50, 50); + this.pbLoadingShop.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pbLoadingShop.TabIndex = 189; + this.pbLoadingShop.TabStop = false; + this.pbLoadingShop.Visible = false; + // + // txtPageBegin + // + this.txtPageBegin.Font = new System.Drawing.Font("微软雅黑", 10F); + this.txtPageBegin.Location = new System.Drawing.Point(51, 35); + this.txtPageBegin.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); + this.txtPageBegin.Name = "txtPageBegin"; + this.txtPageBegin.Size = new System.Drawing.Size(140, 25); + this.txtPageBegin.TabIndex = 795; + this.txtPageBegin.Text = "1"; + this.txtPageBegin.Visible = false; + this.txtPageBegin.TextChanged += new System.EventHandler(this.txtPageBegin_TextChanged); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(8, 39); + this.label1.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); + this.label1.Name = "label1"; + this.label1.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.label1.Size = new System.Drawing.Size(44, 17); + this.label1.TabIndex = 794; + this.label1.Text = "开始页"; + this.label1.Visible = false; + // + // dgvShop + // + this.dgvShop.AllowUserToAddRows = false; + this.dgvShop.AllowUserToDeleteRows = false; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvShop.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; + 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; + this.dgvShop.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvShop.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.colSelect, + this.colShopLoginName, + this.colShopId, + this.colShopName, + this.colShopNotes, + this.colSelectProduct, + this.colLoginStatus, + this.colApi, + this.colCanUse, + this.colUploadCount, + this.colOnSaleNum, + this.colRemaining, + this.colMessage}); + this.dgvShop.Dock = System.Windows.Forms.DockStyle.Fill; + this.dgvShop.Location = new System.Drawing.Point(4, 0); + this.dgvShop.Name = "dgvShop"; + this.dgvShop.ReadOnly = true; + this.dgvShop.RowHeadersWidth = 25; + this.dgvShop.RowTemplate.Height = 23; + this.dgvShop.Size = new System.Drawing.Size(346, 442); + this.dgvShop.TabIndex = 6; + this.dgvShop.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvShop_CellContentClick); + // + // colSelect + // + this.colSelect.HeaderText = "全选"; + this.colSelect.Name = "colSelect"; + this.colSelect.ReadOnly = true; + this.colSelect.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSelect.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSelect.Width = 28; + // + // colShopLoginName + // + this.colShopLoginName.HeaderText = "店铺登录名"; + this.colShopLoginName.Name = "colShopLoginName"; + this.colShopLoginName.ReadOnly = true; + this.colShopLoginName.Visible = false; + // + // colShopId + // + this.colShopId.HeaderText = "店铺Id"; + this.colShopId.Name = "colShopId"; + this.colShopId.ReadOnly = true; + this.colShopId.Visible = false; + this.colShopId.Width = 55; + // + // colShopName + // + this.colShopName.FillWeight = 150F; + this.colShopName.HeaderText = "店铺名称"; + this.colShopName.Name = "colShopName"; + this.colShopName.ReadOnly = true; + this.colShopName.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colShopName.Width = 75; + // + // colShopNotes + // + this.colShopNotes.HeaderText = "备注"; + this.colShopNotes.Name = "colShopNotes"; + this.colShopNotes.ReadOnly = true; + this.colShopNotes.Width = 75; + // + // colSelectProduct + // + this.colSelectProduct.HeaderText = "选择商品"; + this.colSelectProduct.Name = "colSelectProduct"; + this.colSelectProduct.ReadOnly = true; + this.colSelectProduct.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSelectProduct.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSelectProduct.Visible = false; + this.colSelectProduct.Width = 62; + // + // colLoginStatus + // + this.colLoginStatus.HeaderText = "状态"; + this.colLoginStatus.Name = "colLoginStatus"; + this.colLoginStatus.ReadOnly = true; + this.colLoginStatus.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colLoginStatus.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colLoginStatus.Width = 38; + // + // colApi + // + this.colApi.HeaderText = "Api"; + this.colApi.Name = "colApi"; + this.colApi.ReadOnly = true; + this.colApi.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colApi.Visible = false; + this.colApi.Width = 38; + // + // colCanUse + // + this.colCanUse.HeaderText = "可用"; + this.colCanUse.Name = "colCanUse"; + this.colCanUse.ReadOnly = true; + this.colCanUse.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colCanUse.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colCanUse.Visible = false; + this.colCanUse.Width = 28; + // + // colUploadCount + // + this.colUploadCount.HeaderText = "已传"; + this.colUploadCount.Name = "colUploadCount"; + this.colUploadCount.ReadOnly = true; + this.colUploadCount.Visible = false; + this.colUploadCount.Width = 38; + // + // colOnSaleNum + // + this.colOnSaleNum.HeaderText = "在售"; + this.colOnSaleNum.Name = "colOnSaleNum"; + this.colOnSaleNum.ReadOnly = true; + this.colOnSaleNum.Visible = false; + this.colOnSaleNum.Width = 38; + // + // colRemaining + // + this.colRemaining.HeaderText = "月限额"; + this.colRemaining.Name = "colRemaining"; + this.colRemaining.ReadOnly = true; + this.colRemaining.Visible = false; + // + // colMessage + // + this.colMessage.HeaderText = "消息"; + this.colMessage.Name = "colMessage"; + this.colMessage.ReadOnly = true; + // + // pbLoading + // + this.pbLoading.Anchor = System.Windows.Forms.AnchorStyles.None; + this.pbLoading.Image = global::TemuKJD.Properties.Resources.loading_blue; + this.pbLoading.Location = new System.Drawing.Point(510, 196); + this.pbLoading.Name = "pbLoading"; + this.pbLoading.Size = new System.Drawing.Size(50, 50); + this.pbLoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pbLoading.TabIndex = 780; + this.pbLoading.TabStop = false; + this.pbLoading.Visible = false; + // + // chkTestNoAuditUpload + // + this.chkTestNoAuditUpload.AutoSize = true; + this.chkTestNoAuditUpload.Location = new System.Drawing.Point(1094, 35); + this.chkTestNoAuditUpload.Name = "chkTestNoAuditUpload"; + this.chkTestNoAuditUpload.Size = new System.Drawing.Size(123, 21); + this.chkTestNoAuditUpload.TabIndex = 779; + this.chkTestNoAuditUpload.Text = "测试免审提交商品"; + this.chkTestNoAuditUpload.UseVisualStyleBackColor = true; + this.chkTestNoAuditUpload.Visible = false; + // + // dgvSelectProduct + // + this.dgvSelectProduct.AllowUserToAddRows = false; + this.dgvSelectProduct.AllowUserToDeleteRows = false; + dataGridViewCellStyle3.BackColor = System.Drawing.Color.WhiteSmoke; + this.dgvSelectProduct.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle3; + this.dgvSelectProduct.AutoRowNumber = true; + this.dgvSelectProduct.BackgroundColor = System.Drawing.Color.White; + this.dgvSelectProduct.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle4.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvSelectProduct.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4; + this.dgvSelectProduct.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvSelectProduct.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.colCheck, + this.colSelectId, + this.colSupplierId, + this.colSupplierName, + this.colLogin, + this.colInShop, + this.colSpuId, + this.colSkcId, + this.colDraftId, + this.colImgUrl, + this.colProductSkcPic, + this.colSkuFakeImgUrl, + this.colSkuFakeImg, + this.colProductName, + this.colProductCat, + this.colExtCode, + this.colPrice, + this.colSoldNum, + this.colMsg, + this.colNotes, + this.colUserNotes, + this.ColDelete, + this.colAddTime, + this.colCouponNum, + this.colOpResult}); + this.dgvSelectProduct.Dock = System.Windows.Forms.DockStyle.Fill; + this.dgvSelectProduct.Location = new System.Drawing.Point(0, 0); + this.dgvSelectProduct.Name = "dgvSelectProduct"; + this.dgvSelectProduct.ReadOnly = true; + this.dgvSelectProduct.RowTemplate.Height = 23; + this.dgvSelectProduct.Size = new System.Drawing.Size(1066, 442); + this.dgvSelectProduct.TabIndex = 187; + this.dgvSelectProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvSelectProduct_CellContentClick); + // + // colCheck + // + this.colCheck.Frozen = true; + this.colCheck.HeaderText = "选择"; + this.colCheck.Name = "colCheck"; + this.colCheck.ReadOnly = true; + this.colCheck.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colCheck.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colCheck.Width = 30; + // + // colSelectId + // + this.colSelectId.HeaderText = "认领Id"; + this.colSelectId.Name = "colSelectId"; + this.colSelectId.ReadOnly = true; + this.colSelectId.Visible = false; + // + // colSupplierId + // + this.colSupplierId.Frozen = true; + this.colSupplierId.HeaderText = "店铺Id"; + this.colSupplierId.Name = "colSupplierId"; + this.colSupplierId.ReadOnly = true; + // + // colSupplierName + // + dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colSupplierName.DefaultCellStyle = dataGridViewCellStyle5; + this.colSupplierName.Frozen = true; + this.colSupplierName.HeaderText = "店铺名称"; + this.colSupplierName.Name = "colSupplierName"; + this.colSupplierName.ReadOnly = true; + // + // colLogin + // + this.colLogin.HeaderText = "登录"; + this.colLogin.Name = "colLogin"; + this.colLogin.ReadOnly = true; + this.colLogin.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colLogin.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colLogin.Width = 40; + // + // colInShop + // + this.colInShop.HeaderText = "进店"; + this.colInShop.Name = "colInShop"; + this.colInShop.ReadOnly = true; + this.colInShop.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colInShop.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colInShop.Width = 40; + // + // colSpuId + // + this.colSpuId.HeaderText = "源商品ID"; + this.colSpuId.Name = "colSpuId"; + this.colSpuId.ReadOnly = true; + this.colSpuId.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSpuId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSpuId.Visible = false; + // + // colSkcId + // + this.colSkcId.FillWeight = 150F; + this.colSkcId.HeaderText = "商品SKC"; + this.colSkcId.Name = "colSkcId"; + this.colSkcId.ReadOnly = true; + this.colSkcId.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSkcId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSkcId.Visible = false; + this.colSkcId.Width = 80; + // + // colDraftId + // + this.colDraftId.HeaderText = "商品Id"; + this.colDraftId.Name = "colDraftId"; + this.colDraftId.ReadOnly = true; + this.colDraftId.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colDraftId.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + this.colDraftId.Width = 120; + // + // colImgUrl + // + this.colImgUrl.HeaderText = "图片地址"; + this.colImgUrl.Name = "colImgUrl"; + this.colImgUrl.ReadOnly = true; + this.colImgUrl.Visible = false; + // + // colProductSkcPic + // + this.colProductSkcPic.HeaderText = "图片"; + this.colProductSkcPic.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom; + this.colProductSkcPic.Name = "colProductSkcPic"; + this.colProductSkcPic.ReadOnly = true; + this.colProductSkcPic.Width = 60; + // + // colSkuFakeImgUrl + // + this.colSkuFakeImgUrl.HeaderText = "SKU替换图地址"; + this.colSkuFakeImgUrl.Name = "colSkuFakeImgUrl"; + this.colSkuFakeImgUrl.ReadOnly = true; + this.colSkuFakeImgUrl.Visible = false; + // + // colSkuFakeImg + // + this.colSkuFakeImg.HeaderText = "SKU替换图"; + this.colSkuFakeImg.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Zoom; + this.colSkuFakeImg.Name = "colSkuFakeImg"; + this.colSkuFakeImg.ReadOnly = true; + this.colSkuFakeImg.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colSkuFakeImg.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.colSkuFakeImg.Visible = false; + this.colSkuFakeImg.Width = 60; + // + // colProductName + // + dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colProductName.DefaultCellStyle = dataGridViewCellStyle6; + this.colProductName.HeaderText = "商品标题"; + this.colProductName.Name = "colProductName"; + this.colProductName.ReadOnly = true; + this.colProductName.Width = 150; + // + // colProductCat + // + dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colProductCat.DefaultCellStyle = dataGridViewCellStyle7; + this.colProductCat.HeaderText = "商品类目"; + this.colProductCat.Name = "colProductCat"; + this.colProductCat.ReadOnly = true; + this.colProductCat.Width = 90; + // + // colExtCode + // + this.colExtCode.HeaderText = "商品货号"; + this.colExtCode.Name = "colExtCode"; + this.colExtCode.ReadOnly = true; + this.colExtCode.Width = 145; + // + // colPrice + // + this.colPrice.HeaderText = "价格"; + this.colPrice.Name = "colPrice"; + this.colPrice.ReadOnly = true; + this.colPrice.Width = 60; + // + // colSoldNum + // + this.colSoldNum.HeaderText = "销量"; + this.colSoldNum.Name = "colSoldNum"; + this.colSoldNum.ReadOnly = true; + this.colSoldNum.Width = 60; + // + // colMsg + // + this.colMsg.HeaderText = "状态"; + this.colMsg.Name = "colMsg"; + this.colMsg.ReadOnly = true; + // + // colNotes + // + this.colNotes.HeaderText = "上传备注"; + this.colNotes.Name = "colNotes"; + this.colNotes.ReadOnly = true; + this.colNotes.Visible = false; + // + // colUserNotes + // + this.colUserNotes.HeaderText = "重上/已买"; + this.colUserNotes.Name = "colUserNotes"; + this.colUserNotes.ReadOnly = true; + this.colUserNotes.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.colUserNotes.Visible = false; + this.colUserNotes.Width = 75; + // + // ColDelete + // + this.ColDelete.HeaderText = "删除"; + this.ColDelete.Name = "ColDelete"; + this.ColDelete.ReadOnly = true; + this.ColDelete.Visible = false; + this.ColDelete.Width = 75; + // + // colAddTime + // + dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.colAddTime.DefaultCellStyle = dataGridViewCellStyle8; + this.colAddTime.HeaderText = "上架时间"; + this.colAddTime.Name = "colAddTime"; + this.colAddTime.ReadOnly = true; + this.colAddTime.Width = 80; + // + // colCouponNum + // + this.colCouponNum.HeaderText = "生效券数量"; + this.colCouponNum.Name = "colCouponNum"; + this.colCouponNum.ReadOnly = true; + this.colCouponNum.Visible = false; + this.colCouponNum.Width = 90; + // + // colOpResult + // + this.colOpResult.HeaderText = "操作结果"; + this.colOpResult.Name = "colOpResult"; + this.colOpResult.ReadOnly = true; + this.colOpResult.Width = 260; + // + // splitContainer4 + // + this.splitContainer4.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer4.FixedPanel = System.Windows.Forms.FixedPanel.Panel2; + this.splitContainer4.Location = new System.Drawing.Point(0, 0); + this.splitContainer4.Name = "splitContainer4"; + // + // splitContainer4.Panel1 + // + this.splitContainer4.Panel1.Controls.Add(this.statusBar); + // + // splitContainer4.Panel2 + // + this.splitContainer4.Panel2.Controls.Add(this.btnClear); + this.splitContainer4.Panel2.Controls.Add(this.panelEx1); + this.splitContainer4.Size = new System.Drawing.Size(1424, 26); + this.splitContainer4.SplitterDistance = 733; + this.splitContainer4.TabIndex = 3; + // + // statusBar + // + this.statusBar.BackColor = System.Drawing.Color.White; + this.statusBar.Dock = System.Windows.Forms.DockStyle.Fill; + this.statusBar.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + 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(733, 26); + this.statusBar.TabIndex = 2; + // + // btnClear + // + this.btnClear.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.btnClear.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnClear.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnClear.DisabledBackColor = System.Drawing.Color.Empty; + this.btnClear.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnClear.Location = new System.Drawing.Point(475, 2); + this.btnClear.Name = "btnClear"; + this.btnClear.Size = new System.Drawing.Size(90, 21); + this.btnClear.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnClear.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClear.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnClear.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnClear.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnClear.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnClear.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnClear.Style.GradientAngle = 90; + this.btnClear.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnClear.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnClear.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnClear.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.btnClear.TabIndex = 440; + this.btnClear.Text = "清空结果"; + this.btnClear.Visible = false; + // + // panelEx1 + // + this.panelEx1.CanvasColor = System.Drawing.SystemColors.Control; + this.panelEx1.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.panelEx1.DisabledBackColor = System.Drawing.Color.Empty; + this.panelEx1.Location = new System.Drawing.Point(568, 2); + this.panelEx1.Name = "panelEx1"; + this.panelEx1.Size = new System.Drawing.Size(115, 21); + this.panelEx1.Style.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx1.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.panelEx1.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(185)))), ((int)(((byte)(215)))), ((int)(((byte)(255))))); + this.panelEx1.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; + this.panelEx1.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx1.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; + this.panelEx1.Style.GradientAngle = 90; + this.panelEx1.StyleMouseDown.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx1.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.panelEx1.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx1.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.panelEx1.StyleMouseOver.ForeColor.Color = System.Drawing.Color.White; + this.panelEx1.TabIndex = 668; + this.panelEx1.Text = "停止当前操作"; + this.panelEx1.Visible = false; + // + // WXProdSyncForm + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.White; + this.ClientSize = new System.Drawing.Size(1424, 641); + this.Controls.Add(this.splitContainer1); + this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.Name = "WXProdSyncForm"; + this.Text = "爆单神器"; + this.Load += new System.EventHandler(this.UserSelectDbProductForm_Load); + this.VisibleChanged += new System.EventHandler(this.UserSelectDbProductForm_VisibleChanged); + this.splitContainer1.Panel1.ResumeLayout(false); + this.splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); + this.splitContainer1.ResumeLayout(false); + this.ucGroupBoxEx3.ResumeLayout(false); + this.ucGroupBoxEx3.PerformLayout(); + this.ucGroupBoxEx4.ResumeLayout(false); + this.ucGroupBoxEx4.PerformLayout(); + this.ucGroupBoxEx1.ResumeLayout(false); + this.ucGroupBoxEx1.PerformLayout(); + this.splitContainer3.Panel1.ResumeLayout(false); + this.splitContainer3.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).EndInit(); + this.splitContainer3.ResumeLayout(false); + this.splitContainer2.Panel1.ResumeLayout(false); + this.splitContainer2.Panel1.PerformLayout(); + this.splitContainer2.Panel2.ResumeLayout(false); + this.splitContainer2.Panel2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit(); + this.splitContainer2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pbLoadingShop)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvShop)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pbLoading)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvSelectProduct)).EndInit(); + this.splitContainer4.Panel1.ResumeLayout(false); + this.splitContainer4.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer4)).EndInit(); + this.splitContainer4.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.SplitContainer splitContainer1; + private UserComponent.UcGroupBoxEx ucGroupBoxEx1; + private DevComponents.DotNetBar.PanelEx btnRefreshShop; + private System.Windows.Forms.SplitContainer splitContainer3; + private System.Windows.Forms.SplitContainer splitContainer2; + private UserComponent.DataGridViewEx dgvShop; + private UserComponent.DataGridViewEx dgvSelectProduct; + private System.Windows.Forms.SplitContainer splitContainer4; + private UserControls.StatusBarUserControl statusBar; + private DevComponents.DotNetBar.PanelEx btnSearchProd; + private DevComponents.DotNetBar.PanelEx btnClearFilter; + private DevComponents.DotNetBar.PanelEx btnClearDgv; + private DevComponents.DotNetBar.PanelEx btnClear; + private DevComponents.DotNetBar.PanelEx panelEx1; + private UserComponent.UcCheckBox chkTestNoAuditUpload; + private System.Windows.Forms.PictureBox pbLoadingShop; + private System.Windows.Forms.PictureBox pbLoading; + private System.Windows.Forms.TextBox txtFilterShopName; + private DevComponents.DotNetBar.PanelEx btnFilterShop; + private System.Windows.Forms.Label label17; + private System.Windows.Forms.Label label16; + private DevComponents.DotNetBar.PanelEx btnEmptyShop; + private UserComponent.UcComboBoxMutiSelect cmbFilterShopNotes; + private DevComponents.DotNetBar.PanelEx btnReverse; + private DevComponents.DotNetBar.PanelEx btnAddUnSelect; + private DevComponents.DotNetBar.PanelEx btnAddSelect; + private DevComponents.DotNetBar.PanelEx btnSelectOffline; + private DevComponents.DotNetBar.PanelEx btnSelectOnline; + private DevComponents.DotNetBar.PanelEx btnRefreshAuthor; + private System.Windows.Forms.DataGridViewCheckBoxColumn colSelect; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopLoginName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopId; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopName; + private System.Windows.Forms.DataGridViewTextBoxColumn colShopNotes; + private System.Windows.Forms.DataGridViewLinkColumn colSelectProduct; + private System.Windows.Forms.DataGridViewLinkColumn colLoginStatus; + private System.Windows.Forms.DataGridViewLinkColumn colApi; + private System.Windows.Forms.DataGridViewCheckBoxColumn colCanUse; + private System.Windows.Forms.DataGridViewTextBoxColumn colUploadCount; + private System.Windows.Forms.DataGridViewTextBoxColumn colOnSaleNum; + private System.Windows.Forms.DataGridViewTextBoxColumn colRemaining; + private System.Windows.Forms.DataGridViewTextBoxColumn colMessage; + private System.Windows.Forms.TextBox txtPageBegin; + private System.Windows.Forms.TextBox txtPageEnd; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.ComboBox cmbPreType; + private UserComponent.UcGroupBoxEx ucGroupBoxEx3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox txtFiltSaleNumMoreThan; + private DevComponents.DotNetBar.PanelEx btnFiltSelectMoreThan; + private DevComponents.DotNetBar.PanelEx panelEx6; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.TextBox txtFiltSaleNumLessThan; + private DevComponents.DotNetBar.PanelEx btnFiltSelectLessThan; + private System.Windows.Forms.ComboBox cmbSaleSort; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.DataGridViewCheckBoxColumn colCheck; + private System.Windows.Forms.DataGridViewTextBoxColumn colSelectId; + private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierId; + private System.Windows.Forms.DataGridViewTextBoxColumn colSupplierName; + private System.Windows.Forms.DataGridViewLinkColumn colLogin; + private System.Windows.Forms.DataGridViewLinkColumn colInShop; + private System.Windows.Forms.DataGridViewLinkColumn colSpuId; + private System.Windows.Forms.DataGridViewLinkColumn colSkcId; + private System.Windows.Forms.DataGridViewTextBoxColumn colDraftId; + private System.Windows.Forms.DataGridViewTextBoxColumn colImgUrl; + private System.Windows.Forms.DataGridViewImageColumn colProductSkcPic; + private System.Windows.Forms.DataGridViewTextBoxColumn colSkuFakeImgUrl; + private System.Windows.Forms.DataGridViewImageColumn colSkuFakeImg; + private System.Windows.Forms.DataGridViewTextBoxColumn colProductName; + private System.Windows.Forms.DataGridViewTextBoxColumn colProductCat; + private System.Windows.Forms.DataGridViewTextBoxColumn colExtCode; + private System.Windows.Forms.DataGridViewTextBoxColumn colPrice; + private System.Windows.Forms.DataGridViewTextBoxColumn colSoldNum; + private System.Windows.Forms.DataGridViewTextBoxColumn colMsg; + private System.Windows.Forms.DataGridViewTextBoxColumn colNotes; + private System.Windows.Forms.DataGridViewLinkColumn colUserNotes; + private System.Windows.Forms.DataGridViewLinkColumn ColDelete; + private System.Windows.Forms.DataGridViewTextBoxColumn colAddTime; + private System.Windows.Forms.DataGridViewTextBoxColumn colCouponNum; + private System.Windows.Forms.DataGridViewTextBoxColumn colOpResult; + private UserComponent.UcGroupBoxEx ucGroupBoxEx4; + private DevComponents.DotNetBar.PanelEx btnPromotion; + private DevComponents.DotNetBar.PanelEx panelEx2; + private UserComponent.UcCheckBox chkFailDownProd; + } +} \ No newline at end of file diff --git a/TEMUKJD/WXForms/ProductForms/WXProdSyncForm.cs b/TEMUKJD/WXForms/ProductForms/WXProdSyncForm.cs new file mode 100644 index 0000000..d1d979c --- /dev/null +++ b/TEMUKJD/WXForms/ProductForms/WXProdSyncForm.cs @@ -0,0 +1,1286 @@ +using AllBase; +using AllBase.Helper; +using AllBase.Model.Result; +using NaiBa.Util.Extension; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Net.Http; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; +using TemuKJD.Extension; +using TemuKJD.BaseForms; +using TemuKJD.ToolForms; +using Work; +using TemuKJD.BLL; +using System.Text.RegularExpressions; +using TemuKJD.PDDForms.ProductSelectForms; +using TemuKJD.WXForms.ShopForms; +using AllBase.Model.Result.PDDResult; +using AllBase.Model.Param.WXParam; +using AllBase.Model.Result.WXResult; +using Newtonsoft.Json; +using NaiBa.Util; +using AllBase.Model.Config; + +namespace TemuKJD.WXForms.ProductForms +{ + public partial class WXProdSyncForm : BaseForm + { + int PageBegin = 1; + int PageEnd = 999; + string PreType = ""; + public CancellationTokenSource cancellationTokenSource { get; set; } = null; + public bool IsLoadComplate { get; set; } = false; + + bool isInit = false; + CheckBox chkSelectAll = null; + ConcurrentList lstShopAuthInfo = new ConcurrentList(); + ConcurrentList lstWXShopTokenInfo = new ConcurrentList(); + public NaiBa.Util.ConcurrentList lstTemuDBProductSelect = new NaiBa.Util.ConcurrentList(); + NaiBa.Util.ConcurrentList lstAddPriceRule = new NaiBa.Util.ConcurrentList(); + //public Dictionary> dicCheckedShopIdList = new Dictionary>(); + public Dictionary dicCheckedShopId = new Dictionary(); + public Dictionary dicShopUpload = new Dictionary(); + public string pdd_product_cates = ""; + public WXProdSyncForm() + { + InitializeComponent(); + } + + private void UserSelectDbProductForm_Load(object sender, EventArgs e) + { + this.splitContainer1.Dock = DockStyle.Fill; + + lstShopAuthInfo = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("wx_shop_auth_list"); + if (lstShopAuthInfo == null) + lstShopAuthInfo = new ConcurrentList(); + + lstWXShopTokenInfo = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("wx_shop_token_list"); + if (lstWXShopTokenInfo == null) + lstWXShopTokenInfo = new ConcurrentList(); + + lstTemuDBProductSelect = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("wx_db_prod_upload_list"); + if (lstTemuDBProductSelect == null) + lstTemuDBProductSelect = new NaiBa.Util.ConcurrentList(); + + lstAddPriceRule = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("wx_add_price_rules"); + if (lstAddPriceRule == null) + { + lstAddPriceRule = new NaiBa.Util.ConcurrentList(); + lstAddPriceRule.Add(new AddPriceRule() { MoreThanPrice = 0, LessThanPrice = 10, AddPriceTimes = 2, AddMorePrice = 10, SinglePriceAdd = 1 }); + lstAddPriceRule.Add(new AddPriceRule() { MoreThanPrice = 10, LessThanPrice = 20, AddPriceTimes = 2, AddMorePrice = 10, SinglePriceAdd = 1 }); + lstAddPriceRule.Add(new AddPriceRule() { MoreThanPrice = 20, LessThanPrice = 999, AddPriceTimes = 2, AddMorePrice = 10, SinglePriceAdd = 1 }); + } + + dicCheckedShopId = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("wx_checked_shop_dic"); + if (dicCheckedShopId == null) + dicCheckedShopId = new Dictionary(); + dicShopUpload = NaiBa.Util.Helper.ConfigHelper.LoadConfig>("wx_shop_upload_info"); + if (dicShopUpload == null) + dicShopUpload = new Dictionary(); + + + + chkSelectAll = dgvShop.Columns["colSelect"].AddHeaderCheckBox(HorizontalAlignment.Center, 0, 0, null, null, false); + dgvShop.Columns["colSelect"].HeaderText = ""; + //chkSelectAll.Width = chkSelectAll.Height = 13; + chkSelectAll.CheckedChanged += chkSelectAll_CheckedChanged; + //chkSelectAll.Checked = true; + + this.dgvSelectProduct.AddSelectorColumn("colCheck"); + + dgvSelectProduct.AddImgColumn("colProductSkcPic", "colImgUrl"); + dgvSelectProduct.AddImgColumn("colSkuFakeImg", "colSkuFakeImgUrl"); + + dgvSelectProduct.Columns["colSkuFakeImg"].Visible = false; + +//#if DEBUG + if (BaseClass.SaLevel == 1) + { + //txtIdFilter.Visible = true; + //txtExtCodeFilter.Visible = true; + //lblIdFilter.Visible = true; + //lblExtCodeFilter.Visible = true; + } +//#endif + IsLoadComplate = true; + } + + private void btnRefreshAuthor_Click(object sender, EventArgs e) + { + updateAuthor(true); + } + + /// + /// 升级授权 + /// + /// 今日取过的也取 + private void updateAuthor(bool idRefreshTodayHasGet = false) + { + this.pbLoadingShop.Visible = true; + Task.Run(() => + { + // 店铺Id + var updateIds = dgvShop.Rows.Cast().Select(r => r.Cells["colShopId"]?.Value.ToString()).ToList(); + var selectIds = dgvShop.Rows.Cast().Where(row + => row.Cells["colSelect"]?.Value.ParseToBool() == true).Select(r => r.Cells["colShopId"]?.Value.ToString()).ToList(); + if (idRefreshTodayHasGet == true) + updateIds = selectIds; + + List tList = new List(); + if (idRefreshTodayHasGet) + lstShopAuthInfo.RemoveAll(s => updateIds.Contains(s.ShopId)); + foreach (var shop in GlobalConfig.ShopLoginList.Where(s => updateIds.Contains(s.ShopId))) + { + Invoke(new Action(() => { BindShop(shop, selectIds, ""); })); + var t = Task.Run(() => + { + try + { + if (shop.LoginStatus != "登录成功") + { + Invoke(new Action(() => { BindShop(shop, selectIds, "店铺掉线"); })); + return; + } + + var authInfo = lstShopAuthInfo.FirstOrDefault(sa => sa.ShopId == shop.ShopId); + if (idRefreshTodayHasGet || authInfo == null || authInfo?.AddTime.Date != DateTime.Now.Date) + { + lstShopAuthInfo.RemoveAll(sa => sa.ShopId == shop.ShopId); + var rst = WXUpload.GetApiServiceList(shop); + if (!rst.Contains("\"code\":0")) + { + WXShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false); + if (shop.LoginStatus != "登录成功") + { + Invoke(new Action(() => { BindShop(shop, selectIds, "店铺掉线"); })); + return; + } + + lstShopAuthInfo.Add(new AuthInfo() { ShopId = shop.ShopId, AddTime = DateTime.Now, ExpiresTime = DateTime.Now }); + Invoke(new Action(() => { BindShop(shop, selectIds, "授权查询失败"); })); + return; + } + + foreach (var itemObj in JsonHelper.JObjectParse(rst)["itemList"]) + { + // 找到了指定服务 + if (itemObj["serviceName"].ParseToString() == "店统领供应链-商品管理") + { + var expiresTick = itemObj["expireTime"].ParseToLong(); + lstShopAuthInfo.Add(new AuthInfo() { ShopId = shop.ShopId, AddTime = DateTime.Now, ExpiresTime = BaseClass.StampToDateTime(expiresTick.ParseToInt()) }); + Invoke(new Action(() => { BindShop(shop, selectIds, "已查询"); })); + return; + } + } + // 没找到指定服务 + lstShopAuthInfo.Add(new AuthInfo() { ShopId = shop.ShopId, AddTime = DateTime.Now, ExpiresTime = DateTime.Now }); + Invoke(new Action(() => { BindShop(shop, selectIds, "已查询"); })); + } + } + catch (Exception ex) + { + } + }); + tList.Add(t); + while (tList.Where(ta => !ta.IsFaulted && !ta.IsCompleted).Count() >= 20) { Thread.Sleep(100); } + } + while (tList.Where(ta => !ta.IsFaulted && !ta.IsCompleted).Count() >= 1) { Thread.Sleep(100); } + NaiBa.Util.Helper.ConfigHelper.SaveConfig( "wx_shop_auth_list", lstShopAuthInfo); + Invoke(new Action(() => { pbLoadingShop.Visible = false; })); + }); + } + + private void chkSelectAll_CheckedChanged(object sender, EventArgs e) + { + if (!chkSelectAll.Checked) + { + foreach (DataGridViewRow row in dgvShop.Rows) + { + row.Cells["colSelect"].Value = false; + } + } + else + { + //var list = GlobalConfig.ShopLoginList.Where(s => s.LoginStatus == "登录成功").Select(ss => ss.ShopId); + foreach (DataGridViewRow row in dgvShop.Rows) + { + //if (list.Any(l => l == row.Cells["colShopId"]?.Value?.ToString())) + if(row.Visible == true) + row.Cells["colSelect"].Value = true; + } + } + + foreach (var r in dgvShop.Rows.Cast()) + { + dicCheckedShopId[r.Cells["colShopId"].Value.ParseToString()] = r.Cells["colSelect"].Value.ParseToBool(); + } + NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_checked_shop_dic", dicCheckedShopId); + } + + private void btnRefreshShop_Click(object sender, EventArgs e) + { + pbLoadingShop.Visible = true; + RefreshShopLogin(); + } + + private void UserSelectDbProductForm_VisibleChanged(object sender, EventArgs e) + { + if (Visible == true) + { + RefreshShopLogin(); + updateAuthor(); + + if (!isInit) + { + Task.Run(() => + { + foreach (var shop in GlobalConfig.ShopLoginList) + { + //if (shop.LoginStatus == "登录成功") + //{ + // var rst = WXUpload.scanProductPreview(shop); + // if (!rst.Contains("\"code\":0") && !rst.Contains("\"success\":true")) + // { + // WXShopListForm.Instance.CheckShopLogin(new string[] { shop.LoginName }, false); + // } + //} + } + + }); + } + + isInit = true; + } + } + + private void RefreshShopLogin() + { + // 店铺Id + var selectIds = dgvShop.Rows.Cast().Where(row + => row.Cells["colSelect"]?.Value.ParseToBool() == true).Select(r => r.Cells["colShopId"]?.Value.ToString()).ToList(); + // 获取被删除的店铺 + List dgvRowList = dgvShop.Rows.Cast().Where(row + => !GlobalConfig.ShopLoginList.Any(s => s.ShopId == row.Cells["colShopId"]?.Value?.ToString())).ToList(); + // 更新被删除的店铺列表 + foreach (var row in dgvRowList) + { + dgvShop.Rows.Remove(row); + } + // 绑定其他店铺(含新导入的店铺) + foreach (ShopLoginInfo shopEntity in GlobalConfig.ShopLoginList) + { + if (!string.IsNullOrEmpty(shopEntity.ShopId)) + BindShop(shopEntity, selectIds); + } + cmbFilterShopNotes.Items.Clear(); + //cmbFilterShopNotes.Items.Add(""); + foreach (var note in GlobalConfig.ShopLoginList.Select(s => s.Notes).Where(s => !s.IsNullOrEmpty()).Distinct()) + { + cmbFilterShopNotes.Items.Add(note); + } + } + + private void BindShop(ShopLoginInfo shopEntity, List selectShopId = null, string msg = "") + { + if (shopEntity == null) + return; + if (selectShopId == null) + selectShopId = new List(); + + bool canUse = shopEntity.LoginStatus == "登录成功"; + //canUse = true; // 内部库不需要校验登录状态 + var row = dgvShop.Rows.Cast().FirstOrDefault(p => p.Cells.GetCellValueFromColumnName("colShopId").ParseToString() == shopEntity.ShopId); + var day = DateTime.Now.ToString("yyyyMMdd").ParseToInt(); + if (row == null) + { + this.dgvShop.Rows.Add( + //!isInit || (selectShopId.Contains(shopEntity.ShopId) && canUse), + dicCheckedShopId.Keys.Contains(shopEntity.ShopId) && dicCheckedShopId[shopEntity.ShopId] == true, + shopEntity.LoginName, + shopEntity.ShopId, + shopEntity.ShopAccount, + shopEntity.Notes, + "选择商品", + canUse ? "在线" : "掉线", + lstShopAuthInfo.FirstOrDefault(sa => sa.ShopId == shopEntity.ShopId)?.ExpiresTime > DateTime.Now.AddMinutes(5) ? "可用" : "过期", + canUse, + dicShopUpload.ContainsKey(shopEntity.ShopId) && dicShopUpload[shopEntity.ShopId].DicDayUploadCount.ContainsKey(day) ? + dicShopUpload[shopEntity.ShopId].DicDayUploadCount[day] : 0, + dicShopUpload.ContainsKey(shopEntity.ShopId) && dicShopUpload[shopEntity.ShopId].OnSaleRefreshDay == DateTime.Now.ToString("yyyyMMdd").ParseToInt() ? + dicShopUpload[shopEntity.ShopId].OnSaleCount : 0, + shopEntity.AddProductRemaining, + "", + msg + ); + } + else + { + row.Cells["colSelect"].Value = !isInit || (selectShopId.Contains(shopEntity.ShopId) && canUse); + row.Cells["colShopLoginName"].Value = shopEntity.LoginName; + row.Cells["colShopName"].Value = shopEntity.ShopAccount; + row.Cells["colShopNotes"].Value = shopEntity.Notes; + row.Cells["colLoginStatus"].Value = canUse ? "在线" : "掉线"; + row.Cells["colLoginStatus"].Style.ForeColor = canUse ? Color.Green : Color.Red; + row.Cells["colCanUse"].Value = canUse; + row.Cells["colApi"].Value = lstShopAuthInfo.FirstOrDefault(sa => sa.ShopId == shopEntity.ShopId)?.ExpiresTime > DateTime.Now.AddMinutes(5) ? "可用" : "过期"; + row.Cells["colRemaining"].Value = shopEntity.AddProductRemaining; + row.Cells["colUploadCount"].Value = dicShopUpload.ContainsKey(shopEntity.ShopId) && dicShopUpload[shopEntity.ShopId].DicDayUploadCount.ContainsKey(day) ? + dicShopUpload[shopEntity.ShopId].DicDayUploadCount[day] : 0; + row.Cells["colOnSaleNum"].Value = dicShopUpload.ContainsKey(shopEntity.ShopId) && dicShopUpload[shopEntity.ShopId].OnSaleRefreshDay == DateTime.Now.ToString("yyyyMMdd").ParseToInt() ? + dicShopUpload[shopEntity.ShopId].OnSaleCount : 0; + row.Cells["colMessage"].Value = msg; + } + + displayAuthStatus(shopEntity); + } + + void displayAuthStatus(ShopLoginInfo shop) + { + var rows = this.dgvShop.Rows.Cast().Where(r => r.Cells["colShopId"].Value.ParseToString() == shop?.ShopId); + foreach (var row in rows) + { + bool canUse = row.Cells["colLoginStatus"].Value.ParseToString() == "在线"; + (row.Cells["colLoginStatus"] as DataGridViewLinkCell).Style.ForeColor = canUse ? Color.Blue : Color.Red; + (row.Cells["colLoginStatus"] as DataGridViewLinkCell).LinkColor = canUse ? Color.Blue : Color.Red; + (row.Cells["colLoginStatus"] as DataGridViewLinkCell).ActiveLinkColor = canUse ? Color.LightBlue : Color.OrangeRed; + (row.Cells["colLoginStatus"] as DataGridViewLinkCell).VisitedLinkColor = canUse ? Color.DarkBlue : Color.DarkRed; + canUse = row.Cells["colApi"].Value.ParseToString() == "可用"; + (row.Cells["colApi"] as DataGridViewLinkCell).Style.ForeColor = canUse ? Color.Blue : Color.Red; + (row.Cells["colApi"] as DataGridViewLinkCell).LinkColor = canUse ? Color.Blue : Color.Red; + (row.Cells["colApi"] as DataGridViewLinkCell).ActiveLinkColor = canUse ? Color.LightBlue : Color.OrangeRed; + (row.Cells["colApi"] as DataGridViewLinkCell).VisitedLinkColor = canUse ? Color.DarkBlue : Color.DarkRed; + } + } + + private void dgvShop_CellContentClick(object sender, DataGridViewCellEventArgs e) + { + if (e.ColumnIndex < 0 || e.RowIndex < 0) + return; + string headerText = dgvShop.Columns[e.ColumnIndex].HeaderText; + string columnName = dgvShop.Columns[e.ColumnIndex].Name; + string shopId = dgvShop.Rows[e.RowIndex].Cells["colShopId"].Value.ParseToString(); + string shopAccount = dgvShop.Rows[e.RowIndex].Cells["colShopName"].Value.ToString(); + var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId.ToString()); + var row = dgvShop.Rows[e.RowIndex]; + switch (columnName) + { + case "colSelect": + //if (row.Cells["colCanUse"].Value.ParseToBool()) + { + row.Cells["colSelect"].Value = !row.Cells["colSelect"].Value.ParseToBool(); + + chkSelectAll.CheckedChanged -= chkSelectAll_CheckedChanged; + if (dgvShop.Rows.Cast().All(r => r.Cells["colSelect"].Value.ParseToBool())) + chkSelectAll.Checked = true; + else + chkSelectAll.Checked = false; + chkSelectAll.CheckedChanged += chkSelectAll_CheckedChanged; + } + //else + { + //BaseMsgForm.ShowInfo("店铺未登录!"); + } + + dicCheckedShopId[row.Cells["colShopId"].Value.ParseToString()] = row.Cells["colSelect"].Value.ParseToBool(); + NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_checked_shop_dic", dicCheckedShopId); + break; + case "colLoginStatus": + { + if (WXShopListForm.Instance == null) + WXShopListForm.Instance = new WXShopListForm(); + WXShopListForm.Instance.CheckShopLogin(new string[] { shop.LoginName }, false); + WXShopLoginForm shopLoginForm = new WXShopLoginForm(shop); + //shopLoginForm.prodUserSelectForm = this; + if (shop.LoginStatus != "登录成功") + { + shopLoginForm.openType = EnumOpenType.login; + shopLoginForm.ShowDialog(); + RefreshShopLogin(); + } + else + { + shopLoginForm.openType = EnumOpenType.manage; + shopLoginForm.WindowState = FormWindowState.Maximized; + shopLoginForm.Show(); + } + } + break; + case "colApi": + { + WXShopLoginForm shopLoginForm = new WXShopLoginForm(shop); + shopLoginForm.openType = EnumOpenType.manage; + shopLoginForm.WindowState = FormWindowState.Maximized; + shopLoginForm.InitUrl = "https://store.weixin.qq.com/shop/servicemarket/detail?serviceId=3984039898079707139"; + shopLoginForm.Show(); + } + break; + } + } + + private void btnSearch_Click(object sender, EventArgs e) + { + var lstShopId = dgvShop.Rows.Cast().Where(row + => row.Cells["colSelect"]?.Value.ParseToBool() == true).Select(r => r.Cells["colShopId"]?.Value.ToString()).ToList(); + if (lstShopId.Count == 0) + { + BaseMsgForm.ShowInfo("请选择店铺!"); + return; + } + } + + private void dgvSelectProduct_CellContentClick(object sender, DataGridViewCellEventArgs e) + { + if (e.ColumnIndex < 0 || e.RowIndex < 0) + return; + string headerText = dgvSelectProduct.Columns[e.ColumnIndex].HeaderText; + var dbId = dgvSelectProduct.Rows[e.RowIndex].Cells["colSelectId"].Value.ParseToString(); + var dbProduct = lstTemuDBProductSelect.FirstOrDefault(p => p.id.ToString() == dbId); + var shopId = dgvSelectProduct.Rows[e.RowIndex].Cells["colSupplierId"].Value.ParseToString(); + var draftId = dgvSelectProduct.Rows[e.RowIndex].Cells["colDraftId"].Value.ParseToString(); + var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId); + + switch (headerText) + { + case "删除": + break; + case "登录": + { + WXShopLoginForm shopLoginForm = new WXShopLoginForm(shop); + //shopLoginForm.prodUserSelectForm = this; + shopLoginForm.openType = EnumOpenType.login; + shopLoginForm.ShowDialog(); + RefreshShopLogin(); + } + break; + case "进店": + { + WXShopLoginForm shopLoginForm = new WXShopLoginForm(shop); + WXShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false); + if (shop.LoginStatus == "登录成功") + { + shopLoginForm.openType = EnumOpenType.manage; + shopLoginForm.WindowState = FormWindowState.Maximized; + shopLoginForm.InitUrl = "https://store.weixin.qq.com/shop/home"; + shopLoginForm.Show(); + } + else + { + shopLoginForm.openType = EnumOpenType.login; + shopLoginForm.ShowDialog(); + RefreshShopLogin(); + } + } + break; + case "上传商品Id": + //if (!string.IsNullOrEmpty(draftId) && shop != null) + //{ + // ShopLoginForm shopLoginForm = new ShopLoginForm(shop); + // shopLoginForm.InitUrl = "https://seller.kuajingmaihuo.com/goods/product-create/product-edit?productDraftId=" + + // draftId + "&from=productDraftList"; + // shopLoginForm.openType = EnumOpenType.manage; + // shopLoginForm.WindowState = FormWindowState.Maximized; + // shopLoginForm.ShowDialog(); + //} + break; + case "图片": + { + ShowImgForm imgFrom = new ShowImgForm(dgvSelectProduct.Rows[e.RowIndex].Cells["colImgUrl"].Value.ParseToString()); + imgFrom.ShowDialog(); + break; + } + case "SKU替换图": + { + ShowImgForm imgFrom = new ShowImgForm(dgvSelectProduct.Rows[e.RowIndex].Cells["colSkuFakeImgUrl"].Value.ParseToString()); + imgFrom.ShowDialog(); + break; + } + case "": + dgvSelectProduct.Rows[e.RowIndex].Cells["colCheck"].Value = !(bool)dgvSelectProduct.Rows[e.RowIndex].Cells["colCheck"].Value; + break; + default: + break; + } + } + + private void btnStop_Click(object sender, EventArgs e) + { + if (this.cancellationTokenSource != null) + this.cancellationTokenSource.Cancel(); + } + + private void btnSearchProd_Click(object sender, EventArgs e) + { + var shopIdLst = dgvShop.Rows.Cast().Where(row + => row.Cells["colSelect"]?.Value.ParseToBool() == true).Select(r => r.Cells["colShopId"]?.Value.ToString()).ToList(); + if (shopIdLst.Count <= 0) + { + BaseMsgForm.ShowError("未勾选上传店铺!"); + return; + } + btnSearchProd.Enabled = false; + pbLoading.Visible = true; + cancellationTokenSource = new CancellationTokenSource(); + dgvSelectProduct.Rows.Clear(); + dgvSelectProduct.Columns["colCouponNum"].Visible = false; + Task.Run(() => + { + GetProduct(shopIdLst); + Invoke(new Action(() => + { + this.statusBar.lblTaskStatus.Text = "商品查询完毕"; + BaseMsgForm.ShowInfo("商品查询完毕"); + pbLoading.Visible = false; + btnSearchProd.Enabled = true; + })); + }, cancellationTokenSource.Token); + } + + void GetProduct(List shopIdLst) + { + List shopLst = GlobalConfig.ShopLoginList.Where(s => shopIdLst.Contains(s.ShopId)).ToList(); + foreach(var shop in shopLst) + { + if(cancellationTokenSource.IsCancellationRequested) + break; + + if (shop.LoginStatus != "登录成功") + { + continue; + } + + int page = PageBegin - 1; + int totalPage = 1; + int pageSize = 50; + string nextKey = ""; + while (page < totalPage && page < PageEnd) + { + page++; + + if (cancellationTokenSource.IsCancellationRequested) + break; + + string getProdOnSaleRst = ""; + + if (string.IsNullOrEmpty(PreType) && sortType == null) + getProdOnSaleRst = WXPreSale.scanProductPreview(shop, page, nextKey, pageSize); + else + getProdOnSaleRst = WXPreSale.searchProduct(shop, page, null, pageSize, sortType); + Thread.Sleep(Randomx.GetId(50, 100)); + if (!getProdOnSaleRst.Contains("\"success\":true")) + { + var error = BaseRegex.GetStringJson(ref getProdOnSaleRst, "msg"); + if (string.IsNullOrEmpty(error)) + error = getProdOnSaleRst; + + WXShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false); + if (shop.LoginStatus != "登录成功") + { + Invoke(new Action(() => { BindShop(shop, shopIdLst, "店铺掉线"); })); + } + + var shopRow = dgvShop.Rows.Cast().FirstOrDefault(r => r.Cells["colShopId"].Value.ParseToString() == shop.ShopId); + Invoke(new Action(() => { + if (shopRow != null) + { + shopRow.Cells["colOpResult"].Value = error; + } + })); + break; + } + + try + { + var prodObjs = JsonHelper.JObjectParse(getProdOnSaleRst); + if (page == 1 || 1 == 1) + { + var totalNum = prodObjs["totalNum"].ParseToInt(); + totalPage = Math.Ceiling(1m * totalNum / pageSize).ParseToInt(); + } + nextKey = prodObjs["nextKey"].ParseToString(); + Invoke(new Action(() => + { + this.pbLoading.Visible = true; + this.statusBar.lblTaskStatus.Text = "正在查询店铺:" + shop.ShopAccount + " " + page + "/" + Math.Min(PageEnd, totalPage); + //this.statusBar.pgbTaskProgress.Maximum = lstTemuDBProductSelect.Count; + //this.statusBar.UpdateProgressBar(0); + })); + foreach (JObject prod in prodObjs["productList"]) + { + var pStr = JsonHelper.SerializeObject(prod); + Invoke(new Action(() => + { + decimal? price = null; + try { price = prod["skuList"][0]["price"].ParseToDecimal() / 100; } catch { } + var prodId = prod["productId"].ParseToString(); + if (dgvSelectProduct.Rows.Cast().Any(r => r.Cells["colDraftId"].ParseToString() == prodId)) + { + + } + + var rowIndex = this.dgvSelectProduct.Rows.Add( + false, + "", + shop.ShopId, + shop.ShopAccount, + "登录", + "进店", + "", + "", + prod["productId"].ParseToString(), + prod["headImg"].ParseToString(), + DataGridViewExtension.defaultBitmap, + "", // 替换图地址 + null, // 替换图 + prod["title"].ParseToString(), // 用户端显示商品原名 + (prod["recommendCategory"].IsJTokenNullOrEmpty() || prod["recommendCategory"]["categoryNames"].IsJTokenNullOrEmpty()) ? + "" : string.Join(" >> ", prod["recommendCategory"]["categoryNames"].Select(s => s.ParseToString())), // 类目名称 + prod["spuCode"].ParseToString(), + //price, + prod["price"].ParseToDecimal() * 0.01m, + prod["soldNum"].ParseToInt(), + "在售" + (prod["presaleTag"].ParseToInt() == 1 ? "[预售]" : ""), + "", // 备注 + "", + "删除", + BaseClass.StampToDateTime(prod["lastEditDraftTime"].ParseToInt()).ToString("yy-MM-dd HH:mm"), + ""); + + dgvSelectProduct.Rows[rowIndex].Height = 60; + dgvSelectProduct.Rows[rowIndex].Cells["colMsg"].Style.ForeColor = dgvSelectProduct.Rows[rowIndex].Cells["colMsg"].Value.ParseToString().Contains("预售") ? Color.Orange : Color.Blue; + })); + } + } + catch (Exception ex) + { + + } + } + } + } + + private void btnClearDgv_Click(object sender, EventArgs e) + { + var rows = this.dgvSelectProduct.Rows.Cast().ToList(); //Cast后Rows做foreach循环时仍会夹花跳过,所以要ToList转一个新的数组。 + foreach (var row in rows) + { + if (row.Cells["colCheck"].Value.ParseToBool() == true) + { + //var draft_id = row.Cells["colDraftId"].Value.ParseToString(); + //upload_draft_product_lst.RemoveAll(p => p.draft_id == draft_id); + + this.dgvSelectProduct.Rows.Remove(row); + } + } + //NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_select_upload_draft_products", upload_draft_product_lst); + } + + private void btnClearFilter_Click(object sender, EventArgs e) + { + txtFiltSaleNumMoreThan.Text = "0"; + txtFiltSaleNumLessThan.Text = "1"; + } + + private void btnFilterShop_Click(object sender, EventArgs e) + { + foreach(DataGridViewRow row in dgvShop.Rows) + { + string notes = cmbFilterShopNotes.Text.Trim().Trim(';'); + if (notes == "全部") + notes = ""; + List notesLst = notes.Split(new string[] { ";", ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries).ToList(); + + if (!row.Cells["colShopName"].Value.ParseToString().Contains(txtFilterShopName.Text.Trim())) + { + row.Visible = false; + row.Cells["colSelect"].Value = false; + continue; + } + if (!row.Cells["colShopNotes"].Value.ParseToString().Contains(notes) && !notesLst.Contains(row.Cells["colShopNotes"].Value.ParseToString())) + { + row.Visible = false; + row.Cells["colSelect"].Value = false; + continue; + } + row.Visible = true; + } + } + + private void btnEmptyShop_Click(object sender, EventArgs e) + { + txtFilterShopName.Text = ""; + cmbFilterShopNotes.Text = "全部"; + btnFilterShop_Click(null, null); + } + + private void btnReverse_Click(object sender, EventArgs e) + { + foreach(DataGridViewRow row in dgvShop.Rows) + { + if (row.Visible == true) + row.Cells["colSelect"].Value = !row.Cells["colSelect"].Value.ParseToBool(); + } + } + + private void btnAddSelect_Click(object sender, EventArgs e) + { + string notes = cmbFilterShopNotes.Text.Trim().Trim(';'); + if (notes == "全部") + notes = ""; + List notesLst = notes.Split(new string[] { ";", ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries).ToList(); + + foreach (DataGridViewRow row in dgvShop.Rows) + { + if (row.Visible == true) + { + if (row.Cells["colShopName"].Value.ParseToString().Contains(txtFilterShopName.Text.Trim()) && + (row.Cells["colShopNotes"].Value.ParseToString().Contains(notes) || notesLst.Contains(row.Cells["colShopNotes"].Value.ParseToString()))) + { + row.Cells["colSelect"].Value = true; + } + } + } + } + + private void btnAddUnSelect_Click(object sender, EventArgs e) + { + string notes = cmbFilterShopNotes.Text.Trim().Trim(';'); + if (notes == "全部") + notes = ""; + List notesLst = notes.Split(new string[] { ";", ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries).ToList(); + + foreach (DataGridViewRow row in dgvShop.Rows) + { + if (row.Visible == true) + { + if (row.Cells["colShopName"].Value.ParseToString().Contains(txtFilterShopName.Text.Trim()) && + (row.Cells["colShopNotes"].Value.ParseToString().Contains(notes) || notesLst.Contains(row.Cells["colShopNotes"].Value.ParseToString()))) + { + row.Cells["colSelect"].Value = false; + } + } + } + } + + private void btnSelectOnline_Click(object sender, EventArgs e) + { + foreach (DataGridViewRow row in dgvShop.Rows) + { + if (row.Visible == true) + { + if (row.Cells["colLoginStatus"].Value.ParseToString() == "在线") + { + row.Cells["colSelect"].Value = true; + } + else + { + row.Cells["colSelect"].Value = false; + } + } + } + } + + private void btnSelectOffline_Click(object sender, EventArgs e) + { + foreach (DataGridViewRow row in dgvShop.Rows) + { + if (row.Visible == true) + { + if (row.Cells["colLoginStatus"].Value.ParseToString() != "在线") + { + row.Cells["colSelect"].Value = true; + } + else + { + row.Cells["colSelect"].Value = false; + } + } + } + } + + private void txtPageBegin_TextChanged(object sender, EventArgs e) + { + PageEnd = txtPageBegin.Text.ParseToInt(); + } + + private void txtPageEnd_TextChanged(object sender, EventArgs e) + { + PageEnd = txtPageEnd.Text.ParseToInt(); + } + + private void cmbPreType_SelectedIndexChanged(object sender, EventArgs e) + { + PreType = cmbPreType.Text.Trim(); + } + + private void btnFiltSelectMoreThan_Click(object sender, EventArgs e) + { + foreach(DataGridViewRow row in dgvSelectProduct.Rows) + { + if (row.Cells["colSoldNum"].Value.ParseToInt() > txtFiltSaleNumMoreThan.Text.Trim().ParseToInt()) + row.Cells["colCheck"].Value = true; + else + row.Cells["colCheck"].Value = false; + } + } + + private void btnFiltSelectLessThan_Click(object sender, EventArgs e) + { + foreach (DataGridViewRow row in dgvSelectProduct.Rows) + { + if (row.Cells["colSoldNum"].Value.ParseToInt() >= txtFiltSaleNumLessThan.Text.Trim().ParseToInt()) + row.Cells["colCheck"].Value = false; + else + row.Cells["colCheck"].Value = true; + } + } + + decimal productPriceValue = 0; + + private void btnEndCoupon_Click(object sender, EventArgs e) + { + var rowLst = dgvSelectProduct.Rows.Cast().Where(r => r.Cells["colCheck"].Value.ParseToBool() == true).ToList(); + if (rowLst.Count <= 0) + { + BaseMsgForm.ShowError("请勾选需要操作的商品!"); + return; + } + + this.pbLoading.Visible = true; + cancellationTokenSource = new CancellationTokenSource(); + dgvSelectProduct.Columns["colCouponNum"].HeaderText = "生效券数量"; + dgvSelectProduct.Columns["colCouponNum"].Visible = true; + Task.Run(() => + { + EndProdCoupon(rowLst); + Invoke(new Action(() => + { + this.statusBar.lblTaskStatus.Text = "优惠券作废删除完毕"; + BaseMsgForm.ShowInfo("优惠券作废删除完毕"); + this.pbLoading.Visible = false; + })); + }, cancellationTokenSource.Token); + } + void EndProdCoupon(List rowLst) + { + Invoke(new Action(() => + { + this.pbLoading.Visible = true; + this.statusBar.lblTaskStatus.Text = "正在作废删除" + "...".Substring(0, DateTime.Now.Second % 4); + this.statusBar.pgbTaskProgress.Maximum = rowLst.Count; + this.statusBar.UpdateProgressBar(0); + })); + + foreach (var row in rowLst) + { + if (cancellationTokenSource.IsCancellationRequested) + break; + + Invoke(new Action(() => + { + this.statusBar.lblTaskStatus.Text = "正在作废删除" + "...".Substring(0, DateTime.Now.Second % 4); + this.statusBar.UpdateProgressBar(this.statusBar.pgbTaskProgress.Value + 1); + row.Cells["colOpResult"].Value = ""; + row.Cells["colCouponNum"].Value = ""; + })); + + var prodId = row.Cells["colDraftId"].Value.ParseToString(); + var shopId = row.Cells["colSupplierId"].Value.ParseToString(); + var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId); + if (shop == null) + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "店铺不存在"; + })); + continue; + } + if (shop.LoginStatus != "登录成功") + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "店铺掉线"; + })); + continue; + } + + var searchCouponRst = WxCoupon.WxSearchCoupon(shop, prodId); + Thread.Sleep(Randomx.GetId(500, 1000)); + if (searchCouponRst.Contains("biz magic invalid")) + { + WXShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false); + } + if (!searchCouponRst.Contains("\"success\":true") && !searchCouponRst.Contains("\"code\":0")) + { + var errmsg = BaseRegex.GetStringJson(ref searchCouponRst, "msg"); + if (string.IsNullOrWhiteSpace(errmsg)) + errmsg = searchCouponRst; + + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = errmsg; + })); + continue; + } + + if (searchCouponRst.Contains("\"code\":0")) + { + var totalNum = BaseRegex.GetStringJson(ref searchCouponRst, "totalNum"); + Invoke(new Action(() => + { + row.Cells["colCouponNum"].Value = totalNum; + })); + if (totalNum == "0") + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "商品无专属优惠券,跳过"; + })); + continue; + } + try + { + var couponLst = JsonHelper.DeserializeJsonToList(JsonHelper.JObjectParse(searchCouponRst)["coupons"].ToString()); + string errMsg = ""; + foreach (var coupon in couponLst) + { + var endRst = WxCoupon.WxEndCoupon(shop, coupon.couponKey.couponId.ParseToString()); + Thread.Sleep(Randomx.GetId(100, 300)); + if (!endRst.Contains("\"code\":0")) + { + var err = BaseRegex.GetStringJson(ref endRst, "msg"); + if (string.IsNullOrWhiteSpace(err)) + err = endRst; + errMsg += coupon.couponKey.couponId + " " + err + " \r\n"; + continue; + } + var delRst = WxCoupon.WxDelCoupon(shop, coupon.couponKey.couponId.ParseToString()); + Thread.Sleep(Randomx.GetId(100, 300)); + if (!delRst.Contains("\"code\":0")) + { + var err = BaseRegex.GetStringJson(ref delRst, "msg"); + if (string.IsNullOrWhiteSpace(err)) + err = delRst; + errMsg += coupon.couponKey.couponId + " " + err + " \r\n"; + continue; + } + } + if (!errMsg.IsNullOrEmpty()) + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "作废删除失败 " + errMsg; + })); + } + else + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "作废删除成功"; + })); + } + } + catch (Exception ex) + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "作废删除失败 优惠券格式转换失败"; + })); + } + } + } + } + + int? sortType = null; + private void cmbSaleSort_TextChanged(object sender, EventArgs e) + { + sortType = null; + if (cmbSaleSort.Text == "降序") + sortType = 6; + if (cmbSaleSort.Text == "升序") + sortType = 5; + } + + private void btnSync_Click(object sender, EventArgs e) + { + var rowLst = dgvSelectProduct.Rows.Cast().Where(r => r.Cells["colCheck"].Value.ParseToBool() == true).ToList(); + if (rowLst.Count <= 0) + { + BaseMsgForm.ShowError("请勾选需要操作的商品!"); + return; + } + + this.pbLoading.Visible = true; + cancellationTokenSource = new CancellationTokenSource(); + dgvSelectProduct.Columns["colCouponNum"].Visible = false; + Task.Run(() => + { + SyncProd(rowLst); + Invoke(new Action(() => + { + if(cancellationTokenSource.IsCancellationRequested) + { + this.statusBar.lblTaskStatus.Text = "商品同步中断"; + BaseMsgForm.ShowInfo("商品同步中断"); + } + else + { + this.statusBar.lblTaskStatus.Text = "商品同步完毕"; + BaseMsgForm.ShowInfo("商品同步完毕"); + } + this.pbLoading.Visible = false; + })); + }, cancellationTokenSource.Token); + } + + void SyncProd(List rowLst) + { + Invoke(new Action(() => + { + this.pbLoading.Visible = true; + this.statusBar.lblTaskStatus.Text = "正在同步" + "...".Substring(0, DateTime.Now.Second % 4); + this.statusBar.pgbTaskProgress.Maximum = rowLst.Count; + this.statusBar.UpdateProgressBar(0); + })); + + while(rowLst.Count > 0) + { + if (cancellationTokenSource.IsCancellationRequested) + break; + + var r0 = rowLst.FirstOrDefault(); + var shopId = r0.Cells["colSupplierId"].Value.ParseToString(); + var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId); + var rowLstTmp = rowLst.Where(r => r.Cells["colSupplierId"].Value.ParseToString() == shopId).Take(50).ToList(); + foreach(var r in rowLstTmp) + { + rowLst.Remove(r); + + Invoke(new Action(() => + { + this.statusBar.lblTaskStatus.Text = "正在同步" + "...".Substring(0, DateTime.Now.Second % 4); + this.statusBar.UpdateProgressBar(this.statusBar.pgbTaskProgress.Value + 1); + r.Cells["colOpResult"].Value = ""; + })); + } + if (shop == null) + { + Invoke(new Action(() => + { + foreach (var r in rowLstTmp) + { + r.Cells["colOpResult"].Value = "店铺不存在"; + } + })); + continue; + } + if (shop.LoginStatus != "登录成功") + { + Invoke(new Action(() => + { + foreach (var r in rowLstTmp) + { + r.Cells["colOpResult"].Value = "店铺掉线"; + } + })); + continue; + } + + List prodIdLst = new List(); + List extCodeLst = new List(); + foreach (var row in rowLstTmp) + { + var prodId = row.Cells["colDraftId"].Value.ParseToString(); + var extCode = row.Cells["colExtCode"].Value.ParseToString(); + prodIdLst.Add(prodId); + extCodeLst.Add(extCode); + } + + // 查询下架库有没有 + string url = BaseClass.BuildPDDObjString("product/get_prod_down_sku_lst_by_sku_codes"); + Thread.Sleep(500); + string data = UserLogin.GetSignaturex(); + data += "&search_secret_spu_ids=" + string.Join(",", extCodeLst.Distinct()); + //data += "&search_sku_codes=" + string.Join(",", skuExtCodeLst.Distinct()); + var result = GetHtml.PostUtf8(url, data); + if (!result.Contains("\"code\":200")) + result = GetHtml.PostUtf8(url, data); + if (!result.Contains("\"code\":200")) + { + var errMsg = BaseRegex.GetStringJson(ref result, "msg"); + if (string.IsNullOrEmpty(errMsg)) + errMsg = result; + Invoke(new Action(() => + { + foreach (var row in rowLstTmp) + { + row.Cells["colOpResult"].Value = "查询商品变更错误:" + errMsg; + } + })); + continue; + } + List downSkuExistLst = JsonHelper.DeserializeJsonToList(JsonHelper.JObjectParse(result)["data"].ParseToString()); + + foreach (var row in rowLstTmp) + { + var extCode = row.Cells["colExtCode"].Value.ParseToString(); + var neewDownSkuLst = downSkuExistLst.Where(se => se.secret_spu_id == extCode).ToList(); + if (neewDownSkuLst.Count == 0) + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "商品检测完毕,无需同步"; + })); + continue; + } + else + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "正在检测同步"; + })); + Thread.Sleep(100); + + var prodId = row.Cells["colDraftId"].Value.ParseToString(); + var getEditProdRst = WXUpload.getEditProductV2(shop, prodId); + Thread.Sleep(Randomx.GetId(50, 100)); + if (getEditProdRst.Contains("biz magic invalid")) + { + WXShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false); + } + if (!getEditProdRst.Contains("\"success\":true")) + { + var errmsg = BaseRegex.GetStringJson(ref getEditProdRst, "msg"); + if (string.IsNullOrWhiteSpace(errmsg)) + errmsg = getEditProdRst; + if (shop.LoginStatus != "登录成功") + errmsg = "店铺掉线"; + + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = errmsg; + })); + continue; + } + + string productJson = ""; + try + { + // 获取免审编辑回传数据 + JObject jObjTmp = JsonHelper.JObjectParse(getEditProdRst); + //jObjTmp["product"]["deliverInfo"]["skuDeliverInfo"]["fullPaymentPresaleDeliveryTime"] = chkPreSale.Checked ? txtPreDays.Text.Trim().ParseToInt() : 0; + //jObjTmp["product"]["deliverInfo"]["deliverType"] = chkPreSale.Checked ? 1 : 0; + //jObjTmp["product"]["info"]["presaleTag"] = chkPreSale.Checked ? 1 : 0; + //jObjTmp["product"]["info"]["presaleTagType"] = chkPreSale.Checked ? 1 : 0; + + bool needSync = false; + foreach (var jSku in jObjTmp["product"]["productSkus"]) + { + var jSkuStr = jSku.ParseToString(); + var itemCode = jSku["productSkuInfo"]?["skuCode"].ParseToString(); + var needDownSku = downSkuExistLst.FirstOrDefault(se =>se.secret_spu_id == extCode && se.secret_sku_id == itemCode); + if (needDownSku != null) + { + if (//jSku["productSkuInfo"]["stockInfo"]["stockNum"].ParseToString() != "0" || + jSku["productSkuInfo"]["stockInfo"]["totalNum"].ParseToString() != "0" || + jSku["productSkuInfo"]["realStockInfo"]["stockNum"].ParseToString() != "0" || + jSku["productSkuInfo"]["realStockInfo"]["totalNum"].ParseToString() != "0") + { + jSku["productSkuInfo"]["stockInfo"]["stockNum"] = "0"; + jSku["productSkuInfo"]["stockInfo"]["totalNum"] = "0"; + jSku["productSkuInfo"]["realStockInfo"]["stockNum"] = "0"; + jSku["productSkuInfo"]["realStockInfo"]["totalNum"] = "0"; + needSync = true; + } + } + } + productJson = JsonHelper.SerializeObject(jObjTmp); + + if (!needSync) + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "商品检测完毕,无需同步"; + })); + continue; + } + } + catch (Exception ex) + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "商品库存解析失败:" + ex.Message; + })); + continue; + } + + DateTime tickTime = DateTime.Now.AddSeconds(0 - Randomx.GetId(10, 30)); + int time1 = BaseClass.DateTimeToTimestampSeconds(tickTime) - Randomx.GetId(80, 150); + int time2 = BaseClass.DateTimeToTimestampSeconds(tickTime); + + // 提交免审修改(实际生效接口) + var listingAuditFreeRst = WXUpload.listingAuditFree(shop, productJson, prodId, time1, time2); + System.Threading.Thread.Sleep(Randomx.GetId(150, 500)); + if (!listingAuditFreeRst.Contains("\"code\":0")) + { + var errmsg = BaseRegex.GetStringJson(ref listingAuditFreeRst, "msg"); + if (string.IsNullOrWhiteSpace(errmsg)) + errmsg = listingAuditFreeRst; + if (errmsg.Contains("107232")) + errmsg = "图片不清晰禁止操作"; + if (errmsg.Contains("9401083")) + errmsg = "店铺处罚中禁止操作"; + + if (getEditProdRst.Contains("biz magic invalid")) + { + WXShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false); + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "店铺掉线"; + })); + continue; + } + + if (chkFailDownProd.Checked) + { + var downProd = WXPreSale.DownProd(shop, prodId); + System.Threading.Thread.Sleep(Randomx.GetId(50, 100)); + if (downProd.Contains("\"code\":0")) + { + errmsg += " 商品同步失败 已下架"; + } + else + errmsg += " 商品同步失败 下架失败"; + } + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = errmsg; + })); + continue; + } + if (listingAuditFreeRst.Contains("\"code\":0")) + { + Invoke(new Action(() => + { + row.Cells["colOpResult"].Value = "商品同步成功"; + })); + } + + + + + + } + } + } + } + } +} diff --git a/TEMUKJD/WXForms/ProductForms/WXProdSyncForm.resx b/TEMUKJD/WXForms/ProductForms/WXProdSyncForm.resx new file mode 100644 index 0000000..df46883 --- /dev/null +++ b/TEMUKJD/WXForms/ProductForms/WXProdSyncForm.resx @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + \ No newline at end of file diff --git a/TEMUKJD/WXForms/ProductForms/WXProductForm.Designer.cs b/TEMUKJD/WXForms/ProductForms/WXProductForm.Designer.cs index 82e994b..15946e6 100644 --- a/TEMUKJD/WXForms/ProductForms/WXProductForm.Designer.cs +++ b/TEMUKJD/WXForms/ProductForms/WXProductForm.Designer.cs @@ -31,10 +31,12 @@ System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("选品上传"); System.Windows.Forms.TreeNode treeNode2 = new System.Windows.Forms.TreeNode("商品预售/下架"); System.Windows.Forms.TreeNode treeNode3 = new System.Windows.Forms.TreeNode("爆单神器"); - System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("商品管理", new System.Windows.Forms.TreeNode[] { + System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("商品同步"); + System.Windows.Forms.TreeNode treeNode5 = new System.Windows.Forms.TreeNode("商品管理", new System.Windows.Forms.TreeNode[] { treeNode1, treeNode2, - treeNode3}); + treeNode3, + treeNode4}); this.panel1 = new System.Windows.Forms.Panel(); this.panel3 = new System.Windows.Forms.Panel(); this.panel2 = new System.Windows.Forms.Panel(); @@ -131,10 +133,12 @@ treeNode2.Text = "商品预售/下架"; treeNode3.Name = "爆单神器"; treeNode3.Text = "爆单神器"; - treeNode4.Name = "商品管理"; - treeNode4.Text = "商品管理"; + treeNode4.Name = "商品同步"; + treeNode4.Text = "商品同步"; + treeNode5.Name = "商品管理"; + treeNode5.Text = "商品管理"; this.tv.Nodes.AddRange(new System.Windows.Forms.TreeNode[] { - treeNode4}); + treeNode5}); this.tv.OverForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(235)))), ((int)(((byte)(235))))); this.tv.Size = new System.Drawing.Size(140, 521); this.tv.TabIndex = 1; diff --git a/TEMUKJD/WXForms/ProductForms/WXProductForm.cs b/TEMUKJD/WXForms/ProductForms/WXProductForm.cs index ef78cc4..e8058fc 100644 --- a/TEMUKJD/WXForms/ProductForms/WXProductForm.cs +++ b/TEMUKJD/WXForms/ProductForms/WXProductForm.cs @@ -19,6 +19,7 @@ namespace TemuKJD.WXForms.ProductForms public Lazy userSelectDbProductForm = new Lazy(); public Lazy wxProdPreSaleForm = new Lazy(); public Lazy wxProdCouponForm = new Lazy(); + public Lazy wxProdSyncForm = new Lazy(); public WXProductForm() { @@ -28,7 +29,7 @@ namespace TemuKJD.WXForms.ProductForms { tv.SelectedNode = tv.Nodes[0].Nodes[0]; tv.ExpandGroup(tv.Nodes[0].Name); - List hideName = new List() { "商品列表", "爆单神器1" }; + List hideName = new List() { "商品列表", "爆单神器1", "商品同步1" }; if (BaseClass.GroupId == 3) { @@ -76,6 +77,9 @@ namespace TemuKJD.WXForms.ProductForms case "爆单神器": SetForm(wxProdCouponForm.Value); break; + case "商品同步": + SetForm(wxProdSyncForm.Value); + break; } })); }).Start(); diff --git a/TEMUKJD/WXForms/ShopForms/WXShopListForm.cs b/TEMUKJD/WXForms/ShopForms/WXShopListForm.cs index 4ab69a9..0bfa3df 100644 --- a/TEMUKJD/WXForms/ShopForms/WXShopListForm.cs +++ b/TEMUKJD/WXForms/ShopForms/WXShopListForm.cs @@ -187,7 +187,7 @@ namespace TemuKJD.WXForms.ShopForms /// 店铺名称 /// cookies /// 工具名称(可不填写) - public static void UpdateServerShopCookies(ShopLoginInfo shop, string fromTool = null) + public static string UpdateServerShopCookies(ShopLoginInfo shop, string fromTool = null, bool isShowProgress = true) { var fTool = string.IsNullOrEmpty(fromTool) ? "" : "&from_tool=" + fromTool; var url = BaseClass.BuildObjString("shop/mdy_shop_cookie_and_login_status"); @@ -204,8 +204,13 @@ namespace TemuKJD.WXForms.ShopForms result = GetHtml.PostUtf8(url, data); if (!result.Contains("\"code\":200")) { - BaseMsgForm.ShowError("服务端登录状态保存失败!请检查网络连接。"); + var errMsg = BaseRegex.GetStringJson(ref result, "msg"); + if (isShowProgress) + BaseMsgForm.ShowError("服务端登录状态保存失败!请检查网络连接。" + errMsg); + else + return "服务端登录状态保存失败!请检查网络连接。" + errMsg; } + return ""; } ///// ///// 获取店铺Cookies @@ -632,7 +637,7 @@ namespace TemuKJD.WXForms.ShopForms sc.LastRefreshDate = DateTime.Now.ToString("yyyyMMdd"); } } - UpdateServerShopCookies(shop); // 店铺cookie写入服务端,多店共用一个登录账号一组cookie + UpdateServerShopCookies(shop, null, isShowProgress); // 店铺cookie写入服务端,多店共用一个登录账号一组cookie StartUp.SaveLocalShopLoginInfo(); }