From fbc807eb8e5e7b3e6c729bddfee42b5b412cdb2e Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Tue, 31 Oct 2023 23:57:39 +0800 Subject: [PATCH 1/2] =?UTF-8?q?pjzs=E4=B8=8A=E6=9E=B6=E8=B5=A0=E5=93=81?= =?UTF-8?q?=E4=BD=BF=E7=94=A8sku=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PlatformSDK/JDBusiness.cs | 97 +++++++++++-------- 1 file changed, 57 insertions(+), 40 deletions(-) diff --git a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs index a4f05ae2..66636f55 100644 --- a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs +++ b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs @@ -872,7 +872,8 @@ namespace BBWY.Server.Business AppSecret = request.AppSecret, AppToken = request.AppToken, Platform = Enums.Platform.京东, - IsCheckSkuCount = true + IsCheckSkuCount = true, + IsContainSource = true }; IList motherTemplateSkuList = null; @@ -989,15 +990,35 @@ namespace BBWY.Server.Business #region 组装上架/改名/设置细节图参数 stepText = "组装上架/改名/设置细节图参数"; - var takeColorIndex = colorSaleAttrs.Count() - 1; + var indexCount = colorSaleAttrs.Count() - 1; + var noUsedIndexList = new List(); + try + { + var usedIndexList = new List(); + usedIndexList.AddRange(mainProductSkuList.Select(ps => Convert.ToInt32(ps.Source["saleAttrs"][0]["attrValuesSeqNo"][0].ToString()))); + for (var i = 0; i <= indexCount; i++) + { + if (usedIndexList.Contains(i)) + continue; + noUsedIndexList.Add(i); + } + } + catch (Exception ex) + { + for (var i = 0; i <= indexCount; i++) + { + noUsedIndexList.Add(i); + } + } + var skusParamList = new List(); var updateSkuTitleParamList = new List(); var imageWriteUpdateRequestList = new List(); - + var skuIndex = noUsedIndexList.Count() - 1; for (var i = 0; i < request.GiftTemplateSkuList.Count(); i++) { var giftSku = request.GiftTemplateSkuList[i]; - var colorPropertyValue = colorSaleAttrs[takeColorIndex]; + //var colorPropertyValue = colorSaleAttrs[takeColorIndex]; var p = new SkuWriteUpdateSkusItem() { @@ -1009,14 +1030,13 @@ namespace BBWY.Server.Business outerId = $"{request.OuterId}{(i + 1).ToString().PadLeft(3, '0')}", saleAttrs = new List() { - - new SkuWriteUpdateSkusItemSaleAttrs() + new SkuWriteUpdateSkusItemSaleAttrs() { type = "com.jd.pop.ware.ic.api.domain.Prop", - attrId = colorPropertyValue.Value("attId"), + attrId = colorSaleAttrs[0].Value("attId"), attrValueAlias = new List(){ giftSku.Title }, - index = takeColorIndex, - attrValuesSeqNo = new List(){ takeColorIndex } + index = noUsedIndexList[skuIndex], + attrValuesSeqNo = new List(){ noUsedIndexList[skuIndex] } } }, saleAttrTemplateId = "POP_MODEL" @@ -1034,8 +1054,8 @@ namespace BBWY.Server.Business p.multiCateProps.Add(m); } } - - takeColorIndex--; + skuIndex--; + //takeColorIndex--; skusParamList.Add(p); } #endregion @@ -1105,48 +1125,45 @@ namespace BBWY.Server.Business } } - //记录上架返回值 - nLogManager.Default().Info($"任务Id {request.Id} 店铺Id {request.ShopId} 上架赠品返回值 {res.Body}"); + Thread.Sleep(30 * 1000); + stepText = "从sku列表接口匹配刚上架的赠品"; + giftSkuList = new List(); + var newMainProductSkuList = GetProductSkuList(new SearchProductSkuRequest() + { + AppKey = request.AppKey, + AppSecret = request.AppSecret, + AppToken = request.AppToken, + Platform = Enums.Platform.京东, + Spu = request.MainProductSpu, + IsContainSource = true + }); - stepText = "获取上架skuId"; - var newSkuIdList = res.Json["jingdong_sku_write_updateSkus_responce"]["skuList"].ToList().Select(x => x.Value("skuId")).ToList(); + //记录上架返回值 + nLogManager.Default().Info($"任务Id {request.Id} 店铺Id {request.ShopId} 上架赠品sku查询返回值 {JsonConvert.SerializeObject(newMainProductSkuList)}"); - #region 处理上架之后没有skuId的情况 - if (newSkuIdList.Any(s => string.IsNullOrEmpty(s))) + foreach (var ps in newMainProductSkuList) { - newSkuIdList.Clear(); - Thread.Sleep(30 * 1000); - var _mainProductSkuList = GetProductSkuList(new SearchProductSkuRequest() - { - AppKey = request.AppKey, - AppSecret = request.AppSecret, - AppToken = request.AppToken, - Platform = Enums.Platform.京东, - Spu = request.MainProductSpu - }); - foreach (var ps in _mainProductSkuList) + if (request.GiftTemplateSkuList.Any(x => x.Title == ps.Title)) { - if (request.GiftTemplateSkuList.Any(x => x.Title == ps.Title)) - { - //此sku是赠品sku - newSkuIdList.Add(ps.Id); - } + //此sku是赠品sku + //newSkuIdList.Add(ps.Id); + giftSkuList.Add(ps); } - if (newSkuIdList.Count() == 0) - throw new BusinessException("未能从sku列表接口正常获取新上架sku"); } - #endregion + if (giftSkuList.Count() == 0) + throw new BusinessException("未能从sku列表接口正常获取新上架sku"); - giftSkuIdList.AddRange(newSkuIdList); + giftSkuIdList.AddRange(giftSkuList.Select(gs => gs.Id)); - stepText = "获取上架sku"; - var newSkuList = res.Json["jingdong_sku_write_updateSkus_responce"]["skuList"].ToList(); + stepText = "设置赠品图片"; + //var newSkuList = res.Json["jingdong_sku_write_updateSkus_responce"]["skuList"].ToList(); var imgIndex = 1; StringBuilder colorBuilder = new StringBuilder(); StringBuilder imgUrlBuilder = new StringBuilder(); StringBuilder imgIndexBuilder = new StringBuilder(); - foreach (var skuJToken in newSkuList) + foreach (var giftsku in giftSkuList) { + var skuJToken = giftsku.Source; var skuTitle = skuJToken["saleAttrs"][0]["attrValueAlias"][0].ToString(); var colorId = "0000000000"; try From cbb989c7d59ad9df79c2d66c5f12bba9ccc87660 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Wed, 1 Nov 2023 00:01:35 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=B8=8A=E6=9E=B6=E7=BB=86=E8=8A=82?= =?UTF-8?q?=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PlatformSDK/JDBusiness.cs | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs index a55d2cbb..ff9835ae 100644 --- a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs +++ b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs @@ -1126,7 +1126,7 @@ namespace BBWY.Server.Business } Thread.Sleep(30 * 1000); - stepText = "从sku列表接口匹配刚上架的赠品"; + stepText = "查询上架的赠品"; giftSkuList = new List(); var newMainProductSkuList = GetProductSkuList(new SearchProductSkuRequest() { @@ -1139,7 +1139,7 @@ namespace BBWY.Server.Business }); //记录上架返回值 - nLogManager.Default().Info($"任务Id {request.Id} 店铺Id {request.ShopId} 上架赠品sku查询返回值 {JsonConvert.SerializeObject(newMainProductSkuList)}"); + nLogManager.Default().Info($"查询上架的赠品,任务Id {request.Id} 店铺Id {request.ShopId}, {JsonConvert.SerializeObject(newMainProductSkuList)}"); foreach (var ps in newMainProductSkuList) { @@ -1229,22 +1229,22 @@ namespace BBWY.Server.Business #endregion - #region 查询上架的赠品 - stepText = "查询上架的赠品SKU"; - Thread.Sleep(60 * 1000); - searchProductSkuRequest.Sku = string.Join(",", giftSkuIdList); - searchProductSkuRequest.CheckStep = "上架的赠品"; - try - { - giftSkuList = GetProductSkuList(searchProductSkuRequest); - } - catch - { - RollBackWhenStartPromotionError(request.AppKey, request.AppSecret, request.AppToken, giftSkuIdList, request.MainProductSpu, request.FullTitle, brandName, haveGiftTemplateSku); - throw; - } - - #endregion + //#region 查询上架的赠品 + //stepText = "查询上架的赠品SKU"; + //Thread.Sleep(60 * 1000); + //searchProductSkuRequest.Sku = string.Join(",", giftSkuIdList); + //searchProductSkuRequest.CheckStep = "上架的赠品"; + //try + //{ + // giftSkuList = GetProductSkuList(searchProductSkuRequest); + //} + //catch + //{ + // RollBackWhenStartPromotionError(request.AppKey, request.AppSecret, request.AppToken, giftSkuIdList, request.MainProductSpu, request.FullTitle, brandName, haveGiftTemplateSku); + // throw; + //} + + //#endregion } #region 创建活动