diff --git a/SiNan.Business/GOIBusiness.cs b/SiNan.Business/GOIBusiness.cs index 85d3213..802c473 100644 --- a/SiNan.Business/GOIBusiness.cs +++ b/SiNan.Business/GOIBusiness.cs @@ -250,18 +250,55 @@ namespace SiNan.Business throw new BusinessException("缺少sku"); List list = new List(); - var sourcePopularizeAdSkuList = fsql.Select() + var popularizeAdSkuSourceList = fsql.Select() .Where(x => x.ShopId == request.ShopId) .Where(x => x.Date >= request.StartDate && x.Date <= request.EndDate) .WhereIf(request.SkuIdList.Count() == 1, x => x.Sku == request.SkuIdList[0]) .WhereIf(request.SkuIdList.Count() > 1, x => request.SkuIdList.Contains(x.Sku)) .ToList(); - var kuaicheCampaignList = sourcePopularizeAdSkuList.Where(x => x.BusinessType == 2).ToList(); - var jstCampaignList = sourcePopularizeAdSkuList.Where(x => x.BusinessType == 134217728).ToList(); + #region 处理所有计划的GOI + var allCampaignIdList = popularizeAdSkuSourceList.Select(x => x.CampaignId).Distinct().ToList(); + + #endregion + + var kuaicheCampaignSourceList = popularizeAdSkuSourceList.Where(x => x.BusinessType == 2).ToList(); + var jstCampaignSourceList = popularizeAdSkuSourceList.Where(x => x.BusinessType == 134217728).ToList(); #region 处理快车 + #region 处理单元统计 + var adGroupStatisticsList = kuaicheCampaignSourceList.GroupBy(x => x.AdGroupId); + var adGroupIdList = adGroupStatisticsList.Select(x => x.Key).ToList(); + var allAdGroupList = new List(); + + foreach (var adGroupStatistics in adGroupStatisticsList) + { + var adGroupId = adGroupStatistics.Key; + + var adGroup = new Product360PopularizeAnalysisAdGroupResponse() + { + AdGroupId = adGroupId.Value, + AdGroupName = string.Empty, + BusinessType = 2, + CampaignId = adGroupStatistics.FirstOrDefault()?.CampaignId ?? 0, + Clicks = adGroupStatistics.Sum(x => x.Clicks), + Cost = adGroupStatistics.Sum(x => x.Cost), + Impressions = adGroupStatistics.Sum(x => x.Impressions), + OrderCnt = adGroupStatistics.Sum(x => x.TotalOrderCnt) + }; + allAdGroupList.Add(adGroup); + var campagin = list.FirstOrDefault(x => x.CampaignId == adGroup.CampaignId); + if (campagin != null) + campagin.AdGroupList.Add(adGroup); + } + #endregion + + #region 处理单元GOI + + #endregion + + #endregion #region 处理京速推 diff --git a/SiNan.Model/Dto/Response/GOI/Product360PopularizeAnalysisAdGroupResponse.cs b/SiNan.Model/Dto/Response/GOI/Product360PopularizeAnalysisAdGroupResponse.cs index 0f708e5..ad6d3f8 100644 --- a/SiNan.Model/Dto/Response/GOI/Product360PopularizeAnalysisAdGroupResponse.cs +++ b/SiNan.Model/Dto/Response/GOI/Product360PopularizeAnalysisAdGroupResponse.cs @@ -35,21 +35,21 @@ /// /// 花费 /// - public decimal Cost { get; set; } + public decimal? Cost { get; set; } /// /// 订单行 /// - public int OrderCnt { get; set; } + public int? OrderCnt { get; set; } /// /// 展现次数 /// - public int Impressions { get; set; } + public int? Impressions { get; set; } /// /// 点击次数 /// - public int Clicks { get; set; } + public int? Clicks { get; set; } } } diff --git a/SiNan.Model/Dto/Response/GOI/Product360PopularizeAnalysisCampaginRepsonse.cs b/SiNan.Model/Dto/Response/GOI/Product360PopularizeAnalysisCampaginRepsonse.cs index 771785b..0a91074 100644 --- a/SiNan.Model/Dto/Response/GOI/Product360PopularizeAnalysisCampaginRepsonse.cs +++ b/SiNan.Model/Dto/Response/GOI/Product360PopularizeAnalysisCampaginRepsonse.cs @@ -2,6 +2,11 @@ { public class Product360PopularizeAnalysisCampaginRepsonse { + public Product360PopularizeAnalysisCampaginRepsonse() + { + AdGroupList = new List(); + } + /// /// 业务渠道 快车=2 智能推广= 134217728 ///