Browse Source

产品360分析

GOIAggregation
shanji 2 years ago
parent
commit
6a3378a31f
  1. 43
      SiNan.Business/GOIBusiness.cs
  2. 8
      SiNan.Model/Dto/Response/GOI/Product360PopularizeAnalysisAdGroupResponse.cs
  3. 5
      SiNan.Model/Dto/Response/GOI/Product360PopularizeAnalysisCampaginRepsonse.cs

43
SiNan.Business/GOIBusiness.cs

@ -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 处理京速推

8
SiNan.Model/Dto/Response/GOI/Product360PopularizeAnalysisAdGroupResponse.cs

@ -35,21 +35,21 @@
/// <summary> /// <summary>
/// 花费 /// 花费
/// </summary> /// </summary>
public decimal Cost { get; set; } public decimal? Cost { get; set; }
/// <summary> /// <summary>
/// 订单行 /// 订单行
/// </summary> /// </summary>
public int OrderCnt { get; set; } public int? OrderCnt { get; set; }
/// <summary> /// <summary>
/// 展现次数 /// 展现次数
/// </summary> /// </summary>
public int Impressions { get; set; } public int? Impressions { get; set; }
/// <summary> /// <summary>
/// 点击次数 /// 点击次数
/// </summary> /// </summary>
public int Clicks { get; set; } public int? Clicks { get; set; }
} }
} }

5
SiNan.Model/Dto/Response/GOI/Product360PopularizeAnalysisCampaginRepsonse.cs

@ -2,6 +2,11 @@
{ {
public class Product360PopularizeAnalysisCampaginRepsonse public class Product360PopularizeAnalysisCampaginRepsonse
{ {
public Product360PopularizeAnalysisCampaginRepsonse()
{
AdGroupList = new List<Product360PopularizeAnalysisAdGroupResponse>();
}
/// <summary> /// <summary>
/// 业务渠道 快车=2 智能推广= 134217728 /// 业务渠道 快车=2 智能推广= 134217728
/// </summary> /// </summary>

Loading…
Cancel
Save