using BBWY.Server.Model.Dto; using Jd.Api; using Jd.Api.Request; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace BBWY.Test { public class JDProductAPITest { public void GetSkus(IJdClient client, string token, string spu) { var req_skuList = new SkuReadSearchSkuListRequest() { pageSize = 50,//50 field = "logo,saleAttrs,status,created,barCode,categoryId,multiCateProps" }; req_skuList.wareId = spu; var response = client.Execute(req_skuList, token, DateTime.Now.ToLocalTime()); Console.WriteLine(JsonConvert.SerializeObject(response)); } public void QueryTouTu(IJdClient client, string token, string spu) { var req = new TransparentImageReadFindByWareIdAndColorIdRequest(); req.wareId = long.Parse(spu); req.colorId = "0000000000"; var response = client.Execute(req, token, DateTime.Now.ToLocalTime()); Console.WriteLine(JsonConvert.SerializeObject(response)); } /// /// 查询SKU细节图 /// public void FindImageByColor(IJdClient client, string token, string spu) { var req = new ImageReadFindImagesByColorRequest(); req.wareId = long.Parse(spu); req.colorId = "0000000000"; var response = client.Execute(req, token, DateTime.Now.ToLocalTime()); Console.WriteLine(JsonConvert.SerializeObject(response)); } public void ShangJiaTest(IJdClient client, string token) { var mainSpu = "10022515718131"; var giftSpu = "10023500913672"; var barCode = ""; var categoryId = ""; IList saleAttrs = null; IList multiCateProps = null; var selectGiftSkuList = new List(); #region 取主商品信息 { var req = new SkuReadSearchSkuListRequest() { pageSize = 50,//50 field = "logo,saleAttrs,status,created,barCode,categoryId,multiCateProps" }; req.wareId = mainSpu; var res = client.Execute(req, token, DateTime.Now.ToLocalTime()); var skuList = ((JArray)res.Json["jingdong_sku_read_searchSkuList_responce"]["page"]["data"]).Select(s => new ProductSkuResponse() { Id = s.Value("skuId"), ProductId = s.Value("wareId"), Price = s.Value("jdPrice"), Title = s["saleAttrs"] != null ? string.Join("-", s["saleAttrs"].Select(a => a["attrValueAlias"][0].ToString())) : string.Empty, Logo = $"https://img13.360buyimg.com/n9/s80x80_{s.Value("logo")}", State = s.Value("status"), //CreateTime = s.Value("created").StampToDateTime(), Source = s }).ToList(); barCode = skuList[0].Source.Value("barCode"); categoryId = skuList[0].Source.Value("categoryId"); saleAttrs = skuList[0].Source["saleAttrs"] != null ? skuList[0].Source["saleAttrs"].ToList() : null; multiCateProps = skuList[0].Source["multiCateProps"] != null ? skuList[0].Source["multiCateProps"].ToList() : null; } #endregion #region 取赠品信息 { var giftTitleList = new List() { "粉丝价", "放心购", "闪电退款", "免费", "价格保护", "极速审核", "质量保护", "运费险" }; var req = new SkuReadSearchSkuListRequest() { pageSize = 50,//50 field = "logo,saleAttrs,status,created,barCode,categoryId,multiCateProps" }; req.wareId = giftSpu; var res = client.Execute(req, token, DateTime.Now.ToLocalTime()); var skuList = ((JArray)res.Json["jingdong_sku_read_searchSkuList_responce"]["page"]["data"]).Select(s => new ProductSkuResponse() { Id = s.Value("skuId"), ProductId = s.Value("wareId"), Price = s.Value("jdPrice"), Title = s["saleAttrs"] != null ? string.Join("-", s["saleAttrs"].Select(a => a["attrValueAlias"][0].ToString())) : string.Empty, Logo = $"https://img13.360buyimg.com/n9/s80x80_{s.Value("logo")}", State = s.Value("status"), //CreateTime = s.Value("created").StampToDateTime(), Source = s }).ToList(); foreach (var sku in skuList) { if (!giftTitleList.Contains(sku.Title)) continue; selectGiftSkuList.Add(sku); } } #endregion #region 增量保存sku { var skusParamList = new List(); foreach (var sku in selectGiftSkuList) { var p = new SkuWriteUpdateSkusItem() { wareId = long.Parse(mainSpu), skuId = long.Parse(sku.Id), //saleAttrs = sku.Source["saleAttrs"].Select(s => new SkuWriteUpdateSkusItemSaleAttrs() //{ // attrId = s.Value("attrId"), // attrValues = s.Value("attrValues").Select(x => x.ToString()).ToList() //}).ToList(), jdPrice = sku.Price, stockNum = 5000, barCode = barCode, //multiCateProps = multiCateProps.Select(mp => new SkuWriteUpdateSkusItemSaleAttrs() //{ // attrId = mp.Value("attrId"), // attrValues = mp.Value("attrValues").Select(x => x.ToString()).ToList() //}).ToList() }; p.saleAttrs = new List(); foreach (var saleAttr in saleAttrs) { 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) { 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); } } skusParamList.Add(p); } 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)); } #endregion } } }