Beispiel #1
0
        private Task <ProductListResponse> GetProductList(ProductTopicRequest request, List <Task <List <TbkProductInfo> > > lstTask, bool isFilter = true)
        {
            if (lstTask.Count == 0)
            {
                return(Task.FromResult(new ProductListResponse()));
            }
            else
            {
                return(Task.WhenAll(lstTask).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, isFilter).ToList();

                    return new ProductListResponse()
                    {
                        Datas = lstResult,
                        Total = lstResult.Count
                    };
                }));
            }
        }
Beispiel #2
0
        /// <summary>
        /// 销量爆款
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <ProductListResponse> SaleTop(ProductTopicRequest request)
        {
            List <Task <List <TbkProductInfo> > > lstTask = new List <Task <List <TbkProductInfo> > >();

            switch (request.Type)
            {
            case 1:    //人气榜
                lstTask.Add(dataokeApiDataRepository.Top100(request));
                lstTask.Add(taokeJidiApiDataRepository.Top100(request));
                break;

            case 2:    //销量爆款
                lstTask.Add(dataokeApiDataRepository.XiaoLiang(request));
                lstTask.Add(qingtaokeApiDataRepository.BaoKuan(request));
                break;

            case 3:    //每日必拍
                lstTask.Add(taokeJidiApiDataRepository.BiPai(request));
                lstTask.Add(taokeZhushouApiDataRepository.TopHour(request));
                break;

            case 4:                                                         //小编力荐
                lstTask.Add(taokeZhushouApiDataRepository.TopDay(request)); //QQ
                lstTask.Add(dataokeApiDataRepository.QQ(request));
                lstTask.Add(taokeJidiApiDataRepository.QQ(request));
                break;

            case 5:    //品牌特卖
                lstTask.Add(taokeJidiApiDataRepository.PinPai(request));
                break;
            }

            return(await GetProductList(request, lstTask));
        }
Beispiel #3
0
        /// <summary>
        /// 领券直播
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <ProductListResponse> All(ProductTopicRequest request)
        {
            List <Task <List <TbkProductInfo> > > lstTask = new List <Task <List <TbkProductInfo> > >();

            lstTask.Add(dataokeApiDataRepository.All(request));
            lstTask.Add(taokeZhushouApiDataRepository.All(request));
            lstTask.Add(taokeJidiApiDataRepository.All(request));
            return(await GetProductList(request, lstTask));
        }
Beispiel #4
0
        public async Task <ProductListResponse> TeMai(ProductTopicRequest request)
        {
            List <Task <List <TbkProductInfo> > > lstTask = new List <Task <List <TbkProductInfo> > >();

            switch (request.Type)
            {
            case 1:    //超值九块九
                lstTask.Add(qingtaokeApiDataRepository.ItemList(new ProductClassifyRequest()
                {
                    MinPrice = 0,
                    MaxPrice = 9.9F,
                    PageNo   = request.PageNo,
                    Sort     = request.Sort,
                }));
                lstTask.Add(taokeZhushouApiDataRepository.Search(new ProductSearchRequest()
                {
                    MinPrice = 0,
                    MaxPrice = 9.9F,
                    Sort     = request.Sort,
                    PageNo   = request.PageNo
                }));
                break;

            case 2:    //20元封顶
                lstTask.Add(qingtaokeApiDataRepository.ItemList(new ProductClassifyRequest()
                {
                    MinPrice = 10,
                    MaxPrice = 20,
                    PageNo   = request.PageNo,
                    Sort     = request.Sort
                }));
                lstTask.Add(taokeZhushouApiDataRepository.Search(new ProductSearchRequest()
                {
                    MinPrice = 10,
                    MaxPrice = 20,
                    Sort     = request.Sort,
                    PageNo   = request.PageNo
                }));
                break;

            case 4:                                                         //小编力荐
                lstTask.Add(taokeZhushouApiDataRepository.TopDay(request)); //QQ
                lstTask.Add(dataokeApiDataRepository.QQ(request));
                lstTask.Add(taokeJidiApiDataRepository.QQ(request));
                break;

            case 5:    //品牌特卖
                lstTask.Add(taokeJidiApiDataRepository.PinPai(request));
                break;
            }

            return(await GetProductList(request, lstTask));
        }
 public Task <List <TbkProductInfo> > TopDay(ProductTopicRequest request)
 {
     return(Task.Factory.StartNew(() =>
     {
         var dtkResponse = new HttpUtils().DoGet <TaokeZhushouDataResponse>(ConstantsUtils.TAOKEZHUSHOU_TOPDAY, new Dictionary <string, string>()
         {
             { "app_key", ConstantsUtils.TAOKEZHUSHOU_KEY },
             { "page", request.PageNo.ToString() }
         });
         if (null != dtkResponse && dtkResponse.Data != null)
         {
             return GetProductList(dtkResponse.Data);
         }
         return new List <TbkProductInfo>();
     }));
 }
