|
@ -460,90 +460,84 @@ namespace BBWY.Server.Business.Statistics |
|
|
|
|
|
|
|
|
var customEndTime = gOIRequest.EndDate.AddDays(1).AddSeconds(-1); |
|
|
var customEndTime = gOIRequest.EndDate.AddDays(1).AddSeconds(-1); |
|
|
|
|
|
|
|
|
|
|
|
var campaignList = fsql.Select<JDPopularizeAdSku>().Where(s => gOIRequest.LevelIdList.Contains(s.CampaignId.Value)) |
|
|
|
|
|
.GroupBy(s => new { s.CampaignId, s.Sku }) |
|
|
|
|
|
.ToList(g => new { g.Key.CampaignId, g.Key.Sku }); |
|
|
|
|
|
|
|
|
var _7dCampaignCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>() |
|
|
var skuIds = campaignList.Select(campaign => campaign.Sku).Distinct().ToList(); |
|
|
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku && jas1.Date == jas2.Date) |
|
|
|
|
|
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.CampaignId.Value) && |
|
|
var _7dCosts = fsql.Select<JDPopularizeAdSku>() |
|
|
jas2.Date >= _7dStartDate && jas2.Date <= _7dEndDate) |
|
|
.Where(jas => skuIds.Contains(jas.Sku) && jas.Date >= _7dStartDate && jas.Date <= _7dEndDate) |
|
|
.GroupBy((jas1, jas2) => jas1.CampaignId) |
|
|
.GroupBy(jas => jas.Sku) |
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Cost = g.Sum(g.Value.Item2.Cost), |
|
|
Cost = g.Sum(g.Value.Cost), |
|
|
CampaignId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _7dCampaignProfits = fsql.Select<JDPopularizeAdSku, OrderCostDetail>() |
|
|
var _7dProfits = fsql.Select<OrderCostDetail>() |
|
|
.InnerJoin((jas, ocd) => jas.Sku == ocd.SkuId) |
|
|
.Where(ocd => skuIds.Contains(ocd.SkuId) && |
|
|
.Where((jas, ocd) => gOIRequest.LevelIdList.Contains(jas.CampaignId.Value) && |
|
|
|
|
|
ocd.IsEnabled && |
|
|
ocd.IsEnabled && |
|
|
ocd.CreateTime >= _7dStartDate && |
|
|
ocd.CreateTime >= _7dStartDate && |
|
|
ocd.CreateTime <= _7dEndTime) |
|
|
ocd.CreateTime <= _7dEndTime) |
|
|
.GroupBy((jas, ocd) => jas.CampaignId) |
|
|
.GroupBy(ocd => ocd.SkuId) |
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Profit = g.Sum(g.Value.Item2.SkuGrossProfit), |
|
|
Profit = g.Sum(g.Value.SkuGrossProfit), |
|
|
CampaignId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _30dCampaignCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>() |
|
|
var _30dCosts = fsql.Select<JDPopularizeAdSku>() |
|
|
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku && jas1.Date == jas2.Date) |
|
|
.Where(jas => skuIds.Contains(jas.Sku) && jas.Date >= _30dStartDate && jas.Date <= _30dEndDate) |
|
|
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.CampaignId.Value) && |
|
|
.GroupBy(jas => jas.Sku) |
|
|
jas2.Date >= _30dStartDate && jas2.Date <= _30dEndDate) |
|
|
|
|
|
.GroupBy((jas1, jas2) => jas1.CampaignId) |
|
|
|
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Cost = g.Sum(g.Value.Item2.Cost), |
|
|
Cost = g.Sum(g.Value.Cost), |
|
|
CampaignId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _30dCampaignProfits = fsql.Select<JDPopularizeAdSku, OrderCostDetail>() |
|
|
var _30dProfits = fsql.Select<OrderCostDetail>() |
|
|
.InnerJoin((jas, ocd) => jas.Sku == ocd.SkuId) |
|
|
.Where(ocd => skuIds.Contains(ocd.SkuId) && |
|
|
.Where((jas, ocd) => gOIRequest.LevelIdList.Contains(jas.CampaignId.Value) && |
|
|
|
|
|
ocd.IsEnabled && |
|
|
ocd.IsEnabled && |
|
|
ocd.CreateTime >= _30dStartDate && |
|
|
ocd.CreateTime >= _30dStartDate && |
|
|
ocd.CreateTime <= _30dEndTime) |
|
|
ocd.CreateTime <= _30dEndTime) |
|
|
.GroupBy((jas, ocd) => jas.CampaignId) |
|
|
.GroupBy(ocd => ocd.SkuId) |
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Profit = g.Sum(g.Value.Item2.SkuGrossProfit), |
|
|
Profit = g.Sum(g.Value.SkuGrossProfit), |
|
|
CampaignId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _customCampaignCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>() |
|
|
var _customCosts = fsql.Select<JDPopularizeAdSku>() |
|
|
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku && jas1.Date == jas2.Date) |
|
|
.Where(jas => skuIds.Contains(jas.Sku) && jas.Date >= gOIRequest.StartDate && jas.Date <= gOIRequest.EndDate) |
|
|
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.CampaignId.Value) && |
|
|
.GroupBy(jas => jas.Sku) |
|
|
jas2.Date >= gOIRequest.StartDate && jas2.Date <= gOIRequest.EndDate) |
|
|
|
|
|
.GroupBy((jas1, jas2) => jas1.CampaignId) |
|
|
|
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Cost = g.Sum(g.Value.Item2.Cost), |
|
|
Cost = g.Sum(g.Value.Cost), |
|
|
CampaignId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _customCampaignProfits = fsql.Select<JDPopularizeAdSku, OrderCostDetail>() |
|
|
var _customProfits = fsql.Select<OrderCostDetail>() |
|
|
.InnerJoin((jas, ocd) => jas.Sku == ocd.SkuId) |
|
|
.Where(ocd => skuIds.Contains(ocd.SkuId) && |
|
|
.Where((jas, ocd) => gOIRequest.LevelIdList.Contains(jas.CampaignId.Value) && |
|
|
|
|
|
ocd.IsEnabled && |
|
|
ocd.IsEnabled && |
|
|
ocd.CreateTime >= gOIRequest.StartDate && |
|
|
ocd.CreateTime >= gOIRequest.StartDate && |
|
|
ocd.CreateTime <= customEndTime) |
|
|
ocd.CreateTime <= customEndTime) |
|
|
.GroupBy((jas, ocd) => jas.CampaignId) |
|
|
.GroupBy(ocd => ocd.SkuId) |
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Profit = g.Sum(g.Value.Item2.SkuGrossProfit), |
|
|
Profit = g.Sum(g.Value.SkuGrossProfit), |
|
|
CampaignId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _totalCampaignCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>() |
|
|
var _totalCosts = fsql.Select<JDPopularizeAdSku>() |
|
|
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku && jas1.Date == jas2.Date) |
|
|
.Where(jas => skuIds.Contains(jas.Sku)) |
|
|
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.CampaignId.Value)) |
|
|
.GroupBy(jas => jas.Sku) |
|
|
.GroupBy((jas1, jas2) => jas1.CampaignId) |
|
|
|
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Cost = g.Sum(g.Value.Item2.Cost), |
|
|
Cost = g.Sum(g.Value.Cost), |
|
|
CampaignId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var list = new List<JDProductAndPopularizeLevelGOIResponse>(); |
|
|
var list = new List<JDProductAndPopularizeLevelGOIResponse>(); |
|
|
foreach (var levelId in gOIRequest.LevelIdList) |
|
|
foreach (var levelId in gOIRequest.LevelIdList) |
|
|
{ |
|
|
{ |
|
@ -551,16 +545,19 @@ namespace BBWY.Server.Business.Statistics |
|
|
{ |
|
|
{ |
|
|
LevelId = levelId |
|
|
LevelId = levelId |
|
|
}; |
|
|
}; |
|
|
goiResponse._7GOI.Cost = _7dCampaignCosts.FirstOrDefault(x => x.CampaignId == levelId)?.Cost ?? 0M; |
|
|
|
|
|
goiResponse._7GOI.Profit = _7dCampaignProfits.FirstOrDefault(x => x.CampaignId == levelId)?.Profit ?? 0M; |
|
|
|
|
|
|
|
|
|
|
|
goiResponse._30GOI.Cost = _30dCampaignCosts.FirstOrDefault(x => x.CampaignId == levelId)?.Cost ?? 0M; |
|
|
var currentLevelIdSkuIds = campaignList.Where(campaign => campaign.CampaignId == levelId).Select(campaign => campaign.Sku).Distinct().ToList(); |
|
|
goiResponse._30GOI.Profit = _30dCampaignProfits.FirstOrDefault(x => x.CampaignId == levelId)?.Profit ?? 0M; |
|
|
|
|
|
|
|
|
goiResponse._7GOI.Cost = _7dCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; |
|
|
|
|
|
goiResponse._7GOI.Profit = _7dProfits.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Profit ?? 0M; |
|
|
|
|
|
|
|
|
|
|
|
goiResponse._30GOI.Cost = _30dCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; |
|
|
|
|
|
goiResponse._30GOI.Profit = _30dProfits.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Profit ?? 0M; |
|
|
|
|
|
|
|
|
goiResponse.CustomDaysGOI.Cost = _customCampaignCosts.FirstOrDefault(x => x.CampaignId == levelId)?.Cost ?? 0M; |
|
|
goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; |
|
|
goiResponse.CustomDaysGOI.Profit = _customCampaignProfits.FirstOrDefault(x => x.CampaignId == levelId)?.Profit ?? 0M; |
|
|
goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Profit ?? 0M; |
|
|
|
|
|
|
|
|
goiResponse.TotalCost = _totalCampaignCosts.FirstOrDefault(x => x.CampaignId == levelId)?.Cost ?? 0M; |
|
|
goiResponse.TotalCost = _totalCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; |
|
|
list.Add(goiResponse); |
|
|
list.Add(goiResponse); |
|
|
} |
|
|
} |
|
|
return list; |
|
|
return list; |
|
@ -578,87 +575,82 @@ namespace BBWY.Server.Business.Statistics |
|
|
|
|
|
|
|
|
var customEndTime = gOIRequest.EndDate.AddDays(1).AddSeconds(-1); |
|
|
var customEndTime = gOIRequest.EndDate.AddDays(1).AddSeconds(-1); |
|
|
|
|
|
|
|
|
|
|
|
var adGroupList = fsql.Select<JDPopularizeAdSku>().Where(s => gOIRequest.LevelIdList.Contains(s.AdGroupId.Value)) |
|
|
|
|
|
.GroupBy(s => new { s.AdGroupId, s.Sku }) |
|
|
|
|
|
.ToList(g => new { g.Key.AdGroupId, g.Key.Sku }); |
|
|
|
|
|
|
|
|
var _7dCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>() |
|
|
var skuIds = adGroupList.Select(adGroup => adGroup.Sku).Distinct().ToList(); |
|
|
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku && jas1.Date == jas2.Date) |
|
|
|
|
|
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdGroupId.Value) && |
|
|
var _7dCosts = fsql.Select<JDPopularizeAdSku>() |
|
|
jas2.Date >= _7dStartDate && jas2.Date <= _7dEndDate) |
|
|
.Where(jas => skuIds.Contains(jas.Sku) && jas.Date >= _7dStartDate && jas.Date <= _7dEndDate) |
|
|
.GroupBy((jas1, jas2) => jas1.AdGroupId) |
|
|
.GroupBy(jas => jas.Sku) |
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Cost = g.Sum(g.Value.Item2.Cost), |
|
|
Cost = g.Sum(g.Value.Cost), |
|
|
AdGroupId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _7dProfits = fsql.Select<JDPopularizeAdSku, OrderCostDetail>() |
|
|
var _7dProfits = fsql.Select<OrderCostDetail>() |
|
|
.InnerJoin((jas, ocd) => jas.Sku == ocd.SkuId) |
|
|
.Where(ocd => skuIds.Contains(ocd.SkuId) && |
|
|
.Where((jas, ocd) => gOIRequest.LevelIdList.Contains(jas.AdGroupId.Value) && |
|
|
|
|
|
ocd.IsEnabled && |
|
|
ocd.IsEnabled && |
|
|
ocd.CreateTime >= _7dStartDate && |
|
|
ocd.CreateTime >= _7dStartDate && |
|
|
ocd.CreateTime <= _7dEndTime) |
|
|
ocd.CreateTime <= _7dEndTime) |
|
|
.GroupBy((jas, ocd) => jas.AdGroupId) |
|
|
.GroupBy(ocd => ocd.SkuId) |
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Profit = g.Sum(g.Value.Item2.SkuGrossProfit), |
|
|
Profit = g.Sum(g.Value.SkuGrossProfit), |
|
|
AdGroupId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _30dCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>() |
|
|
var _30dCosts = fsql.Select<JDPopularizeAdSku>() |
|
|
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku && jas1.Date == jas2.Date) |
|
|
.Where(jas => skuIds.Contains(jas.Sku) && jas.Date >= _30dStartDate && jas.Date <= _30dEndDate) |
|
|
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdGroupId.Value) && |
|
|
.GroupBy(jas => jas.Sku) |
|
|
jas2.Date >= _30dStartDate && jas2.Date <= _30dEndDate) |
|
|
|
|
|
.GroupBy((jas1, jas2) => jas1.AdGroupId) |
|
|
|
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Cost = g.Sum(g.Value.Item2.Cost), |
|
|
Cost = g.Sum(g.Value.Cost), |
|
|
AdGroupId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _30dProfits = fsql.Select<JDPopularizeAdSku, OrderCostDetail>() |
|
|
var _30dProfits = fsql.Select<OrderCostDetail>() |
|
|
.InnerJoin((jas, ocd) => jas.Sku == ocd.SkuId) |
|
|
.Where(ocd => skuIds.Contains(ocd.SkuId) && |
|
|
.Where((jas, ocd) => gOIRequest.LevelIdList.Contains(jas.AdGroupId.Value) && |
|
|
|
|
|
ocd.IsEnabled && |
|
|
ocd.IsEnabled && |
|
|
ocd.CreateTime >= _30dStartDate && |
|
|
ocd.CreateTime >= _30dStartDate && |
|
|
ocd.CreateTime <= _30dEndTime) |
|
|
ocd.CreateTime <= _30dEndTime) |
|
|
.GroupBy((jas, ocd) => jas.AdGroupId) |
|
|
.GroupBy(ocd => ocd.SkuId) |
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Profit = g.Sum(g.Value.Item2.SkuGrossProfit), |
|
|
Profit = g.Sum(g.Value.SkuGrossProfit), |
|
|
AdGroupId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _customCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>() |
|
|
var _customCosts = fsql.Select<JDPopularizeAdSku>() |
|
|
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku && jas1.Date == jas2.Date) |
|
|
.Where(jas => skuIds.Contains(jas.Sku) && jas.Date >= gOIRequest.StartDate && jas.Date <= gOIRequest.EndDate) |
|
|
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdGroupId.Value) && |
|
|
.GroupBy(jas => jas.Sku) |
|
|
jas2.Date >= gOIRequest.StartDate && jas2.Date <= gOIRequest.EndDate) |
|
|
|
|
|
.GroupBy((jas1, jas2) => jas1.AdGroupId) |
|
|
|
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Cost = g.Sum(g.Value.Item2.Cost), |
|
|
Cost = g.Sum(g.Value.Cost), |
|
|
AdGroupId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _customProfits = fsql.Select<JDPopularizeAdSku, OrderCostDetail>() |
|
|
var _customProfits = fsql.Select<OrderCostDetail>() |
|
|
.InnerJoin((jas, ocd) => jas.Sku == ocd.SkuId) |
|
|
.Where(ocd => skuIds.Contains(ocd.SkuId) && |
|
|
.Where((jas, ocd) => gOIRequest.LevelIdList.Contains(jas.AdGroupId.Value) && |
|
|
|
|
|
ocd.IsEnabled && |
|
|
ocd.IsEnabled && |
|
|
ocd.CreateTime >= gOIRequest.StartDate && |
|
|
ocd.CreateTime >= gOIRequest.StartDate && |
|
|
ocd.CreateTime <= customEndTime) |
|
|
ocd.CreateTime <= customEndTime) |
|
|
.GroupBy((jas, ocd) => jas.AdGroupId) |
|
|
.GroupBy(ocd => ocd.SkuId) |
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Profit = g.Sum(g.Value.Item2.SkuGrossProfit), |
|
|
Profit = g.Sum(g.Value.SkuGrossProfit), |
|
|
AdGroupId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _totalAdGroupCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>() |
|
|
var _totalCosts = fsql.Select<JDPopularizeAdSku>() |
|
|
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku && jas1.Date == jas2.Date) |
|
|
.Where(jas => skuIds.Contains(jas.Sku)) |
|
|
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdGroupId.Value)) |
|
|
.GroupBy(jas => jas.Sku) |
|
|
.GroupBy((jas1, jas2) => jas1.AdGroupId) |
|
|
|
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Cost = g.Sum(g.Value.Item2.Cost), |
|
|
Cost = g.Sum(g.Value.Cost), |
|
|
AdGroupId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var list = new List<JDProductAndPopularizeLevelGOIResponse>(); |
|
|
var list = new List<JDProductAndPopularizeLevelGOIResponse>(); |
|
@ -668,15 +660,19 @@ namespace BBWY.Server.Business.Statistics |
|
|
{ |
|
|
{ |
|
|
LevelId = levelId |
|
|
LevelId = levelId |
|
|
}; |
|
|
}; |
|
|
goiResponse._7GOI.Cost = _7dCosts.FirstOrDefault(x => x.AdGroupId == levelId)?.Cost ?? 0M; |
|
|
|
|
|
goiResponse._7GOI.Profit = _7dProfits.FirstOrDefault(x => x.AdGroupId == levelId)?.Profit ?? 0M; |
|
|
|
|
|
|
|
|
|
|
|
goiResponse._30GOI.Cost = _30dCosts.FirstOrDefault(x => x.AdGroupId == levelId)?.Cost ?? 0M; |
|
|
var currentLevelIdSkuIds = adGroupList.Where(adGroup => adGroup.AdGroupId == levelId).Select(adGroup => adGroup.Sku).Distinct().ToList(); |
|
|
goiResponse._30GOI.Profit = _30dProfits.FirstOrDefault(x => x.AdGroupId == levelId)?.Profit ?? 0M; |
|
|
|
|
|
|
|
|
|
|
|
goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => x.AdGroupId == levelId)?.Cost ?? 0M; |
|
|
goiResponse._7GOI.Cost = _7dCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; |
|
|
goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => x.AdGroupId == levelId)?.Profit ?? 0M; |
|
|
goiResponse._7GOI.Profit = _7dProfits.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Profit ?? 0M; |
|
|
goiResponse.TotalCost = _totalAdGroupCosts.FirstOrDefault(x => x.AdGroupId == levelId)?.Cost ?? 0M; |
|
|
|
|
|
|
|
|
goiResponse._30GOI.Cost = _30dCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; |
|
|
|
|
|
goiResponse._30GOI.Profit = _30dProfits.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Profit ?? 0M; |
|
|
|
|
|
|
|
|
|
|
|
goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; |
|
|
|
|
|
goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Profit ?? 0M; |
|
|
|
|
|
|
|
|
|
|
|
goiResponse.TotalCost = _totalCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; |
|
|
list.Add(goiResponse); |
|
|
list.Add(goiResponse); |
|
|
} |
|
|
} |
|
|
return list; |
|
|
return list; |
|
@ -694,87 +690,82 @@ namespace BBWY.Server.Business.Statistics |
|
|
|
|
|
|
|
|
var customEndTime = gOIRequest.EndDate.AddDays(1).AddSeconds(-1); |
|
|
var customEndTime = gOIRequest.EndDate.AddDays(1).AddSeconds(-1); |
|
|
|
|
|
|
|
|
|
|
|
var adList = fsql.Select<JDPopularizeAdSku>().Where(s => gOIRequest.LevelIdList.Contains(s.AdId.Value)) |
|
|
|
|
|
.GroupBy(s => new { s.AdId, s.Sku }) |
|
|
|
|
|
.ToList(g => new { g.Key.AdId, g.Key.Sku }); |
|
|
|
|
|
|
|
|
|
|
|
var skuIds = adList.Select(ad => ad.Sku).Distinct().ToList(); |
|
|
|
|
|
|
|
|
var _7dCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>() |
|
|
var _7dCosts = fsql.Select<JDPopularizeAdSku>() |
|
|
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku && jas1.Date == jas2.Date) |
|
|
.Where(jas => skuIds.Contains(jas.Sku) && jas.Date >= _7dStartDate && jas.Date <= _7dEndDate) |
|
|
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdId.Value) && |
|
|
.GroupBy(jas => jas.Sku) |
|
|
jas2.Date >= _7dStartDate && jas2.Date <= _7dEndDate) |
|
|
|
|
|
.GroupBy((jas1, jas2) => jas1.AdId) |
|
|
|
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Cost = g.Sum(g.Value.Item2.Cost), |
|
|
Cost = g.Sum(g.Value.Cost), |
|
|
AdId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _7dProfits = fsql.Select<JDPopularizeAdSku, OrderCostDetail>() |
|
|
var _7dProfits = fsql.Select<OrderCostDetail>() |
|
|
.InnerJoin((jas, ocd) => jas.Sku == ocd.SkuId) |
|
|
.Where(ocd => skuIds.Contains(ocd.SkuId) && |
|
|
.Where((jas, ocd) => gOIRequest.LevelIdList.Contains(jas.AdId.Value) && |
|
|
|
|
|
ocd.IsEnabled && |
|
|
ocd.IsEnabled && |
|
|
ocd.CreateTime >= _7dStartDate && |
|
|
ocd.CreateTime >= _7dStartDate && |
|
|
ocd.CreateTime <= _7dEndTime) |
|
|
ocd.CreateTime <= _7dEndTime) |
|
|
.GroupBy((jas, ocd) => jas.AdId) |
|
|
.GroupBy(ocd => ocd.SkuId) |
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Profit = g.Sum(g.Value.Item2.SkuGrossProfit), |
|
|
Profit = g.Sum(g.Value.SkuGrossProfit), |
|
|
AdId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _30dCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>() |
|
|
var _30dCosts = fsql.Select<JDPopularizeAdSku>() |
|
|
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku && jas1.Date == jas2.Date) |
|
|
.Where(jas => skuIds.Contains(jas.Sku) && jas.Date >= _30dStartDate && jas.Date <= _30dEndDate) |
|
|
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdId.Value) && |
|
|
.GroupBy(jas => jas.Sku) |
|
|
jas2.Date >= _30dStartDate && jas2.Date <= _30dEndDate) |
|
|
|
|
|
.GroupBy((jas1, jas2) => jas1.AdId) |
|
|
|
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Cost = g.Sum(g.Value.Item2.Cost), |
|
|
Cost = g.Sum(g.Value.Cost), |
|
|
AdId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _30dProfits = fsql.Select<JDPopularizeAdSku, OrderCostDetail>() |
|
|
var _30dProfits = fsql.Select<OrderCostDetail>() |
|
|
.InnerJoin((jas, ocd) => jas.Sku == ocd.SkuId) |
|
|
.Where(ocd => skuIds.Contains(ocd.SkuId) && |
|
|
.Where((jas, ocd) => gOIRequest.LevelIdList.Contains(jas.AdId.Value) && |
|
|
|
|
|
ocd.IsEnabled && |
|
|
ocd.IsEnabled && |
|
|
ocd.CreateTime >= _30dStartDate && |
|
|
ocd.CreateTime >= _30dStartDate && |
|
|
ocd.CreateTime <= _30dEndTime) |
|
|
ocd.CreateTime <= _30dEndTime) |
|
|
.GroupBy((jas, ocd) => jas.AdId) |
|
|
.GroupBy(ocd => ocd.SkuId) |
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Profit = g.Sum(g.Value.Item2.SkuGrossProfit), |
|
|
Profit = g.Sum(g.Value.SkuGrossProfit), |
|
|
AdId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _customCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>() |
|
|
var _customCosts = fsql.Select<JDPopularizeAdSku>() |
|
|
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku && jas1.Date == jas2.Date) |
|
|
.Where(jas => skuIds.Contains(jas.Sku) && jas.Date >= gOIRequest.StartDate && jas.Date <= gOIRequest.EndDate) |
|
|
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdId.Value) && |
|
|
.GroupBy(jas => jas.Sku) |
|
|
jas2.Date >= gOIRequest.StartDate && jas2.Date <= gOIRequest.EndDate) |
|
|
|
|
|
.GroupBy((jas1, jas2) => jas1.AdId) |
|
|
|
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Cost = g.Sum(g.Value.Item2.Cost), |
|
|
Cost = g.Sum(g.Value.Cost), |
|
|
AdId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _customProfits = fsql.Select<JDPopularizeAdSku, OrderCostDetail>() |
|
|
var _customProfits = fsql.Select<OrderCostDetail>() |
|
|
.InnerJoin((jas, ocd) => jas.Sku == ocd.SkuId) |
|
|
.Where(ocd => skuIds.Contains(ocd.SkuId) && |
|
|
.Where((jas, ocd) => gOIRequest.LevelIdList.Contains(jas.AdId.Value) && |
|
|
|
|
|
ocd.IsEnabled && |
|
|
ocd.IsEnabled && |
|
|
ocd.CreateTime >= gOIRequest.StartDate && |
|
|
ocd.CreateTime >= gOIRequest.StartDate && |
|
|
ocd.CreateTime <= customEndTime) |
|
|
ocd.CreateTime <= customEndTime) |
|
|
.GroupBy((jas, ocd) => jas.AdId) |
|
|
.GroupBy(ocd => ocd.SkuId) |
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Profit = g.Sum(g.Value.Item2.SkuGrossProfit), |
|
|
Profit = g.Sum(g.Value.SkuGrossProfit), |
|
|
AdId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var totalAdCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>() |
|
|
var _totalCosts = fsql.Select<JDPopularizeAdSku>() |
|
|
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku && jas1.Date == jas2.Date) |
|
|
.Where(jas => skuIds.Contains(jas.Sku)) |
|
|
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdId.Value)) |
|
|
.GroupBy(jas => jas.Sku) |
|
|
.GroupBy((jas1, jas2) => jas1.AdId) |
|
|
|
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Cost = g.Sum(g.Value.Item2.Cost), |
|
|
Cost = g.Sum(g.Value.Cost), |
|
|
AdId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var list = new List<JDProductAndPopularizeLevelGOIResponse>(); |
|
|
var list = new List<JDProductAndPopularizeLevelGOIResponse>(); |
|
@ -784,16 +775,19 @@ namespace BBWY.Server.Business.Statistics |
|
|
{ |
|
|
{ |
|
|
LevelId = levelId |
|
|
LevelId = levelId |
|
|
}; |
|
|
}; |
|
|
goiResponse._7GOI.Cost = _7dCosts.FirstOrDefault(x => x.AdId == levelId)?.Cost ?? 0M; |
|
|
|
|
|
goiResponse._7GOI.Profit = _7dProfits.FirstOrDefault(x => x.AdId == levelId)?.Profit ?? 0M; |
|
|
|
|
|
|
|
|
|
|
|
goiResponse._30GOI.Cost = _30dCosts.FirstOrDefault(x => x.AdId == levelId)?.Cost ?? 0M; |
|
|
var currentLevelIdSkuIds = adList.Where(ad => ad.AdId == levelId).Select(ad => ad.Sku).Distinct().ToList(); |
|
|
goiResponse._30GOI.Profit = _30dProfits.FirstOrDefault(x => x.AdId == levelId)?.Profit ?? 0M; |
|
|
|
|
|
|
|
|
|
|
|
goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => x.AdId == levelId)?.Cost ?? 0M; |
|
|
goiResponse._7GOI.Cost = _7dCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; |
|
|
goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => x.AdId == levelId)?.Profit ?? 0M; |
|
|
goiResponse._7GOI.Profit = _7dProfits.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Profit ?? 0M; |
|
|
|
|
|
|
|
|
goiResponse.TotalCost = totalAdCosts.FirstOrDefault(x => x.AdId == levelId)?.Cost ?? 0M; |
|
|
goiResponse._30GOI.Cost = _30dCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; |
|
|
|
|
|
goiResponse._30GOI.Profit = _30dProfits.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Profit ?? 0M; |
|
|
|
|
|
|
|
|
|
|
|
goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; |
|
|
|
|
|
goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Profit ?? 0M; |
|
|
|
|
|
|
|
|
|
|
|
goiResponse.TotalCost = _totalCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; |
|
|
list.Add(goiResponse); |
|
|
list.Add(goiResponse); |
|
|
} |
|
|
} |
|
|
return list; |
|
|
return list; |
|
@ -822,16 +816,15 @@ namespace BBWY.Server.Business.Statistics |
|
|
Sku = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _7dProfits = fsql.Select<JDPopularizeAdSku, OrderCostDetail>() |
|
|
var _7dProfits = fsql.Select<OrderCostDetail>() |
|
|
.InnerJoin((jas, ocd) => jas.Sku == ocd.SkuId) |
|
|
.Where(ocd => gOIRequest.LevelIdList.Contains(ocd.SkuId) && |
|
|
.Where((jas, ocd) => gOIRequest.LevelIdList.Contains(jas.Sku) && |
|
|
|
|
|
ocd.IsEnabled && |
|
|
ocd.IsEnabled && |
|
|
ocd.CreateTime >= _7dStartDate && |
|
|
ocd.CreateTime >= _7dStartDate && |
|
|
ocd.CreateTime <= _7dEndTime) |
|
|
ocd.CreateTime <= _7dEndTime) |
|
|
.GroupBy((jas, ocd) => jas.Sku) |
|
|
.GroupBy(ocd => ocd.SkuId) |
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Profit = g.Sum(g.Value.Item2.SkuGrossProfit), |
|
|
Profit = g.Sum(g.Value.SkuGrossProfit), |
|
|
Sku = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
@ -845,16 +838,15 @@ namespace BBWY.Server.Business.Statistics |
|
|
Sku = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _30dProfits = fsql.Select<JDPopularizeAdSku, OrderCostDetail>() |
|
|
var _30dProfits = fsql.Select<OrderCostDetail>() |
|
|
.InnerJoin((jas, ocd) => jas.Sku == ocd.SkuId) |
|
|
.Where(ocd => gOIRequest.LevelIdList.Contains(ocd.SkuId) && |
|
|
.Where((jas, ocd) => gOIRequest.LevelIdList.Contains(jas.Sku) && |
|
|
|
|
|
ocd.IsEnabled && |
|
|
ocd.IsEnabled && |
|
|
ocd.CreateTime >= _30dStartDate && |
|
|
ocd.CreateTime >= _30dStartDate && |
|
|
ocd.CreateTime <= _30dEndTime) |
|
|
ocd.CreateTime <= _30dEndTime) |
|
|
.GroupBy((jas, ocd) => jas.Sku) |
|
|
.GroupBy(ocd => ocd.SkuId) |
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Profit = g.Sum(g.Value.Item2.SkuGrossProfit), |
|
|
Profit = g.Sum(g.Value.SkuGrossProfit), |
|
|
Sku = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
@ -868,16 +860,15 @@ namespace BBWY.Server.Business.Statistics |
|
|
Sku = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _customProfits = fsql.Select<JDPopularizeAdSku, OrderCostDetail>() |
|
|
var _customProfits = fsql.Select<OrderCostDetail>() |
|
|
.InnerJoin((jas, ocd) => jas.Sku == ocd.SkuId) |
|
|
.Where(ocd => gOIRequest.LevelIdList.Contains(ocd.SkuId) && |
|
|
.Where((jas, ocd) => gOIRequest.LevelIdList.Contains(jas.Sku) && |
|
|
|
|
|
ocd.IsEnabled && |
|
|
ocd.IsEnabled && |
|
|
ocd.CreateTime >= gOIRequest.StartDate && |
|
|
ocd.CreateTime >= gOIRequest.StartDate && |
|
|
ocd.CreateTime <= customEndTime) |
|
|
ocd.CreateTime <= customEndTime) |
|
|
.GroupBy((jas, ocd) => jas.Sku) |
|
|
.GroupBy(ocd => ocd.SkuId) |
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Profit = g.Sum(g.Value.Item2.SkuGrossProfit), |
|
|
Profit = g.Sum(g.Value.SkuGrossProfit), |
|
|
Sku = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
@ -925,23 +916,26 @@ namespace BBWY.Server.Business.Statistics |
|
|
|
|
|
|
|
|
var customEndTime = gOIRequest.EndDate.AddDays(1).AddSeconds(-1); |
|
|
var customEndTime = gOIRequest.EndDate.AddDays(1).AddSeconds(-1); |
|
|
|
|
|
|
|
|
|
|
|
var campaignList = fsql.Select<JDPopularizeAdSku>().Where(s => gOIRequest.LevelIdList.Contains(s.CampaignId.Value)) |
|
|
|
|
|
.GroupBy(s => new { s.CampaignId, s.Sku }) |
|
|
|
|
|
.ToList(g => new { g.Key.CampaignId, g.Key.Sku }); |
|
|
|
|
|
|
|
|
|
|
|
var skuIds = campaignList.Select(campaign => campaign.Sku).Distinct().ToList(); |
|
|
|
|
|
|
|
|
var _7dCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>() |
|
|
var _7dCosts = fsql.Select<JDPopularizeAdSku>() |
|
|
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku && jas1.Date == jas2.Date) |
|
|
.Where(jas => skuIds.Contains(jas.Sku) && jas.Date >= _7dStartDate && jas.Date <= _7dEndDate) |
|
|
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.CampaignId.Value) && |
|
|
.GroupBy(jas => jas.Sku) |
|
|
jas2.Date >= _7dStartDate && jas2.Date <= _7dEndDate) |
|
|
|
|
|
.GroupBy((jas1, jas2) => jas1.CampaignId) |
|
|
|
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Cost = g.Sum(g.Value.Item2.Cost), |
|
|
Cost = g.Sum(g.Value.Cost), |
|
|
CampaignId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _7dProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>() |
|
|
var _7dProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>() |
|
|
.InnerJoin((jad, jr, ocd) => jad.Sku == jr.PopularizeSku) |
|
|
.InnerJoin((jad, jr, ocd) => jad.Sku == jr.PopularizeSku) |
|
|
.InnerJoin((jad, jr, ocd) => jr.OrderId == ocd.OrderId) |
|
|
.InnerJoin((jad, jr, ocd) => jr.OrderId == ocd.OrderId) |
|
|
.Where((jad, jr, ocd) => gOIRequest.LevelIdList.Contains(jad.CampaignId.Value) && |
|
|
.Where((jad, jr, ocd) => gOIRequest.LevelIdList.Contains(jad.CampaignId.Value) && |
|
|
jr.CookieTime >= _7dStartDate && jr.CookieTime <= _7dEndDate && |
|
|
jr.CookieTime >= _7dStartDate && jr.CookieTime <= _7dEndTime && |
|
|
ocd.IsEnabled == true) |
|
|
ocd.IsEnabled == true) |
|
|
.GroupBy((jad, jr, ocd) => jad.CampaignId) |
|
|
.GroupBy((jad, jr, ocd) => jad.CampaignId) |
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
@ -950,22 +944,20 @@ namespace BBWY.Server.Business.Statistics |
|
|
CampaignId = g.Key |
|
|
CampaignId = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _30dCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>() |
|
|
var _30dCosts = fsql.Select<JDPopularizeAdSku>() |
|
|
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku && jas1.Date == jas2.Date) |
|
|
.Where(jas => skuIds.Contains(jas.Sku) && jas.Date >= _30dStartDate && jas.Date <= _30dEndDate) |
|
|
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.CampaignId.Value) && |
|
|
.GroupBy(jas => jas.Sku) |
|
|
jas2.Date >= _30dStartDate && jas2.Date <= _30dEndDate) |
|
|
|
|
|
.GroupBy((jas1, jas2) => jas1.CampaignId) |
|
|
|
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Cost = g.Sum(g.Value.Item2.Cost), |
|
|
Cost = g.Sum(g.Value.Cost), |
|
|
CampaignId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _30dProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>() |
|
|
var _30dProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>() |
|
|
.InnerJoin((jad, jr, ocd) => jad.Sku == jr.PopularizeSku) |
|
|
.InnerJoin((jad, jr, ocd) => jad.Sku == jr.PopularizeSku) |
|
|
.InnerJoin((jad, jr, ocd) => jr.OrderId == ocd.OrderId) |
|
|
.InnerJoin((jad, jr, ocd) => jr.OrderId == ocd.OrderId) |
|
|
.Where((jad, jr, ocd) => gOIRequest.LevelIdList.Contains(jad.CampaignId.Value) && |
|
|
.Where((jad, jr, ocd) => gOIRequest.LevelIdList.Contains(jad.CampaignId.Value) && |
|
|
jr.CookieTime >= _30dStartDate && jr.CookieTime <= _30dEndDate && |
|
|
jr.CookieTime >= _30dStartDate && jr.CookieTime <= _30dEndTime && |
|
|
ocd.IsEnabled == true) |
|
|
ocd.IsEnabled == true) |
|
|
.GroupBy((jad, jr, ocd) => jad.CampaignId) |
|
|
.GroupBy((jad, jr, ocd) => jad.CampaignId) |
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
@ -974,15 +966,13 @@ namespace BBWY.Server.Business.Statistics |
|
|
CampaignId = g.Key |
|
|
CampaignId = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _customCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>() |
|
|
var _customCosts = fsql.Select<JDPopularizeAdSku>() |
|
|
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku && jas1.Date == jas2.Date) |
|
|
.Where(jas => skuIds.Contains(jas.Sku) && jas.Date >= gOIRequest.StartDate && jas.Date <= gOIRequest.EndDate) |
|
|
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.CampaignId.Value) && |
|
|
.GroupBy(jas => jas.Sku) |
|
|
jas2.Date >= gOIRequest.StartDate && jas2.Date <= gOIRequest.EndDate) |
|
|
|
|
|
.GroupBy((jas1, jas2) => jas1.CampaignId) |
|
|
|
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Cost = g.Sum(g.Value.Item2.Cost), |
|
|
Cost = g.Sum(g.Value.Cost), |
|
|
CampaignId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _customProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>() |
|
|
var _customProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>() |
|
@ -998,14 +988,13 @@ namespace BBWY.Server.Business.Statistics |
|
|
CampaignId = g.Key |
|
|
CampaignId = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _totalCampaignCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>() |
|
|
var _totalCosts = fsql.Select<JDPopularizeAdSku>() |
|
|
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku && jas1.Date == jas2.Date) |
|
|
.Where(jas => skuIds.Contains(jas.Sku)) |
|
|
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.CampaignId.Value)) |
|
|
.GroupBy(jas => jas.Sku) |
|
|
.GroupBy((jas1, jas2) => jas1.CampaignId) |
|
|
|
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Cost = g.Sum(g.Value.Item2.Cost), |
|
|
Cost = g.Sum(g.Value.Cost), |
|
|
CampaignId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var list = new List<JDProductAndPopularizeLevelGOIResponse>(); |
|
|
var list = new List<JDProductAndPopularizeLevelGOIResponse>(); |
|
@ -1015,16 +1004,19 @@ namespace BBWY.Server.Business.Statistics |
|
|
{ |
|
|
{ |
|
|
LevelId = levelId |
|
|
LevelId = levelId |
|
|
}; |
|
|
}; |
|
|
goiResponse._7GOI.Cost = _7dCosts.FirstOrDefault(x => x.CampaignId == levelId)?.Cost ?? 0M; |
|
|
|
|
|
|
|
|
var currentLevelIdSkuIds = campaignList.Where(campaign => campaign.CampaignId == levelId).Select(campaign => campaign.Sku).Distinct().ToList(); |
|
|
|
|
|
|
|
|
|
|
|
goiResponse._7GOI.Cost = _7dCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; |
|
|
goiResponse._7GOI.Profit = _7dProfits.FirstOrDefault(x => x.CampaignId == levelId)?.Profit ?? 0M; |
|
|
goiResponse._7GOI.Profit = _7dProfits.FirstOrDefault(x => x.CampaignId == levelId)?.Profit ?? 0M; |
|
|
|
|
|
|
|
|
goiResponse._30GOI.Cost = _30dCosts.FirstOrDefault(x => x.CampaignId == levelId)?.Cost ?? 0M; |
|
|
goiResponse._30GOI.Cost = _30dCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; |
|
|
goiResponse._30GOI.Profit = _30dProfits.FirstOrDefault(x => x.CampaignId == levelId)?.Profit ?? 0M; |
|
|
goiResponse._30GOI.Profit = _30dProfits.FirstOrDefault(x => x.CampaignId == levelId)?.Profit ?? 0M; |
|
|
|
|
|
|
|
|
goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => x.CampaignId == levelId)?.Cost ?? 0M; |
|
|
goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; |
|
|
goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => x.CampaignId == levelId)?.Profit ?? 0M; |
|
|
goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => x.CampaignId == levelId)?.Profit ?? 0M; |
|
|
|
|
|
|
|
|
goiResponse.TotalCost = _totalCampaignCosts.FirstOrDefault(x => x.CampaignId == levelId)?.Cost ?? 0M; |
|
|
goiResponse.TotalCost = _totalCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; |
|
|
list.Add(goiResponse); |
|
|
list.Add(goiResponse); |
|
|
} |
|
|
} |
|
|
return list; |
|
|
return list; |
|
@ -1042,23 +1034,26 @@ namespace BBWY.Server.Business.Statistics |
|
|
|
|
|
|
|
|
var customEndTime = gOIRequest.EndDate.AddDays(1).AddSeconds(-1); |
|
|
var customEndTime = gOIRequest.EndDate.AddDays(1).AddSeconds(-1); |
|
|
|
|
|
|
|
|
|
|
|
var adGroupList = fsql.Select<JDPopularizeAdSku>().Where(s => gOIRequest.LevelIdList.Contains(s.AdGroupId.Value)) |
|
|
|
|
|
.GroupBy(s => new { s.AdGroupId, s.Sku }) |
|
|
|
|
|
.ToList(g => new { g.Key.AdGroupId, g.Key.Sku }); |
|
|
|
|
|
|
|
|
|
|
|
var skuIds = adGroupList.Select(adGroup => adGroup.Sku).Distinct().ToList(); |
|
|
|
|
|
|
|
|
var _7dCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>() |
|
|
var _7dCosts = fsql.Select<JDPopularizeAdSku>() |
|
|
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku && jas1.Date == jas2.Date) |
|
|
.Where(jas => skuIds.Contains(jas.Sku) && jas.Date >= _7dStartDate && jas.Date <= _7dEndDate) |
|
|
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdGroupId.Value) && |
|
|
.GroupBy(jas => jas.Sku) |
|
|
jas2.Date >= _7dStartDate && jas2.Date <= _7dEndDate) |
|
|
|
|
|
.GroupBy((jas1, jas2) => jas1.AdGroupId) |
|
|
|
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Cost = g.Sum(g.Value.Item2.Cost), |
|
|
Cost = g.Sum(g.Value.Cost), |
|
|
AdGroupId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _7dProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>() |
|
|
var _7dProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>() |
|
|
.InnerJoin((jad, jr, ocd) => jad.Sku == jr.PopularizeSku) |
|
|
.InnerJoin((jad, jr, ocd) => jad.Sku == jr.PopularizeSku) |
|
|
.InnerJoin((jad, jr, ocd) => jr.OrderId == ocd.OrderId) |
|
|
.InnerJoin((jad, jr, ocd) => jr.OrderId == ocd.OrderId) |
|
|
.Where((jad, jr, ocd) => gOIRequest.LevelIdList.Contains(jad.AdGroupId.Value) && |
|
|
.Where((jad, jr, ocd) => gOIRequest.LevelIdList.Contains(jad.AdGroupId.Value) && |
|
|
jr.CookieTime >= _7dStartDate && jr.CookieTime <= _7dEndDate && |
|
|
jr.CookieTime >= _7dStartDate && jr.CookieTime <= _7dEndTime && |
|
|
ocd.IsEnabled == true) |
|
|
ocd.IsEnabled == true) |
|
|
.GroupBy((jad, jr, ocd) => jad.AdGroupId) |
|
|
.GroupBy((jad, jr, ocd) => jad.AdGroupId) |
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
@ -1067,22 +1062,20 @@ namespace BBWY.Server.Business.Statistics |
|
|
AdGroupId = g.Key |
|
|
AdGroupId = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _30dCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>() |
|
|
var _30dCosts = fsql.Select<JDPopularizeAdSku>() |
|
|
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku && jas1.Date == jas2.Date) |
|
|
.Where(jas => skuIds.Contains(jas.Sku) && jas.Date >= _30dStartDate && jas.Date <= _30dEndDate) |
|
|
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdGroupId.Value) && |
|
|
.GroupBy(jas => jas.Sku) |
|
|
jas2.Date >= _30dStartDate && jas2.Date <= _30dEndDate) |
|
|
|
|
|
.GroupBy((jas1, jas2) => jas1.AdGroupId) |
|
|
|
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Cost = g.Sum(g.Value.Item2.Cost), |
|
|
Cost = g.Sum(g.Value.Cost), |
|
|
AdGroupId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _30dProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>() |
|
|
var _30dProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>() |
|
|
.InnerJoin((jad, jr, ocd) => jad.Sku == jr.PopularizeSku) |
|
|
.InnerJoin((jad, jr, ocd) => jad.Sku == jr.PopularizeSku) |
|
|
.InnerJoin((jad, jr, ocd) => jr.OrderId == ocd.OrderId) |
|
|
.InnerJoin((jad, jr, ocd) => jr.OrderId == ocd.OrderId) |
|
|
.Where((jad, jr, ocd) => gOIRequest.LevelIdList.Contains(jad.AdGroupId.Value) && |
|
|
.Where((jad, jr, ocd) => gOIRequest.LevelIdList.Contains(jad.AdGroupId.Value) && |
|
|
jr.CookieTime >= _30dStartDate && jr.CookieTime <= _30dEndDate && |
|
|
jr.CookieTime >= _30dStartDate && jr.CookieTime <= _30dEndTime && |
|
|
ocd.IsEnabled == true) |
|
|
ocd.IsEnabled == true) |
|
|
.GroupBy((jad, jr, ocd) => jad.AdGroupId) |
|
|
.GroupBy((jad, jr, ocd) => jad.AdGroupId) |
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
@ -1091,15 +1084,13 @@ namespace BBWY.Server.Business.Statistics |
|
|
AdGroupId = g.Key |
|
|
AdGroupId = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _customCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>() |
|
|
var _customCosts = fsql.Select<JDPopularizeAdSku>() |
|
|
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku && jas1.Date == jas2.Date) |
|
|
.Where(jas => skuIds.Contains(jas.Sku) && jas.Date >= gOIRequest.StartDate && jas.Date <= gOIRequest.EndDate) |
|
|
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdGroupId.Value) && |
|
|
.GroupBy(jas => jas.Sku) |
|
|
jas2.Date >= gOIRequest.StartDate && jas2.Date <= gOIRequest.EndDate) |
|
|
|
|
|
.GroupBy((jas1, jas2) => jas1.AdGroupId) |
|
|
|
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Cost = g.Sum(g.Value.Item2.Cost), |
|
|
Cost = g.Sum(g.Value.Cost), |
|
|
AdGroupId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _customProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>() |
|
|
var _customProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>() |
|
@ -1115,14 +1106,13 @@ namespace BBWY.Server.Business.Statistics |
|
|
AdGroupId = g.Key |
|
|
AdGroupId = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _taotalAdGroupCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>() |
|
|
var _totalCosts = fsql.Select<JDPopularizeAdSku>() |
|
|
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku && jas1.Date == jas2.Date) |
|
|
.Where(jas => skuIds.Contains(jas.Sku)) |
|
|
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdGroupId.Value)) |
|
|
.GroupBy(jas => jas.Sku) |
|
|
.GroupBy((jas1, jas2) => jas1.AdGroupId) |
|
|
|
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Cost = g.Sum(g.Value.Item2.Cost), |
|
|
Cost = g.Sum(g.Value.Cost), |
|
|
AdGroupId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var list = new List<JDProductAndPopularizeLevelGOIResponse>(); |
|
|
var list = new List<JDProductAndPopularizeLevelGOIResponse>(); |
|
@ -1132,16 +1122,19 @@ namespace BBWY.Server.Business.Statistics |
|
|
{ |
|
|
{ |
|
|
LevelId = levelId |
|
|
LevelId = levelId |
|
|
}; |
|
|
}; |
|
|
goiResponse._7GOI.Cost = _7dCosts.FirstOrDefault(x => x.AdGroupId == levelId)?.Cost ?? 0M; |
|
|
|
|
|
|
|
|
var currentLevelIdSkuIds = adGroupList.Where(adGroup => adGroup.AdGroupId == levelId).Select(adGroup => adGroup.Sku).Distinct().ToList(); |
|
|
|
|
|
|
|
|
|
|
|
goiResponse._7GOI.Cost = _7dCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; |
|
|
goiResponse._7GOI.Profit = _7dProfits.FirstOrDefault(x => x.AdGroupId == levelId)?.Profit ?? 0M; |
|
|
goiResponse._7GOI.Profit = _7dProfits.FirstOrDefault(x => x.AdGroupId == levelId)?.Profit ?? 0M; |
|
|
|
|
|
|
|
|
goiResponse._30GOI.Cost = _30dCosts.FirstOrDefault(x => x.AdGroupId == levelId)?.Cost ?? 0M; |
|
|
goiResponse._30GOI.Cost = _30dCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; |
|
|
goiResponse._30GOI.Profit = _30dProfits.FirstOrDefault(x => x.AdGroupId == levelId)?.Profit ?? 0M; |
|
|
goiResponse._30GOI.Profit = _30dProfits.FirstOrDefault(x => x.AdGroupId == levelId)?.Profit ?? 0M; |
|
|
|
|
|
|
|
|
goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => x.AdGroupId == levelId)?.Cost ?? 0M; |
|
|
goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; |
|
|
goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => x.AdGroupId == levelId)?.Profit ?? 0M; |
|
|
goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => x.AdGroupId == levelId)?.Profit ?? 0M; |
|
|
|
|
|
|
|
|
goiResponse.TotalCost = _taotalAdGroupCosts.FirstOrDefault(x => x.AdGroupId == levelId)?.Cost ?? 0M; |
|
|
goiResponse.TotalCost = _totalCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; |
|
|
list.Add(goiResponse); |
|
|
list.Add(goiResponse); |
|
|
} |
|
|
} |
|
|
return list; |
|
|
return list; |
|
@ -1159,22 +1152,26 @@ namespace BBWY.Server.Business.Statistics |
|
|
|
|
|
|
|
|
var customEndTime = gOIRequest.EndDate.AddDays(1).AddSeconds(-1); |
|
|
var customEndTime = gOIRequest.EndDate.AddDays(1).AddSeconds(-1); |
|
|
|
|
|
|
|
|
var _7dCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>() |
|
|
var adList = fsql.Select<JDPopularizeAdSku>().Where(s => gOIRequest.LevelIdList.Contains(s.AdId.Value)) |
|
|
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku && jas1.Date == jas2.Date) |
|
|
.GroupBy(s => new { s.AdId, s.Sku }) |
|
|
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdId.Value) && |
|
|
.ToList(g => new { g.Key.AdId, g.Key.Sku }); |
|
|
jas2.Date >= _7dStartDate && jas2.Date <= _7dEndDate) |
|
|
|
|
|
.GroupBy((jas1, jas2) => jas1.AdId) |
|
|
var skuIds = adList.Select(ad => ad.Sku).Distinct().ToList(); |
|
|
|
|
|
|
|
|
|
|
|
var _7dCosts = fsql.Select<JDPopularizeAdSku>() |
|
|
|
|
|
.Where(jas => skuIds.Contains(jas.Sku) && jas.Date >= _7dStartDate && jas.Date <= _7dEndDate) |
|
|
|
|
|
.GroupBy(jas => jas.Sku) |
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Cost = g.Sum(g.Value.Item2.Cost), |
|
|
Cost = g.Sum(g.Value.Cost), |
|
|
AdId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _7dProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>() |
|
|
var _7dProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>() |
|
|
.InnerJoin((jad, jr, ocd) => jad.Sku == jr.PopularizeSku) |
|
|
.InnerJoin((jad, jr, ocd) => jad.Sku == jr.PopularizeSku) |
|
|
.InnerJoin((jad, jr, ocd) => jr.OrderId == ocd.OrderId) |
|
|
.InnerJoin((jad, jr, ocd) => jr.OrderId == ocd.OrderId) |
|
|
.Where((jad, jr, ocd) => gOIRequest.LevelIdList.Contains(jad.AdId.Value) && |
|
|
.Where((jad, jr, ocd) => gOIRequest.LevelIdList.Contains(jad.AdId.Value) && |
|
|
jr.CookieTime >= _7dStartDate && jr.CookieTime <= _7dEndDate && |
|
|
jr.CookieTime >= _7dStartDate && jr.CookieTime <= _7dEndTime && |
|
|
ocd.IsEnabled == true) |
|
|
ocd.IsEnabled == true) |
|
|
.GroupBy((jad, jr, ocd) => jad.AdId) |
|
|
.GroupBy((jad, jr, ocd) => jad.AdId) |
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
@ -1183,22 +1180,20 @@ namespace BBWY.Server.Business.Statistics |
|
|
AdId = g.Key |
|
|
AdId = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _30dCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>() |
|
|
var _30dCosts = fsql.Select<JDPopularizeAdSku>() |
|
|
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku && jas1.Date == jas2.Date) |
|
|
.Where(jas => skuIds.Contains(jas.Sku) && jas.Date >= _30dStartDate && jas.Date <= _30dEndDate) |
|
|
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdId.Value) && |
|
|
.GroupBy(jas => jas.Sku) |
|
|
jas2.Date >= _30dStartDate && jas2.Date <= _30dEndDate) |
|
|
|
|
|
.GroupBy((jas1, jas2) => jas1.AdId) |
|
|
|
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Cost = g.Sum(g.Value.Item2.Cost), |
|
|
Cost = g.Sum(g.Value.Cost), |
|
|
AdId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _30dProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>() |
|
|
var _30dProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>() |
|
|
.InnerJoin((jad, jr, ocd) => jad.Sku == jr.PopularizeSku) |
|
|
.InnerJoin((jad, jr, ocd) => jad.Sku == jr.PopularizeSku) |
|
|
.InnerJoin((jad, jr, ocd) => jr.OrderId == ocd.OrderId) |
|
|
.InnerJoin((jad, jr, ocd) => jr.OrderId == ocd.OrderId) |
|
|
.Where((jad, jr, ocd) => gOIRequest.LevelIdList.Contains(jad.AdId.Value) && |
|
|
.Where((jad, jr, ocd) => gOIRequest.LevelIdList.Contains(jad.AdId.Value) && |
|
|
jr.CookieTime >= _30dStartDate && jr.CookieTime <= _30dEndDate && |
|
|
jr.CookieTime >= _30dStartDate && jr.CookieTime <= _30dEndTime && |
|
|
ocd.IsEnabled == true) |
|
|
ocd.IsEnabled == true) |
|
|
.GroupBy((jad, jr, ocd) => jad.AdId) |
|
|
.GroupBy((jad, jr, ocd) => jad.AdId) |
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
@ -1207,15 +1202,13 @@ namespace BBWY.Server.Business.Statistics |
|
|
AdId = g.Key |
|
|
AdId = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _customCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>() |
|
|
var _customCosts = fsql.Select<JDPopularizeAdSku>() |
|
|
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku && jas1.Date == jas2.Date) |
|
|
.Where(jas => skuIds.Contains(jas.Sku) && jas.Date >= gOIRequest.StartDate && jas.Date <= gOIRequest.EndDate) |
|
|
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdId.Value) && |
|
|
.GroupBy(jas => jas.Sku) |
|
|
jas2.Date >= gOIRequest.StartDate && jas2.Date <= gOIRequest.EndDate) |
|
|
|
|
|
.GroupBy((jas1, jas2) => jas1.AdId) |
|
|
|
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Cost = g.Sum(g.Value.Item2.Cost), |
|
|
Cost = g.Sum(g.Value.Cost), |
|
|
AdId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _customProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>() |
|
|
var _customProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>() |
|
@ -1231,14 +1224,13 @@ namespace BBWY.Server.Business.Statistics |
|
|
AdId = g.Key |
|
|
AdId = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var _totalAdCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>() |
|
|
var _totalCosts = fsql.Select<JDPopularizeAdSku>() |
|
|
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku && jas1.Date == jas2.Date) |
|
|
.Where(jas => skuIds.Contains(jas.Sku)) |
|
|
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdId.Value)) |
|
|
.GroupBy(jas => jas.Sku) |
|
|
.GroupBy((jas1, jas2) => jas1.AdId) |
|
|
|
|
|
.ToList(g => new |
|
|
.ToList(g => new |
|
|
{ |
|
|
{ |
|
|
Cost = g.Sum(g.Value.Item2.Cost), |
|
|
Cost = g.Sum(g.Value.Cost), |
|
|
AdId = g.Key |
|
|
Sku = g.Key |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var list = new List<JDProductAndPopularizeLevelGOIResponse>(); |
|
|
var list = new List<JDProductAndPopularizeLevelGOIResponse>(); |
|
@ -1248,16 +1240,19 @@ namespace BBWY.Server.Business.Statistics |
|
|
{ |
|
|
{ |
|
|
LevelId = levelId |
|
|
LevelId = levelId |
|
|
}; |
|
|
}; |
|
|
goiResponse._7GOI.Cost = _7dCosts.FirstOrDefault(x => x.AdId == levelId)?.Cost ?? 0M; |
|
|
|
|
|
|
|
|
var currentLevelIdSkuIds = adList.Where(ad => ad.AdId == levelId).Select(ad => ad.Sku).Distinct().ToList(); |
|
|
|
|
|
|
|
|
|
|
|
goiResponse._7GOI.Cost = _7dCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; |
|
|
goiResponse._7GOI.Profit = _7dProfits.FirstOrDefault(x => x.AdId == levelId)?.Profit ?? 0M; |
|
|
goiResponse._7GOI.Profit = _7dProfits.FirstOrDefault(x => x.AdId == levelId)?.Profit ?? 0M; |
|
|
|
|
|
|
|
|
goiResponse._30GOI.Cost = _30dCosts.FirstOrDefault(x => x.AdId == levelId)?.Cost ?? 0M; |
|
|
goiResponse._30GOI.Cost = _30dCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; |
|
|
goiResponse._30GOI.Profit = _30dProfits.FirstOrDefault(x => x.AdId == levelId)?.Profit ?? 0M; |
|
|
goiResponse._30GOI.Profit = _30dProfits.FirstOrDefault(x => x.AdId == levelId)?.Profit ?? 0M; |
|
|
|
|
|
|
|
|
goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => x.AdId == levelId)?.Cost ?? 0M; |
|
|
goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; |
|
|
goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => x.AdId == levelId)?.Profit ?? 0M; |
|
|
goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => x.AdId == levelId)?.Profit ?? 0M; |
|
|
|
|
|
|
|
|
goiResponse.TotalCost = _totalAdCosts.FirstOrDefault(x => x.AdId == levelId)?.Cost ?? 0M; |
|
|
goiResponse.TotalCost = _totalCosts.FirstOrDefault(x => currentLevelIdSkuIds.Contains(x.Sku))?.Cost ?? 0M; |
|
|
list.Add(goiResponse); |
|
|
list.Add(goiResponse); |
|
|
} |
|
|
} |
|
|
return list; |
|
|
return list; |
|
|