diff --git a/BBWY.Server.Business/Statistics/StatisticsBusiness.cs b/BBWY.Server.Business/Statistics/StatisticsBusiness.cs index 47a5500c..138125a2 100644 --- a/BBWY.Server.Business/Statistics/StatisticsBusiness.cs +++ b/BBWY.Server.Business/Statistics/StatisticsBusiness.cs @@ -29,28 +29,51 @@ namespace BBWY.Server.Business .Where((o, oc) => o.ShopId == request.ShopId && o.OrderState != null && !invalidOrderStateList.Contains(o.OrderState.Value) && //排除待付款和取消 + o.StorageType != Enums.StorageType.SD && o.StartTime >= request.StartTime && o.StartTime <= request.EndTime) .ToAggregate((o, oc) => new OrderAchievementResponse() { OrderCount = o.Count(), - Profit = oc.Sum(oc.Key.Profit), + //Profit = oc.Sum(oc.Key.Profit), SaleAmount = o.Sum(o.Key.OrderPayment), DeliveryExpressFreight = oc.Sum(oc.Key.DeliveryExpressFreight), PlatformCommissionAmount = oc.Sum(oc.Key.PlatformCommissionAmount), PurchaseAmount = oc.Sum(oc.Key.PurchaseAmount) }); - var shopId = request.ShopId.ToString(); - var mdsShop = freeSqlMultiDBManager.MDSfsql.Select().Where(s => s.ShopId == shopId).ToOne(); - if (mdsShop != null) + + var shopPopularizeList = fsql.Select().Where(s => s.ShopId == request.ShopId && + s.Date >= request.StartTime && + s.Date <= request.EndTime).ToList(); + + //最后一次推广花费时间 + var pularizeEndDate = shopPopularizeList.Count > 0 ? shopPopularizeList.Max(s => s.Date) : null; + var pularizeEndTime = pularizeEndDate?.AddDays(1).AddSeconds(-1); + + if (pularizeEndTime != null) { - var advCost = freeSqlMultiDBManager.JDXXfsql.Select().Where(s => s.ShopsId == mdsShop.Id && - s.CreateTime >= request.StartTime && - s.CreateTime <= request.EndTime) - .ToAggregate(s => s.Sum(s.Key.ExpressCost + s.Key.ShotgunCost)); - response.AdvCost = advCost; - response.Profit -= advCost; + var profit = fsql.Select().LeftJoin((o, oc) => o.Id == oc.OrderId) + .Where((o, oc) => o.ShopId == request.ShopId && + o.OrderState != null && + !invalidOrderStateList.Contains(o.OrderState.Value) && //排除待付款和取消 + o.StorageType != Enums.StorageType.SD && + o.StartTime >= request.StartTime && + o.StartTime <= pularizeEndTime).Sum((o, oc) => oc.Profit); + response.Profit = profit; } + + + //var shopId = request.ShopId.ToString(); + //var mdsShop = freeSqlMultiDBManager.MDSfsql.Select().Where(s => s.ShopId == shopId).ToOne(); + //if (mdsShop != null) + //{ + // var advCost = freeSqlMultiDBManager.JDXXfsql.Select().Where(s => s.ShopsId == mdsShop.Id && + // s.CreateTime >= request.StartTime && + // s.CreateTime <= request.EndTime) + // .ToAggregate(s => s.Sum(s.Key.ExpressCost + s.Key.ShotgunCost)); + // response.AdvCost = advCost; + // response.Profit -= advCost; + //} response.ShopId = request.ShopId; return response; } diff --git a/BBWY.Server.Model/Dto/Response/Statistics/OrderAchievementResponse.cs b/BBWY.Server.Model/Dto/Response/Statistics/OrderAchievementResponse.cs index 58df864f..def448a3 100644 --- a/BBWY.Server.Model/Dto/Response/Statistics/OrderAchievementResponse.cs +++ b/BBWY.Server.Model/Dto/Response/Statistics/OrderAchievementResponse.cs @@ -62,5 +62,10 @@ namespace BBWY.Server.Model.Dto /// 广告投入 /// public decimal AdvCost { get; set; } + + /// + /// 推广花费截至时间 + /// + public DateTime? PularizeEndTime { get; set; } } }