机会商品采集功能

This commit is contained in:
wule committed 2025-12-29 19:56:10 +08:00
1 parent dae2bea6ef
commit c0b3583fef
18 files changed
+913 -157

No files matched your search

@@ -43,7 +43,7 @@ namespace TemuKJD.PDDForms.ShopForms
Task.Run(() =>
{
var msg = getPDDProductWidthEdit(shop, sProdId, "", false, notSaveDb);
var msg = getPDDProductWidthEdit(shop, sProdId);
if (!string.IsNullOrEmpty(msg))
{
if (!msg.StartsWith("success") && !msg.StartsWith("商品采集保存成功"))
@@ -66,7 +66,7 @@ namespace TemuKJD.PDDForms.ShopForms
return "success";
}
public string getPDDProductWidthEdit(ShopLoginInfo shop, string prodId, string commitId = "", bool isChance = false, bool notSaveDb = false)
public string getPDDProductWidthEdit(ShopLoginInfo shop, string prodId, string commitId = "", string catId = "", bool isChance = false, bool notSaveDb = false)
{
try
{
@@ -140,17 +140,17 @@ namespace TemuKJD.PDDForms.ShopForms
}
Thread.Sleep(Randomx.GetId(10, 50));
var property_json = "{}";
var property_template_json = "{}";
PDDProductPropertyInfo property = null;
if (!isChance)
if (!isChance) // 非机会商品编辑可以直接获取属性
{
try
{
var prod_property_rst = GetPddProdProperty(sourceShop, sourceProdId.ToString(), commitId);
prod_property_rst = GetHtml.Unicode2String(prod_property_rst);
JObject prod_property_obj = JObject.Parse(prod_property_rst);
property_json = JsonHelper.SerializeObject(prod_property_obj["result"]);
property = JsonHelper.DeserializeJsonToObject<PDDProductPropertyInfo>(property_json);
property_template_json = JsonHelper.SerializeObject(prod_property_obj["result"]);
property = JsonHelper.DeserializeJsonToObject<PDDProductPropertyInfo>(property_template_json);
}
catch (Exception ex) { }
if (property == null)
@@ -159,22 +159,47 @@ namespace TemuKJD.PDDForms.ShopForms
return "商品获取失败!商品属性获取失败!";
}
}
else
else // 机会商品通过类目id获取属性
{
try
{
var prod_property_rst = get_chance_cat_prop_template(sourceShop, "", sourceProdId.ToString(), commitId);
prod_property_rst = GetHtml.Unicode2String(prod_property_rst);
JObject prod_property_obj = JObject.Parse(prod_property_rst);
property_json = JsonHelper.SerializeObject(prod_property_obj["result"]);
property = JsonHelper.DeserializeJsonToObject<PDDProductPropertyInfo>(property_json);
var prod_property_template_rst = get_chance_cat_prop_template(sourceShop, catId, sourceProdId.ToString(), commitId);
prod_property_template_rst = GetHtml.Unicode2String(prod_property_template_rst);
JObject prod_property_template_obj = JObject.Parse(prod_property_template_rst);
var prod_property_template_json = JsonHelper.SerializeObject(prod_property_template_obj["result"]["modules"][0]);
var temp_module_info = JsonHelper.DeserializeJsonToObject<pdd_module_item>(prod_property_template_json);
property = new PDDProductPropertyInfo() { goods_properties = new List<goods_propertie_item>(), sku_properties = new object() };
foreach (var propInfo in temp_module_info.propertys)
{
if (propInfo.goods_properties != null)
{
goods_propertie_item propParam = new goods_propertie_item() { values = new List<value_item>() };
property.goods_properties.Add(propParam);
propParam.name = propInfo.name_alias;
propParam.ref_pid = propInfo.ref_pid;
foreach (var goodsPropInfo in propInfo.goods_properties)
{
propParam.values.Add(new value_item()
{
raw_value = goodsPropInfo.v_value,
unit = goodsPropInfo.p_unit,
value = goodsPropInfo.v_value,
vid = goodsPropInfo.vid,
});
}
}
}
}
catch (Exception ex) { }
if (property == null)
catch (Exception ex)
{
return "商品获取失败!商品属性获取失败!" + ex.Message;
}
if (property == null || property.goods_properties == null || property.goods_properties.Count == 0)
{
//OnInfoReceived("商品获取失败!商品属性获取失败!");
return "商品获取失败!商品属性获取失败!";
}
property_template_json = JsonHelper.SerializeObject(property);
}
@@ -378,7 +403,7 @@ namespace TemuKJD.PDDForms.ShopForms
}
string product_json = "{\"detail\":" + detail_json + ",\"size\":" + size_json + ",\"decoration\":" + decoration_json +
",\"material3\":" + material3_json + ",\"material1\":" + material1_json + ",\"property\":" + property_json + "}";
",\"material3\":" + material3_json + ",\"material1\":" + material1_json + ",\"property\":" + property_template_json + "}";
if (notSaveDb)
{
@@ -395,6 +420,7 @@ namespace TemuKJD.PDDForms.ShopForms
dbProd.from_shop_id = shop.ShopId;
dbProd.spu_id = product.goods_id.ParseToString();
dbProd.skc_id = product.goods_id.ParseToString();
dbProd.price_text = product.sku.Min(s => s.multi_price).ParseToInt() * 0.01m + "-" + product.sku.Max(s => s.multi_price).ParseToInt() * 0.01m;
dbProd.main_cat_id = (product.cat_ids?.FirstOrDefault(c => c != null)).ParseToString();
dbProd.main_cat_name = (product.cats?.FirstOrDefault(c => !string.IsNullOrEmpty(c))).ParseToString();
dbProd.cat_id = (product.cat_id).ParseToString();