shanji 3 years ago
parent
commit
29cbf14693
  1. 43
      BBWY.Server.Business/Statistics/StatisticsBusiness.cs
  2. 5
      BBWY.Server.Model/Dto/Response/Statistics/OrderAchievementResponse.cs

43
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<Shops>().Where(s => s.ShopId == shopId).ToOne();
if (mdsShop != null)
var shopPopularizeList = fsql.Select<Shoppopularize>().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<Shopsdetail>().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<Order, OrderCost>().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<Shops>().Where(s => s.ShopId == shopId).ToOne();
//if (mdsShop != null)
//{
// var advCost = freeSqlMultiDBManager.JDXXfsql.Select<Shopsdetail>().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;
}

5
BBWY.Server.Model/Dto/Response/Statistics/OrderAchievementResponse.cs

@ -62,5 +62,10 @@ namespace BBWY.Server.Model.Dto
/// 广告投入
/// </summary>
public decimal AdvCost { get; set; }
/// <summary>
/// 推广花费截至时间
/// </summary>
public DateTime? PularizeEndTime { get; set; }
}
}

Loading…
Cancel
Save