Exemplo n.º 1
0
        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
                };
            }));
        }
Exemplo n.º 2
0
        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>();
            }));
        }