Beispiel #6
0
 public Task <List <TbkProductInfo> > BiPai(ProductTopicRequest request)
 {
     return(Task.Factory.StartNew(() =>
     {
         var tkjdResponse = new HttpUtils().DoGet <TaokeJidiDataResponse>(ConstantsUtils.TAOKEJIDI_BIPAI, new Dictionary <string, string>()
         {
             { "appkey", ConstantsUtils.TAOKEJIDI_KEY },
             { "page", request.PageNo.ToString() }
         });
         if (null != tkjdResponse && tkjdResponse.Data != null)
         {
             return GetProductList(tkjdResponse.Data);
         }
         return new List <TbkProductInfo>();
     }));
 }
 /// <summary>
 /// 全站领券API接口
 /// </summary>
 /// <param name="request"></param>
 /// <returns></returns>
 public Task <List <TbkProductInfo> > All(ProductTopicRequest request)
 {
     return(Task.Factory.StartNew(() =>
     {
         var dtkResponse = new HttpUtils().DoGet <DataokeSearchResponse>(ConstantsUtils.DATAOKE_ALL, new Dictionary <string, string>()
         {
             { "appkey", ConstantsUtils.DATAOKE_APP_KEY },
             { "page", request.PageNo.ToString() }
         });
         if (null != dtkResponse && dtkResponse.Result != null)
         {
             return GetProductList(dtkResponse.Result);
         }
         return new List <TbkProductInfo>();
     }));
 }
        /// <summary>
        /// 爆款
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public Task <List <TbkProductInfo> > BaoKuan(ProductTopicRequest request)
        {
            return(Task.Factory.StartNew(() =>
            {
                QingtaokeBaoKuanResponse qtkResponse = new HttpUtils().DoGet <QingtaokeBaoKuanResponse>(ConstantsUtils.QINGTAOKE_BAOKUAN, new Dictionary <string, string>()
                {
                    { "app_key", ConstantsUtils.QINGTAOKE_APP_KEY }
                });

                if (qtkResponse != null && qtkResponse.Data != null && qtkResponse.Data?.Length >= 1)
                {
                    return GetProductList(qtkResponse.Data);
                }

                return new List <TbkProductInfo>();
            }));
        }
Beispiel #9
0
        public async Task <ProductListResponse> WeiXin(ProductTopicRequest request)
        {
            List <Task <List <TbkProductInfo> > > lstTask = new List <Task <List <TbkProductInfo> > >();

            switch (request.Type)
            {
            case 1:
                lstTask.Add(dataokeApiDataRepository.Top100(request));
                lstTask.Add(taokeJidiApiDataRepository.Top100(request));
                break;

            case 2:
                lstTask.Add(qingtaokeApiDataRepository.BaoKuan(request));
                lstTask.Add(taokeZhushouApiDataRepository.TopHour(request));
                break;

            case 3:
                lstTask.Add(dataokeApiDataRepository.XiaoLiang(request));
                lstTask.Add(taokeZhushouApiDataRepository.TopDay(request));
                break;

            case 4:
                lstTask.Add(qingtaokeApiDataRepository.ItemList(new ProductClassifyRequest()
                {
                    TodayNew = 1,
                    PageNo   = request.PageNo,
                    Sort     = request.Sort
                }));
                lstTask.Add(taokeZhushouApiDataRepository.Search(new ProductSearchRequest()
                {
                    TodayNew = 1,
                    Sort     = request.Sort,
                    PageNo   = request.PageNo
                }));
                break;

            case 5:
                lstTask.Add(taokeZhushouApiDataRepository.Search(new ProductSearchRequest()
                {
                    Juhuasuan = 1,
                    Sort      = request.Sort,
                    PageNo    = request.PageNo
                }));
                lstTask.Add(qingtaokeApiDataRepository.ItemList(new ProductClassifyRequest()
                {
                    Juhuasuan = 1,
                    PageNo    = request.PageNo,
                    Sort      = request.Sort
                }));
                break;

            case 6:
                lstTask.Add(qingtaokeApiDataRepository.ItemList(new ProductClassifyRequest()
                {
                    Taoqianggou = 1,
                    PageNo      = request.PageNo,
                    Sort        = request.Sort
                }));
                lstTask.Add(taokeZhushouApiDataRepository.Search(new ProductSearchRequest()
                {
                    Taoqianggou = 1,
                    Sort        = request.Sort,
                    PageNo      = request.PageNo
                }));
                break;

            case 7:
                lstTask.Add(qingtaokeApiDataRepository.ItemList(new ProductClassifyRequest()
                {
                    MinPrice = 0,
                    MaxPrice = 9.9F,
                    PageNo   = request.PageNo,
                    Sort     = request.Sort,
                }));
                lstTask.Add(taokeZhushouApiDataRepository.Search(new ProductSearchRequest()
                {
                    MinPrice = 0,
                    MaxPrice = 9.9F,
                    Sort     = request.Sort,
                    PageNo   = request.PageNo
                }));
                break;

            case 8:
                lstTask.Add(qingtaokeApiDataRepository.ItemList(new ProductClassifyRequest()
                {
                    MinPrice = 10,
                    MaxPrice = 20,
                    PageNo   = request.PageNo,
                    Sort     = request.Sort
                }));
                lstTask.Add(taokeZhushouApiDataRepository.Search(new ProductSearchRequest()
                {
                    MinPrice = 10,
                    MaxPrice = 20,
                    Sort     = request.Sort,
                    PageNo   = request.PageNo
                }));
                break;

            case 9:
                lstTask.Add(taokeZhushouApiDataRepository.Search(new ProductSearchRequest()
                {
                    Haitao = 1,
                    Sort   = request.Sort,
                    PageNo = request.PageNo
                }));
                break;

            case 10:
                lstTask.Add(taokeJidiApiDataRepository.PinPai(request));
                break;
            }
            return(await GetProductList(request, lstTask, request.Type != 9));
        }
