public void UploadTaobao(string path)
        {
            var    fileInfo = new FileInfo(path);
            var    fileName = fileInfo.Name;
            string fileUrl  = null;

            try
            {
                OnStateChange?.Invoke(Enums.StateLogType.TaoBaoCouponUploadStart, $"代理{dlProxy.PhoneNumber}的{fileName}开始上传");
                Dictionary <string, string> files = new Dictionary <string, string>();
                files.Add("file", path);
                var uploadFileApi = new Api.BuyUploadApi(files);
                fileUrl = uploadFileApi.CreateRequestReturnUrls()[0];
                OnStateChange?.Invoke(Enums.StateLogType.TaoBaoCouponUploadComplated, $"代理{dlProxy.PhoneNumber}的{fileName}上传完成");
                try
                {
                    OnStateChange(Enums.StateLogType.TaoBaoCouponAddDbStart, $"代理{dlProxy.PhoneNumber}的{fileName}开始处理");
                    var api = new Api.BuyApi("Import", "Taobao", new
                    {
                        UserID = dlProxy.ID,
                        Url    = fileUrl
                    });

                    var result = api.CreateRequestReturnBuyResult <object>();
                    if (result.State == "Success")
                    {
                        OnStateChange?.Invoke(Enums.StateLogType.TaoBaoCouponAddDbComplated, $"代理{dlProxy.PhoneNumber}的{fileName}处理完成");
                    }
                    else
                    {
                        OnStateChange?.Invoke(Enums.StateLogType.TaoBaoCouponAddDbFail, $"代理{dlProxy.PhoneNumber}的{fileName}处理失败");
                    }
                }
                catch (Exception ex)
                {
                    try
                    {
                        Bll.Buy.LoopCheckCouponUserTemps(dlProxy.ID, Enums.Platform.TaoBao);
                        OnStateChange?.Invoke(Enums.StateLogType.TaoBaoCouponAddDbComplated, $"代理{dlProxy.PhoneNumber}的{fileName}处理完成");
                    }
                    catch (Exception)
                    {
                        OnStateChange?.Invoke(Enums.StateLogType.TaoBaoCouponDownloadFail, $"{fileName}处理失败");
                        SystemBase.WriteLog($"提交失败 {ex.Message}", "UploadTaobao");
                    }
                }
            }
            catch (Exception ex)
            {
                OnStateChange?.Invoke(Enums.StateLogType.TaoBaoCouponUploadFail, $"代理{dlProxy.PhoneNumber}的{fileName}上传失败");
                SystemBase.WriteLog($"上传失败 {ex.Message}", "UploadTaobao");
            }
            finally
            {
                try
                {
                    fileInfo.Delete();
                }
                catch (Exception ex)
                {
                    OnStateChange?.Invoke(Enums.StateLogType.TaoBaoCouponDeleteTemp, $"代理{dlProxy.PhoneNumber}的{fileName}缓存文件删除失败");
                }
            }
            Task task = new Task(() =>
            {
                chrome.Load(COUPON_DOWNLOAD_URL);
            });

            task.Start();
        }
Beispiel #2
0
        public void LoadCoupon()
        {
            OnStateChange?.Invoke(Enums.StateLogType.MoGuJieGetCouponStart, "开始加载蘑菇街优惠券");
            var cids     = MoGuJie.Method.AllCategory;
            var pageSize = 100;
            var models   = new List <Coupon>();

            foreach (var cid in cids)
            {
                if (!EnableRun)
                {
                    return;
                }

                try
                {
                    //获取第一页
                    var result = mgj.GetItemList(channels, cid, pageNo: 1, pageSize: pageSize);
                    //已经初始化过了,就不往下加载了
                    if (result.Total > 0)
                    {
                        models.AddRange(result.Items);
                        //获取
                        if (!onlyFirstPage)
                        {
                            for (int i = 2; i <= result.TotalPage; i++)
                            {
                                var result2 = mgj.GetItemList(channels, cid, pageNo: i, pageSize: pageSize);
                                models.AddRange(result2.Items);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    SystemBase.WriteLog(ex.Message, "MoGuJie");
                }
            }


            OnStateChange?.Invoke(Enums.StateLogType.MoGuJieGetCouponComplated, "加载蘑菇街优惠券加载完成");
            var dirInfo = new System.IO.DirectoryInfo($"{Config.RuningPath}\\temp");

            if (!dirInfo.Exists)
            {
                dirInfo.Create();
            }
            foreach (var item in channels)
            {
                var pModel   = models.Where(s => s.UserID == item.UserID).ToList();
                var path     = $"{Config.RuningPath}\\temp\\蘑菇街_{item.Name}_{DateTime.Now:yyyyMMddHHmm}.json";
                var fileInfo = new System.IO.FileInfo(path);
                System.IO.File.WriteAllText(path, JsonConvert.SerializeObject(pModel));


                try
                {
                    OnStateChange?.Invoke(Enums.StateLogType.MoGuJieCouponAddDbStart, $"蘑菇街 代理{item.Name} 提交开始");
                    var files = new Dictionary <string, string>();
                    files.Add("file", path);

                    var upload = new Api.BuyUploadApi(files).CreateRequestReturnUrls();
                    var update = new Api.BuyApi("ImportItems", "MoGuJie", new { Url = upload[0] }).CreateRequestReturnBuyResult <object>();

                    if (update.State == "Success")
                    {
                        OnStateChange?.Invoke(Enums.StateLogType.MoGuJieCouponAddDbComplated, $"蘑菇街 代理{item.Name} 提交完成");
                        try
                        {
                            System.IO.File.Delete(path);
                        }
                        catch (Exception)
                        {
                        }
                    }
                    else
                    {
                        OnStateChange?.Invoke(Enums.StateLogType.MoGuJieCouponAddDbError, update.Message);
                    }
                }
                catch (Exception ex)
                {
                    try
                    {
                        Bll.Buy.LoopCheckCouponUserTemps(item.UserID, Enums.Platform.MGJ);
                        OnStateChange?.Invoke(Enums.StateLogType.MoGuJieCouponAddDbComplated, $"蘑菇街 代理{item.Name} 提交完成");
                    }
                    catch (Exception)
                    {
                        OnStateChange?.Invoke(Enums.StateLogType.MoGuJieCouponAddDbError, $"蘑菇街 代理{item.Name} 提交超时");
                    }
                }
                finally
                {
                    try
                    {
                        System.IO.File.Delete(path);
                    }
                    catch (Exception ex)
                    {
                        OnStateChange?.Invoke(Enums.StateLogType.MoGuJieCouponDeleteTemp, $"蘑菇街 代理{item.Name} 提交有误");
                    }
                }
            }

            onlyFirstPage = true;

            var task = new Task(() =>
            {
                Thread.Sleep(5 * 60 * 1000);
                mgj.RefeashToken();
                LoadCoupon();
            });

            task.Start();
        }