Exemple #1
0
        public async System.Threading.Tasks.Task RequestTestAsync()
        {
            EBGetRmaRefundListReqModel reqModel = new EBGetRmaRefundListReqModel();

            reqModel.Page     = 1;
            reqModel.PageSize = 50;
            EBGetRmaRefundListRequest request = new EBGetRmaRefundListRequest("admin", "eccang123456", reqModel);
            var result = await request.Request();
        }
Exemple #2
0
        public override async Task Job(DateTime?datetime = null)
        {
            using (var uow = _uowProvider.CreateUnitOfWork())
            {
                var repository = uow.GetRepository <ECRMARefund>();
                //新创建
                EBGetRmaRefundListReqModel reqModel = new EBGetRmaRefundListReqModel();
                reqModel.Page           = 1;
                reqModel.PageSize       = 50;
                reqModel.CreateDateForm = DateTime.Parse(repository.GetPage(0, 1, x => x.OrderByDescending(c => c.CreateDate)).FirstOrDefault().CreateDate);
                reqModel.CreateDateTo   = DateTime.Now;
                EBGetRmaRefundListRequest req = new EBGetRmaRefundListRequest(login.Username, login.Password, reqModel);
                log.Info($"退货订单 - 开始拉取,请求参数:{JsonConvert.SerializeObject(reqModel, new IsoDateTimeConverter { DateTimeFormat = "yyyy - MM - dd HH: mm:ss" })}");
                var response = await req.Request();

                response.TotalCount = response.TotalCount == null ? "1" : response.TotalCount;
                int pageNum = (int)Math.Ceiling(long.Parse(response.TotalCount) * 1.0 / 1000);
                List <ECRMARefund> rmaRefunds = new List <ECRMARefund>();
                log.Info($"退货订单 - 共计{pageNum}页");
                for (int page = 1; page < pageNum + 1; page++)
                {
                    reqModel.PageSize = 1000;
                    reqModel.Page     = page;
                    try
                    {
                        log.Info($"退货订单 - 正在拉取第{page}页");
                        req      = new EBGetRmaRefundListRequest(login.Username, login.Password, reqModel);
                        response = await req.Request();
                    }
                    catch (Exception ex)
                    {
                        log.Error($"退货订单 - 接口调用出现异常:{ex.Message}");
                        throw ex;
                    }
                    foreach (var item in response.Body)
                    {
                        try
                        {
                            var m = Mapper <EC_RmaRefund, ECRMARefund> .Map(item);

                            if (repository.Query(a => a.RefNo == m.RefNo && a.ProductSku == m.ProductSku).FirstOrDefault() == null)
                            {
                                rmaRefunds.Add(m);
                            }
                        }
                        catch (Exception ex)
                        {
                            log.Error($"退货订单 - 转换实体类出现异常:{ex.Message}");
                            throw ex;
                        }
                    }
                    try
                    {
                        rmaRefunds = rmaRefunds.GroupBy(item => new { item.RefNo, item.ProductSku }).Select(item => item.First()).ToList();
                        await repository.BulkInsertAsync(rmaRefunds, x => x.IncludeGraph = true);

                        uow.BulkSaveChanges();
                        rmaRefunds.Clear();
                    }
                    catch (Exception ex)
                    {
                        log.Error($"退货订单 - 写入数据库异常:{ex.Message}");
                        throw ex;
                    }
                }
                //更新
                log.Info($"退货订单 - 拉取完成");
            }
            log.Info($"退货订单 - 任务拉取完成");
        }
        public override async Task Job(DateTime?datetime = null)
        {
            EBGetRmaRefundListReqModel reqModel = new EBGetRmaRefundListReqModel();

            reqModel.Page           = 1;
            reqModel.PageSize       = 50;
            reqModel.CreateDateForm = DateTime.Parse("2018-01-01");
            reqModel.CreateDateTo   = DateTime.Now;
            using (var uow = _uowProvider.CreateUnitOfWork())
            {
                var repository = uow.GetRepository <ECRMARefund>();
                try
                {
                    await repository.DeleteAll();

                    await uow.SaveChangesAsync();
                }
                catch (Exception ex)
                {
                    log.Error($"初始化退货信息信息,删除退货信息信息异常:{ex.Message}");
                    throw ex;
                }
                EBGetRmaRefundListRequest req = new EBGetRmaRefundListRequest(login.Username, login.Password, reqModel);
                var response = await req.Request();

                response.TotalCount = response.TotalCount == null ? "1" : response.TotalCount;
                int pageNum = (int)Math.Ceiling(long.Parse(response.TotalCount) * 1.0 / 1000);

                List <ECRMARefund> rmaRefunds = new List <ECRMARefund>();
                for (int page = pageNum; page > 0; page--)
                {
                    reqModel.PageSize = 1000;
                    reqModel.Page     = page;
                    try
                    {
                        log.Info($"退货信息,开始拉取:时间区间{reqModel.CreateDateForm.ToString()}TO{reqModel.CreateDateTo.ToString()}第{page}页;");
                        req      = new EBGetRmaRefundListRequest(login.Username, login.Password, reqModel);
                        response = await req.Request();
                    }
                    catch (Exception ex)
                    {
                        log.Error($"退货信息,接口调用出现异常:时间区间{reqModel.CreateDateForm.ToString()}TO{reqModel.CreateDateTo.ToString()}第{page}页;异常信息:{ex.Message}");
                        throw ex;
                    }
                    foreach (var item in response.Body)
                    {
                        try
                        {
                            var m = Mapper <EC_RmaRefund, ECRMARefund> .Map(item);

                            rmaRefunds.Add(m);
                        }
                        catch (Exception ex)
                        {
                            log.Error($"退货信息,转换实体类出现异常:时间区间{reqModel.CreateDateForm.ToString()}TO{reqModel.CreateDateTo.ToString()}第{page}页;异常信息:{ex.Message}");
                            throw ex;
                        }
                    }

                    try
                    {
                        await repository.BulkInsertAsync(rmaRefunds, x => x.IncludeGraph = true);

                        uow.BulkSaveChanges();
                        rmaRefunds.Clear();
                    }
                    catch (Exception ex)
                    {
                        log.Error($"退货信息,写入数据库异常:时间区间{reqModel.CreateDateForm.ToString()}TO{reqModel.CreateDateTo.ToString()}第{page}页;异常信息:{ex.Message}");
                        throw ex;
                    }
                }
                log.Info($"退货信息拉取写入完成,时间区间{reqModel.CreateDateForm.ToString()}TO{reqModel.CreateDateTo.ToString()}");
            }
        }