|
|
@ -3,6 +3,7 @@ using SiNan.Common.Log; |
|
|
|
using SiNan.Common.Models; |
|
|
|
using SiNan.Model; |
|
|
|
using SiNan.Model.Core; |
|
|
|
using SiNan.Model.Core.ROI; |
|
|
|
using SiNan.Model.Db; |
|
|
|
using SiNan.Model.Dto; |
|
|
|
using Yitter.IdGenerator; |
|
|
@ -192,10 +193,15 @@ namespace SiNan.Business |
|
|
|
var aggregationDate_ProductLevelList = goiBusiness.StatisticsProductLevelGOI(currentGroupSkuIdList, startDate_aggregationDate, endDate_aggregationDate); |
|
|
|
var aggregationDate_PopularizeLevelList = goiBusiness.StatisticsPopularizeLevelGOI(currentGroupSkuIdList, startDate_aggregationDate, endDate_aggregationDate); |
|
|
|
var aggregationDate_SkuActualAmountList = StatisticsActualAmountBySku(currentGroupSkuIdList, startDate_aggregationDate, endDate_aggregationDate); |
|
|
|
var aggregationDate_PopularizeLevelROIList = goiBusiness.StatisticsPopluarizeLvelROI(currentGroupSkuIdList, startDate_aggregationDate, endDate_aggregationDate); |
|
|
|
|
|
|
|
var aggregationDate_DirectPopularizeLevelROIList = goiBusiness.StatisticsPopluarizeLvelROI(currentGroupSkuIdList, startDate_aggregationDate, endDate_aggregationDate, true); |
|
|
|
|
|
|
|
IList<GOIBySku> recent7d_ProductLevelList = null; |
|
|
|
IList<GOIBySku> recent7d_PopularizeLevelList = null; |
|
|
|
IList<GOIBySku> recent30d_ProductLevelList = null; |
|
|
|
IList<GOIBySku> recent30d_PopularizeLevelList = null; |
|
|
|
IList<ROIBySku> recent7d_PopluarizeLevelROIList = null; |
|
|
|
|
|
|
|
|
|
|
|
if (isLastDate && (DateTime.Now.Date - startDate_aggregationDate).TotalDays <= 31) |
|
|
@ -211,6 +217,7 @@ namespace SiNan.Business |
|
|
|
recent7d_PopularizeLevelList = goiBusiness.StatisticsPopularizeLevelGOI(currentGroupSkuIdList, startDate_Recent7day, endDate_Recent7day); |
|
|
|
recent30d_ProductLevelList = goiBusiness.StatisticsProductLevelGOI(currentGroupSkuIdList, startDate_Recent30day, endDate_Recent30day); ; |
|
|
|
recent30d_PopularizeLevelList = goiBusiness.StatisticsPopularizeLevelGOI(currentGroupSkuIdList, startDate_Recent30day, endDate_Recent30day); |
|
|
|
recent7d_PopluarizeLevelROIList = goiBusiness.StatisticsPopluarizeLvelROI(currentGroupSkuIdList, startDate_Recent7day, endDate_Recent7day); |
|
|
|
} |
|
|
|
|
|
|
|
foreach (var spuId in spuGroup) |
|
|
@ -223,6 +230,8 @@ namespace SiNan.Business |
|
|
|
IList<GOIBySku> currentSpu_Recent30d_ProductLevelList = recent30d_ProductLevelList?.Where(x => currentSpuSkuIdList.Contains(x.Sku)).ToList(); |
|
|
|
IList<GOIBySku> currentSpu_Recent30d_PopularizeLevelList = recent30d_PopularizeLevelList?.Where(x => currentSpuSkuIdList.Contains(x.Sku)).ToList(); |
|
|
|
|
|
|
|
//var currentSpu_AggregationDate_PopularizeLevelROIList = aggregationDate_PopularizeLevelROIList.Where(x => currentSpuSkuIdList.Contains(x.Sku)).ToList();
|
|
|
|
|
|
|
|
#region 处理SPU每日聚合
|
|
|
|
var spugoi_AggregationDate_ProductLevel = new GOIBySpu() |
|
|
|
{ |
|
|
@ -339,10 +348,13 @@ namespace SiNan.Business |
|
|
|
#region 处理SKU每日聚合
|
|
|
|
var skugoi_AggregationDate_ProductLevel = currentSpu_AggregationDate_ProductLevelList.FirstOrDefault(x => x.Sku == skuId); |
|
|
|
var skugoi_AggregationDate_PopularizeLevel = currentSpu_AggregationDate_PopularizeLevelList.FirstOrDefault(x => x.Sku == skuId); |
|
|
|
var skuroi_aggregationDate_PopularizeLevelROI = aggregationDate_PopularizeLevelROIList.FirstOrDefault(x => x.Sku == skuId); |
|
|
|
var skuroi_aggregationDate_DirectPopularizeLevelROI = aggregationDate_DirectPopularizeLevelROIList.FirstOrDefault(x => x.Sku == skuId); |
|
|
|
var skugoi_Recent7d_ProductLevel = currentSpu_Recent7d_ProductLevelList?.FirstOrDefault(x => x.Sku == skuId); |
|
|
|
var skugoi_Recent7d_PopularizeLevel = currentSpu_Recent7d_PopularizeLevelList?.FirstOrDefault(x => x.Sku == skuId); |
|
|
|
var skugoi_Recent30d_ProductLevel = currentSpu_Recent30d_ProductLevelList?.FirstOrDefault(x => x.Sku == skuId); |
|
|
|
var skugoi_Recent30d_PopularizeLevel = currentSpu_Recent30d_PopularizeLevelList?.FirstOrDefault(x => x.Sku == skuId); |
|
|
|
var skuroi_Recent7d_PopularizeLevel = recent7d_PopluarizeLevelROIList?.FirstOrDefault(x => x.Sku == skuId); |
|
|
|
|
|
|
|
var skuDailyAggregation = new AggregationJDPopularizeSkuDaily() |
|
|
|
{ |
|
|
@ -357,7 +369,11 @@ namespace SiNan.Business |
|
|
|
ProductLevelGOI = skugoi_AggregationDate_ProductLevel?.GOI ?? 0M, |
|
|
|
PopularizeLevelProfit = skugoi_AggregationDate_PopularizeLevel?.Profit ?? 0M, |
|
|
|
PopularizeLevelGOI = skugoi_AggregationDate_PopularizeLevel?.GOI ?? 0M, |
|
|
|
ActualAmount = aggregationDate_SkuActualAmountList.FirstOrDefault(x => x.Sku == skuId)?.ActualAmount ?? 0M |
|
|
|
ActualAmount = aggregationDate_SkuActualAmountList.FirstOrDefault(x => x.Sku == skuId)?.ActualAmount ?? 0M, |
|
|
|
PopularizeAmount = skuroi_aggregationDate_PopularizeLevelROI?.Amount ?? 0M, |
|
|
|
PopularizeLevelROI = skuroi_aggregationDate_PopularizeLevelROI?.ROI ?? 0M, |
|
|
|
DirectPopularizeAmount = skuroi_aggregationDate_DirectPopularizeLevelROI?.Amount ?? 0M, |
|
|
|
DirectPopularizeLevelROI = skuroi_aggregationDate_DirectPopularizeLevelROI?.ROI ?? 0M |
|
|
|
}; |
|
|
|
insertAggregationSkuDailyList.Add(skuDailyAggregation); |
|
|
|
#endregion
|
|
|
@ -387,7 +403,8 @@ namespace SiNan.Business |
|
|
|
Recent30dProductLevelProfit = skugoi_Recent30d_ProductLevel?.Profit ?? 0M, |
|
|
|
Recent30dProductLevelGOI = skugoi_Recent30d_ProductLevel?.GOI ?? 0M, |
|
|
|
Recent30dPopularizeLevelProfit = skugoi_Recent30d_PopularizeLevel?.Profit ?? 0M, |
|
|
|
Recent30dPopularizeLevelGOI = skugoi_Recent30d_PopularizeLevel?.GOI ?? 0M |
|
|
|
Recent30dPopularizeLevelGOI = skugoi_Recent30d_PopularizeLevel?.GOI ?? 0M, |
|
|
|
Recent7dPopularizeLevelROI = skuroi_Recent7d_PopularizeLevel?.ROI ?? 0M |
|
|
|
}); |
|
|
|
} |
|
|
|
else |
|
|
@ -831,7 +848,10 @@ namespace SiNan.Business |
|
|
|
List<AggregationJDPopularizeAdSkuDaily> insertAggregationAdSkuDailyList = new List<AggregationJDPopularizeAdSkuDaily>(); |
|
|
|
var aggregationDate_PopularizeLevelList = goiBusiness.CalculationAdSkuLevelGOI(adSkuIdList, startDate_aggregationDate, endDate_aggregationDate); |
|
|
|
var aggregationDate_ProductLevelList = goiBusiness.CalculationAdSkuProductLevelGOI(adSkuIdList, startDate_aggregationDate, endDate_aggregationDate); |
|
|
|
var aggregationDate_SkuPopularizeAmountList = StatisticsPopularizeAmountBySku(adSkuIdList, startDate_aggregationDate, endDate_aggregationDate); |
|
|
|
//var aggregationDate_SkuPopularizeAmountList = StatisticsPopularizeAmountBySku(adSkuIdList, startDate_aggregationDate, endDate_aggregationDate);
|
|
|
|
var aggregationDate_PopularizeLevelROIList = goiBusiness.StatisticsAdSkuLvelROI(adSkuIdList, startDate_aggregationDate, endDate_aggregationDate); |
|
|
|
|
|
|
|
var aggregationDate_DirectPopularizeLevelROIList = goiBusiness.StatisticsAdSkuLvelROI(adSkuIdList, startDate_aggregationDate, endDate_aggregationDate, true); |
|
|
|
|
|
|
|
var adSkuIndex = 0; |
|
|
|
foreach (var adSku in adSkuList) |
|
|
@ -845,9 +865,14 @@ namespace SiNan.Business |
|
|
|
x.CampaignId == adSku.CampaignId); |
|
|
|
var adSkuGoi_AggregationDate_ProductLevel = aggregationDate_ProductLevelList.FirstOrDefault(x => x.Sku == adSku.Sku && x.BusinessType == adSku.BusinessType); |
|
|
|
|
|
|
|
var adSkuPoplarizeAmount = aggregationDate_SkuPopularizeAmountList.FirstOrDefault(x => x.Sku == adSku.Sku && |
|
|
|
x.BusinessType == adSku.BusinessType && |
|
|
|
x.CampaignId == adSku.CampaignId); |
|
|
|
//var adSkuPoplarizeAmount = aggregationDate_SkuPopularizeAmountList.FirstOrDefault(x => x.Sku == adSku.Sku && x.BusinessType == adSku.BusinessType && x.CampaignId == adSku.CampaignId);
|
|
|
|
var adSkuPopularizeROI = aggregationDate_PopularizeLevelROIList.FirstOrDefault(x => x.Sku == adSku.Sku && |
|
|
|
x.BusinessType == adSku.BusinessType && |
|
|
|
x.CampaignId == adSku.CampaignId); |
|
|
|
|
|
|
|
var adSkuDirectPopularizeROI = aggregationDate_DirectPopularizeLevelROIList.FirstOrDefault(x => x.Sku == adSku.Sku && |
|
|
|
x.BusinessType == adSku.BusinessType && |
|
|
|
x.CampaignId == adSku.CampaignId); |
|
|
|
|
|
|
|
var adSkuDailyAggregation = new AggregationJDPopularizeAdSkuDaily() |
|
|
|
{ |
|
|
@ -865,8 +890,11 @@ namespace SiNan.Business |
|
|
|
BusinessType = adSku.BusinessType, |
|
|
|
SkuId = adSku.Sku, |
|
|
|
AdId = adSku.AdId, |
|
|
|
PopularizeAmount = adSkuPoplarizeAmount?.ActualAmount ?? 0M, |
|
|
|
Clicks = adSkuGoi_AggregationDate_PopularizeLevel?.Clicks ?? 0 |
|
|
|
Clicks = adSkuGoi_AggregationDate_PopularizeLevel?.Clicks ?? 0, |
|
|
|
PopularizeAmount = adSkuPopularizeROI?.Amount ?? 0M, |
|
|
|
PopularizeLevelROI = adSkuPopularizeROI?.ROI ?? 0M, |
|
|
|
DirectPopularizeAmount = adSkuDirectPopularizeROI?.Amount ?? 0M, |
|
|
|
DirectPopularizeLevelROI = adSkuDirectPopularizeROI?.ROI ?? 0M |
|
|
|
}; |
|
|
|
insertAggregationAdSkuDailyList.Add(adSkuDailyAggregation); |
|
|
|
|
|
|
|