Beispiel #10
0
        /// <summary>
        /// 栏目精选
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <ProductListResponse> Channel(ProductTopicRequest request)
        {
            List <Task <List <TbkProductInfo> > > lstTask = new List <Task <List <TbkProductInfo> > >();

            switch (request.Type)
            {
            case 1:    //聚划算
                lstTask.Add(taokeZhushouApiDataRepository.Search(new ProductSearchRequest()
                {
                    Juhuasuan = 1,
                    Sort      = request.Sort,
                    PageNo    = request.PageNo,
                    Cat       = request.Cat
                }));
                lstTask.Add(qingtaokeApiDataRepository.ItemList(new ProductClassifyRequest()
                {
                    Juhuasuan = 1,
                    PageNo    = request.PageNo,
                    Sort      = request.Sort,
                    Cat       = request.Cat
                }));
                break;

            case 2:    //淘抢购
                lstTask.Add(qingtaokeApiDataRepository.ItemList(new ProductClassifyRequest()
                {
                    Taoqianggou = 1,
                    PageNo      = request.PageNo,
                    Sort        = request.Sort,
                    Cat         = request.Cat
                }));
                lstTask.Add(taokeZhushouApiDataRepository.Search(new ProductSearchRequest()
                {
                    Taoqianggou = 1,
                    Sort        = request.Sort,
                    PageNo      = request.PageNo,
                    Cat         = request.Cat
                }));
                break;

            case 3:    //海淘精选
                lstTask.Add(taokeZhushouApiDataRepository.Search(new ProductSearchRequest()
                {
                    Haitao = 1,
                    Sort   = request.Sort,
                    PageNo = request.PageNo,
                    Cat    = request.Cat
                }));
                break;

            case 4:    //天猫
                lstTask.Add(taokeZhushouApiDataRepository.Search(new ProductSearchRequest()
                {
                    Tmall  = 1,
                    Sort   = request.Sort,
                    PageNo = request.PageNo,
                    Cat    = request.Cat
                }));
                break;

            case 5:    //今日上新
                lstTask.Add(qingtaokeApiDataRepository.ItemList(new ProductClassifyRequest()
                {
                    TodayNew = 1,
                    PageNo   = request.PageNo,
                    Sort     = request.Sort,
                    Cat      = request.Cat
                }));
                lstTask.Add(taokeZhushouApiDataRepository.Search(new ProductSearchRequest()
                {
                    TodayNew = 1,
                    Sort     = request.Sort,
                    PageNo   = request.PageNo,
                    Cat      = request.Cat
                }));
                break;

            case 6:    //超值9.9
                lstTask.Add(qingtaokeApiDataRepository.ItemList(new ProductClassifyRequest()
                {
                    MinPrice = 0,
                    MaxPrice = 9.9F,
                    PageNo   = request.PageNo,
                    Sort     = request.Sort,
                    Cat      = request.Cat
                }));
                lstTask.Add(taokeZhushouApiDataRepository.Search(new ProductSearchRequest()
                {
                    MinPrice = 0,
                    MaxPrice = 9.9F,
                    Sort     = request.Sort,
                    PageNo   = request.PageNo,
                    Cat      = request.Cat
                }));
                break;

            case 7:    //20元封顶
                lstTask.Add(qingtaokeApiDataRepository.ItemList(new ProductClassifyRequest()
                {
                    MinPrice = 10,
                    MaxPrice = 20,
                    PageNo   = request.PageNo,
                    Sort     = request.Sort,
                    Cat      = request.Cat
                }));
                lstTask.Add(taokeZhushouApiDataRepository.Search(new ProductSearchRequest()
                {
                    MinPrice = 10,
                    MaxPrice = 20,
                    Sort     = request.Sort,
                    PageNo   = request.PageNo,
                    Cat      = request.Cat
                }));
                break;
            }
            bool isfilter = !(request.Type == 3 || request.Type == 4 || request.Type == 5);

            return(await GetProductList(request, lstTask, isfilter));
        }