From 96cd79f62caa51e143545002448034f2de2f8ce4 Mon Sep 17 00:00:00 2001 From: wule Date: Sat, 13 Dec 2025 11:49:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=95=86=E5=93=81=E6=8F=90?= =?UTF-8?q?=E5=8F=96=E8=8E=B7=E5=8F=96=E4=B8=8D=E5=88=B0=E5=95=86=E5=93=81?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E9=A1=B5=E9=9D=A2=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ShopForms/PDDShopBrowserObject.cs | 90 ++++++++++++++++--- 1 file changed, 77 insertions(+), 13 deletions(-) diff --git a/TEMUKJD/PDDForms/ShopForms/PDDShopBrowserObject.cs b/TEMUKJD/PDDForms/ShopForms/PDDShopBrowserObject.cs index aa3b268..d2cb1f2 100644 --- a/TEMUKJD/PDDForms/ShopForms/PDDShopBrowserObject.cs +++ b/TEMUKJD/PDDForms/ShopForms/PDDShopBrowserObject.cs @@ -73,8 +73,9 @@ namespace TemuKJD.PDDForms.ShopForms var prod_detail_rst = GetPddProdDetail(sourceShop, sourceProdId.ToString(), commitId); JObject prod_detail_obj = JObject.Parse(prod_detail_rst); detail_json = JsonHelper.SerializeObject(prod_detail_obj["result"]); + product = JsonHelper.DeserializeJsonToObject(detail_json); - if (product == null) + if (product == null || detail_json.Length < 10) { OnInfoReceived("商品获取失败!商品数据格式获取失败!"); return; @@ -183,19 +184,82 @@ namespace TemuKJD.PDDForms.ShopForms OnInfoReceived("商品获取失败!商品详情图获取失败!" + ex.Message); return; } - //if (decoration != null && decoration_json.ParseToString().Length < 20) - //{ - // try - // { - // var prod_detail_decoration_rst = GetPddProdDetail(sourceShop, sourceProdId.ToString(), commitId); - // } - // catch (Exception ex) - // { - // OnInfoReceived("商品获取失败!商品详情图获取失败!" + ex.Message); - // return; - // } - //} + if (decoration != null && decoration_json.ParseToString().Length < 20) + { + //try + //{ // 获取另一组详情数据,结构和主详情不一样无法通用 + // var prod_detail_decoration_rst = GetPddProdOnShopDetail(sourceShop, sourceProdId.ToString(), commitId); + // JObject prod_detail_decoration_obj = JObject.Parse(prod_detail_decoration_rst); + // foreach (JObject ob in prod_detail_decoration_obj["result"]["carousel_gallery"]) + // { + // } + //} + //catch (Exception ex) + //{ + // OnInfoReceived("商品获取失败!商品详情图获取失败!" + ex.Message); + // return; + //} + + PDDProdDecorationCommitParam decorationParam = new PDDProdDecorationCommitParam(); + decorationParam.goods_id = product.goods_id; + decorationParam.goods_commit_id = commitId.ParseToLong(); + decorationParam.preview_key = ""; + decorationParam.decoration_floor_list = new List(); + foreach (var gallary in product.galleries) + { + if (gallary.type != 2) + continue; + + var floor_param = new decoration_floor_param(); + //floor_param.floor_id = 0; // floorItem.floor_id; + floor_param.type = "image"; // floorItem.type; + floor_param.content_list = new List(); + //foreach (var c in floorItem.content_list) + { + var decorationContentParam = new decoration_content_param() + { + //file_id = c.file_id, + img_url = gallary.url, //c.img_url, + //height = c.height, + //text = c.text, + //text_module_details = null, + //width = c.width, + }; + //try { decorationContentParam.text_module_details = JsonHelper.DeserializeJsonToObject(JsonHelper.SerializeObject(c.text_module_details)); } + //catch (Exception ex) { } + floor_param.content_list.Add(decorationContentParam); + } + decorationParam.decoration_floor_list.Add(floor_param); + } + + var addDecorationRst = save_decoration(shop, decorationParam, product.goods_id.ParseToString(), commitId); + Thread.Sleep(Randomx.GetId(10, 50)); + + // 第二次获取详情图 + try + { + var prod_decoration_rst = GetPddProdDecoration(sourceShop, sourceProdId.ToString(), commitId); + if (!prod_decoration_rst.Contains("\"success\":true")) + { + var errMsg = BaseRegex.GetStringJson(ref prod_decoration_rst, "error_msg"); + if (string.IsNullOrEmpty(errMsg)) + errMsg = prod_decoration_rst; + OnInfoReceived("商品获取失败!商品详情图获取失败!" + errMsg); + return; + } + JObject prod_decoration_obj = JObject.Parse(prod_decoration_rst); + if (!prod_decoration_obj["result"].IsNullOrEmpty()) + decoration_json = JsonHelper.SerializeObject(prod_decoration_obj["result"]); + decoration = JsonHelper.DeserializeJsonToObject(decoration_json); + } + catch (Exception ex) + { + OnInfoReceived("商品获取失败!商品详情图获取失败!" + ex.Message); + return; + } + } + if (decoration == null || decoration_json.ParseToString().Length < 20) {