拼多多上传充电宝

This commit is contained in:
wule committed 2026-11-02 17:04:50 +08:00
1 parent 25d5b5d61c
commit 8f73311176
2 files changed
+282 -144

No files matched your search

@@ -190,7 +190,7 @@ namespace AllBase.Model.Param.PDDProdParam
public long? template_module_id { get; set; }
public int? ref_pid { get; set; }
public int? pid { get; set; }
public long? vid { get; set; }
public long? vid { get; set; } = 0;
public string value { get; set; }
public string value_unit { get; set; }
public table_info_dto_param table_info_dto { get; set; }
@@ -32,6 +32,7 @@ using System.Drawing.Imaging;
using NaiBa.CefHelper.Handler;
using TemuKJD.Helper;
using CefSharp.WinForms;
using Work.GoodDetail;
namespace TemuKJD.PDDForms.ProductSelectForms
{
@@ -1839,10 +1840,22 @@ namespace TemuKJD.PDDForms.ProductSelectForms
}
}
}
#endregion
#region 没有specId的商品重新识别specID
if (skuInfoEditLst.Any(s => s.spec.Any(sp => sp.parent_id.ParseToLong() == 0 || sp.spec_id.ParseToLong() == 0)))
// 多级sku直接置为0
if (skuInfoEditLst.Any(s => s.spec.Count > 2))
{
foreach (var skuInfo in skuInfoEditLst)
{
foreach (var skuSpec in skuInfo.spec)
{
skuSpec.spec_id = 0;
}
}
}
#endregion
#region 没有specId的商品重新识别specID(三级sku也要重新获取因为原来不支持三级,上面已置空)
if (skuInfoEditLst.Any(s => s.spec.Any(sp => sp.parent_id.ParseToLong() == 0 || sp.spec_id.ParseToLong() == 0)))
{
Invoke(new Action(() =>
{
@@ -1875,18 +1888,21 @@ namespace TemuKJD.PDDForms.ProductSelectForms
var index = 0;
foreach (var specInfo in skuInfo.spec)
{
long parent_id = 0;
try
{
parent_id = specNameDic.FirstOrDefault(s => s.Value == specInfo.parent_name).Key;
}
catch
{
}
if (parent_id == 0)
parent_id = specNameDic.ToList()[index].Key;
if (specInfo.parent_id.IsNullOrZero())
{
long parent_id = 0;
try
{
parent_id = specNameDic.FirstOrDefault(s => s.Value == specInfo.parent_name).Key;
}
catch
{
}
if (parent_id == 0)
parent_id = specNameDic.ToList()[index].Key;
specInfo.parent_id = parent_id;
specInfo.parent_id = parent_id;
}
specInfo.spec_id = skuInfoEditLst.FirstOrDefault(s => s.spec[index].spec_name == specInfo.spec_name && s.spec[index].spec_id > 0)?.spec[index].spec_id;
if (specInfo.spec_id == null || specInfo.spec_id == 0)
@@ -1973,7 +1989,9 @@ namespace TemuKJD.PDDForms.ProductSelectForms
pre_sale_time = skuInfo.pre_sale_time,
sku_id = skuInfo.sku_id,
thumb_url_file_id = skuInfo.thumb_url_file_id,
};
sku_basic_property_dtos = skuInfo.sku_basic_property_dtos == null ?
null : JsonHelper.DeserializeJsonToList<sku_basic_property_dtos_item>(JsonHelper.SerializeObject(skuInfo.sku_basic_property_dtos)),
};
if (dbProd.product_get_type_text == "厂商直采" && skuInfo.quantity == 0)
skuParam.quantity_delta = 0;
if (chkUseExtCodePrice.Checked && dbProd.ext_code_price > 0)
@@ -2687,82 +2705,161 @@ namespace TemuKJD.PDDForms.ProductSelectForms
}
}
//spec属性填写到商品属性内
if (isUseUpperSizeSpec == true && prodInfo.size != null && prodInfo.size.classId != null && prodCatTemplateInfo.spec_module != null)
if ((isUseUpperSizeSpec == true && prodInfo.size != null && prodInfo.size.classId != null && prodCatTemplateInfo.spec_module != null) ||
prodParam.skus.Any(s=>s.spec?.Count > 2))
{
foreach (var sku in prodParam.skus)
{
if (sku.spec != null && sku.spec.Count > 0)
{
var skuSpec = sku.spec[0];
foreach (var sku in prodParam.skus)
{
int group = 1;
if (sku.spec != null && sku.spec.Count > 0)
{
group++;
foreach (var skuSpec in sku.spec)
{
//已存在sku属性跳过
if (prodParam.goods_properties.Any(p => (p as goods_spec_property_param)?.value == skuSpec.spec_name))
continue;
//已存在sku属性跳过
if (prodParam.goods_properties.Any(p => (p as goods_spec_property_param)?.value == skuSpec.spec_name))
continue;
var specModule = prodCatTemplateInfo.spec_module;
var specProp = prodCatTemplateInfo.spec_module.properties.FirstOrDefault(p => p.name_alias == skuSpec.parent_name);
var defaultPropValue = specProp.values.FirstOrDefault();
var defaultGroup = (defaultPropValue?.group) == null ? group : defaultPropValue.group.id;
var specPropValue = specProp.values.FirstOrDefault(v => v.value == skuSpec.spec_name);
if (specProp != null)
{
var spec_prop = new goods_spec_property_param()
{
pid = specProp.pid,
ref_pid = specProp.ref_pid,
template_pid = specProp.id,
value = skuSpec.spec_name,
value_unit = "",
vid = specPropValue?.vid ?? 0,
parent_spec_id = skuSpec.parent_id,
spec_id = skuSpec.spec_id,
note = "",
img_url = "",
group_id = /*2, */ (specPropValue?.group?.id) == null ? defaultGroup : (specPropValue.group.id).ParseToInt(),
template_module_id = specModule.id,
};
prodParam.goods_properties.Add(spec_prop);
}
}
}
}
var specModule = prodCatTemplateInfo.spec_module;
var specProp = prodCatTemplateInfo.spec_module.properties.FirstOrDefault(p => p.name_alias == skuSpec.parent_name);
var defaultPropValue = specProp.values.FirstOrDefault();
var defaultGroup = (defaultPropValue?.group) == null ? 2 : defaultPropValue.group.id;
var specPropValue = specProp.values.FirstOrDefault(v => v.value == skuSpec.spec_name);
if (specProp != null)
{
var spec_prop = new goods_spec_property_param()
{
pid = specProp.pid,
ref_pid = specProp.ref_pid,
template_pid = specProp.id,
value = skuSpec.spec_name,
value_unit = "",
vid = specPropValue?.vid,
parent_spec_id = skuSpec.parent_id,
spec_id = skuSpec.spec_id,
note = "",
img_url = "",
group_id = /*2, */ (specPropValue?.group?.id) == null ? defaultGroup : (specPropValue.group.id).ParseToInt(),
template_module_id = specModule.id,
};
prodParam.goods_properties.Add(spec_prop);
}
}
}
foreach (var sku in prodParam.skus)
{
if (sku.spec != null && sku.spec.Count > 1)
{
var skuSpec = sku.spec[1];
//foreach (var sku in prodParam.skus)
//{
// if (sku.spec != null && sku.spec.Count > 0)
// {
// var skuSpec = sku.spec[0];
//
// //已存在sku属性跳过
// if (prodParam.goods_properties.Any(p => (p as goods_spec_property_param)?.value == skuSpec.spec_name))
// continue;
//
// var specModule = prodCatTemplateInfo.spec_module;
// var specProp = prodCatTemplateInfo.spec_module.properties.FirstOrDefault(p => p.name_alias == skuSpec.parent_name);
// var defaultPropValue = specProp.values.FirstOrDefault();
// var defaultGroup = (defaultPropValue?.group) == null ? 2 : defaultPropValue.group.id;
// var specPropValue = specProp.values.FirstOrDefault(v => v.value == skuSpec.spec_name);
// if (specProp != null)
// {
// var spec_prop = new goods_spec_property_param()
// {
// pid = specProp.pid,
// ref_pid = specProp.ref_pid,
// template_pid = specProp.id,
// value = skuSpec.spec_name,
// value_unit = "",
// vid = specPropValue?.vid ?? 0,
// parent_spec_id = skuSpec.parent_id,
// spec_id = skuSpec.spec_id,
// note = "",
// img_url = "",
// group_id = /*2, */ (specPropValue?.group?.id) == null ? defaultGroup : (specPropValue.group.id).ParseToInt(),
// template_module_id = specModule.id,
// };
// prodParam.goods_properties.Add(spec_prop);
// }
// }
//}
//已存在sku属性跳过
if (prodParam.goods_properties.Any(p => (p as goods_spec_property_param)?.value == skuSpec.spec_name))
continue;
//foreach (var sku in prodParam.skus)
//{
// if (sku.spec != null && sku.spec.Count > 1)
// {
// var skuSpec = sku.spec[1];
//
// //已存在sku属性跳过
// if (prodParam.goods_properties.Any(p => (p as goods_spec_property_param)?.value == skuSpec.spec_name))
// continue;
//
// var specModule = prodCatTemplateInfo.spec_module;
// var specProp = prodCatTemplateInfo.spec_module.properties.FirstOrDefault(p => p.name_alias == skuSpec.parent_name);
// var defaultPropValue = specProp.values.FirstOrDefault();
// var defaultGroup = (defaultPropValue?.group) == null ? 3 : defaultPropValue.group.id;
// var specPropValue = specProp.values.FirstOrDefault(v => v.value == skuSpec.spec_name);
// if (specProp != null)
// {
// var spec_prop = new goods_spec_property_param()
// {
// pid = specProp.pid,
// ref_pid = specProp.ref_pid,
// template_pid = specProp.id,
// value = skuSpec.spec_name,
// value_unit = "",
// vid = specPropValue?.vid ?? 0,
// parent_spec_id = skuSpec.parent_id,
// spec_id = skuSpec.spec_id,
// note = "",
// img_url = "",
// group_id = /*3, */ (specPropValue?.group?.id) == null ? defaultGroup : (specPropValue.group.id).ParseToInt(),
// template_module_id = specModule.id,
// };
// prodParam.goods_properties.Add(spec_prop);
// }
// }
//}
var specModule = prodCatTemplateInfo.spec_module;
var specProp = prodCatTemplateInfo.spec_module.properties.FirstOrDefault(p => p.name_alias == skuSpec.parent_name);
var defaultPropValue = specProp.values.FirstOrDefault();
var defaultGroup = (defaultPropValue?.group) == null ? 3 : defaultPropValue.group.id;
var specPropValue = specProp.values.FirstOrDefault(v => v.value == skuSpec.spec_name);
if (specProp != null)
{
var spec_prop = new goods_spec_property_param()
{
pid = specProp.pid,
ref_pid = specProp.ref_pid,
template_pid = specProp.id,
value = skuSpec.spec_name,
value_unit = "",
vid = specPropValue?.vid,
parent_spec_id = skuSpec.parent_id,
spec_id = skuSpec.spec_id,
note = "",
img_url = "",
group_id = /*3, */ (specPropValue?.group?.id) == null ? defaultGroup : (specPropValue.group.id).ParseToInt(),
template_module_id = specModule.id,
};
prodParam.goods_properties.Add(spec_prop);
}
}
}
}
//foreach (var sku in prodParam.skus)
//{
// if (sku.spec != null && sku.spec.Count > 2)
// {
// var skuSpec = sku.spec[2];
//
// //已存在sku属性跳过
// if (prodParam.goods_properties.Any(p => (p as goods_spec_property_param)?.value == skuSpec.spec_name))
// continue;
//
// var specModule = prodCatTemplateInfo.spec_module;
// var specProp = prodCatTemplateInfo.spec_module.properties.FirstOrDefault(p => p.name_alias == skuSpec.parent_name);
// var defaultPropValue = specProp.values.FirstOrDefault();
// var defaultGroup = (defaultPropValue?.group) == null ? 4 : defaultPropValue.group.id;
// var specPropValue = specProp.values.FirstOrDefault(v => v.value == skuSpec.spec_name);
// if (specProp != null)
// {
// var spec_prop = new goods_spec_property_param()
// {
// pid = specProp.pid,
// ref_pid = specProp.ref_pid,
// template_pid = specProp.id,
// value = skuSpec.spec_name,
// value_unit = "",
// vid = specPropValue?.vid ?? 0,
// parent_spec_id = skuSpec.parent_id,
// spec_id = skuSpec.spec_id,
// note = "",
// img_url = "",
// group_id = /*3, */ (specPropValue?.group?.id) == null ? defaultGroup : (specPropValue.group.id).ParseToInt(),
// template_module_id = specModule.id,
// };
// prodParam.goods_properties.Add(spec_prop);
// }
// }
//}
}
#region 生成一个fake商品提交参数,价格按照3倍(指定倍数)上传,用于参加活动
@@ -3279,7 +3376,17 @@ namespace TemuKJD.PDDForms.ProductSelectForms
}
}));
Thread.Sleep(Randomx.GetId(20, 100));
//var str = JsonHelper.SerializeObject(prodParam);
//if (prodParam.skus.Any(s => s.spec?.Count > 2))
//{
// foreach(var sku in prodParam.skus)
// {
// foreach (var sp in sku.spec)
// {
// }
// }
//}
var str = JsonHelper.SerializeObject(prodParam);
var uploadRst = submit_goods_edit(shop, prodParam.goods_id.ParseToString(), prodParam.goods_commit_id, isChanceApi);
if (!uploadRst.Contains("\"success\":true"))
{
@@ -8085,10 +8192,22 @@ Content-Type: image/jpeg
for (int i = 0; i < prodInfo.property.goods_properties.Count; i++)
{
var propInfo = prodInfo.property.goods_properties[i];
var propName = propInfo.name;
var propTemp = prodCatTemplateInfo.modules.FirstOrDefault()?.propertys.FirstOrDefault(p => p.ref_pid == propInfo.ref_pid);
if (propTemp == null)
continue;
if (propName == "净重" && propInfo.values.FirstOrDefault()?.value != null)
{
var oldValue = propInfo.values.FirstOrDefault()?.value;
var match = Regex.Matches(oldValue, @"\d+");
if (match.Count > 0)
{
propInfo.values.FirstOrDefault().value = match[0].Value;
propInfo.values.FirstOrDefault().unit = oldValue.Replace(match[0].Value, "");
}
}
var prop = new goods_property_param()
{
@@ -8096,10 +8215,10 @@ Content-Type: image/jpeg
template_module_id = prodCatTemplateInfo.modules.FirstOrDefault().id,
ref_pid = propInfo.ref_pid,
pid = propTemp.pid,
vid = propInfo.values.FirstOrDefault()?.vid,
value = "",
value_unit = "",
content = (propInfo.values.FirstOrDefault()?.value).ParseToString(),
vid = propInfo.values.FirstOrDefault()?.vid ?? 0,
value = propInfo.values.FirstOrDefault()?.value ?? "",
value_unit = propInfo.values.FirstOrDefault()?.unit ?? "",
content = propInfo.values.FirstOrDefault()?.value ?? "",
};
if (propInfo.values.FirstOrDefault()?.table_info_vo?.table_value_list?.FirstOrDefault() != null)
{
@@ -8247,9 +8366,9 @@ Content-Type: image/jpeg
template_module_id = prodCatTemplateInfo.modules.FirstOrDefault().id,
ref_pid = propInfo.ref_pid,
pid = propTemp.pid,
vid = propInfo.values.FirstOrDefault()?.vid,
value = "",
value_unit = "",
vid = propInfo.values.FirstOrDefault()?.vid ?? 0,
value = (propInfo.values.FirstOrDefault()?.value).ParseToString(),
value_unit = propInfo.values.FirstOrDefault()?.unit ?? "",
content = (propInfo.values.FirstOrDefault()?.value).ParseToString(),
};
if (propInfo.values.FirstOrDefault()?.table_info_vo?.table_value_list?.FirstOrDefault() != null)
@@ -8269,59 +8388,78 @@ Content-Type: image/jpeg
//step3(共3个step)如果有遗漏的必填(required)商品属性,按默认值填写
foreach (var propTemp in prodCatTemplateInfo.modules.FirstOrDefault()?.propertys)
{
if (propTemp.name_alias == "产品名称")
{
}
if (propTemp.required && !goods_properties.Any(p => p.ref_pid == propTemp.ref_pid))
{
var contentOther = propTemp.values?.content?.FirstOrDefault(c => c.value == "其他");
if (contentOther != null)
{
//var prop = new goods_property_param()
var prop = new goods_spec_property_param()
{
template_pid = propTemp.id,
template_module_id = prodCatTemplateInfo.modules.FirstOrDefault().id,
ref_pid = propTemp.ref_pid,
pid = propTemp.pid,
vid = contentOther.vid,
value = "",
value_unit = "",
content = contentOther.value,
};
goods_properties.Add(prop);
}
else if (propTemp.name_alias == "成分含量")
{
var contentValue = propTemp.values.content.FirstOrDefault(v => v.value.Contains("以下"));
if (contentValue != null)
{
var prop = new goods_spec_property_param()
{
template_pid = propTemp.id,
template_module_id = prodCatTemplateInfo.modules.FirstOrDefault().id,
ref_pid = propTemp.ref_pid,
pid = propTemp.pid,
vid = contentValue.vid,
value = "",
value_unit = "",
content = contentValue.value,
};
goods_properties.Add(prop);
}
}
else if (propTemp.show_type == 1 && propTemp.values.content.Count == 1) // 二级关联属性
{
var prop = new goods_spec_property_param()
{
template_pid = propTemp.id,
template_module_id = prodCatTemplateInfo.modules.FirstOrDefault().id,
ref_pid = propTemp.ref_pid,
pid = propTemp.pid,
vid = propTemp.values.content.FirstOrDefault().vid,
value = "",
value_unit = "",
content = propTemp.values.content.FirstOrDefault().value,
};
goods_properties.Add(prop);
}
if (contentOther != null)
{
//var prop = new goods_property_param()
var prop = new goods_spec_property_param()
{
template_pid = propTemp.id,
template_module_id = prodCatTemplateInfo.modules.FirstOrDefault().id,
ref_pid = propTemp.ref_pid,
pid = propTemp.pid,
vid = contentOther.vid ?? 0,
value = contentOther.value,
value_unit = "",
content = contentOther.value,
};
goods_properties.Add(prop);
}
else if (propTemp.name_alias == "产品名称")
{
var prop = new goods_spec_property_param()
{
template_pid = propTemp.id,
template_module_id = prodCatTemplateInfo.modules.FirstOrDefault().id,
ref_pid = propTemp.ref_pid,
pid = propTemp.pid,
vid = 0,
value = prodParam.goods_name,
value_unit = "",
content = prodParam.goods_name,
};
goods_properties.Add(prop);
}
else if (propTemp.name_alias == "成分含量")
{
var contentValue = propTemp.values.content.FirstOrDefault(v => v.value.Contains("以下"));
if (contentValue != null)
{
var prop = new goods_spec_property_param()
{
template_pid = propTemp.id,
template_module_id = prodCatTemplateInfo.modules.FirstOrDefault().id,
ref_pid = propTemp.ref_pid,
pid = propTemp.pid,
vid = contentValue.vid ?? 0,
value = contentValue.value,
value_unit = "",
content = contentValue.value,
};
goods_properties.Add(prop);
}
}
else if (propTemp.show_type == 1 && propTemp.values.content.Count == 1) // 二级关联属性
{
var prop = new goods_spec_property_param()
{
template_pid = propTemp.id,
template_module_id = prodCatTemplateInfo.modules.FirstOrDefault().id,
ref_pid = propTemp.ref_pid,
pid = propTemp.pid,
vid = propTemp.values.content.FirstOrDefault().vid ?? 0,
value = propTemp.values.content.FirstOrDefault().value ?? "",
value_unit = "",
content = propTemp.values.content.FirstOrDefault().value ?? "",
};
goods_properties.Add(prop);
}
}
}
foreach (var prodTempInfo in prodCatTemplateInfo.modules.FirstOrDefault()?.propertys)