/// <summary> /// 导出订单 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <FileDto> ExportOrders(GetHaveProductInput input) { var query = _ordeRepository.GetAll().Where(c => c.CustomerId == input.CustomerId); var chargeRecords = await query .ToListAsync(); var products = await _productRepository.GetAllListAsync(); var output = (from o in chargeRecords let p = products.FirstOrDefault(c => o.ProductId == c.Id) select new OrderProductDetail() { Id = o.Id, Cate = o.LevelTwo, Count = o.Count, CustomerName = o.Form != null ? o.Form.CompanyName : "", FormId = o.FormId, Price = o.Price, ProductName = o.ProductName, TotalPrice = o.TotalPrice, OrderNum = o.OrderNum, CreationTime = o.CreationTime, State = o.State, ProductId = o.Id, RequireForm = p?.RequireForm }).ToList(); return(_iexcelExporter.ExportOrderToFile(output.ToList())); }
/// <summary> /// 获取所有产品列表 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <PagedResultDto <OrderProductDetail> > GetHaveProducts(GetHaveProductInput input) { var query = _ordeRepository.GetAll().Where(c => c.CustomerId == input.CustomerId); var chargeRecordCount = await query.CountAsync(); var chargeRecords = await query .OrderBy(input.Sorting) .PageBy(input) .ToListAsync(); var output = new List <OrderProductDetail>(); if (chargeRecordCount <= 0) { return(new PagedResultDto <OrderProductDetail>(0, output)); } var products = await _productRepository.GetAllListAsync(); foreach (var o in chargeRecords) { var p = products.FirstOrDefault(c => o.ProductId == c.Id); var dto = new OrderProductDetail() { Id = o.Id, Cate = o.LevelTwo, Count = o.Count, CustomerName = o.Form?.CompanyName, FormId = o.FormId, Price = o.Price, ProductName = o.ProductName, TotalPrice = o.TotalPrice, OrderNum = o.OrderNum, CreationTime = o.CreationTime, State = o.State, ProductId = o.ProductId, RequireForm = p?.RequireForm }; if (o.Profile.HasValue) { dto.Profile = Host + (await _objectManager.GetOrNullAsync(o.Profile.Value))?.Url; } output.Add(dto); } return(new PagedResultDto <OrderProductDetail>( chargeRecordCount, output )); }