Browse Source

导出方法细化

AddValidOverTime
彭聪 2 years ago
parent
commit
633a671ab7
  1. 2
      BBWY.Client/APIServices/BaseApiService.cs
  2. 75
      BBWY.Server.Business/Order/OrderBusiness.cs

2
BBWY.Client/APIServices/BaseApiService.cs

@ -41,7 +41,7 @@ namespace BBWY.Client.APIServices
if (!headers.ContainsKey("qy")) if (!headers.ContainsKey("qy"))
headers.Add("qy", "qy"); headers.Add("qy", "qy");
var result = restApiService.SendRequest(apiHost, apiPath, param, headers, httpMethod, contentType, paramPosition, enableRandomTimeStamp); var result = restApiService.SendRequest(apiHost, apiPath, param, headers, httpMethod, contentType, paramPosition, enableRandomTimeStamp,timeOutSeconds:120);
if (result.StatusCode != System.Net.HttpStatusCode.OK && if (result.StatusCode != System.Net.HttpStatusCode.OK &&
result.Content.Contains("\"Success\"") && result.Content.Contains("\"Success\"") &&
result.Content.Contains("\"Msg\"") && result.Content.Contains("\"Msg\"") &&

75
BBWY.Server.Business/Order/OrderBusiness.cs

@ -305,19 +305,68 @@ namespace BBWY.Server.Business
}); });
var orderIdList = orderSourceList.Select(o => o.OrderId).ToList(); var orderIdList = orderSourceList.Select(o => o.OrderId).ToList();
var orderSkuList = fsql.Select<OrderSku>().Where(osku => osku.Price != 0 && orderIdList.Contains(osku.OrderId)).ToList(); List<OrderSku> orderSkuList = null;
var orderCostDetailGroup = fsql.Select<OrderCostDetail>().Where(ocd => orderIdList.Contains(ocd.OrderId) && ocd.IsEnabled == true) if (orderIdList.Count() < 2000)
.GroupBy(ocd => ocd.OrderId).ToList(g => new {
{ orderSkuList = fsql.Select<OrderSku>().Where(osku => osku.Price != 0 && orderIdList.Contains(osku.OrderId))
OrderId = g.Key, .ToList(osku => new OrderSku
SkuAmount = g.Sum(g.Value.SkuAmount), {
FirstFreight = g.Sum(g.Value.FirstFreight), Id = osku.Id,
StorageAmount = g.Sum(g.Value.StorageAmount), OrderId = osku.OrderId,
PurchaseFreight = g.Sum(g.Value.PurchaseFreight), SkuId = osku.SkuId
ConsumableAmount = g.Sum(g.Value.ConsumableAmount), });
InStorageAmount = g.Sum(g.Value.InStorageAmount), }
OutStorageAmount = g.Sum(g.Value.OutStorageAmount) else
}); {
orderSkuList = fsql.Select<OrderSku, Order>().InnerJoin((osku, o) => osku.OrderId == o.Id)
.Where((osku, o) => o.ShopId == searchOrderRequest.ShopId.Value &&
o.StartTime >= searchOrderRequest.StartDate &&
o.StartTime <= searchOrderRequest.EndDate)
.ToList((osku, o) => new OrderSku
{
Id = osku.Id,
OrderId = osku.OrderId,
SkuId = osku.SkuId
});
}
IList<OrderCostDetail> orderCostDetailGroup = null;
if (orderIdList.Count() < 2000)
{
orderCostDetailGroup = fsql.Select<OrderCostDetail>().Where(ocd => orderIdList.Contains(ocd.OrderId) && ocd.IsEnabled == true)
.GroupBy(ocd => ocd.OrderId).ToList(g => new OrderCostDetail
{
OrderId = g.Key,
SkuAmount = g.Sum(g.Value.SkuAmount),
FirstFreight = g.Sum(g.Value.FirstFreight),
StorageAmount = g.Sum(g.Value.StorageAmount),
PurchaseFreight = g.Sum(g.Value.PurchaseFreight),
ConsumableAmount = g.Sum(g.Value.ConsumableAmount),
InStorageAmount = g.Sum(g.Value.InStorageAmount),
OutStorageAmount = g.Sum(g.Value.OutStorageAmount)
});
}
else
{
orderCostDetailGroup = fsql.Select<OrderCostDetail, Order>().InnerJoin((ocd, o) => ocd.OrderId == o.Id)
.Where((ocd, o) => o.ShopId == searchOrderRequest.ShopId.Value &&
o.StartTime >= searchOrderRequest.StartDate &&
o.StartTime <= searchOrderRequest.EndDate &&
ocd.IsEnabled == true)
.GroupBy((ocd, o) => ocd.OrderId).ToList(g => new OrderCostDetail
{
OrderId = g.Key,
SkuAmount = g.Sum(g.Value.Item1.SkuAmount),
FirstFreight = g.Sum(g.Value.Item1.FirstFreight),
StorageAmount = g.Sum(g.Value.Item1.StorageAmount),
PurchaseFreight = g.Sum(g.Value.Item1.PurchaseFreight),
ConsumableAmount = g.Sum(g.Value.Item1.ConsumableAmount),
InStorageAmount = g.Sum(g.Value.Item1.InStorageAmount),
OutStorageAmount = g.Sum(g.Value.Item1.OutStorageAmount)
});
}
var orderDropShippingList = fsql.Select<OrderDropShipping>().Where(ods => orderIdList.Contains(ods.OrderId) && ods.IsHistory == false).ToList(); var orderDropShippingList = fsql.Select<OrderDropShipping>().Where(ods => orderIdList.Contains(ods.OrderId) && ods.IsHistory == false).ToList();
foreach (var order in orderSourceList) foreach (var order in orderSourceList)

Loading…
Cancel
Save