diff --git a/BBWY.Server.Business/Statistics/JDReportFormStatisticsBusiness.cs b/BBWY.Server.Business/Statistics/JDReportFormStatisticsBusiness.cs index e274dee8..0a85e6fe 100644 --- a/BBWY.Server.Business/Statistics/JDReportFormStatisticsBusiness.cs +++ b/BBWY.Server.Business/Statistics/JDReportFormStatisticsBusiness.cs @@ -548,16 +548,16 @@ namespace BBWY.Server.Business.Statistics var currentLevelIdSkuIds = campaignList.Where(campaign => campaign.CampaignId == levelId).Select(campaign => campaign.Sku).Distinct().ToList(); - goiResponse._7GOI.Cost = _7dCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; - goiResponse._7GOI.Profit = _7dProfits.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Profit ?? 0M; + goiResponse._7GOI.Cost = _7dCosts.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Cost); + goiResponse._7GOI.Profit = _7dProfits.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Profit); - goiResponse._30GOI.Cost = _30dCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; - goiResponse._30GOI.Profit = _30dProfits.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Profit ?? 0M; + goiResponse._30GOI.Cost = _30dCosts.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Cost); + goiResponse._30GOI.Profit = _30dProfits.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Profit); - goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; - goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Profit ?? 0M; + goiResponse.CustomDaysGOI.Cost = _customCosts.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Cost); + goiResponse.CustomDaysGOI.Profit = _customProfits.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Profit); - goiResponse.TotalCost = _totalCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; + goiResponse.TotalCost = _totalCosts.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Cost); list.Add(goiResponse); } return list; @@ -663,16 +663,16 @@ namespace BBWY.Server.Business.Statistics var currentLevelIdSkuIds = adGroupList.Where(adGroup => adGroup.AdGroupId == levelId).Select(adGroup => adGroup.Sku).Distinct().ToList(); - goiResponse._7GOI.Cost = _7dCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; - goiResponse._7GOI.Profit = _7dProfits.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Profit ?? 0M; + goiResponse._7GOI.Cost = _7dCosts.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Cost); + goiResponse._7GOI.Profit = _7dProfits.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Profit); - goiResponse._30GOI.Cost = _30dCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; - goiResponse._30GOI.Profit = _30dProfits.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Profit ?? 0M; + goiResponse._30GOI.Cost = _30dCosts.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Cost); + goiResponse._30GOI.Profit = _30dProfits.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Profit); - goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; - goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Profit ?? 0M; + goiResponse.CustomDaysGOI.Cost = _customCosts.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Cost); + goiResponse.CustomDaysGOI.Profit = _customProfits.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Profit); - goiResponse.TotalCost = _totalCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; + goiResponse.TotalCost = _totalCosts.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Cost); list.Add(goiResponse); } return list; @@ -778,16 +778,16 @@ namespace BBWY.Server.Business.Statistics var currentLevelIdSkuIds = adList.Where(ad => ad.AdId == levelId).Select(ad => ad.Sku).Distinct().ToList(); - goiResponse._7GOI.Cost = _7dCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; - goiResponse._7GOI.Profit = _7dProfits.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Profit ?? 0M; + goiResponse._7GOI.Cost = _7dCosts.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Cost); + goiResponse._7GOI.Profit = _7dProfits.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Profit); - goiResponse._30GOI.Cost = _30dCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; - goiResponse._30GOI.Profit = _30dProfits.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Profit ?? 0M; + goiResponse._30GOI.Cost = _30dCosts.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Cost); + goiResponse._30GOI.Profit = _30dProfits.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Profit); - goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; - goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Profit ?? 0M; + goiResponse.CustomDaysGOI.Cost = _customCosts.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Cost); + goiResponse.CustomDaysGOI.Profit = _customProfits.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Profit); - goiResponse.TotalCost = _totalCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; + goiResponse.TotalCost = _totalCosts.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Cost); list.Add(goiResponse); } return list; @@ -1007,16 +1007,16 @@ namespace BBWY.Server.Business.Statistics var currentLevelIdSkuIds = campaignList.Where(campaign => campaign.CampaignId == levelId).Select(campaign => campaign.Sku).Distinct().ToList(); - goiResponse._7GOI.Cost = _7dCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; + goiResponse._7GOI.Cost = _7dCosts.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Cost); goiResponse._7GOI.Profit = _7dProfits.FirstOrDefault(x => x.CampaignId == levelId)?.Profit ?? 0M; - goiResponse._30GOI.Cost = _30dCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; + goiResponse._30GOI.Cost = _30dCosts.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Cost); goiResponse._30GOI.Profit = _30dProfits.FirstOrDefault(x => x.CampaignId == levelId)?.Profit ?? 0M; - goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; + goiResponse.CustomDaysGOI.Cost = _customCosts.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Cost); goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => x.CampaignId == levelId)?.Profit ?? 0M; - goiResponse.TotalCost = _totalCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; + goiResponse.TotalCost = _totalCosts.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Cost); list.Add(goiResponse); } return list; @@ -1125,16 +1125,16 @@ namespace BBWY.Server.Business.Statistics var currentLevelIdSkuIds = adGroupList.Where(adGroup => adGroup.AdGroupId == levelId).Select(adGroup => adGroup.Sku).Distinct().ToList(); - goiResponse._7GOI.Cost = _7dCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; + goiResponse._7GOI.Cost = _7dCosts.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Cost); goiResponse._7GOI.Profit = _7dProfits.FirstOrDefault(x => x.AdGroupId == levelId)?.Profit ?? 0M; - goiResponse._30GOI.Cost = _30dCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; + goiResponse._30GOI.Cost = _30dCosts.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Cost); goiResponse._30GOI.Profit = _30dProfits.FirstOrDefault(x => x.AdGroupId == levelId)?.Profit ?? 0M; - goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; + goiResponse.CustomDaysGOI.Cost = _customCosts.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Cost); goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => x.AdGroupId == levelId)?.Profit ?? 0M; - goiResponse.TotalCost = _totalCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; + goiResponse.TotalCost = _totalCosts.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Cost); list.Add(goiResponse); } return list; @@ -1243,16 +1243,16 @@ namespace BBWY.Server.Business.Statistics var currentLevelIdSkuIds = adList.Where(ad => ad.AdId == levelId).Select(ad => ad.Sku).Distinct().ToList(); - goiResponse._7GOI.Cost = _7dCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; + goiResponse._7GOI.Cost = _7dCosts.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Cost); goiResponse._7GOI.Profit = _7dProfits.FirstOrDefault(x => x.AdId == levelId)?.Profit ?? 0M; - goiResponse._30GOI.Cost = _30dCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; + goiResponse._30GOI.Cost = _30dCosts.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Cost); goiResponse._30GOI.Profit = _30dProfits.FirstOrDefault(x => x.AdId == levelId)?.Profit ?? 0M; - goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; + goiResponse.CustomDaysGOI.Cost = _customCosts.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Cost); goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => x.AdId == levelId)?.Profit ?? 0M; - goiResponse.TotalCost = _totalCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; + goiResponse.TotalCost = _totalCosts.Where(x => currentLevelIdSkuIds.Contains(x.Sku)).Sum(x => x.Cost); list.Add(goiResponse); } return list;