diff --git a/BBWY.Server.Business/Statistics/StatisticsBusiness.cs b/BBWY.Server.Business/Statistics/StatisticsBusiness.cs index 138125a2..f10332bf 100644 --- a/BBWY.Server.Business/Statistics/StatisticsBusiness.cs +++ b/BBWY.Server.Business/Statistics/StatisticsBusiness.cs @@ -52,17 +52,39 @@ namespace BBWY.Server.Business if (pularizeEndTime != null) { + response.PularizeEndDate = pularizeEndDate; 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; + .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; + + //计算SD成本 + var sdCost = 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.SDCost = Math.Abs(sdCost); + response.AdvCost = shopPopularizeList.Sum(s => s.Cost) + response.SDCost; + response.Profit = profit - response.AdvCost - response.TaxCost - response.EmployeeCost; + + response.ShoppopularizeList = shopPopularizeList.GroupBy(s => s.ItemName).Select(g => new Shoppopularize() + { + ShopId = request.ShopId, + Cost = g.Sum(s => s.Cost), + ItemName = g.Key + }).ToList(); } + + //var shopId = request.ShopId.ToString(); //var mdsShop = freeSqlMultiDBManager.MDSfsql.Select().Where(s => s.ShopId == shopId).ToOne(); //if (mdsShop != null) diff --git a/BBWY.Server.Model/Dto/Response/Statistics/OrderAchievementResponse.cs b/BBWY.Server.Model/Dto/Response/Statistics/OrderAchievementResponse.cs index def448a3..328f25f0 100644 --- a/BBWY.Server.Model/Dto/Response/Statistics/OrderAchievementResponse.cs +++ b/BBWY.Server.Model/Dto/Response/Statistics/OrderAchievementResponse.cs @@ -1,4 +1,6 @@ -using System; +using BBWY.Server.Model.Db; +using System; +using System.Collections.Generic; namespace BBWY.Server.Model.Dto { @@ -7,12 +9,12 @@ namespace BBWY.Server.Model.Dto public long ShopId { get; set; } /// - /// 销售额(用户实付) + /// 成交额(用户实付) /// public decimal SaleAmount { get; set; } /// - /// 采购金额 + /// 采购金额(货物成本) /// public decimal PurchaseAmount { get; set; } @@ -53,19 +55,37 @@ namespace BBWY.Server.Model.Dto } } + /// + /// 人工成本 + /// + public decimal EmployeeCost { get; set; } + + /// + /// 税务成本 + /// + public decimal TaxCost { get; set; } + /// /// 订单数量 /// public int OrderCount { get; set; } /// - /// 广告投入 + /// 推广成本(包含SD成本) /// public decimal AdvCost { get; set; } /// /// 推广花费截至时间 /// - public DateTime? PularizeEndTime { get; set; } + public DateTime? PularizeEndDate { get; set; } + + + public decimal SDCost { get; set; } + + /// + /// 推广明细 + /// + public IList ShoppopularizeList { get; set; } } }