|
@ -250,18 +250,55 @@ namespace SiNan.Business |
|
|
throw new BusinessException("缺少sku"); |
|
|
throw new BusinessException("缺少sku"); |
|
|
List<Product360PopularizeAnalysisCampaginRepsonse> list = new List<Product360PopularizeAnalysisCampaginRepsonse>(); |
|
|
List<Product360PopularizeAnalysisCampaginRepsonse> list = new List<Product360PopularizeAnalysisCampaginRepsonse>(); |
|
|
|
|
|
|
|
|
var sourcePopularizeAdSkuList = fsql.Select<JDPopularizeAdSku>() |
|
|
var popularizeAdSkuSourceList = fsql.Select<JDPopularizeAdSku>() |
|
|
.Where(x => x.ShopId == request.ShopId) |
|
|
.Where(x => x.ShopId == request.ShopId) |
|
|
.Where(x => x.Date >= request.StartDate && x.Date <= request.EndDate) |
|
|
.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 => x.Sku == request.SkuIdList[0]) |
|
|
.WhereIf(request.SkuIdList.Count() > 1, x => request.SkuIdList.Contains(x.Sku)) |
|
|
.WhereIf(request.SkuIdList.Count() > 1, x => request.SkuIdList.Contains(x.Sku)) |
|
|
.ToList(); |
|
|
.ToList(); |
|
|
|
|
|
|
|
|
var kuaicheCampaignList = sourcePopularizeAdSkuList.Where(x => x.BusinessType == 2).ToList(); |
|
|
#region 处理所有计划的GOI
|
|
|
var jstCampaignList = sourcePopularizeAdSkuList.Where(x => x.BusinessType == 134217728).ToList(); |
|
|
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 处理快车
|
|
|
|
|
|
|
|
|
|
|
|
#region 处理单元统计
|
|
|
|
|
|
var adGroupStatisticsList = kuaicheCampaignSourceList.GroupBy(x => x.AdGroupId); |
|
|
|
|
|
var adGroupIdList = adGroupStatisticsList.Select(x => x.Key).ToList(); |
|
|
|
|
|
var allAdGroupList = new List<Product360PopularizeAnalysisAdGroupResponse>(); |
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
#region 处理京速推
|
|
|
#region 处理京速推
|
|
|