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(); }
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()}"); } }