From 78e911c7cf353ba32b469c7075f0608be9ad65fb Mon Sep 17 00:00:00 2001 From: wule Date: Tue, 4 Aug 2026 15:03:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E4=B8=8A=E8=B4=A7=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E9=80=89=E6=8B=A9=E9=9A=8F=E6=9C=BA=E6=9B=9D=E5=85=89?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AllBase/BaseClass.cs | 2 +- .../BLL/BXX/BXXProductManage.cs | 117 +++++++++++++++++ KJDService/KJD_WebService/Utils/JsonUtils.cs | 14 +- .../WXDBProdUploadForm.Designer.cs | 122 ++++++++++++------ .../ProductForms/WXDBProdUploadForm.cs | 14 +- 5 files changed, 221 insertions(+), 48 deletions(-) diff --git a/AllBase/BaseClass.cs b/AllBase/BaseClass.cs index a5a16e4..54c97ba 100644 --- a/AllBase/BaseClass.cs +++ b/AllBase/BaseClass.cs @@ -31,7 +31,7 @@ namespace AllBase /// /// 版本ID /// - public static int VersionCount = 1263; + public static int VersionCount = 1265; public static string MainPath = "29wx"; //public static string MainPath = "29wx"; //public static string MainPath = "29pdd"; diff --git a/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs b/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs index db25511..64f9453 100644 --- a/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs +++ b/KJDService/KJD_WebService/BLL/BXX/BXXProductManage.cs @@ -1031,6 +1031,29 @@ namespace KJD_Web.BLL.BXX } mySql.Close(); } + if (prod.product_json.Contains(":null")) + { + mySql = new MysqlUtils(conn); + try + { + JObject jObj = JsonUtils.JObjectParse(prod.product_json); + + RemoveNullProperties(jObj); + + JsonSerializerSettings jsonIgnoreNullSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; + var newProdJson = JsonUtils.SerializeObjectToString(jObj, jsonIgnoreNullSetting); + + sql = "update " + tableName + " set product_json=@product_json where spu_id='" + prod.spu_id + "'"; + paramLst = new List(); + paramLst.Add(new MySqlParameter() { DbType = DbType.String, ParameterName = "product_json", Value = newProdJson, }); + mySql.ExecuteNonQuery(sql, paramLst.ToArray()); + prod.product_json = newProdJson; + } + catch + { + } + mySql.Close(); + } } if (!string.IsNullOrEmpty(get_select_count)) { @@ -1058,6 +1081,93 @@ namespace KJD_Web.BLL.BXX return "{\"code\":19999,\"msg\":\"输入为空\"}"; } + /// + /// 递归剔除JObject中值为null的字段 (修改为null才删除,empty不删除) + /// + public static void RemoveNullProperties(JToken token) + { + if (token.Type == JTokenType.Object) + { + var jObj = (JObject)token; + var propertiesToRemove = jObj.Properties() + //.Where(p => + // p.Value == null || + // p.Value.Type == JTokenType.Null || + // (p.Value.Type == JTokenType.String && string.IsNullOrEmpty((string)p.Value)) || + // (p.Value.Type == JTokenType.String && string.IsNullOrWhiteSpace((string)p.Value)) || + // (p.Value.Type == JTokenType.Array && !p.Value.HasValues)) + .Where(p => + p.Value == null || + p.Value.Type == JTokenType.Null) + .ToList(); + + foreach (var prop in propertiesToRemove) + prop.Remove(); + + foreach (var child in jObj.Children()) + { + if (child.Children().Count() > 0) + { + RemoveNullProperties(child); + } + } + } + else if (token.Type == JTokenType.Property) + { + if (token.Children().Count() > 0) + { + var childs = token.Children() + //.Where(p => + // p == null || + // p.Type == JTokenType.Null || + // (p.Type == JTokenType.String && string.IsNullOrEmpty((string)p)) || + // (p.Type == JTokenType.String && string.IsNullOrWhiteSpace((string)p)) || + // (p.Type == JTokenType.Array && !p.HasValues)) + .Where(p => + p == null || + p.Type == JTokenType.Null) + .ToList(); + + foreach (var prop in childs) + prop.Remove(); + foreach (var child in token.Children()) + { + if (child.Children().Count() > 0) + { + RemoveNullProperties(child); + } + } + } + } + else if (token.Type == JTokenType.Array) + { + var jArray = (JArray)token; + + // 清理数组内部的 null / "" + for (int i = jArray.Count - 1; i >= 0; i--) + { + var item = jArray[i]; + //if (item.Type == JTokenType.Null || + // (item.Type == JTokenType.String && string.IsNullOrWhiteSpace((string)item))) + if (item.Type == JTokenType.Null) + { + jArray.RemoveAt(i); + } + } + + // 递归数组内对象/子数组 + foreach (var child in jArray) + RemoveNullProperties(child); + + //// 如果数组最后变空,也删除 + //if (!jArray.HasValues) + //{ + // if (jArray.Parent is JProperty prop) + // prop.Remove(); + //} + } + } + /// /// 回采微信小店属性等商品数据入库 /// @@ -1924,6 +2034,9 @@ namespace KJD_Web.BLL.BXX add_user_name = "admin"; var no_fission_words = RegexUtils.GetStringQuery(ref inputData, "no_fission_words").ParseToBool(); // 未裂变标题 var fission_words = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "fission_words"))?.Replace("'", "\\'"); + var min_view_uv = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "min_view_uv"))?.ParseToNullableInt(); + if (min_view_uv > 0 && min_view_uv < 100) + min_view_uv = 100; int page = RegexUtils.GetStringQuery(ref inputData, "page").ParseToInt(); int page_size = RegexUtils.GetStringQuery(ref inputData, "page_size").ParseToInt(50); @@ -2062,6 +2175,10 @@ namespace KJD_Web.BLL.BXX { where += " and fission_words LIKE '" + fission_words + "%'"; } + if (min_view_uv > 0) + { + where += " and view_uv >= " + min_view_uv + ""; + } sql += where; int count = prod_count; diff --git a/KJDService/KJD_WebService/Utils/JsonUtils.cs b/KJDService/KJD_WebService/Utils/JsonUtils.cs index 14b25c4..6907546 100644 --- a/KJDService/KJD_WebService/Utils/JsonUtils.cs +++ b/KJDService/KJD_WebService/Utils/JsonUtils.cs @@ -70,12 +70,20 @@ namespace KJD_Web.Utils } } - public static JObject JObjectParse(string json) + public static JObject JObjectParse(string json, JsonLoadSettings settings = null) { try { - JObject obj = JObject.Parse(json); - return obj; + if (settings == null) + { + JObject obj = JObject.Parse(json); + return obj; + } + else + { + JObject obj = JObject.Parse(json, settings); + return obj; + } } catch { diff --git a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs index f7ad4f6..5cbfa04 100644 --- a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs +++ b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.Designer.cs @@ -139,6 +139,7 @@ namespace TemuKJD.WXForms.ProductForms this.label37 = new System.Windows.Forms.Label(); this.label15 = new System.Windows.Forms.Label(); this.ucGroupBoxEx4 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); + this.numFilterViewUv = new System.Windows.Forms.NumericUpDown(); this.cmbNotes = new System.Windows.Forms.ComboBox(); this.cmbJstInitSet = new System.Windows.Forms.ComboBox(); this.pbSelectProd = new System.Windows.Forms.PictureBox(); @@ -175,6 +176,7 @@ namespace TemuKJD.WXForms.ProductForms this.lblWaitToUp = new System.Windows.Forms.Label(); this.chkWXComplateProd = new TemuKJD.UserComponent.UcCheckBox(this.components); this.lblNotes = new System.Windows.Forms.Label(); + this.chkFilterViewUv = new TemuKJD.UserComponent.UcCheckBox(this.components); this.ucGroupBoxEx1 = new TemuKJD.UserComponent.UcGroupBoxEx(this.components); this.cmbFilterShopGroup = new TemuKJD.UserComponent.UcComboBoxMutiSelect(); this.label24 = new System.Windows.Forms.Label(); @@ -258,6 +260,7 @@ namespace TemuKJD.WXForms.ProductForms this.佣金上货.SuspendLayout(); this.裂变调试.SuspendLayout(); this.ucGroupBoxEx4.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numFilterViewUv)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pbSelectProd)).BeginInit(); this.ucGroupBoxEx1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer3)).BeginInit(); @@ -1593,6 +1596,7 @@ 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.numFilterViewUv); this.ucGroupBoxEx4.Controls.Add(this.cmbNotes); this.ucGroupBoxEx4.Controls.Add(this.cmbJstInitSet); this.ucGroupBoxEx4.Controls.Add(this.pbSelectProd); @@ -1629,6 +1633,7 @@ namespace TemuKJD.WXForms.ProductForms this.ucGroupBoxEx4.Controls.Add(this.lblWaitToUp); this.ucGroupBoxEx4.Controls.Add(this.chkWXComplateProd); this.ucGroupBoxEx4.Controls.Add(this.lblNotes); + this.ucGroupBoxEx4.Controls.Add(this.chkFilterViewUv); this.ucGroupBoxEx4.Location = new System.Drawing.Point(186, 2); this.ucGroupBoxEx4.Name = "ucGroupBoxEx4"; this.ucGroupBoxEx4.Size = new System.Drawing.Size(423, 165); @@ -1636,12 +1641,34 @@ namespace TemuKJD.WXForms.ProductForms this.ucGroupBoxEx4.TabStop = false; this.ucGroupBoxEx4.Text = "待传商品"; // + // numFilterViewUv + // + this.numFilterViewUv.Location = new System.Drawing.Point(192, 101); + this.numFilterViewUv.Maximum = new decimal(new int[] { + 99999999, + 0, + 0, + 0}); + this.numFilterViewUv.Minimum = new decimal(new int[] { + 200, + 0, + 0, + 0}); + this.numFilterViewUv.Name = "numFilterViewUv"; + this.numFilterViewUv.Size = new System.Drawing.Size(46, 23); + this.numFilterViewUv.TabIndex = 931; + this.numFilterViewUv.Value = new decimal(new int[] { + 200, + 0, + 0, + 0}); + // // cmbNotes // this.cmbNotes.FormattingEnabled = true; - this.cmbNotes.Location = new System.Drawing.Point(322, 46); + this.cmbNotes.Location = new System.Drawing.Point(323, 46); this.cmbNotes.Name = "cmbNotes"; - this.cmbNotes.Size = new System.Drawing.Size(96, 25); + this.cmbNotes.Size = new System.Drawing.Size(94, 25); this.cmbNotes.TabIndex = 823; this.cmbNotes.Visible = false; // @@ -1707,10 +1734,10 @@ namespace TemuKJD.WXForms.ProductForms this.txtRandomFissionProductCount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.txtRandomFissionProductCount.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.txtRandomFissionProductCount.Font = new System.Drawing.Font("微软雅黑", 10F); - this.txtRandomFissionProductCount.Location = new System.Drawing.Point(253, 100); + this.txtRandomFissionProductCount.Location = new System.Drawing.Point(297, 103); this.txtRandomFissionProductCount.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); this.txtRandomFissionProductCount.Name = "txtRandomFissionProductCount"; - this.txtRandomFissionProductCount.Size = new System.Drawing.Size(32, 25); + this.txtRandomFissionProductCount.Size = new System.Drawing.Size(30, 25); this.txtRandomFissionProductCount.TabIndex = 911; this.txtRandomFissionProductCount.Text = "100"; this.txtRandomFissionProductCount.Visible = false; @@ -1733,7 +1760,7 @@ namespace TemuKJD.WXForms.ProductForms this.btnSwitchCatType.Cursor = System.Windows.Forms.Cursors.Hand; this.btnSwitchCatType.DisabledBackColor = System.Drawing.Color.Empty; this.btnSwitchCatType.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnSwitchCatType.Location = new System.Drawing.Point(6, 21); + this.btnSwitchCatType.Location = new System.Drawing.Point(5, 21); this.btnSwitchCatType.Name = "btnSwitchCatType"; this.btnSwitchCatType.Size = new System.Drawing.Size(17, 21); this.btnSwitchCatType.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -1758,9 +1785,9 @@ namespace TemuKJD.WXForms.ProductForms "", "爆款数据", "普通商品"}); - this.cmbHot.Location = new System.Drawing.Point(322, 73); + this.cmbHot.Location = new System.Drawing.Point(323, 73); this.cmbHot.Name = "cmbHot"; - this.cmbHot.Size = new System.Drawing.Size(96, 25); + this.cmbHot.Size = new System.Drawing.Size(94, 25); this.cmbHot.TabIndex = 837; this.cmbHot.Text = "普通商品"; this.cmbHot.Visible = false; @@ -1806,10 +1833,10 @@ namespace TemuKJD.WXForms.ProductForms // this.txtSearchGoodsName.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.txtSearchGoodsName.Font = new System.Drawing.Font("微软雅黑", 10F); - this.txtSearchGoodsName.Location = new System.Drawing.Point(189, 46); + this.txtSearchGoodsName.Location = new System.Drawing.Point(191, 46); this.txtSearchGoodsName.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); this.txtSearchGoodsName.Name = "txtSearchGoodsName"; - this.txtSearchGoodsName.Size = new System.Drawing.Size(96, 25); + this.txtSearchGoodsName.Size = new System.Drawing.Size(94, 25); this.txtSearchGoodsName.TabIndex = 795; // // cmbSourceType @@ -1826,9 +1853,9 @@ namespace TemuKJD.WXForms.ProductForms "机会商品", "以图搜品", "多多外部数据"}); - this.cmbSourceType.Location = new System.Drawing.Point(56, 73); + this.cmbSourceType.Location = new System.Drawing.Point(55, 73); this.cmbSourceType.Name = "cmbSourceType"; - this.cmbSourceType.Size = new System.Drawing.Size(96, 25); + this.cmbSourceType.Size = new System.Drawing.Size(94, 25); this.cmbSourceType.TabIndex = 673; this.cmbSourceType.Text = "厂商直采"; this.cmbSourceType.Visible = false; @@ -1842,9 +1869,9 @@ namespace TemuKJD.WXForms.ProductForms this.cmbCateFilter3.DropDownWidth = 1; this.cmbCateFilter3.FormattingEnabled = true; this.cmbCateFilter3.IntegralHeight = false; - this.cmbCateFilter3.Location = new System.Drawing.Point(322, 19); + this.cmbCateFilter3.Location = new System.Drawing.Point(323, 19); this.cmbCateFilter3.Name = "cmbCateFilter3"; - this.cmbCateFilter3.Size = new System.Drawing.Size(96, 25); + this.cmbCateFilter3.Size = new System.Drawing.Size(94, 25); this.cmbCateFilter3.TabIndex = 710; this.cmbCateFilter3.Text = "全部"; this.cmbCateFilter3.SelectedIndexChanged += new System.EventHandler(this.cmbCateFilter3_SelectedIndexChanged); @@ -1853,7 +1880,7 @@ namespace TemuKJD.WXForms.ProductForms // label21 // this.label21.AutoSize = true; - this.label21.Location = new System.Drawing.Point(286, 23); + this.label21.Location = new System.Drawing.Point(288, 23); this.label21.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label21.Name = "label21"; this.label21.Size = new System.Drawing.Size(39, 17); @@ -1863,9 +1890,9 @@ namespace TemuKJD.WXForms.ProductForms // cmbGroupFilter // this.cmbGroupFilter.FormattingEnabled = true; - this.cmbGroupFilter.Location = new System.Drawing.Point(189, 73); + this.cmbGroupFilter.Location = new System.Drawing.Point(191, 73); this.cmbGroupFilter.Name = "cmbGroupFilter"; - this.cmbGroupFilter.Size = new System.Drawing.Size(96, 25); + this.cmbGroupFilter.Size = new System.Drawing.Size(94, 25); this.cmbGroupFilter.TabIndex = 641; this.cmbGroupFilter.Visible = false; this.cmbGroupFilter.SelectedIndexChanged += new System.EventHandler(this.cmbGroupFilter_SelectedIndexChanged); @@ -1874,10 +1901,10 @@ namespace TemuKJD.WXForms.ProductForms // this.txtIdFilter.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.txtIdFilter.Font = new System.Drawing.Font("微软雅黑", 10F); - this.txtIdFilter.Location = new System.Drawing.Point(56, 100); + this.txtIdFilter.Location = new System.Drawing.Point(55, 100); this.txtIdFilter.Margin = new System.Windows.Forms.Padding(0, 2, 0, 2); this.txtIdFilter.Name = "txtIdFilter"; - this.txtIdFilter.Size = new System.Drawing.Size(96, 25); + this.txtIdFilter.Size = new System.Drawing.Size(94, 25); this.txtIdFilter.TabIndex = 652; this.txtIdFilter.Visible = false; // @@ -1888,9 +1915,9 @@ namespace TemuKJD.WXForms.ProductForms this.cmbCateFilter2.DropDownWidth = 1; this.cmbCateFilter2.FormattingEnabled = true; this.cmbCateFilter2.IntegralHeight = false; - this.cmbCateFilter2.Location = new System.Drawing.Point(189, 19); + this.cmbCateFilter2.Location = new System.Drawing.Point(191, 19); this.cmbCateFilter2.Name = "cmbCateFilter2"; - this.cmbCateFilter2.Size = new System.Drawing.Size(96, 25); + this.cmbCateFilter2.Size = new System.Drawing.Size(94, 25); this.cmbCateFilter2.TabIndex = 708; this.cmbCateFilter2.Text = "全部"; this.cmbCateFilter2.SelectedIndexChanged += new System.EventHandler(this.cmbCateFilter2_SelectedIndexChanged); @@ -1902,7 +1929,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(387, 100); + this.btnClearFilter.Location = new System.Drawing.Point(387, 103); this.btnClearFilter.Margin = new System.Windows.Forms.Padding(4, 2, 2, 2); this.btnClearFilter.Name = "btnClearFilter"; this.btnClearFilter.Size = new System.Drawing.Size(31, 25); @@ -1929,9 +1956,9 @@ namespace TemuKJD.WXForms.ProductForms "安全+未校验", "安全商品", "未校验"}); - this.cmbWxSafe.Location = new System.Drawing.Point(56, 46); + this.cmbWxSafe.Location = new System.Drawing.Point(55, 46); this.cmbWxSafe.Name = "cmbWxSafe"; - this.cmbWxSafe.Size = new System.Drawing.Size(96, 25); + this.cmbWxSafe.Size = new System.Drawing.Size(94, 25); this.cmbWxSafe.TabIndex = 675; this.cmbWxSafe.Text = "安全+未校验"; // @@ -1968,9 +1995,9 @@ namespace TemuKJD.WXForms.ProductForms this.cmbCateFilter1.DropDownWidth = 1; this.cmbCateFilter1.FormattingEnabled = true; this.cmbCateFilter1.IntegralHeight = false; - this.cmbCateFilter1.Location = new System.Drawing.Point(56, 19); + this.cmbCateFilter1.Location = new System.Drawing.Point(55, 19); this.cmbCateFilter1.Name = "cmbCateFilter1"; - this.cmbCateFilter1.Size = new System.Drawing.Size(96, 25); + this.cmbCateFilter1.Size = new System.Drawing.Size(94, 25); this.cmbCateFilter1.TabIndex = 663; this.cmbCateFilter1.Text = "全部"; this.cmbCateFilter1.SelectedIndexChanged += new System.EventHandler(this.cmbCateFilter1_SelectedIndexChanged); @@ -1979,7 +2006,7 @@ namespace TemuKJD.WXForms.ProductForms // label2 // this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(21, 23); + this.label2.Location = new System.Drawing.Point(20, 23); this.label2.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(39, 17); @@ -2013,7 +2040,7 @@ namespace TemuKJD.WXForms.ProductForms // lblSourceType // this.lblSourceType.AutoSize = true; - this.lblSourceType.Location = new System.Drawing.Point(28, 77); + this.lblSourceType.Location = new System.Drawing.Point(27, 77); this.lblSourceType.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.lblSourceType.Name = "lblSourceType"; this.lblSourceType.Size = new System.Drawing.Size(32, 17); @@ -2024,7 +2051,7 @@ namespace TemuKJD.WXForms.ProductForms // lblGroupFilter // this.lblGroupFilter.AutoSize = true; - this.lblGroupFilter.Location = new System.Drawing.Point(160, 77); + this.lblGroupFilter.Location = new System.Drawing.Point(162, 77); this.lblGroupFilter.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.lblGroupFilter.Name = "lblGroupFilter"; this.lblGroupFilter.Size = new System.Drawing.Size(32, 17); @@ -2035,7 +2062,7 @@ namespace TemuKJD.WXForms.ProductForms // lblWxSafe // this.lblWxSafe.AutoSize = true; - this.lblWxSafe.Location = new System.Drawing.Point(4, 49); + this.lblWxSafe.Location = new System.Drawing.Point(3, 49); this.lblWxSafe.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.lblWxSafe.Name = "lblWxSafe"; this.lblWxSafe.Size = new System.Drawing.Size(56, 17); @@ -2045,7 +2072,7 @@ namespace TemuKJD.WXForms.ProductForms // label20 // this.label20.AutoSize = true; - this.label20.Location = new System.Drawing.Point(160, 50); + this.label20.Location = new System.Drawing.Point(162, 50); this.label20.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label20.Name = "label20"; this.label20.Size = new System.Drawing.Size(32, 17); @@ -2054,7 +2081,7 @@ namespace TemuKJD.WXForms.ProductForms // // lblIdFilter // - this.lblIdFilter.Location = new System.Drawing.Point(28, 104); + this.lblIdFilter.Location = new System.Drawing.Point(27, 104); this.lblIdFilter.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.lblIdFilter.Name = "lblIdFilter"; this.lblIdFilter.Size = new System.Drawing.Size(32, 17); @@ -2066,7 +2093,7 @@ namespace TemuKJD.WXForms.ProductForms // lblHot // this.lblHot.AutoSize = true; - this.lblHot.Location = new System.Drawing.Point(293, 77); + this.lblHot.Location = new System.Drawing.Point(295, 77); this.lblHot.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.lblHot.Name = "lblHot"; this.lblHot.Size = new System.Drawing.Size(32, 17); @@ -2077,7 +2104,7 @@ namespace TemuKJD.WXForms.ProductForms // label19 // this.label19.AutoSize = true; - this.label19.Location = new System.Drawing.Point(153, 23); + this.label19.Location = new System.Drawing.Point(155, 23); this.label19.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.label19.Name = "label19"; this.label19.Size = new System.Drawing.Size(39, 17); @@ -2086,11 +2113,12 @@ namespace TemuKJD.WXForms.ProductForms // // chkRandomFissionProduct // - this.chkRandomFissionProduct.Location = new System.Drawing.Point(163, 102); + this.chkRandomFissionProduct.AutoSize = true; + this.chkRandomFissionProduct.Location = new System.Drawing.Point(242, 96); this.chkRandomFissionProduct.Name = "chkRandomFissionProduct"; - this.chkRandomFissionProduct.Size = new System.Drawing.Size(96, 21); + this.chkRandomFissionProduct.Size = new System.Drawing.Size(63, 38); this.chkRandomFissionProduct.TabIndex = 910; - this.chkRandomFissionProduct.Text = "裂变标题数量"; + this.chkRandomFissionProduct.Text = "裂变标\r\n题数量"; this.chkRandomFissionProduct.UseVisualStyleBackColor = true; this.chkRandomFissionProduct.Visible = false; // @@ -2112,18 +2140,18 @@ namespace TemuKJD.WXForms.ProductForms // chkWXComplateProd // this.chkWXComplateProd.AutoSize = true; - this.chkWXComplateProd.Location = new System.Drawing.Point(296, 102); + this.chkWXComplateProd.Location = new System.Drawing.Point(331, 96); this.chkWXComplateProd.Name = "chkWXComplateProd"; - this.chkWXComplateProd.Size = new System.Drawing.Size(99, 21); + this.chkWXComplateProd.Size = new System.Drawing.Size(63, 38); this.chkWXComplateProd.TabIndex = 807; - this.chkWXComplateProd.Text = "微信回采商品"; + this.chkWXComplateProd.Text = "微信回\r\n采商品"; this.chkWXComplateProd.UseVisualStyleBackColor = true; this.chkWXComplateProd.Visible = false; // // lblNotes // this.lblNotes.AutoSize = true; - this.lblNotes.Location = new System.Drawing.Point(293, 50); + this.lblNotes.Location = new System.Drawing.Point(295, 50); this.lblNotes.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0); this.lblNotes.Name = "lblNotes"; this.lblNotes.Size = new System.Drawing.Size(32, 17); @@ -2131,6 +2159,17 @@ namespace TemuKJD.WXForms.ProductForms this.lblNotes.Text = "备注"; this.lblNotes.Visible = false; // + // chkFilterViewUv + // + this.chkFilterViewUv.AutoSize = true; + this.chkFilterViewUv.Location = new System.Drawing.Point(150, 102); + this.chkFilterViewUv.Name = "chkFilterViewUv"; + this.chkFilterViewUv.Size = new System.Drawing.Size(51, 21); + this.chkFilterViewUv.TabIndex = 911; + this.chkFilterViewUv.Text = "曝光"; + this.chkFilterViewUv.UseVisualStyleBackColor = true; + this.chkFilterViewUv.Visible = false; + // // ucGroupBoxEx1 // this.ucGroupBoxEx1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) @@ -3143,6 +3182,7 @@ namespace TemuKJD.WXForms.ProductForms this.裂变调试.PerformLayout(); this.ucGroupBoxEx4.ResumeLayout(false); this.ucGroupBoxEx4.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numFilterViewUv)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pbSelectProd)).EndInit(); this.ucGroupBoxEx1.ResumeLayout(false); this.ucGroupBoxEx1.PerformLayout(); @@ -3375,5 +3415,7 @@ namespace TemuKJD.WXForms.ProductForms private System.Windows.Forms.ComboBox cmbNotes; private System.Windows.Forms.Label lblNotes; private UserComponent.UcCheckBox chkIsSubmitSuccess; + private System.Windows.Forms.NumericUpDown numFilterViewUv; + private UserComponent.UcCheckBox chkFilterViewUv; } } \ No newline at end of file diff --git a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs index 1b4358f..172a044 100644 --- a/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs +++ b/TEMUKJD/WXForms/ProductForms/WXDBProdUploadForm.cs @@ -352,6 +352,8 @@ namespace TemuKJD.WXForms.ProductForms { lblHot.Visible = true; cmbHot.Visible = true; + chkFilterViewUv.Visible = true; + numFilterViewUv.Visible = true; if (!string.IsNullOrWhiteSpace(cmbSourceType.Text)) { //lblGroupFilter.Visible = true; @@ -412,8 +414,8 @@ namespace TemuKJD.WXForms.ProductForms List ctrlLst = new List() { - lblSourceType, cmbSourceType, lblGroupFilter, cmbGroupFilter, lblHot, cmbHot, lblIdFilter, txtIdFilter, - chkRandomFissionProduct, txtRandomFissionProductCount/*, lblNotes, cmbNotes*//*, lblJstInitSet, cmbJstInitSet*/ + lblSourceType, cmbSourceType, lblGroupFilter, cmbGroupFilter, lblHot, cmbHot, lblIdFilter, txtIdFilter, + chkFilterViewUv, numFilterViewUv /*chkRandomFissionProduct, txtRandomFissionProductCount, lblNotes, cmbNotes*//*, lblJstInitSet, cmbJstInitSet*/ }; for (int i = 0; i < ctrlLst.Count - 2; i += 2) { @@ -6050,10 +6052,12 @@ namespace TemuKJD.WXForms.ProductForms if (chkWXComplateProd.Checked) data += "&has_wx_format=1"; + // 标题裂变 if (chkRandomFissionProduct.Checked) - { data += "&fission_words=fission_goods_names:"; - } + + if (chkFilterViewUv.Checked) + data += "&min_view_uv=" + numFilterViewUv.Value; })); var html = GetHtml.PostUtf8(url, data); //if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) @@ -6305,6 +6309,8 @@ namespace TemuKJD.WXForms.ProductForms cmbHot.Text = "普通商品"; chkSkipQualification.Checked = false; cmbHot_TextChanged(null, null); + chkFilterViewUv.Checked = false; + numFilterViewUv.Value = 200; int prodCount; pbSelectProd.Visible = true;