|
@ -55,9 +55,51 @@ namespace BBWY.Server.Business |
|
|
return response; |
|
|
return response; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public IList<OrderAchievementResponse> GetOrderAchievementStatistics(AllShopOrderAchievementRequest request) |
|
|
public IList<OrderAchievementResponse> GetOrderAchievementStatisticsList(AllShopOrderAchievementRequest request) |
|
|
{ |
|
|
{ |
|
|
return null; |
|
|
request.EndTime = request.EndTime.Date.AddDays(1).AddSeconds(-1); |
|
|
|
|
|
var responseList = fsql.Select<Order, OrderCost>().LeftJoin((o, oc) => o.Id == oc.OrderId) |
|
|
|
|
|
.Where((o, oc) => o.OrderState != null && |
|
|
|
|
|
!invalidOrderStateList.Contains(o.OrderState.Value) && //排除待付款和取消
|
|
|
|
|
|
o.StartTime >= request.StartTime && |
|
|
|
|
|
o.StartTime <= request.EndTime) |
|
|
|
|
|
.GroupBy((o, oc) => o.ShopId) |
|
|
|
|
|
.ToList((g) => new OrderAchievementResponse() |
|
|
|
|
|
{ |
|
|
|
|
|
ShopId = g.Key, |
|
|
|
|
|
OrderCount = g.Count(g.Value.Item1.Id), |
|
|
|
|
|
Profit = g.Sum(g.Value.Item2.Profit), |
|
|
|
|
|
SaleAmount = g.Sum(g.Value.Item1.OrderPayment), |
|
|
|
|
|
DeliveryExpressFreight = g.Sum(g.Value.Item2.DeliveryExpressFreight), |
|
|
|
|
|
PlatformCommissionAmount = g.Sum(g.Value.Item2.PlatformCommissionAmount), |
|
|
|
|
|
PurchaseAmount = g.Sum(g.Value.Item2.PurchaseAmount) |
|
|
|
|
|
}); |
|
|
|
|
|
var mdsShops = freeSqlMultiDBManager.MDSfsql.Select<Shops>().Where(s => !string.IsNullOrEmpty(s.ShopId)).ToList(); |
|
|
|
|
|
var mdsShopIds = mdsShops.Select(s => s.Id); |
|
|
|
|
|
var advCosts = freeSqlMultiDBManager.JDXXfsql.Select<Shopsdetail>().Where(s => mdsShopIds.Contains(s.ShopsId) && |
|
|
|
|
|
s.CreateTime >= request.StartTime && |
|
|
|
|
|
s.CreateTime <= request.EndTime) |
|
|
|
|
|
.GroupBy(s => s.ShopsId) |
|
|
|
|
|
.ToList(g => new |
|
|
|
|
|
{ |
|
|
|
|
|
ShopId = g.Key, |
|
|
|
|
|
AdvCost = g.Sum(g.Value.ExpressCost + g.Value.ShotgunCost) |
|
|
|
|
|
}); |
|
|
|
|
|
foreach (var response in responseList) |
|
|
|
|
|
{ |
|
|
|
|
|
string shopId = response.ShopId.ToString(); |
|
|
|
|
|
var mdsShop = mdsShops.FirstOrDefault(s => s.ShopId == shopId); |
|
|
|
|
|
if (mdsShop == null) |
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
|
|
|
|
var advCostResponse = advCosts.FirstOrDefault(a => a.ShopId == mdsShop.Id); |
|
|
|
|
|
if (advCostResponse == null) |
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
|
|
|
|
response.AdvCost = advCostResponse.AdvCost; |
|
|
|
|
|
response.Profit -= advCostResponse.AdvCost; |
|
|
|
|
|
} |
|
|
|
|
|
return responseList; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private void XingXiangCumulative(IList<XingXiangItemResponse> detailList, string spuId, bool isSD, decimal profit, decimal sdProductAmount, decimal sdCost) |
|
|
private void XingXiangCumulative(IList<XingXiangItemResponse> detailList, string spuId, bool isSD, decimal profit, decimal sdProductAmount, decimal sdCost) |
|
|