public async Task <ProductListResponse> List(ProductClassifyRequest request) { var qing = qingtaokeApiDataRepository.ItemList(request); var zhushou = taokeZhushouApiDataRepository.Search(new ProductSearchRequest() { Cat = request.Cat, Sort = request.Sort, PageSize = request.PageSize, PageNo = request.PageNo }); var jidi = taokeJidiApiDataRepository.Classify(request); return(await Task.WhenAll(qing, zhushou, jidi).ContinueWith(task => { List <TbkProductInfo> lstResult = new List <TbkProductInfo>(); task.Result.ToList().ForEach(item => { if (item == null) { return; } lstResult.AddRange(item); }); lstResult = lstResult.Distinct(new ProductIdComparer()).Sort(request.Sort).ToList(); return new ProductListResponse() { Datas = lstResult, Total = lstResult.Count }; })); }
public Task <List <TbkProductInfo> > Classify(ProductClassifyRequest request) { return(Task.Factory.StartNew(() => { int cat = 0; CatMapping.TryGetValue(request.Cat, out cat); if (cat <= 0) { return new List <TbkProductInfo>(); } var tkjdResponse = new HttpUtils().DoGet <TaokeJidiDataResponse>(ConstantsUtils.TAOKEJIDI_CATEGORY, new Dictionary <string, string>() { { "appkey", ConstantsUtils.TAOKEJIDI_KEY }, { "cid", cat.ToString() }, { "page", request.PageNo.ToString() } }); if (null != tkjdResponse && tkjdResponse.Data != null) { return GetProductList(tkjdResponse.Data); } return new List <TbkProductInfo>(); })); }
/// <summary> /// 列表搜索 /// </summary> /// <param name="request"></param> /// <returns></returns> public Task <List <TbkProductInfo> > ItemList(ProductClassifyRequest request) { return(Task.Factory.StartNew(() => { var reqParams = new Dictionary <string, string>() { { "app_key", ConstantsUtils.QINGTAOKE_APP_KEY }, { "page", request.PageNo.ToString() }, }; if (request.PageSize == 100 || request.PageSize == 200) { reqParams.Add("page_size", request.PageSize.ToString()); } if (request.Juhuasuan == 1) { reqParams.Add("is_ju", "1"); } if (request.Taoqianggou == 1) { reqParams.Add("Is_tqg", "1"); } if (request.MinPrice >= 0) { reqParams.Add("min_price", Math.Ceiling(request.MinPrice).ToString()); } if (request.MaxPrice > 1) { reqParams.Add("max_price", Math.Ceiling(request.MaxPrice).ToString()); } int cat = -1; if (request.Cat >= 0 && CatMapping.TryGetValue(request.Cat, out cat)) { if (cat > -1) { reqParams.Add("cat", cat.ToString()); } } if (request.TodayNew == 1) { reqParams.Add("new", "1"); } switch (request.Sort) { case 0: reqParams.Add("sort", "1"); break; case 1: reqParams.Add("sort", "3"); break; case 2: reqParams.Add("sort", "4"); break; case 3: reqParams.Add("sort", "5"); break; } QingtaokeSearchResponse qtkResponse = new HttpUtils().DoGet <QingtaokeSearchResponse>(ConstantsUtils.QINGTAOKE_LIST, reqParams); if (qtkResponse != null && qtkResponse.Data != null && qtkResponse.Data.List?.Length >= 1) { return GetProductList(qtkResponse.Data.List); } return new List <TbkProductInfo>(); })); }