Пример #1
0
        /// <summary>
        /// 采集入库
        /// </summary>
        /// <param name="productId"></param>
        public void CollectToDB(string productId)
        {
            ControlsUtils.OperationLog("开始采集宝贝(" + productId + ")");
            string                      onlineKey       = productId.ToString();
            ItemGetResponse             itemGetResponse = new TaoBaoWebService().GetItemGetMobileResponseByOnlinekeyNew(onlineKey, 0);
            DownloadDetailTaobaoService taoBaoService   = new DownloadDetailTaobaoService();
            DownloadItemInfoViewEntity  viewEntity      = new DownloadItemInfoViewEntity();

            viewEntity.SourceShop = new Sys_shop()
            {
                Sysid = 1
            };
            if (itemGetResponse.Item != null)
            {
                ControlsUtils.OperationLog("宝贝(" + itemGetResponse.Item.Title + ")信息获取成功");
                taoBaoService.Download(itemGetResponse, viewEntity, onlineKey);
            }
            else
            {
                ControlsUtils.OperationLog("宝贝(" + productId + ")信息获取失败 " + itemGetResponse.ErrMsg);
            }

            ControlsUtils.OperationLog("宝贝(" + productId + ")采集完毕!");
            ControlsUtils.RefreshDataGridViewMaster();
        }
Пример #2
0
        public void ImportProduct(string url)
        {
            Uri    u    = new Uri(url);
            string path = u.AbsolutePath;

            ControlsUtils.OperationLog("识别地址...");
            if (path.IndexOf("item.htm") > -1)
            {
                //详情
                string id = Utils.GetId(url);
                if (!string.IsNullOrEmpty(id))
                {
                    new Task(() =>
                    {
                        CollectToDB(id);
                    }).Start();
                }
            }
            else
            {
                ControlsUtils.Msg("请填写正确的淘宝详情链接!");
            }
            //else if (path.IndexOf("search") > -1)
            //{
            //   string content= Utils.SendWebRequest(url);
            //    //列表
            //    List<string> list = Utils.GetMatchList(content, "detail_url\":\"(.*?)\"");


            //    if (list != null && list.Count > 0)
            //    {
            //        MaxVal = list.Count;
            //        CurVal = 0;
            //        foreach (var item in list)
            //        {
            //            string infoUrl = HttpUtility.HtmlDecode(item);
            //            string id = Utils.GetId(infoUrl);
            //            if (!string.IsNullOrEmpty(id))
            //            {
            //                new Task(() =>
            //                {
            //                    CollectToDB(id);
            //                    CurVal++;
            //                    ControlsUtils.SetProgressBarValue(MaxVal, CurVal);
            //                }).Start();
            //            }
            //        }

            //    }

            //}
            //else if (path.IndexOf(".taobao.com") > -1)
            //{
            //    //列表
            //}
        }
Пример #3
0
        /// <summary>
        /// 批量导出淘宝助理文件
        /// </summary>
        public void ExportToCsv(List <string> itemList)
        {
            ControlsUtils.OperationLog("开始生成淘宝助理CSV格式数据文件");
            string timeStamp = Utils.GetTimeStamp();
            //csv保存路径
            string csvPath = Path.Combine(ConfigHelper.GetCsvPath(), timeStamp + ".csv");
            //图片保存路径
            string contentPath = Path.Combine(ConfigHelper.GetCsvPath(), timeStamp);

            if (!Directory.Exists(contentPath))
            {
                Directory.CreateDirectory(contentPath);
            }
            TaoBaoExport    export      = new TaoBaoExport();
            List <string[]> _outputList = new List <string[]>();

            _outputList.Add(new string[] { "version 1.00" });
            _outputList.Add(ConfigHelper.TaoBaoHeaderFieldRow);
            _outputList.Add(ConfigHelper.TaoBaoHeaderRow);
            string             ids  = string.Join(",", itemList.ToArray());
            List <ProductItem> list = DataHelper.GetProductItemList(ids);

            MaxVal = list.Count;
            CurVal = 0;
            //切割10份开一个线程
            List <E_Range> rangeList = Utils.PrepareData(0, list.Count, 2);

            Task[] tasks = new Task[rangeList.Count];
            for (int i = 0; i < rangeList.Count; i++)
            {
                E_Range item = rangeList[i];
                tasks[i] = Task.Factory.StartNew(() =>
                {
                    for (int j = item.begin - 1; j < item.end; j++)
                    {
                        ProductItem productItem = list[j];
                        ControlsUtils.OperationLog("处理宝贝主体信息:" + productItem.Name);
                        string[] tempStr = export.ConvertProductToDic(productItem, contentPath);
                        lock (obj)
                        {
                            _outputList.Add(tempStr);
                        }
                        CurVal++;
                        ControlsUtils.OperationLog("宝贝处理完毕:" + productItem.Name);
                        ControlsUtils.SetProgressBarValue(MaxVal, CurVal);
                    }
                });
            }
            Task.WaitAll(tasks);//等待线程执行完毕
            export.WriteDicToFile(csvPath, _outputList);
            DataHelper.DeleteItemByIds(ids);
            ControlsUtils.SetProgressBarValue(list.Count, list.Count);
            ControlsUtils.OperationLog("淘宝助理CSV格式数据文件全部生成完毕!保存路径:" + csvPath);
            //for (int i = 0; i < list.Count; i++)
            //{

            //    ProductItem item = list[i];
            //    ControlsUtils.OperationLog("处理宝贝主体信息:" + item.Name);
            //    Task<string[]> taskResult = new Task<string[]>(() =>
            //    {
            //        return export.ConvertProductToDic(item, contentPath);
            //    });
            //    taskResult.Start();
            //    taskResult.Wait();
            //    _outputList.Add(taskResult.Result);
            //    ControlsUtils.OperationLog("宝贝处理完毕:" + item.Name);
            //    ControlsUtils.SetProgressBarValue(list.Count, i);
            //}
            //export.WriteDicToFile(csvPath, _outputList);
            //ControlsUtils.SetProgressBarValue(list.Count, list.Count);
        }