From ba460670f6cc4bb30962d7e7b64ea7f06a8a4860 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Wed, 21 Dec 2022 23:34:13 +0800 Subject: [PATCH] 1 --- BBWY.JDSDK/Request/ImageWriteUpdateRequest.cs | 63 ++--- .../TransparentImageWriteUpdateRequest.cs | 42 ++-- BBWY.Test/JDProductAPITest.cs | 224 ++++++++++++++---- BBWY.Test/Program.cs | 19 +- 4 files changed, 249 insertions(+), 99 deletions(-) diff --git a/BBWY.JDSDK/Request/ImageWriteUpdateRequest.cs b/BBWY.JDSDK/Request/ImageWriteUpdateRequest.cs index 0e618ca5..cdbd9044 100644 --- a/BBWY.JDSDK/Request/ImageWriteUpdateRequest.cs +++ b/BBWY.JDSDK/Request/ImageWriteUpdateRequest.cs @@ -6,39 +6,44 @@ namespace Jd.Api.Request { public class ImageWriteUpdateRequest : JdRequestBase { - public Nullable - wareId - {get; set;} - - public string - colorId {get; set; } - public string - imgId {get; set; } - public string - imgIndex {get; set; } - public string - imgUrl {get; set; } - public string - imgZoneId {get; set; } - public override string ApiName - { - get{return "jingdong.image.write.update";} - } - protected override void PrepareParam(IDictionary parameters) - { - parameters.Add("wareId", this. wareId + public Nullable +wareId + { get; set; } + + public string +colorId + { get; set; } + public string +imgId + { get; set; } + public string +imgIndex + { get; set; } + public string +imgUrl + { get; set; } + public string +imgZoneId + { get; set; } + public override string ApiName + { + get { return "jingdong.image.write.update"; } + } + protected override void PrepareParam(IDictionary parameters) + { + parameters.Add("wareId", this.wareId ); - parameters.Add("colorId", this. colorId + parameters.Add("colorId", this.colorId ); - parameters.Add("imgId", this. imgId + parameters.Add("imgId", this.imgId ); - parameters.Add("imgIndex", this. imgIndex + parameters.Add("imgIndex", this.imgIndex ); - parameters.Add("imgUrl", this. imgUrl + parameters.Add("imgUrl", this.imgUrl ); - parameters.Add("imgZoneId", this. imgZoneId + parameters.Add("imgZoneId", this.imgZoneId ); - } + } } } @@ -46,6 +51,6 @@ namespace Jd.Api.Request - - + + diff --git a/BBWY.JDSDK/Request/TransparentImageWriteUpdateRequest.cs b/BBWY.JDSDK/Request/TransparentImageWriteUpdateRequest.cs index e2d6476b..71374b8d 100644 --- a/BBWY.JDSDK/Request/TransparentImageWriteUpdateRequest.cs +++ b/BBWY.JDSDK/Request/TransparentImageWriteUpdateRequest.cs @@ -6,27 +6,29 @@ namespace Jd.Api.Request { public class TransparentImageWriteUpdateRequest : JdRequestBase { - public Nullable - wareId - {get; set;} - - public string - colorId {get; set; } - public string - imageUrl {get; set; } - public override string ApiName - { - get{return "jingdong.transparentImage.write.update";} - } - protected override void PrepareParam(IDictionary parameters) - { - parameters.Add("wareId", this. wareId + public Nullable +wareId + { get; set; } + + public string +colorId + { get; set; } + public string +imageUrl + { get; set; } + public override string ApiName + { + get { return "jingdong.transparentImage.write.update"; } + } + protected override void PrepareParam(IDictionary parameters) + { + parameters.Add("wareId", this.wareId ); - parameters.Add("colorId", this. colorId + parameters.Add("colorId", this.colorId ); - parameters.Add("imageUrl", this. imageUrl + parameters.Add("imageUrl", this.imageUrl ); - } + } } } @@ -34,6 +36,6 @@ namespace Jd.Api.Request - - + + diff --git a/BBWY.Test/JDProductAPITest.cs b/BBWY.Test/JDProductAPITest.cs index 23609641..42edf369 100644 --- a/BBWY.Test/JDProductAPITest.cs +++ b/BBWY.Test/JDProductAPITest.cs @@ -6,6 +6,7 @@ using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; +using System.Text; namespace BBWY.Test { @@ -24,11 +25,11 @@ namespace BBWY.Test Console.WriteLine(JsonConvert.SerializeObject(response)); } - public void QueryTouTu(IJdClient client, string token, string spu) + public void QueryTouTu(IJdClient client, string token) { var req = new TransparentImageReadFindByWareIdAndColorIdRequest(); - - req.wareId = long.Parse(spu); + var mainSpu = "10022905456671"; + req.wareId = long.Parse(mainSpu); req.colorId = "0000000000"; var response = client.Execute(req, token, DateTime.Now.ToLocalTime()); @@ -52,7 +53,7 @@ namespace BBWY.Test public void ShangJiaTest(IJdClient client, string token) { - var mainSpu = "10022905456671"; + var mainSpu = "10022612803735"; var giftSpu = "10023500913672"; var barCode = ""; @@ -62,7 +63,7 @@ namespace BBWY.Test var selectGiftSkuList = new List(); - #region 取主商品信息 + #region 取主商品sku信息 { var req = new SkuReadSearchSkuListRequest() { @@ -124,6 +125,36 @@ namespace BBWY.Test } #endregion + #region 获取细节图 + + //IList imagesByColorList = new List(); + //{ + // var req = new ImageReadFindImagesByColorRequest(); + + // req.wareId = long.Parse(mainSpu); + // req.colorId = "0000000000"; + + // var response = client.Execute(req, token, DateTime.Now.ToLocalTime()); + // if (response.Json == null) + // response.Json = JObject.Parse(response.Body); + // imagesByColorList = response.Json["jingdong_image_read_findImagesByColor_responce"]["images"].ToList(); + //} + #endregion + + //#region 获取透图 + //JToken toutuJToken = null; + //{ + // var req = new TransparentImageReadFindByWareIdAndColorIdRequest(); + // req.wareId = long.Parse(mainSpu); + // req.colorId = "0000000000"; + + // var response = client.Execute(req, token, DateTime.Now.ToLocalTime()); + // if (response.Json == null) + // response.Json = JObject.Parse(response.Body); + // toutuJToken = response.Json["jingdong_transparentImage_read_findByWareIdAndColorId_responce"]["imageList"]; + //} + //#endregion + #region 获取销售属性 IList colorSaleAttrs = null; @@ -144,69 +175,176 @@ namespace BBWY.Test #endregion #region 增量保存sku + + List newSkuList = new List(); { var skusParamList = new List(); - var takeColorIndex = colorSaleAttrs.Count() - 10; - for (var i = 0; i < 3; i++) + var updateSkuTitleParamList = new List(); + var transparentImageWriteAddRequestList = new List(); + var imageWriteUpdateRequestList = new List(); + + var takeColorIndex = colorSaleAttrs.Count() - 1; + for (var i = 0; i < selectGiftSkuList.Count(); i++) { var giftSku = selectGiftSkuList[i]; + var colorProperty = colorSaleAttrs[takeColorIndex]; + var p = new SkuWriteUpdateSkusItem() { + type = "com.jd.pop.ware.ic.api.domain.Sku", wareId = long.Parse(mainSpu), //skuId = long.Parse(sku.Id), jdPrice = giftSku.Price, stockNum = 500, barCode = barCode, + saleAttrs = new List() + { + new SkuWriteUpdateSkusItemSaleAttrs() + { + type = "com.jd.pop.ware.ic.api.domain.Prop", + attrId = colorProperty.Value("attId"), + attrValues = new List() { colorProperty.Value("id") }, + index = takeColorIndex + } + } }; - var colorProperty = colorSaleAttrs[takeColorIndex]; - p.saleAttrs = new List(); - - var m = new SkuWriteUpdateSkusItemSaleAttrs(); - m.type = "com.jd.pop.ware.ic.api.domain.Prop"; - m.attrId = colorProperty.Value("attId"); - m.attrValues = new List() { colorProperty.Value("id") }; - m.attrValueAlias = new List() { - giftSku.Title - //colorProperty.Value("name") - }; - m.index = takeColorIndex; - p.saleAttrs.Add(m); - takeColorIndex--; + p.multiCateProps = new List(); + if (multiCateProps != null && multiCateProps.Count() > 0) + { + foreach (var multiCateProp in multiCateProps) + { + var m = new SkuWriteUpdateSkusItemSaleAttrs(); + m.type = "com.jd.pop.ware.ic.api.domain.Prop"; + m.attrId = multiCateProp.Value("attrId"); + m.attrValues = multiCateProp.Value("attrValues").Select(x => x.ToString()).ToList(); + p.multiCateProps.Add(m); + } + } + + //修改标题参数 + updateSkuTitleParamList.Add(new WareWriteUpdateWareSaleAttrvalueAliasRequestItem() + { + attrId = p.saleAttrs[0].attrId, + attrValues = p.saleAttrs[0].attrValues, + attrValueAlias = new List() { giftSku.Title } + }); - //foreach (var saleAttr in colorSaleAttrs) + ////修改透图参数 + //var transparentImageWriteAddRequest = new TransparentImageWriteAddRequest() //{ - // var m = new SkuWriteUpdateSkusItemSaleAttrs(); - // m.attrId = saleAttr.Value("attrId"); - // m.attrValues = saleAttr.Value("attrValues").Select(x => x.ToString()).ToList(); - // p.saleAttrs.Add(m); - //} - - //p.multiCateProps = new List(); - //if (multiCateProps != null && multiCateProps.Count() > 0) + // wareId = long.Parse(mainSpu), + // colorId = colorProperty.Value("id"), + // //colorId = "0000000000", + // imageUrl = toutuJToken.Value("imageUrl") + //}; + //transparentImageWriteAddRequestList.Add(transparentImageWriteAddRequest); + + //修改商品细节图参数 + var imgUrlBuilder = new StringBuilder(); + var imgIndexBuilder = new StringBuilder(); + imgUrlBuilder.Append($"{giftSku.Logo.Substring(giftSku.Logo.IndexOf("jfs"))},"); + imgIndexBuilder.Append("1,"); + //for (var ii = 0; ii <= 3; ii++) //{ - // foreach (var multiCateProp in multiCateProps) - // { - // var m = new SkuWriteUpdateSkusItemSaleAttrs(); - // m.attrId = multiCateProp.Value("attrId"); - // m.attrValues = multiCateProp.Value("attrValues").Select(x => x.ToString()).ToList(); - // p.multiCateProps.Add(m); - // } + // var imgJToken = imagesByColorList[ii]; + // imgUrlBuilder.Append($"{imgJToken.Value("imgUrl")},"); + // imgIndexBuilder.Append($"{imgJToken.Value("imgIndex") + 1},"); //} + imageWriteUpdateRequestList.Add(new ImageWriteUpdateRequest() + { + wareId = long.Parse(mainSpu), + colorId = colorProperty.Value("id"), + imgUrl = imgUrlBuilder.ToString().Trim(','), + imgIndex = imgIndexBuilder.ToString().Trim(',') + }); + + + takeColorIndex--; skusParamList.Add(p); } - var req = new SkuWriteUpdateSkusRequest(); - req.wareId = long.Parse(mainSpu); - req.skus = skusParamList; + #region 上架sku + { + var req = new SkuWriteUpdateSkusRequest(); + req.wareId = long.Parse(mainSpu); + req.skus = skusParamList; + Console.WriteLine("上架请求参数"); + Console.WriteLine(JsonConvert.SerializeObject(req)); + var res = client.Execute(req, token, DateTime.Now.ToLocalTime()); + + Console.WriteLine(); + Console.WriteLine("上架返回内容"); + Console.WriteLine(JsonConvert.SerializeObject(res)); + + if (res.Json == null) + res.Json = JObject.Parse(res.Body); + newSkuList = res.Json["jingdong_sku_write_updateSkus_responce"]["skuList"].ToList().Select(x => x.Value("skuId")).ToList(); + } + #endregion + + #region 改名 + { + Console.WriteLine(); + Console.WriteLine(); + + var request = new WareWriteUpdateWareSaleAttrvalueAliasRequest() + { + wareId = long.Parse(mainSpu), + props = updateSkuTitleParamList + }; + + Console.WriteLine("改名请求参数"); + Console.WriteLine(JsonConvert.SerializeObject(request)); + var res = client.Execute(request, token, DateTime.Now.ToLocalTime()); + + Console.WriteLine(); + Console.WriteLine("改名返回内容"); + Console.WriteLine(JsonConvert.SerializeObject(res)); + } + #endregion + + #region 修改细节图 + foreach (var request in imageWriteUpdateRequestList) + { + Console.WriteLine("修改细节图请求参数"); + Console.WriteLine(JsonConvert.SerializeObject(request)); + var res = client.Execute(request, token, DateTime.Now.ToLocalTime()); + + Console.WriteLine(); + Console.WriteLine("修改细节图返回内容"); + Console.WriteLine(JsonConvert.SerializeObject(res)); + Console.WriteLine(); + } + #endregion + + //#region 修改透图 + //foreach (var request in transparentImageWriteAddRequestList) + //{ + // Console.WriteLine("修改透图请求参数"); + // Console.WriteLine(JsonConvert.SerializeObject(request)); + // var res = client.Execute(request, token, DateTime.Now.ToLocalTime()); + + // Console.WriteLine(); + // Console.WriteLine("修改透图返回内容"); + // Console.WriteLine(JsonConvert.SerializeObject(res)); + // Console.WriteLine(); + //} + //#endregion + } + #endregion - Console.WriteLine("请求参数"); - Console.WriteLine(JsonConvert.SerializeObject(req)); + #region 删除SKU + foreach (var sku in newSkuList) + { + var req = new SkuWriteDeleteSkuRequest(); + req.skuId = long.Parse(sku); var res = client.Execute(req, token, DateTime.Now.ToLocalTime()); Console.WriteLine(); - Console.WriteLine("返回内容"); + Console.WriteLine("删除sku返回结果"); Console.WriteLine(JsonConvert.SerializeObject(res)); + Console.WriteLine(); } #endregion } diff --git a/BBWY.Test/Program.cs b/BBWY.Test/Program.cs index a6c0cb8a..b92b9275 100644 --- a/BBWY.Test/Program.cs +++ b/BBWY.Test/Program.cs @@ -15,11 +15,15 @@ namespace BBWY.Test static void Main(string[] args) { - var appkey = "120EA9EC65AB017567D78CC1139EEEA5"; - var appSecret = "8a42bc2301e8439b896e99f5475e0a9b"; - //0e61c4a8ec3e4df4b5836e10884db9220yth 齐盛 - //2ace3023200c4ea9aa682bbf8bffee18jztm 布莱特玩具 - var token = "0e61c4a8ec3e4df4b5836e10884db9220yth"; //"b46065ef5b894f2297686e28d39cb37a2mdy";//""; + //var appkey = "120EA9EC65AB017567D78CC1139EEEA5"; + //var appSecret = "8a42bc2301e8439b896e99f5475e0a9b"; + ////0e61c4a8ec3e4df4b5836e10884db9220yth 齐盛 + ////2ace3023200c4ea9aa682bbf8bffee18jztm 布莱特玩具 + //var token = "0e61c4a8ec3e4df4b5836e10884db9220yth"; //"b46065ef5b894f2297686e28d39cb37a2mdy";//""; + + var appkey = "E1AA9247D5583A6D87449CE6AB290185"; + var appSecret = "e479558ddd9e40f8929cfc00c6cbbc9c"; + var token = "832ed917f2ec4accb849e4760dbab2a5myzw"; //var path = @"C:\Users\pengcong001\Desktop\含赠品SKU.txt"; //var j = JToken.Parse(System.IO.File.ReadAllText(path, System.Text.Encoding.UTF8)); @@ -58,8 +62,9 @@ namespace BBWY.Test //var ddTest = new DingDingAPITest(); //ddTest.Send(); - //test1.ShangJiaTest(client, token); - test1.修改属性别名(client, token); + test1.ShangJiaTest(client, token); + //test1.修改属性别名(client, token); + //test1.QueryTouTu(client,token); Console.ReadKey(); } }