|
|
@ -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; |
|
|
@ -165,10 +166,13 @@ 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); |
|
|
|
|
|
|
|
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) |
|
|
@ -184,6 +188,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) |
|
|
@ -196,6 +201,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() |
|
|
|
{ |
|
|
@ -312,10 +319,12 @@ 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 = currentSpu_AggregationDate_PopularizeLevelROIList.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() |
|
|
|
{ |
|
|
@ -330,7 +339,9 @@ 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, |
|
|
|
PopluarizeLevelROI = skuroi_aggregationDate_PopularizeLevelROI?.ROI ?? 0M |
|
|
|
}; |
|
|
|
insertAggregationSkuDailyList.Add(skuDailyAggregation); |
|
|
|
#endregion
|
|
|
@ -360,7 +371,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, |
|
|
|
Recent7dPopluarizeLevelROI = skuroi_Recent7d_PopularizeLevel?.ROI ?? 0M |
|
|
|
}); |
|
|
|
} |
|
|
|
else |
|
|
@ -804,7 +816,8 @@ 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 adSkuIndex = 0; |
|
|
|
foreach (var adSku in adSkuList) |
|
|
@ -818,9 +831,10 @@ 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 adSkuDailyAggregation = new AggregationJDPopularizeAdSkuDaily() |
|
|
|
{ |
|
|
@ -838,8 +852,9 @@ namespace SiNan.Business |
|
|
|
BusinessType = adSku.BusinessType, |
|
|
|
SkuId = adSku.Sku, |
|
|
|
AdId = adSku.AdId, |
|
|
|
PopularizeAmount = adSkuPoplarizeAmount?.ActualAmount ?? 0M, |
|
|
|
Clicks = adSkuGoi_AggregationDate_PopularizeLevel?.Clicks ?? 0 |
|
|
|
PopularizeAmount = adSkuPopularizeROI?.Amount ?? 0M, |
|
|
|
Clicks = adSkuGoi_AggregationDate_PopularizeLevel?.Clicks ?? 0, |
|
|
|
PopluarizeLevelROI = adSkuPopularizeROI?.ROI ?? 0M |
|
|
|
}; |
|
|
|
insertAggregationAdSkuDailyList.Add(adSkuDailyAggregation); |
|
|
|
|
|
|
|