diff --git a/AllBase/BaseClass.cs b/AllBase/BaseClass.cs index c1129ec..0ae2582 100644 --- a/AllBase/BaseClass.cs +++ b/AllBase/BaseClass.cs @@ -27,8 +27,8 @@ namespace AllBase /// /// 版本ID /// - public static int VersionCount = 532; - //public static int VersionCount = 532; + public static int VersionCount = 533; + //public static int VersionCount = 533; /// /// 版本号 diff --git a/KJDService/KJD_WebService/BLL/ProductThirdManage.cs b/KJDService/KJD_WebService/BLL/ProductThirdManage.cs index 2f69f80..2779a79 100644 --- a/KJDService/KJD_WebService/BLL/ProductThirdManage.cs +++ b/KJDService/KJD_WebService/BLL/ProductThirdManage.cs @@ -278,6 +278,49 @@ namespace KJD_Web.BLL return "{\"code\":19999,\"msg\":\"输入为空\"}"; } + public string MdyProductCategory(string inputData, bool isAdmin = false) + { + if (!string.IsNullOrEmpty(inputData)) + { + var time = RegexUtils.GetStringQuery(ref inputData, "time").ParseToInt(); + string time1 = RegexUtils.GetStringQuery(ref inputData, "code"); + if (time1 != EncrypUtil.Encryption(time)) + return "{\"code\":50000,\"msg\":\"校验失败\"}"; + + var user_name = RegexUtils.GetStringQuery(ref inputData, "user_name")?.Replace("'", "\\'"); + var id = RegexUtils.GetStringQuery(ref inputData, "db_id")?.Replace("'", "\\'"); + string change_cat_id = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "change_cat_id"))?.Replace("'", "\\'"); + string change_cat_name = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "change_cat_name"))?.Replace("'", "\\'"); + + if (string.IsNullOrEmpty(user_name)) + { + return "{\"code\":500,\"msg\":\"没有用户名\"}"; + } + + string conn = System.Configuration.ConfigurationManager.ConnectionStrings["ConnKJD"].ConnectionString; + MysqlUtils mySql = new MysqlUtils(conn); + string sql = "update kjd.third_product set"; + if (change_cat_id != null) + sql += " change_cat_id='" + change_cat_id + "',"; + if (change_cat_name != null) + sql += " change_cat_name='" + change_cat_name + "',"; + sql = sql.TrimEnd(','); + sql += " where id=" + id + ";"; + + var rst = mySql.ExecuteNonQuery(sql); + mySql.Close(); + if (rst) + { + return "{\"code\":200,\"msg\":\"success\"}"; + } + else + { + return "{\"code\":500,\"msg\":\"更新失败:" + mySql.Message + "\"}"; + } + } + return "{\"code\":19999,\"msg\":\"输入为空\"}"; + } + public string AddUserSelectProduct(string inputData, bool isAdmin = false) { diff --git a/KJDService/KJD_WebService/ProductThirdService.asmx.cs b/KJDService/KJD_WebService/ProductThirdService.asmx.cs index 36f5966..75df685 100644 --- a/KJDService/KJD_WebService/ProductThirdService.asmx.cs +++ b/KJDService/KJD_WebService/ProductThirdService.asmx.cs @@ -120,6 +120,17 @@ namespace KJD_Web Context.Response.End(); } + [WebMethod] + public void mdy_product_category() + { + string jsontext = GetRequestJsonString(); + + var result = jsontext; + result = new ProductThirdManage().MdyProductCategory(jsontext); + + Context.Response.Write(result); + Context.Response.End(); + } [WebMethod] public void add_user_select_product() diff --git a/TEMUKJD/KJDForms/ProductSelectForms/DbProductCategorySearch.Designer.cs b/TEMUKJD/KJDForms/ProductSelectForms/DbProductCategorySearch.Designer.cs index d7837ce..d17ceb0 100644 --- a/TEMUKJD/KJDForms/ProductSelectForms/DbProductCategorySearch.Designer.cs +++ b/TEMUKJD/KJDForms/ProductSelectForms/DbProductCategorySearch.Designer.cs @@ -31,48 +31,155 @@ namespace TemuKJD.KJDForms.ProductSelectForms { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DbProductCategorySearch)); this.panel2 = new System.Windows.Forms.Panel(); - this.label1 = new System.Windows.Forms.Label(); - this.textBox1 = new System.Windows.Forms.TextBox(); + this.txtProductName = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.lblNewCategory = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.btnSearch = new DevComponents.DotNetBar.PanelEx(); + this.listBox1 = new System.Windows.Forms.ListBox(); + this.lblOldCategory = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); this.btnSave = new DevComponents.DotNetBar.PanelEx(); + this.txtSearchText = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); this.panel2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.SuspendLayout(); // // panel2 // this.panel2.BackColor = System.Drawing.Color.White; + this.panel2.Controls.Add(this.txtProductName); + this.panel2.Controls.Add(this.label3); + this.panel2.Controls.Add(this.pictureBox1); + this.panel2.Controls.Add(this.lblNewCategory); + this.panel2.Controls.Add(this.label4); + this.panel2.Controls.Add(this.btnSearch); + this.panel2.Controls.Add(this.listBox1); + this.panel2.Controls.Add(this.lblOldCategory); + this.panel2.Controls.Add(this.label2); this.panel2.Controls.Add(this.btnSave); - this.panel2.Controls.Add(this.textBox1); + this.panel2.Controls.Add(this.txtSearchText); this.panel2.Controls.Add(this.label1); 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(798, 366); + this.panel2.Size = new System.Drawing.Size(898, 330); this.panel2.TabIndex = 1; // - // label1 + // txtProductName // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(37, 48); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(53, 12); - this.label1.TabIndex = 0; - this.label1.Text = "类目搜索"; + this.txtProductName.Location = new System.Drawing.Point(181, 31); + this.txtProductName.Multiline = true; + this.txtProductName.Name = "txtProductName"; + this.txtProductName.ReadOnly = true; + this.txtProductName.Size = new System.Drawing.Size(675, 38); + this.txtProductName.TabIndex = 504; // - // textBox1 + // label3 // - this.textBox1.Location = new System.Drawing.Point(93, 45); - this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size(653, 21); - this.textBox1.TabIndex = 1; + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(124, 34); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(65, 12); + this.label3.TabIndex = 503; + this.label3.Text = "商品标题:"; + // + // pictureBox1 + // + this.pictureBox1.Location = new System.Drawing.Point(33, 32); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(86, 86); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pictureBox1.TabIndex = 502; + this.pictureBox1.TabStop = false; + // + // lblNewCategory + // + this.lblNewCategory.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.lblNewCategory.AutoSize = true; + this.lblNewCategory.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.lblNewCategory.Location = new System.Drawing.Point(103, 277); + this.lblNewCategory.Name = "lblNewCategory"; + this.lblNewCategory.Size = new System.Drawing.Size(41, 12); + this.lblNewCategory.TabIndex = 495; + this.lblNewCategory.Text = "新类目"; + // + // label4 + // + this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(33, 277); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(77, 12); + this.label4.TabIndex = 494; + this.label4.Text = "商品新类目:"; + // + // btnSearch + // + this.btnSearch.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnSearch.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; + this.btnSearch.Cursor = System.Windows.Forms.Cursors.Hand; + this.btnSearch.DisabledBackColor = System.Drawing.Color.Empty; + this.btnSearch.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.btnSearch.Location = new System.Drawing.Point(794, 101); + this.btnSearch.Name = "btnSearch"; + this.btnSearch.Size = new System.Drawing.Size(62, 21); + this.btnSearch.Style.Alignment = System.Drawing.StringAlignment.Center; + this.btnSearch.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSearch.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(126)))), ((int)(((byte)(255))))); + this.btnSearch.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; + this.btnSearch.Style.BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + this.btnSearch.Style.BorderSide = DevComponents.DotNetBar.eBorderSide.None; + this.btnSearch.Style.ForeColor.Color = System.Drawing.Color.White; + this.btnSearch.Style.GradientAngle = 90; + this.btnSearch.StyleMouseOver.Alignment = System.Drawing.StringAlignment.Center; + this.btnSearch.StyleMouseOver.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSearch.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); + this.btnSearch.TabIndex = 487; + this.btnSearch.Text = "搜索"; + this.btnSearch.Click += new System.EventHandler(this.btnSearch_Click); + // + // listBox1 + // + this.listBox1.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.listBox1.FormattingEnabled = true; + this.listBox1.ItemHeight = 12; + this.listBox1.Location = new System.Drawing.Point(181, 122); + this.listBox1.Name = "listBox1"; + this.listBox1.Size = new System.Drawing.Size(675, 136); + this.listBox1.TabIndex = 483; + this.listBox1.SelectedIndexChanged += new System.EventHandler(this.listBox1_SelectedIndexChanged); + // + // lblOldCategory + // + this.lblOldCategory.AutoSize = true; + this.lblOldCategory.Location = new System.Drawing.Point(183, 77); + this.lblOldCategory.Name = "lblOldCategory"; + this.lblOldCategory.Size = new System.Drawing.Size(41, 12); + this.lblOldCategory.TabIndex = 482; + this.lblOldCategory.Text = "原类目"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(123, 77); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(65, 12); + this.label2.TabIndex = 481; + this.label2.Text = "商品类目:"; // // btnSave // - this.btnSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btnSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.btnSave.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; this.btnSave.Cursor = System.Windows.Forms.Cursors.Hand; this.btnSave.DisabledBackColor = System.Drawing.Color.Empty; this.btnSave.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); - this.btnSave.Location = new System.Drawing.Point(670, 288); + this.btnSave.Location = new System.Drawing.Point(780, 274); this.btnSave.Name = "btnSave"; this.btnSave.Size = new System.Drawing.Size(76, 26); this.btnSave.Style.Alignment = System.Drawing.StringAlignment.Center; @@ -88,21 +195,42 @@ namespace TemuKJD.KJDForms.ProductSelectForms this.btnSave.StyleMouseOver.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(102)))), ((int)(((byte)(255))))); this.btnSave.TabIndex = 477; this.btnSave.Text = "保存类目"; - this.btnSave.Visible = false; + this.btnSave.Click += new System.EventHandler(this.btnSave_Click); + // + // txtSearchText + // + this.txtSearchText.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.txtSearchText.Location = new System.Drawing.Point(181, 101); + this.txtSearchText.MaxLength = 50; + this.txtSearchText.Name = "txtSearchText"; + this.txtSearchText.Size = new System.Drawing.Size(611, 21); + this.txtSearchText.TabIndex = 1; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(124, 106); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(65, 12); + this.label1.TabIndex = 0; + this.label1.Text = "类目搜索:"; // // DbProductCategorySearch // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 400); + this.ClientSize = new System.Drawing.Size(900, 364); this.Controls.Add(this.panel2); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Name = "DbProductCategorySearch"; this.Text = "商品类目查询"; this.TitleText = "商品类目查询"; + this.Load += new System.EventHandler(this.DbProductCategorySearch_Load); this.Controls.SetChildIndex(this.panel2, 0); this.panel2.ResumeLayout(false); this.panel2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.ResumeLayout(false); } @@ -110,8 +238,17 @@ namespace TemuKJD.KJDForms.ProductSelectForms private System.Windows.Forms.Panel panel2; #endregion - private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.TextBox txtSearchText; private System.Windows.Forms.Label label1; private DevComponents.DotNetBar.PanelEx btnSave; + private System.Windows.Forms.Label lblOldCategory; + private System.Windows.Forms.Label label2; + private DevComponents.DotNetBar.PanelEx btnSearch; + private System.Windows.Forms.ListBox listBox1; + private System.Windows.Forms.Label lblNewCategory; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox txtProductName; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.PictureBox pictureBox1; } } \ No newline at end of file diff --git a/TEMUKJD/KJDForms/ProductSelectForms/DbProductCategorySearch.cs b/TEMUKJD/KJDForms/ProductSelectForms/DbProductCategorySearch.cs index f6715cf..be2d335 100644 --- a/TEMUKJD/KJDForms/ProductSelectForms/DbProductCategorySearch.cs +++ b/TEMUKJD/KJDForms/ProductSelectForms/DbProductCategorySearch.cs @@ -1,4 +1,8 @@ -using System; +using AllBase; +using AllBase.Model.Result; +using NaiBa.Util.Extension; +using Newtonsoft.Json.Linq; +using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; @@ -8,14 +12,162 @@ using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using TemuKJD.KJDForms.BaseForms; +using Work; namespace TemuKJD.KJDForms.ProductSelectForms { public partial class DbProductCategorySearch : LRBaseForm { - public DbProductCategorySearch() + ShopLoginInfo Shop; + TemuDBProductSelect ProdSelect; + SetProductSelectNotesType SelectType; + //string ChangeCatId = ""; + //string ChangeCatName = ""; + Dictionary cateIdNameMap = new Dictionary(); + public DbProductCategorySearch(ShopLoginInfo shop, TemuDBProductSelect prodSelect, SetProductSelectNotesType selectType = SetProductSelectNotesType.DbProduct) { InitializeComponent(); + + Shop = shop; + SelectType = selectType; + ProdSelect = prodSelect; + } + + private void DbProductCategorySearch_Load(object sender, EventArgs e) + { + this.listBox1.Visible = false; + this.lblOldCategory.Text = string.IsNullOrWhiteSpace(ProdSelect.change_cat_name) ? ProdSelect.cat_name : ProdSelect.change_cat_name; + this.lblNewCategory.Text = ""; + this.pictureBox1.ImageLocation = ProdSelect.main_img.Replace("https", "http"); + this.txtProductName.Text = ProdSelect.product_name; + } + + private void btnSave_Click(object sender, EventArgs e) + { + var url = BaseClass.BuildObjString("product/mdy_product_category"); + if (this.SelectType == SetProductSelectNotesType.ThirdProduct) + url = BaseClass.BuildObjString("product_third/mdy_product_category"); + + var data = UserLogin.GetSignaturex() + + "&db_id=" + this.ProdSelect.out_product_Id; + data += "&change_cat_name=" + this.lblNewCategory.Text.Trim(); + data += "&change_cat_id=" + this.cateIdNameMap[this.lblNewCategory.Text.Trim()].Trim(); + var html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + html = GetHtml.PostUtf8(url, data); + if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) + { + BaseMsgForm.ShowError("商品类目编辑失败,请重试!" + BaseRegex.GetStringJson(ref html, "msg")); + } + else + { + ProdSelect.change_cat_name = this.lblNewCategory.Text.Trim(); + ProdSelect.change_cat_id = this.cateIdNameMap[this.lblNewCategory.Text.Trim()].Trim(); + this.OnSaveComplete(ProdSelect); + this.Close(); + } + } + + private void btnSearch_Click(object sender, EventArgs e) + { + if (string.IsNullOrWhiteSpace(txtSearchText.Text)) + { + BaseMsgForm.ShowError("搜索项目不能为空"); + return; + } + if (Shop.LoginStatus2 != "国际版在线") + { + BaseMsgForm.ShowError("查询失败 店铺已掉线"); + return; + } + this.listBox1.Items.Clear(); + cateIdNameMap.Clear(); + Task.Run(() => + { + string html = SearchCategory(Shop, this.txtSearchText.Text.Trim()); + if (html.Contains("\"success\":true")) + { + Dictionary catIdDic = new Dictionary(); + try + { + //var catObj = JObject.Parse(html)["result"]["categoryPaths"][0]; + foreach (var catObj in JObject.Parse(html)["result"]["categoryPaths"]) + { + catIdDic[1] = catObj["cat1NodeVO"].IsNullOrEmpty() ? + null : JsonHelper.DeserializeJsonToObject(catObj["cat1NodeVO"].ToString()); + catIdDic[2] = catObj["cat2NodeVO"].IsNullOrEmpty() ? + null : JsonHelper.DeserializeJsonToObject(catObj["cat2NodeVO"].ToString()); + catIdDic[3] = catObj["cat3NodeVO"].IsNullOrEmpty() ? + null : JsonHelper.DeserializeJsonToObject(catObj["cat3NodeVO"].ToString()); + catIdDic[4] = catObj["cat4NodeVO"].IsNullOrEmpty() ? + null : JsonHelper.DeserializeJsonToObject(catObj["cat4NodeVO"].ToString()); + catIdDic[5] = catObj["cat5NodeVO"].IsNullOrEmpty() ? + null : JsonHelper.DeserializeJsonToObject(catObj["cat5NodeVO"].ToString()); + catIdDic[6] = catObj["cat6NodeVO"].IsNullOrEmpty() ? + null : JsonHelper.DeserializeJsonToObject(catObj["cat6NodeVO"].ToString()); + catIdDic[7] = catObj["cat7NodeVO"].IsNullOrEmpty() ? + null : JsonHelper.DeserializeJsonToObject(catObj["cat7NodeVO"].ToString()); + catIdDic[8] = catObj["cat8NodeVO"].IsNullOrEmpty() ? + null : JsonHelper.DeserializeJsonToObject(catObj["cat8NodeVO"].ToString()); + catIdDic[9] = catObj["cat9NodeVO"].IsNullOrEmpty() ? + null : JsonHelper.DeserializeJsonToObject(catObj["cat9NodeVO"].ToString()); + catIdDic[10] = catObj["cat10NodeVO"].IsNullOrEmpty() ? + null : JsonHelper.DeserializeJsonToObject(catObj["cat10NodeVO"].ToString()); + + string changeCatId = ""; + string changeCatName = ""; + for (int i = 1; i <= 10; i++) + { + changeCatId += catIdDic[i]?.catId + ">"; + changeCatName += catIdDic[i]?.catName + ">"; + } + changeCatId = changeCatId.Trim('>'); + changeCatName = changeCatName.Trim('>'); + cateIdNameMap[changeCatName] = changeCatId; + Invoke(new Action(() => + { + listBox1.Visible = true; + this.listBox1.Items.Add(changeCatName); + })); + } + } + catch (Exception ex) + { + Invoke(new Action(() => + { + BaseMsgForm.ShowError("查询失败 " + ex.Message); + })); + } + } + else + { + string err = BaseRegex.GetStringJson(ref html, "errorMsg"); + if (string.IsNullOrEmpty(err)) + err = BaseRegex.GetStringJson(ref html, "error_msg"); + if (err == null) + err = ""; + Invoke(new Action(() => + { + BaseMsgForm.ShowError("查询失败 " + err.Replace("Invalid Login State", "店铺已掉线")); + })); + } + }); + } + + private string SearchCategory(ShopLoginInfo shop, string searchStr) + { + string url = "https://agentseller.temu.com/anniston-agent-seller/category/search"; + string body = @"{""searchText"":""" + searchStr + @"""}"; + + string refere = "https://agentseller.temu.com/goods/create/category"; + return KJDHttpResponse.PostResponse2(shop, url, body, refere); + } + + private void listBox1_SelectedIndexChanged(object sender, EventArgs e) + { + this.lblNewCategory.Text = listBox1.SelectedItem.ToString(); } } } diff --git a/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.Designer.cs b/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.Designer.cs index 59a061f..5f11fc4 100644 --- a/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.Designer.cs +++ b/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.Designer.cs @@ -86,8 +86,6 @@ this.splitContainer2 = new System.Windows.Forms.SplitContainer(); this.pbLoading = new System.Windows.Forms.PictureBox(); this.dgvSelectProduct = new TemuKJD.UserComponent.DataGridViewEx(); - this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage(); - this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); this.colSelect = new System.Windows.Forms.DataGridViewCheckBoxColumn(); this.colSelectId = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colSupplierId = new System.Windows.Forms.DataGridViewTextBoxColumn(); @@ -114,6 +112,8 @@ this.colEditNotes = new System.Windows.Forms.DataGridViewLinkColumn(); this.ColDelete = new System.Windows.Forms.DataGridViewLinkColumn(); this.colOpResult = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.ucSplitPage1 = new TemuKJD.UserControls.UcSplitPage(); + this.statusBar = new TemuKJD.UserControls.StatusBarUserControl(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel2.SuspendLayout(); @@ -264,7 +264,7 @@ "全部", "重上", "已买"}); - this.cmbUserNotes.Location = new System.Drawing.Point(1044, 5); + this.cmbUserNotes.Location = new System.Drawing.Point(1044, 8); this.cmbUserNotes.Margin = new System.Windows.Forms.Padding(0); this.cmbUserNotes.Name = "cmbUserNotes"; this.cmbUserNotes.Size = new System.Drawing.Size(65, 25); @@ -281,7 +281,7 @@ "核价成功", "核价成功(重复)", "重复"}); - this.cmbNotes.Location = new System.Drawing.Point(917, 5); + this.cmbNotes.Location = new System.Drawing.Point(917, 8); this.cmbNotes.Margin = new System.Windows.Forms.Padding(0); this.cmbNotes.Name = "cmbNotes"; this.cmbNotes.Size = new System.Drawing.Size(65, 25); @@ -308,7 +308,7 @@ "已上传", "草稿箱", "全部"}); - this.cmbStatus.Location = new System.Drawing.Point(814, 5); + this.cmbStatus.Location = new System.Drawing.Point(814, 8); this.cmbStatus.Margin = new System.Windows.Forms.Padding(0); this.cmbStatus.Name = "cmbStatus"; this.cmbStatus.Size = new System.Drawing.Size(65, 25); @@ -864,29 +864,6 @@ this.dgvSelectProduct.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvSelectProduct_CellContentClick); this.dgvSelectProduct.Scroll += new System.Windows.Forms.ScrollEventHandler(this.dgvSelectProduct_Scroll); // - // ucSplitPage1 - // - this.ucSplitPage1.CurrentPage = 1; - this.ucSplitPage1.Dock = System.Windows.Forms.DockStyle.Right; - this.ucSplitPage1.Location = new System.Drawing.Point(1196, 0); - this.ucSplitPage1.Margin = new System.Windows.Forms.Padding(0); - this.ucSplitPage1.Name = "ucSplitPage1"; - this.ucSplitPage1.Padding = new System.Windows.Forms.Padding(0, 0, 1, 0); - this.ucSplitPage1.Size = new System.Drawing.Size(362, 25); - this.ucSplitPage1.TabIndex = 6; - this.ucSplitPage1.TotalPage = 1; - // - // 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(1558, 25); - this.statusBar.TabIndex = 5; - // // colSelect // this.colSelect.HeaderText = "选择"; @@ -1100,6 +1077,29 @@ this.colOpResult.ReadOnly = true; this.colOpResult.Width = 150; // + // ucSplitPage1 + // + this.ucSplitPage1.CurrentPage = 1; + this.ucSplitPage1.Dock = System.Windows.Forms.DockStyle.Right; + this.ucSplitPage1.Location = new System.Drawing.Point(1196, 0); + this.ucSplitPage1.Margin = new System.Windows.Forms.Padding(0); + this.ucSplitPage1.Name = "ucSplitPage1"; + this.ucSplitPage1.Padding = new System.Windows.Forms.Padding(0, 0, 1, 0); + this.ucSplitPage1.Size = new System.Drawing.Size(362, 25); + this.ucSplitPage1.TabIndex = 6; + this.ucSplitPage1.TotalPage = 1; + // + // 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(1558, 25); + this.statusBar.TabIndex = 5; + // // ProductThirdSelectListManageForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; diff --git a/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.cs b/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.cs index bf9269a..758c5d9 100644 --- a/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.cs +++ b/TEMUKJD/KJDForms/ProductThirdSelectForms/ProductThirdSelectListManageForm.cs @@ -148,7 +148,7 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms prodSelect.main_img.Replace("https:", "http:"), defaultBitmap,//prod.main_img, prodSelect.fission_product_name, - string.IsNullOrWhiteSpace(prodSelect.change_cat_name) ? prodSelect.cat_name : prodSelect.change_cat_name, + string.IsNullOrWhiteSpace(prodSelect.change_cat_name) ? prodSelect.cat_name : prodSelect.change_cat_name.Split('>').LastOrDefault(), prodSelect.ext_code, prodSelect.status, prodSelect.draft_id, @@ -336,6 +336,12 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms //Task.Run(() => { SelectProduct(new TemuDBProduct[] { dbProduct }); }); break; case "商品类目": + { + var shop = GetShop(shopId); + DbProductCategorySearch searchForm = new DbProductCategorySearch(shop, dbSelectProduct, SetProductSelectNotesType.ThirdProduct); + searchForm.SaveComplete += SearchForm_SaveComplete; + searchForm.ShowDialog(); + } break; case "草稿箱Id": if (!string.IsNullOrEmpty(draftId)) @@ -446,6 +452,21 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms } } + private void SearchForm_SaveComplete(object obj) + { + TemuDBProductSelect dbSelectProduct = obj as TemuDBProductSelect; + if (dbSelectProduct == null) + return; + + var rows = this.dgvSelectProduct.Rows.Cast() + .Where(r => r.Cells["colSpuId"].Value.ParseToString() == dbSelectProduct.spu_id); + foreach(var row in rows) + { + row.Cells["colProductCat"].Value = string.IsNullOrWhiteSpace(dbSelectProduct.change_cat_name) ? + dbSelectProduct.cat_name : dbSelectProduct.change_cat_name.Split('>').LastOrDefault(); + } + } + private bool DeleteProduct(string dbId, bool showErrMsg=true) { var url = BaseClass.BuildObjString("product_third/del_select_product"); @@ -823,25 +844,28 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms //if (index > 0 && index < 5) // catSearchStr = catSearchStr.Substring(index + 4).Trim(); - var catSearchStr = selectProd.change_cat_name; - if (!string.IsNullOrWhiteSpace(catSearchStr)) + var changeCatName = selectProd.change_cat_name; + var changeCatId = selectProd.change_cat_id; + if (!string.IsNullOrWhiteSpace(changeCatName) && !string.IsNullOrWhiteSpace(changeCatId)) { - html = SearchCategory(shop, catSearchStr); + var changeCatNameList = selectProd.change_cat_name.Split('>').ToList(); + var changeCatIdList = selectProd.change_cat_id.Split('>').ToList(); + while (changeCatNameList.Count < 10) + changeCatNameList.Add(""); + while (changeCatIdList.Count < 10) + changeCatIdList.Add("0"); try { - var catObj = JObject.Parse(html)["result"]["categoryPaths"][0]; - var catStr = JsonHelper.SerializeObject(catObj); - - prodParam.cat1Id = catIdDic[1] = (catObj["cat1NodeVO"].IsNullOrEmpty() ? null : catObj["cat1NodeVO"]["catId"]).ParseToLong(); - prodParam.cat2Id = catIdDic[2] = (catObj["cat2NodeVO"].IsNullOrEmpty() ? null : catObj["cat2NodeVO"]["catId"]).ParseToLong(); - prodParam.cat3Id = catIdDic[3] = (catObj["cat3NodeVO"].IsNullOrEmpty() ? null : catObj["cat3NodeVO"]["catId"]).ParseToLong(); - prodParam.cat4Id = catIdDic[4] = (catObj["cat4NodeVO"].IsNullOrEmpty() ? null : catObj["cat4NodeVO"]["catId"]).ParseToLong(); - prodParam.cat5Id = catIdDic[5] = (catObj["cat5NodeVO"].IsNullOrEmpty() ? null : catObj["cat5NodeVO"]["catId"]).ParseToLong(); - prodParam.cat6Id = catIdDic[6] = (catObj["cat6NodeVO"].IsNullOrEmpty() ? null : catObj["cat6NodeVO"]["catId"]).ParseToLong(); - prodParam.cat7Id = catIdDic[7] = (catObj["cat7NodeVO"].IsNullOrEmpty() ? null : catObj["cat7NodeVO"]["catId"]).ParseToLong(); - prodParam.cat8Id = catIdDic[8] = (catObj["cat8NodeVO"].IsNullOrEmpty() ? null : catObj["cat8NodeVO"]["catId"]).ParseToLong(); - prodParam.cat9Id = catIdDic[9] = (catObj["cat9NodeVO"].IsNullOrEmpty() ? null : catObj["cat9NodeVO"]["catId"]).ParseToLong(); - prodParam.cat10Id = catIdDic[10] = (catObj["cat10NodeVO"].IsNullOrEmpty() ? null : catObj["cat10NodeVO"]["catId"]).ParseToLong(); + prodParam.cat1Id = catIdDic[1] = changeCatIdList[0].ParseToLong(); + prodParam.cat2Id = catIdDic[2] = changeCatIdList[1].ParseToLong(); + prodParam.cat3Id = catIdDic[3] = changeCatIdList[2].ParseToLong(); + prodParam.cat4Id = catIdDic[4] = changeCatIdList[3].ParseToLong(); + prodParam.cat5Id = catIdDic[5] = changeCatIdList[4].ParseToLong(); + prodParam.cat6Id = catIdDic[6] = changeCatIdList[5].ParseToLong(); + prodParam.cat7Id = catIdDic[7] = changeCatIdList[6].ParseToLong(); + prodParam.cat8Id = catIdDic[8] = changeCatIdList[7].ParseToLong(); + prodParam.cat9Id = catIdDic[9] = changeCatIdList[8].ParseToLong(); + prodParam.cat10Id = catIdDic[10] = changeCatIdList[9].ParseToLong(); for (int i = 10; i >= 1; i--) { catLevel = i; @@ -855,7 +879,6 @@ namespace TemuKJD.KJDForms.ProductThirdSelectForms catId = catIdDic[catLevel - 1]; } } - html = AddDraft(shop, catId.ToString()); } diff --git a/TEMUKJD/StartUp.cs b/TEMUKJD/StartUp.cs index 1d97f60..6b33ff1 100644 --- a/TEMUKJD/StartUp.cs +++ b/TEMUKJD/StartUp.cs @@ -120,100 +120,100 @@ namespace TemuKJD Thread.Sleep(100); } - List tList = new List(); - var tick = BaseClass.DateTimeToTimestampSeconds(new DateTime(2022, 4, 25)); - while (true) - { - if (GlobalConfig.ShopLoginList.All(shop => shop.ApiAuthStatus != "授权成功" - || GlobalConfig.SameProductCheckParamList.Any(sp => sp.ShopId == shop.ShopId && sp.IsGetSuccess))) - { - Thread.Sleep(1000); - continue; - } - - tList.Clear(); - foreach (var shop in GlobalConfig.ShopLoginList) - { - if (GlobalConfig.SameProductCheckParamList.Any(sp => sp.ShopId == shop.ShopId && sp.IsGetSuccess)) - continue; - - if (shop.ApiAuthStatus != "授权成功") - continue; - - var t = Task.Run(() => - { - var shopTemp = shop; - try - { - var sameProductCheckParam = GlobalConfig.SameProductCheckParamList.FirstOrDefault(sp => sp.ShopId == shop.ShopId); - if (sameProductCheckParam == null) - { - sameProductCheckParam = new SameProductCheckParam() - { - ShopId = shopTemp.ShopId, - ShopName = shopTemp.ShopAccount, - ShopSamePrpductItemList = new List(), - }; - } - for (int i = 1; i <= 500; i++) - { - if (sameProductCheckParam.ShopSamePrpductItemList != null && sameProductCheckParam.ShopSamePrpductItemList.Count > 0) - tick = sameProductCheckParam.ShopSamePrpductItemList.Min(it => it.create_time).ParseToInt() - 1; - - DouyinApi douApi = new DouyinApi(shopTemp); - douApi.JsonData["page"] = "1"; - douApi.JsonData["size"] = "100"; - douApi.JsonData["end_time"] = tick.ToString(); - // check_status 指定审核状态返回商品列表:1未提审 2审核中 3审核通过 4审核驳回 5封禁 7审核通过,待上架状态 - //douApi.JsonData["check_status"] = "3"; - //douApi.JsonData["check_status"] = "1"; - //douApi.JsonData["status"] = "0"; - var resultOnline = douApi.GetProductList(); - if (resultOnline.Contains("已过期")) - { - shopTemp.ApiAuthStatus = "未授权"; - return; - } - while (!resultOnline.Contains("\"code\":10000")) - { - Thread.Sleep(Randomx.GetId(500, 1000) * tList.Count); - resultOnline = douApi.GetProductList(); - } - if (resultOnline != null && resultOnline.Contains("\"data\":[]")) - { - sameProductCheckParam.IsGetSuccess = true; - break; - } - - Newtonsoft.Json.Linq.JObject jObj = JsonHelper.JObjectParse(resultOnline); - var itemList = JsonHelper.DeserializeJsonToList(jObj["data"]?["data"]?.ToString()); - sameProductCheckParam.ShopSamePrpductItemList.AddRange(itemList); - - if (i % 10 == 9) - { - if (!GlobalConfig.SameProductCheckParamList.Contains(sameProductCheckParam)) - GlobalConfig.SameProductCheckParamList.Add(sameProductCheckParam); - sameProductCheckParam.ShopSamePrpductItemList = sameProductCheckParam.ShopSamePrpductItemList.DistinctBy(it => it.product_id).ToList(); - NaiBa.Util.Helper.ConfigHelper.SaveConfig>("same_product_check_list", GlobalConfig.SameProductCheckParamList); - } - - Thread.Sleep(Randomx.GetId(500, 1000) * tList.Count); - } - if (!GlobalConfig.SameProductCheckParamList.Contains(sameProductCheckParam)) - GlobalConfig.SameProductCheckParamList.Add(sameProductCheckParam); - sameProductCheckParam.ShopSamePrpductItemList = sameProductCheckParam.ShopSamePrpductItemList.DistinctBy(it => it.product_id).ToList(); - NaiBa.Util.Helper.ConfigHelper.SaveConfig>("same_product_check_list", GlobalConfig.SameProductCheckParamList); - } - catch (Exception ex) - { - } - }); - tList.Add(t); - } - Task.WaitAll(tList.ToArray()); - - Thread.Sleep(10000); - } + //List tList = new List(); + //var tick = BaseClass.DateTimeToTimestampSeconds(new DateTime(2022, 4, 25)); + //while (true) + //{ + // if (GlobalConfig.ShopLoginList.All(shop => shop.ApiAuthStatus != "授权成功" + // || GlobalConfig.SameProductCheckParamList.Any(sp => sp.ShopId == shop.ShopId && sp.IsGetSuccess))) + // { + // Thread.Sleep(1000); + // continue; + // } + // + // tList.Clear(); + // foreach (var shop in GlobalConfig.ShopLoginList) + // { + // if (GlobalConfig.SameProductCheckParamList.Any(sp => sp.ShopId == shop.ShopId && sp.IsGetSuccess)) + // continue; + // + // if (shop.ApiAuthStatus != "授权成功") + // continue; + // + // var t = Task.Run(() => + // { + // var shopTemp = shop; + // try + // { + // var sameProductCheckParam = GlobalConfig.SameProductCheckParamList.FirstOrDefault(sp => sp.ShopId == shop.ShopId); + // if (sameProductCheckParam == null) + // { + // sameProductCheckParam = new SameProductCheckParam() + // { + // ShopId = shopTemp.ShopId, + // ShopName = shopTemp.ShopAccount, + // ShopSamePrpductItemList = new List(), + // }; + // } + // for (int i = 1; i <= 500; i++) + // { + // if (sameProductCheckParam.ShopSamePrpductItemList != null && sameProductCheckParam.ShopSamePrpductItemList.Count > 0) + // tick = sameProductCheckParam.ShopSamePrpductItemList.Min(it => it.create_time).ParseToInt() - 1; + // + // DouyinApi douApi = new DouyinApi(shopTemp); + // douApi.JsonData["page"] = "1"; + // douApi.JsonData["size"] = "100"; + // douApi.JsonData["end_time"] = tick.ToString(); + // // check_status 指定审核状态返回商品列表:1未提审 2审核中 3审核通过 4审核驳回 5封禁 7审核通过,待上架状态 + // //douApi.JsonData["check_status"] = "3"; + // //douApi.JsonData["check_status"] = "1"; + // //douApi.JsonData["status"] = "0"; + // var resultOnline = douApi.GetProductList(); + // if (resultOnline.Contains("已过期")) + // { + // shopTemp.ApiAuthStatus = "未授权"; + // return; + // } + // while (!resultOnline.Contains("\"code\":10000")) + // { + // Thread.Sleep(Randomx.GetId(500, 1000) * tList.Count); + // resultOnline = douApi.GetProductList(); + // } + // if (resultOnline != null && resultOnline.Contains("\"data\":[]")) + // { + // sameProductCheckParam.IsGetSuccess = true; + // break; + // } + // + // Newtonsoft.Json.Linq.JObject jObj = JsonHelper.JObjectParse(resultOnline); + // var itemList = JsonHelper.DeserializeJsonToList(jObj["data"]?["data"]?.ToString()); + // sameProductCheckParam.ShopSamePrpductItemList.AddRange(itemList); + // + // if (i % 10 == 9) + // { + // if (!GlobalConfig.SameProductCheckParamList.Contains(sameProductCheckParam)) + // GlobalConfig.SameProductCheckParamList.Add(sameProductCheckParam); + // sameProductCheckParam.ShopSamePrpductItemList = sameProductCheckParam.ShopSamePrpductItemList.DistinctBy(it => it.product_id).ToList(); + // NaiBa.Util.Helper.ConfigHelper.SaveConfig>("same_product_check_list", GlobalConfig.SameProductCheckParamList); + // } + // + // Thread.Sleep(Randomx.GetId(500, 1000) * tList.Count); + // } + // if (!GlobalConfig.SameProductCheckParamList.Contains(sameProductCheckParam)) + // GlobalConfig.SameProductCheckParamList.Add(sameProductCheckParam); + // sameProductCheckParam.ShopSamePrpductItemList = sameProductCheckParam.ShopSamePrpductItemList.DistinctBy(it => it.product_id).ToList(); + // NaiBa.Util.Helper.ConfigHelper.SaveConfig>("same_product_check_list", GlobalConfig.SameProductCheckParamList); + // } + // catch (Exception ex) + // { + // } + // }); + // tList.Add(t); + // } + // Task.WaitAll(tList.ToArray()); + // + // Thread.Sleep(10000); + //} }); #endregion }