|
|
@ -380,7 +380,7 @@ namespace SiNan.Business |
|
|
|
.Where((osku, o) => o.OrderState != Enums.OrderState.已取消 && |
|
|
|
o.IsGift == false && |
|
|
|
o.StartTime >= startDate && |
|
|
|
o.EndTime <= endDate && |
|
|
|
o.StartTime <= endDate && |
|
|
|
osku.Price > 0 && |
|
|
|
spuList.Contains(osku.ProductId)) |
|
|
|
.GroupBy((osku, o) => osku.ProductId) |
|
|
@ -398,7 +398,7 @@ namespace SiNan.Business |
|
|
|
.Where((osku, o) => o.OrderState != Enums.OrderState.已取消 && |
|
|
|
o.IsGift == false && |
|
|
|
o.StartTime >= startDate && |
|
|
|
o.EndTime <= endDate && |
|
|
|
o.StartTime <= endDate && |
|
|
|
osku.Price > 0 && |
|
|
|
skuList.Contains(osku.SkuId)) |
|
|
|
.GroupBy((osku, o) => new { osku.SkuId, osku.ProductId }) |
|
|
@ -460,7 +460,7 @@ namespace SiNan.Business |
|
|
|
var IsAggregationDateEqualsYesterDay = (DateTime.Now.Date - aggregationDate).TotalDays == 1; |
|
|
|
|
|
|
|
var campaignList = fsql.Select<JDPopularizeCampaign>().Where(c => c.ShopId == shopId && c.Date == aggregationDate) |
|
|
|
.WhereIf(campaignId != null, c => c.CampaignId == campaignId) |
|
|
|
.WhereIf(campaignId != null && campaignId != 0, c => c.CampaignId == campaignId) |
|
|
|
//.GroupBy(c => new { c.CampaignId, c.BusinessType })
|
|
|
|
.ToList(); |
|
|
|
|
|
|
@ -625,9 +625,9 @@ namespace SiNan.Business |
|
|
|
var IsAggregationDateEqualsYesterDay = (DateTime.Now.Date - aggregationDate).TotalDays == 1; |
|
|
|
|
|
|
|
var adGroupList = fsql.Select<JDPopularizeAdGroup>().Where(c => c.ShopId == shopId && c.Date == aggregationDate) |
|
|
|
.WhereIf(adGroupId != null, c => c.AdGroupId == adGroupId) |
|
|
|
//.GroupBy(c => new { c.CampaignId, c.BusinessType })
|
|
|
|
.ToList(); |
|
|
|
.WhereIf(adGroupId != null && adGroupId != 0, c => c.AdGroupId == adGroupId) |
|
|
|
//.GroupBy(c => new { c.CampaignId, c.BusinessType })
|
|
|
|
.ToList(); |
|
|
|
|
|
|
|
var adGroupIdList = adGroupList.Select(j => j.AdGroupId).Distinct().ToArray(); |
|
|
|
if (adGroupIdList.Count() == 0) |
|
|
@ -788,7 +788,7 @@ namespace SiNan.Business |
|
|
|
var IsAggregationDateEqualsYesterDay = (DateTime.Now.Date - aggregationDate).TotalDays == 1; |
|
|
|
|
|
|
|
var adSkuList = fsql.Select<JDPopularizeAdSku>().Where(c => c.ShopId == shopId && c.Date == aggregationDate) |
|
|
|
.WhereIf(skuId != null, c => c.Sku == skuId) |
|
|
|
.WhereIf(!string.IsNullOrEmpty(skuId), c => c.Sku == skuId) |
|
|
|
//.GroupBy(c => new { c.Sku, c.BusinessType })
|
|
|
|
.ToList(); |
|
|
|
|
|
|
@ -798,6 +798,7 @@ 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 adSkuIndex = 0; |
|
|
|
foreach (var adSku in adSkuList) |
|
|
@ -805,10 +806,11 @@ namespace SiNan.Business |
|
|
|
adSkuIndex++; |
|
|
|
Console.WriteLine($"{DateTime.Now} {shopName} SKU聚合 {adSkuIndex}/{adSkuIdList.Count()}"); |
|
|
|
|
|
|
|
#region 处理计划每日聚合
|
|
|
|
#region 处理SKU每日聚合
|
|
|
|
var adSkuGoi_AggregationDate_PopularizeLevel = aggregationDate_PopularizeLevelList.FirstOrDefault(x => x.Sku == adSku.Sku && x.BusinessType == adSku.BusinessType); |
|
|
|
var adSkuGoi_AggregationDate_ProductLevel = aggregationDate_ProductLevelList.FirstOrDefault(x => x.Sku == adSku.Sku && x.BusinessType == adSku.BusinessType); |
|
|
|
|
|
|
|
if (adSkuGoi_AggregationDate_PopularizeLevel != null) |
|
|
|
if (adSkuGoi_AggregationDate_PopularizeLevel != null || adSkuGoi_AggregationDate_ProductLevel != null) |
|
|
|
{ |
|
|
|
var adSkuDailyAggregation = new AggregationJDPopularizeAdSkuDaily() |
|
|
|
{ |
|
|
@ -819,10 +821,13 @@ namespace SiNan.Business |
|
|
|
Cost = adSkuGoi_AggregationDate_PopularizeLevel?.Cost ?? 0M, |
|
|
|
PopularizeLevelProfit = adSkuGoi_AggregationDate_PopularizeLevel?.Profit ?? 0M, |
|
|
|
PopularizeLevelGOI = adSkuGoi_AggregationDate_PopularizeLevel?.GOI ?? 0M, |
|
|
|
ProductLevelProfit = adSkuGoi_AggregationDate_ProductLevel?.Profit ?? 0M, |
|
|
|
ProductLevelGOI = adSkuGoi_AggregationDate_ProductLevel?.GOI ?? 0M, |
|
|
|
AdGroupId = adSku.AdGroupId, |
|
|
|
CampaignId = adSku.CampaignId, |
|
|
|
BusinessType = adSku.BusinessType, |
|
|
|
SkuId = skuId |
|
|
|
SkuId = adSku.Sku, |
|
|
|
AdId = adSku.AdId |
|
|
|
}; |
|
|
|
insertAggregationAdSkuDailyList.Add(adSkuDailyAggregation); |
|
|
|
} |
|
|
@ -833,7 +838,6 @@ namespace SiNan.Business |
|
|
|
{ |
|
|
|
fsql.Delete<AggregationJDPopularizeAdSkuDaily>().Where(s => s.Date == aggregationDate && adSkuIdList.Contains(s.SkuId)).ExecuteAffrows(); |
|
|
|
fsql.Insert(insertAggregationAdSkuDailyList).ExecuteAffrows(); |
|
|
|
|
|
|
|
}); |
|
|
|
} |
|
|
|
#endregion
|
|
|
|