403 lines
18 KiB
C#
403 lines
18 KiB
C#
using AllBase;
|
|
using AllBase.Helper;
|
|
using AllBase.Model.Result;
|
|
using AllBase.Model.Result.WXResult;
|
|
using CefSharp;
|
|
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.Text;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using TemuKJD.BaseForms;
|
|
using TemuKJD.BLL;
|
|
using TemuKJD.PDDForms.ProductSelectForms;
|
|
using TemuKJD.ToolForms;
|
|
using Work;
|
|
|
|
namespace TemuKJD.WXForms.ProductForms
|
|
{
|
|
public partial class WXUserCollectAuthProdEditCatesForm : BaseGeneralForm
|
|
{
|
|
KJDDBProduct dbProd = null;
|
|
List<KJDDBProduct> lstDbProduct = new List<KJDDBProduct>();
|
|
|
|
List<WxCatInfo> selectCate1 = new List<WxCatInfo>();
|
|
List<WxCatInfo> selectCate2 = new List<WxCatInfo>();
|
|
List<WxCatInfo> selectCate3 = new List<WxCatInfo>();
|
|
List<WxCatInfo> selectCate4 = new List<WxCatInfo>();
|
|
|
|
public WXUserCollectAuthProdEditCatesForm(List<KJDDBProduct> prods)
|
|
{
|
|
InitializeComponent();
|
|
|
|
if (prods != null)
|
|
lstDbProduct = prods;
|
|
dbProd = prods.FirstOrDefault();
|
|
}
|
|
|
|
private void ProductSelectListForm_Load(object sender, EventArgs e)
|
|
{
|
|
lblStatus.Text = "";
|
|
lstSelectCateList.Height = 180;
|
|
if (dbProd != null)
|
|
{
|
|
txtProductName.Text = dbProd.product_name;
|
|
txtSpuId.Text = dbProd.spu_id;
|
|
if (dbProd.main_img.Contains("wxapp"))
|
|
{
|
|
string getImgError = "";
|
|
this.pictureBox1.Image = ImageBuild.LoadBitmapLoadBitmipImageFromUrl(dbProd.main_img, out getImgError);
|
|
}
|
|
else
|
|
this.pictureBox1.ImageLocation = dbProd.main_img.Replace("https", "http");
|
|
|
|
fillWxCate();
|
|
string catName = (dbProd.cat_name ?? dbProd.cat_id) + "(未识别)";
|
|
if (dbProd.wx_cat_1 != null)
|
|
{
|
|
var catN = GlobalConfig.WxCatList.FirstOrDefault(c => c.cat_id == dbProd.wx_cat_1.ParseToString())?.name;
|
|
cmbCateFilter1.Text = catN.ParseToString();
|
|
if (!string.IsNullOrEmpty(catN))
|
|
{
|
|
catName = catN;
|
|
}
|
|
}
|
|
if (dbProd.wx_cat_2 != null)
|
|
{
|
|
var catN = GlobalConfig.WxCatList.FirstOrDefault(c => c.cat_id == dbProd.wx_cat_2.ParseToString())?.name;
|
|
cmbCateFilter2.Text = catN.ParseToString();
|
|
if (!string.IsNullOrEmpty(catN))
|
|
{
|
|
catName = catName + " >> " + catN;
|
|
}
|
|
}
|
|
if (dbProd.wx_cat_3 != null)
|
|
{
|
|
var catN = GlobalConfig.WxCatList.FirstOrDefault(c => c.cat_id == dbProd.wx_cat_3.ParseToString())?.name;
|
|
cmbCateFilter3.Text = catN.ParseToString();
|
|
if (!string.IsNullOrEmpty(catN))
|
|
{
|
|
catName = catName + " >> " + catN;
|
|
}
|
|
}
|
|
if (dbProd.wx_cat_leaf != null)
|
|
{
|
|
var catN = GlobalConfig.WxCatList.FirstOrDefault(c => c.cat_id == dbProd.wx_cat_leaf.ParseToString())?.name;
|
|
cmbCateFilter4Leaf.Text = catN.ParseToString();
|
|
if (!string.IsNullOrEmpty(catN))
|
|
{
|
|
catName = catName + " >> " + catN;
|
|
}
|
|
}
|
|
txtCateSearch.WatermarkText = catName.Replace(">>", ">");
|
|
if (!dbProd.wx_cat_1.IsNullOrZero() && !dbProd.wx_cat_2.IsNullOrZero() && !dbProd.wx_cat_3.IsNullOrZero() && !dbProd.wx_cat_leaf.IsNullOrZero())
|
|
{
|
|
//this.cmbCateFilter1.Text =
|
|
}
|
|
}
|
|
}
|
|
|
|
void fillWxCate()
|
|
{
|
|
cmbCateFilter1.Items.Clear();
|
|
cmbCateFilter2.Items.Clear();
|
|
cmbCateFilter3.Items.Clear();
|
|
cmbCateFilter4Leaf.Items.Clear();
|
|
cmbCateFilter1.Text = "";
|
|
cmbCateFilter2.Text = "";
|
|
cmbCateFilter3.Text = "";
|
|
cmbCateFilter4Leaf.Text = "";
|
|
foreach (var cate in GlobalConfig.WxCatList.Where(c => c.level == 1).ToList())
|
|
{
|
|
cmbCateFilter1.Items.Add(cate.name);
|
|
}
|
|
}
|
|
|
|
private async void btnOk_Click(object sender, EventArgs e)
|
|
{
|
|
int index = 0;
|
|
foreach (var prod in lstDbProduct)
|
|
{
|
|
index++;
|
|
var url = BaseClass.BuildPDDObjString("product/mdy_db_product");
|
|
var data = UserLogin.GetSignaturex();
|
|
data += "&db_id=" + prod.id;
|
|
lblStatus.Text = "正在修改类目 " + index + "/" + lstDbProduct.Count;
|
|
Thread.Sleep(200);
|
|
|
|
data += "&wx_cat_1=" + (selectCate1.FirstOrDefault()?.cat_id == null ? "null" : selectCate1.FirstOrDefault()?.cat_id.ParseToString());
|
|
data += "&wx_cat_2=" + (selectCate2.FirstOrDefault()?.cat_id == null ? "null" : selectCate2.FirstOrDefault()?.cat_id.ParseToString());
|
|
data += "&wx_cat_3=" + (selectCate3.FirstOrDefault()?.cat_id == null ? "null" : selectCate3.FirstOrDefault()?.cat_id.ParseToString());
|
|
data += "&wx_cat_leaf=" + (selectCate4.FirstOrDefault()?.cat_id == null ? "null" : selectCate4.FirstOrDefault()?.cat_id.ParseToString());
|
|
|
|
if (selectCate1.FirstOrDefault()?.cat_id != null)
|
|
{
|
|
data += "&main_cat_id=" + selectCate1.FirstOrDefault()?.cat_id +
|
|
"&main_cat_name=" + HttpUtility.UrlEncode(selectCate1.FirstOrDefault()?.name, Encoding.UTF8);
|
|
}
|
|
if (selectCate4.FirstOrDefault()?.cat_id != null)
|
|
{
|
|
data += "&cat_id=" + selectCate4.FirstOrDefault()?.cat_id +
|
|
"&cat_name=" + HttpUtility.UrlEncode(selectCate4.FirstOrDefault()?.name, Encoding.UTF8);
|
|
}
|
|
|
|
string html = "";
|
|
await Task.Run(() =>
|
|
{
|
|
var html = GetHtml.PostUtf8(url, data);
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
|
|
html = GetHtml.PostUtf8(url, data);
|
|
});
|
|
|
|
if (!html.Contains("\"code\":200"))
|
|
{
|
|
//BaseMsgForm.ShowError("商品类目编辑失败,请重试!" + BaseRegex.GetStringJson(ref html, "msg"));
|
|
}
|
|
else
|
|
{
|
|
dbProd.product_name = this.txtProductName.Text.Trim();
|
|
dbProd.wx_cat_1 = selectCate1.FirstOrDefault()?.cat_id == null ? null : selectCate1.FirstOrDefault()?.cat_id.ParseToLong();
|
|
dbProd.wx_cat_2 = selectCate2.FirstOrDefault()?.cat_id == null ? null : selectCate2.FirstOrDefault()?.cat_id.ParseToLong();
|
|
dbProd.wx_cat_3 = selectCate3.FirstOrDefault()?.cat_id == null ? null : selectCate3.FirstOrDefault()?.cat_id.ParseToLong();
|
|
dbProd.wx_cat_leaf = selectCate4.FirstOrDefault()?.cat_id == null ? null : selectCate4.FirstOrDefault()?.cat_id.ParseToLong();
|
|
if (selectCate1.FirstOrDefault()?.cat_id != null)
|
|
{
|
|
dbProd.main_cat_id = selectCate1.FirstOrDefault()?.cat_id;
|
|
dbProd.main_cat_name = selectCate1.FirstOrDefault()?.name;
|
|
}
|
|
if (selectCate4.FirstOrDefault()?.cat_id != null)
|
|
{
|
|
dbProd.cat_id = selectCate4.FirstOrDefault()?.cat_id;
|
|
dbProd.cat_name = selectCate4.FirstOrDefault()?.name;
|
|
}
|
|
}
|
|
}
|
|
this.Close();
|
|
}
|
|
|
|
private void pictureBox1_Click(object sender, EventArgs e)
|
|
{
|
|
ShowImgForm imgFrom = new ShowImgForm(pictureBox1.ImageLocation);
|
|
imgFrom.ShowDialog();
|
|
}
|
|
|
|
public static KJDDBProduct GetPddProductDetail(string prodDbId)
|
|
{
|
|
if (string.IsNullOrEmpty(prodDbId))
|
|
return new KJDDBProduct();
|
|
|
|
List<KJDDBProduct> list = new List<KJDDBProduct>();
|
|
|
|
if (BaseClass.SaLevel != 1)
|
|
Thread.Sleep(Randomx.GetId(3000, 5000));
|
|
|
|
var url = BaseClass.BuildPDDObjString("product/get_product_detail_list");
|
|
var data = "";
|
|
|
|
data = UserLogin.GetSignaturex() + "&search_db_ids=" + prodDbId;
|
|
if (BaseClass.SaLevel > 0 || BaseClass.UserAuthority.Contains("爆款数据"))
|
|
data += "&special_prod_type=普通商品,书籍,爆款数据";
|
|
|
|
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"))
|
|
{
|
|
return null;
|
|
}
|
|
|
|
var jArr = JObject.Parse(html)["data"];
|
|
if (jArr.Count() == 0)
|
|
return null;
|
|
var sProd = JsonHelper.SerializeObject(jArr);
|
|
|
|
try
|
|
{
|
|
list = JsonHelper.DeserializeJsonToList<KJDDBProduct>(sProd);
|
|
var item = list.FirstOrDefault();
|
|
if (item == null)
|
|
item = new KJDDBProduct();
|
|
return item;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
|
|
private void cmbCateFilter1_TextChanged(object sender, EventArgs e)
|
|
{
|
|
//if (cmbSourceType.Text != "厂商直采" && cmbSourceType.Text != "1688厂家" && cmbSourceType.Text != "微信店采" && cmbSourceType.Text != "微信小店")
|
|
//if (btnSwitchCatType.Text != "W")
|
|
// return;
|
|
|
|
cmbCateFilter2.Text = "";
|
|
cmbCateFilter2.Items.Clear();
|
|
cmbCateFilter3.Text = "";
|
|
cmbCateFilter3.Items.Clear();
|
|
selectCate1 = GlobalConfig.WxCatList
|
|
.Where(c => c.level == 1 && (";" + cmbCateFilter1.Text.Trim() + ";").Contains(";" + c.name + ";")).ToList();
|
|
var cates2 = GlobalConfig.WxCatList.Where(c => selectCate1.Any(c1 => c.f_cat_id == c1.cat_id)).ToList();
|
|
cmbCateFilter2.Items.AddRange(cates2.Select(c => c.name).ToArray());
|
|
}
|
|
|
|
private void cmbCateFilter2_TextChanged(object sender, EventArgs e)
|
|
{
|
|
//if (cmbSourceType.Text != "厂商直采" && cmbSourceType.Text != "1688厂家" && cmbSourceType.Text != "微信店采" && cmbSourceType.Text != "微信小店")
|
|
//if (btnSwitchCatType.Text != "W")
|
|
// return;
|
|
|
|
cmbCateFilter3.Text = "";
|
|
cmbCateFilter3.Items.Clear();
|
|
selectCate1 = GlobalConfig.WxCatList
|
|
.Where(c => c.level == 1 && (";" + cmbCateFilter1.Text.Trim() + ";").Contains(";" + c.name + ";")).ToList();
|
|
var cates2 = GlobalConfig.WxCatList.Where(c => selectCate1.Any(c1 => c.f_cat_id == c1.cat_id)).ToList();
|
|
selectCate2 = cates2
|
|
.Where(c => c.level == 2 && (";" + cmbCateFilter2.Text.Trim() + ";").Contains(";" + c.name + ";")).ToList();
|
|
var cates3 = GlobalConfig.WxCatList.Where(c => selectCate2.Any(c2 => c.f_cat_id == c2.cat_id)).ToList();
|
|
cmbCateFilter3.Items.AddRange(cates3.Select(c => c.name).ToArray());
|
|
}
|
|
|
|
private void cmbCateFilter3_TextChanged(object sender, EventArgs e)
|
|
{
|
|
cmbCateFilter4Leaf.Text = "";
|
|
cmbCateFilter4Leaf.Items.Clear();
|
|
|
|
selectCate1 = GlobalConfig.WxCatList
|
|
.Where(c => c.level == 1 && (";" + cmbCateFilter1.Text.Trim() + ";").Contains(";" + c.name + ";")).ToList();
|
|
var cates2 = GlobalConfig.WxCatList.Where(c => selectCate1.Any(c1 => c.f_cat_id == c1.cat_id)).ToList();
|
|
selectCate2 = cates2
|
|
.Where(c => c.level == 2 && (";" + cmbCateFilter2.Text.Trim() + ";").Contains(";" + c.name + ";")).ToList();
|
|
var cates3 = GlobalConfig.WxCatList.Where(c => selectCate2.Any(c2 => c.f_cat_id == c2.cat_id)).ToList();
|
|
selectCate3 = cates3
|
|
.Where(c => c.level == 3 && (";" + cmbCateFilter3.Text.Trim() + ";").Contains(";" + c.name + ";")).ToList();
|
|
var cates4 = GlobalConfig.WxCatList.Where(c => selectCate3.Any(c3 => c.f_cat_id == c3.cat_id) || selectCate3.Any(c3 => c.cat_id == c3.cat_id && c.leaf)).ToList();
|
|
if (cates4.Count == 1)
|
|
cmbCateFilter4Leaf.Text = cates4.FirstOrDefault().name;
|
|
cmbCateFilter4Leaf.Items.AddRange(cates4.Select(c => c.name).ToArray());
|
|
}
|
|
|
|
private void cmbCateFilter4Leaf_TextChanged(object sender, EventArgs e)
|
|
{
|
|
selectCate1 = GlobalConfig.WxCatList
|
|
.Where(c => c.level == 1 && (";" + cmbCateFilter1.Text.Trim() + ";").Contains(";" + c.name + ";")).ToList();
|
|
var cates2 = GlobalConfig.WxCatList.Where(c => selectCate1.Any(c1 => c.f_cat_id == c1.cat_id)).ToList();
|
|
selectCate2 = cates2
|
|
.Where(c => c.level == 2 && (";" + cmbCateFilter2.Text.Trim() + ";").Contains(";" + c.name + ";")).ToList();
|
|
var cates3 = GlobalConfig.WxCatList.Where(c => selectCate2.Any(c2 => c.f_cat_id == c2.cat_id)).ToList();
|
|
selectCate3 = cates3
|
|
.Where(c => c.level == 3 && (";" + cmbCateFilter3.Text.Trim() + ";").Contains(";" + c.name + ";")).ToList();
|
|
var cates4 = GlobalConfig.WxCatList.Where(c => selectCate3.Any(c3 => c.f_cat_id == c3.cat_id) || selectCate3.Any(c3 => c.cat_id == c3.cat_id && c.leaf)).ToList();
|
|
selectCate4 = cates4
|
|
.Where(c => c.leaf && (";" + cmbCateFilter4Leaf.Text.Trim() + ";").Contains(";" + c.name + ";")).ToList();
|
|
var selCat = selectCate4.FirstOrDefault();
|
|
lblBound.Text = "保证金:" + GlobalConfig.WxCatBoundList.FirstOrDefault(cb => cb.leaf_id == selCat?.cat_id.ParseToLong())?.cat_bound;
|
|
}
|
|
|
|
private void cmbCateFilter1_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
private void cmbCateFilter2_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
private void cmbCateFilter3_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
private void cmbCateFilter4Leaf_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
private void btnDelCate_Click(object sender, EventArgs e)
|
|
{
|
|
cmbCateFilter1.Text = "";
|
|
txtCateSearch.WatermarkText = "(未识别)";
|
|
}
|
|
|
|
|
|
private void txtCateSearch_TextChanged(object sender, EventArgs e)
|
|
{
|
|
var searchTxt = txtCateSearch.Text.Trim();
|
|
List<WxCatInfo> wxCatList = new List<WxCatInfo>();
|
|
if (!string.IsNullOrEmpty(searchTxt))
|
|
{
|
|
wxCatList.AddRange(GlobalConfig.WxCatList.Where(c => c.leaf && c.name.Contains(searchTxt)));
|
|
wxCatList.AddRange(GlobalConfig.WxCatList.Where(c => c.level == 3 && !c.leaf && c.name.Contains(searchTxt)));
|
|
wxCatList.AddRange(GlobalConfig.WxCatList.Where(c => c.level == 2 && !c.leaf && c.name.Contains(searchTxt)));
|
|
wxCatList.AddRange(GlobalConfig.WxCatList.Where(c => c.level == 1 && !c.leaf && c.name.Contains(searchTxt)));
|
|
}
|
|
wxCatList = wxCatList.Take(50).ToList();
|
|
|
|
lstSelectCateList.Items.Clear();
|
|
foreach (var cate in wxCatList)
|
|
{
|
|
var cateTmp = cate;
|
|
string cateName = cateTmp.name;
|
|
var parent = GlobalConfig.WxCatList.FirstOrDefault(c => c.cat_id == cateTmp.f_cat_id);
|
|
while (parent != null)
|
|
{
|
|
cateTmp = parent;
|
|
cateName = cateTmp.name + " >> " + cateName;
|
|
parent = GlobalConfig.WxCatList.FirstOrDefault(c => c.cat_id == cateTmp.f_cat_id);
|
|
}
|
|
string bountStr = " 保证金:" + GlobalConfig.WxCatBoundList.FirstOrDefault(cb => cb.leaf_id == cate.cat_id.ParseToLong())?.cat_bound;
|
|
lstSelectCateList.Items.Add(cateName + bountStr);
|
|
}
|
|
|
|
if (lstSelectCateList.Items.Count > 0)
|
|
{
|
|
lstSelectCateList.Visible = true;
|
|
btnCloseLst.Visible = true;
|
|
lstSelectCateList.BringToFront();
|
|
btnCloseLst.BringToFront();
|
|
}
|
|
else
|
|
{
|
|
lstSelectCateList.Visible = false;
|
|
btnCloseLst.Visible = false;
|
|
}
|
|
}
|
|
|
|
private void lstSelectCateList_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
var cateStr = lstSelectCateList.SelectedItem.ParseToString().Split(new string[] { "保证金" }, StringSplitOptions.RemoveEmptyEntries).FirstOrDefault()?.Trim();
|
|
var cateItems = cateStr.Split(new string[] { ">", " " }, StringSplitOptions.RemoveEmptyEntries).ToList();
|
|
if (cateItems.Count > 0)
|
|
cmbCateFilter1.Text = cateItems[0];
|
|
if (cateItems.Count > 1)
|
|
cmbCateFilter2.Text = cateItems[1];
|
|
if (cateItems.Count > 2)
|
|
cmbCateFilter3.Text = cateItems[2];
|
|
if (cateItems.Count > 3)
|
|
cmbCateFilter4Leaf.Text = cateItems[3];
|
|
|
|
txtCateSearch.WatermarkText = lstSelectCateList.SelectedItem.ParseToString();
|
|
|
|
lstSelectCateList.Visible = false;
|
|
btnCloseLst.Visible = false;
|
|
}
|
|
|
|
private void btnCloseLst_Click(object sender, EventArgs e)
|
|
{
|
|
lstSelectCateList.Visible = false;
|
|
btnCloseLst.Visible = false;
|
|
}
|
|
}
|
|
}
|