diff --git a/BBWY.Client/APIServices/BaseApiService.cs b/BBWY.Client/APIServices/BaseApiService.cs index 668f3b35..fb3e0757 100644 --- a/BBWY.Client/APIServices/BaseApiService.cs +++ b/BBWY.Client/APIServices/BaseApiService.cs @@ -41,7 +41,7 @@ namespace BBWY.Client.APIServices if (!headers.ContainsKey("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 && result.Content.Contains("\"Success\"") && result.Content.Contains("\"Msg\"") && diff --git a/BBWY.Server.Business/Order/OrderBusiness.cs b/BBWY.Server.Business/Order/OrderBusiness.cs index 369e264f..862ca2cc 100644 --- a/BBWY.Server.Business/Order/OrderBusiness.cs +++ b/BBWY.Server.Business/Order/OrderBusiness.cs @@ -305,19 +305,68 @@ namespace BBWY.Server.Business }); var orderIdList = orderSourceList.Select(o => o.OrderId).ToList(); - var orderSkuList = fsql.Select().Where(osku => osku.Price != 0 && orderIdList.Contains(osku.OrderId)).ToList(); - var orderCostDetailGroup = fsql.Select().Where(ocd => orderIdList.Contains(ocd.OrderId) && ocd.IsEnabled == true) - .GroupBy(ocd => ocd.OrderId).ToList(g => new - { - 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) - }); + List orderSkuList = null; + if (orderIdList.Count() < 2000) + { + orderSkuList = fsql.Select().Where(osku => osku.Price != 0 && orderIdList.Contains(osku.OrderId)) + .ToList(osku => new OrderSku + { + Id = osku.Id, + OrderId = osku.OrderId, + SkuId = osku.SkuId + }); + } + else + { + orderSkuList = fsql.Select().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 orderCostDetailGroup = null; + if (orderIdList.Count() < 2000) + { + orderCostDetailGroup = fsql.Select().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().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().Where(ods => orderIdList.Contains(ods.OrderId) && ods.IsHistory == false).ToList(); foreach (var order in orderSourceList)