shanji 3 years ago
parent
commit
06e2b9176a
  1. 178
      BBWY.Server.Business/Statistics/JDReportFormStatisticsBusiness.cs
  2. 4
      BBWY.Server.Model/Dto/Response/Statistics/JDReportForm/JDMultiLevelGOIResponse.cs

178
BBWY.Server.Business/Statistics/JDReportFormStatisticsBusiness.cs

@ -91,6 +91,14 @@ namespace BBWY.Server.Business.Statistics
Profit = g.Sum(g.Value.Item2.Profit)
});
var totalCampaginCosts = fsql.Select<JDPopularizeCampaign>().Where(x => gOIRequest.LevelIdList.Contains(x.CampaignId.Value))
.GroupBy(x => x.CampaignId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Cost),
CampaignId = g.Key
});
var list = new List<JDMultiLevelGOIResponse>();
foreach (var levelId in gOIRequest.LevelIdList)
{
@ -107,6 +115,8 @@ namespace BBWY.Server.Business.Statistics
goiResponse.CustomDaysGOI.Cost = customDaysCampaignCosts.FirstOrDefault(x => x.CampaignId == levelId)?.Cost ?? 0M;
goiResponse.CustomDaysGOI.Profit = customDaysCampaignProfits.FirstOrDefault(x => x.CampaignId == levelId)?.Profit ?? 0M;
goiResponse.TotalCost = totalCampaginCosts.FirstOrDefault(x => x.CampaignId == levelId)?.Cost ?? 0M;
list.Add(goiResponse);
}
return list;
@ -187,6 +197,14 @@ namespace BBWY.Server.Business.Statistics
Profit = g.Sum(g.Value.Item2.Profit)
});
var totalAdGroupCosts = fsql.Select<JDPopularizeAdGroup>().Where(x => gOIRequest.LevelIdList.Contains(x.AdGroupId.Value))
.GroupBy(x => x.AdGroupId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Cost),
AdGroupId = g.Key
});
var list = new List<JDMultiLevelGOIResponse>();
foreach (var levelId in gOIRequest.LevelIdList)
{
@ -203,6 +221,8 @@ namespace BBWY.Server.Business.Statistics
goiResponse.CustomDaysGOI.Cost = customDaysAdGroupCosts.FirstOrDefault(x => x.AdGroupId == levelId)?.Cost ?? 0M;
goiResponse.CustomDaysGOI.Profit = customDaysAdGroupProfits.FirstOrDefault(x => x.AdGroupId == levelId)?.Profit ?? 0M;
goiResponse.TotalCost = totalAdGroupCosts.FirstOrDefault(x => x.AdGroupId == levelId)?.Cost ?? 0M;
list.Add(goiResponse);
}
return list;
@ -283,6 +303,14 @@ namespace BBWY.Server.Business.Statistics
Profit = g.Sum(g.Value.Item2.Profit)
});
var totalAdCosts = fsql.Select<JDPopularizeAdSku>().Where(x => gOIRequest.LevelIdList.Contains(x.AdId.Value))
.GroupBy(x => x.AdId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Cost),
AdId = g.Key
});
var list = new List<JDMultiLevelGOIResponse>();
foreach (var levelId in gOIRequest.LevelIdList)
{
@ -299,6 +327,8 @@ namespace BBWY.Server.Business.Statistics
goiResponse.CustomDaysGOI.Cost = customDaysAdCosts.FirstOrDefault(x => x.AdId == levelId)?.Cost ?? 0M;
goiResponse.CustomDaysGOI.Profit = customDaysAdProfits.FirstOrDefault(x => x.AdId == levelId)?.Profit ?? 0M;
goiResponse.TotalCost = totalAdCosts.FirstOrDefault(x => x.AdId == levelId)?.Cost ?? 0M;
list.Add(goiResponse);
}
return list;
@ -385,6 +415,16 @@ namespace BBWY.Server.Business.Statistics
Profit = g.Sum(g.Value.Item2.Profit)
});
var skuTotalCosts = fsql.Select<JDPopularizeAdSku>().Where(x => gOIRequest.LevelIdList.Contains(x.Sku) &&
x.BusinessType == 134217728)
.GroupBy(x => x.Sku)
.ToList(g => new
{
Cost = g.Sum(g.Value.Cost),
Sku = g.Key
});
var list = new List<JDSkuLevelGOIResponse>();
foreach (var levelId in gOIRequest.LevelIdList)
{
@ -401,6 +441,8 @@ namespace BBWY.Server.Business.Statistics
goiResponse.CustomDaysGOI.Cost = customDaysSkuCosts.FirstOrDefault(x => x.Sku == levelId)?.Cost ?? 0M;
goiResponse.CustomDaysGOI.Profit = customDaysSkuProfits.FirstOrDefault(x => x.Sku == levelId)?.Profit ?? 0M;
goiResponse.TotalCost = skuTotalCosts.FirstOrDefault(x => x.Sku == levelId)?.Cost ?? 0M;
list.Add(goiResponse);
}
return list;
@ -491,6 +533,17 @@ namespace BBWY.Server.Business.Statistics
CampaignId = g.Key
});
var _totalCampaignCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>()
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku)
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.CampaignId.Value))
.GroupBy((jas1, jas2) => jas1.CampaignId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Item2.Cost),
CampaignId = g.Key
});
var list = new List<JDProductAndPopularizeLevelGOIResponse>();
foreach (var levelId in gOIRequest.LevelIdList)
{
@ -506,6 +559,8 @@ namespace BBWY.Server.Business.Statistics
goiResponse.CustomDaysGOI.Cost = _customCampaignCosts.FirstOrDefault(x => x.CampaignId == levelId)?.Cost ?? 0M;
goiResponse.CustomDaysGOI.Profit = _customCampaignProfits.FirstOrDefault(x => x.CampaignId == levelId)?.Profit ?? 0M;
goiResponse.TotalCost = _totalCampaignCosts.FirstOrDefault(x => x.CampaignId == levelId)?.Cost ?? 0M;
list.Add(goiResponse);
}
return list;
@ -596,6 +651,16 @@ namespace BBWY.Server.Business.Statistics
AdGroupId = g.Key
});
var _totalAdGroupCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>()
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku)
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdGroupId.Value))
.GroupBy((jas1, jas2) => jas1.AdGroupId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Item2.Cost),
AdGroupId = g.Key
});
var list = new List<JDProductAndPopularizeLevelGOIResponse>();
foreach (var levelId in gOIRequest.LevelIdList)
{
@ -611,6 +676,7 @@ namespace BBWY.Server.Business.Statistics
goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => x.AdGroupId == levelId)?.Cost ?? 0M;
goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => x.AdGroupId == levelId)?.Profit ?? 0M;
goiResponse.TotalCost = _totalAdGroupCosts.FirstOrDefault(x => x.AdGroupId == levelId)?.Cost ?? 0M;
list.Add(goiResponse);
}
return list;
@ -701,6 +767,16 @@ namespace BBWY.Server.Business.Statistics
AdId = g.Key
});
var totalAdCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>()
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku)
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdId.Value))
.GroupBy((jas1, jas2) => jas1.AdId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Item2.Cost),
AdId = g.Key
});
var list = new List<JDProductAndPopularizeLevelGOIResponse>();
foreach (var levelId in gOIRequest.LevelIdList)
{
@ -716,6 +792,8 @@ namespace BBWY.Server.Business.Statistics
goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => x.AdId == levelId)?.Cost ?? 0M;
goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => x.AdId == levelId)?.Profit ?? 0M;
goiResponse.TotalCost = totalAdCosts.FirstOrDefault(x => x.AdId == levelId)?.Cost ?? 0M;
list.Add(goiResponse);
}
return list;
@ -803,6 +881,15 @@ namespace BBWY.Server.Business.Statistics
Sku = g.Key
});
var _totalSkuCosts = fsql.Select<JDPopularizeAdSku>()
.Where(jas => gOIRequest.LevelIdList.Contains(jas.Sku))
.GroupBy(jas => jas.Sku)
.ToList(g => new
{
Cost = g.Sum(g.Value.Cost),
Sku = g.Key
});
var list = new List<JDSkuLevelProductAndPopularizeGOIResponse>();
foreach (var levelId in gOIRequest.LevelIdList)
{
@ -818,6 +905,8 @@ namespace BBWY.Server.Business.Statistics
goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => x.Sku == levelId)?.Cost ?? 0M;
goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => x.Sku == levelId)?.Profit ?? 0M;
goiResponse.TotalCost = _totalSkuCosts.FirstOrDefault(x => x.Sku == levelId)?.Cost ?? 0M;
list.Add(goiResponse);
}
return list;
@ -909,6 +998,16 @@ namespace BBWY.Server.Business.Statistics
CampaignId = g.Key
});
var _totalCampaignCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>()
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku)
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.CampaignId.Value))
.GroupBy((jas1, jas2) => jas1.CampaignId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Item2.Cost),
CampaignId = g.Key
});
var list = new List<JDProductAndPopularizeLevelGOIResponse>();
foreach (var levelId in gOIRequest.LevelIdList)
{
@ -924,6 +1023,8 @@ namespace BBWY.Server.Business.Statistics
goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => x.CampaignId == levelId)?.Cost ?? 0M;
goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => x.CampaignId == levelId)?.Profit ?? 0M;
goiResponse.TotalCost = _totalCampaignCosts.FirstOrDefault(x => x.CampaignId == levelId)?.Cost ?? 0M;
list.Add(goiResponse);
}
return list;
@ -1014,6 +1115,16 @@ namespace BBWY.Server.Business.Statistics
AdGroupId = g.Key
});
var _taotalAdGroupCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>()
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku)
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdGroupId.Value))
.GroupBy((jas1, jas2) => jas1.AdGroupId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Item2.Cost),
AdGroupId = g.Key
});
var list = new List<JDProductAndPopularizeLevelGOIResponse>();
foreach (var levelId in gOIRequest.LevelIdList)
{
@ -1029,6 +1140,8 @@ namespace BBWY.Server.Business.Statistics
goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => x.AdGroupId == levelId)?.Cost ?? 0M;
goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => x.AdGroupId == levelId)?.Profit ?? 0M;
goiResponse.TotalCost = _taotalAdGroupCosts.FirstOrDefault(x => x.AdGroupId == levelId)?.Cost ?? 0M;
list.Add(goiResponse);
}
return list;
@ -1054,7 +1167,7 @@ namespace BBWY.Server.Business.Statistics
.ToList(g => new
{
Cost = g.Sum(g.Value.Item2.Cost),
AdGroupId = g.Key
AdId = g.Key
});
var _7dProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>()
@ -1063,61 +1176,71 @@ namespace BBWY.Server.Business.Statistics
.Where((jad, jr, ocd) => gOIRequest.LevelIdList.Contains(jad.AdId.Value) &&
jr.CookieTime >= _7dStartDate && jr.CookieTime <= _7dEndDate &&
ocd.IsEnabled == true)
.GroupBy((jad, jr, ocd) => jad.AdGroupId)
.GroupBy((jad, jr, ocd) => jad.AdId)
.ToList(g => new
{
Profit = g.Sum(g.Value.Item3.SkuGrossProfit),
AdGroupId = g.Key
AdId = g.Key
});
var _30dCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>()
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku)
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdGroupId.Value) &&
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdId.Value) &&
jas2.Date >= _30dStartDate && jas2.Date <= _30dEndDate)
.GroupBy((jas1, jas2) => jas1.AdGroupId)
.GroupBy((jas1, jas2) => jas1.AdId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Item2.Cost),
AdGroupId = g.Key
AdId = g.Key
});
var _30dProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>()
.InnerJoin((jad, jr, ocd) => jad.Sku == jr.PopularizeSku)
.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.AdId.Value) &&
jr.CookieTime >= _30dStartDate && jr.CookieTime <= _30dEndDate &&
ocd.IsEnabled == true)
.GroupBy((jad, jr, ocd) => jad.AdGroupId)
.GroupBy((jad, jr, ocd) => jad.AdId)
.ToList(g => new
{
Profit = g.Sum(g.Value.Item3.SkuGrossProfit),
AdGroupId = g.Key
AdId = g.Key
});
var _customCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>()
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku)
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdGroupId.Value) &&
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdId.Value) &&
jas2.Date >= gOIRequest.StartDate && jas2.Date <= gOIRequest.EndDate)
.GroupBy((jas1, jas2) => jas1.AdGroupId)
.GroupBy((jas1, jas2) => jas1.AdId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Item2.Cost),
AdGroupId = g.Key
AdId = g.Key
});
var _customProfits = fsql.Select<JDPopularizeAdSku, JDOrderPopularizeRelation, OrderCostDetail>()
.InnerJoin((jad, jr, ocd) => jad.Sku == jr.PopularizeSku)
.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.AdId.Value) &&
jr.CookieTime >= gOIRequest.StartDate && jr.CookieTime <= customEndTime &&
ocd.IsEnabled == true)
.GroupBy((jad, jr, ocd) => jad.AdGroupId)
.GroupBy((jad, jr, ocd) => jad.AdId)
.ToList(g => new
{
Profit = g.Sum(g.Value.Item3.SkuGrossProfit),
AdGroupId = g.Key
AdId = g.Key
});
var _totalAdCosts = fsql.Select<JDPopularizeAdSku, JDPopularizeAdSku>()
.InnerJoin((jas1, jas2) => jas1.Sku == jas2.Sku)
.Where((jas1, jas2) => gOIRequest.LevelIdList.Contains(jas1.AdId.Value))
.GroupBy((jas1, jas2) => jas1.AdId)
.ToList(g => new
{
Cost = g.Sum(g.Value.Item2.Cost),
AdId = g.Key
});
var list = new List<JDProductAndPopularizeLevelGOIResponse>();
foreach (var levelId in gOIRequest.LevelIdList)
{
@ -1125,14 +1248,16 @@ namespace BBWY.Server.Business.Statistics
{
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._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.AdGroupId == levelId)?.Cost ?? 0M;
goiResponse._30GOI.Profit = _30dProfits.FirstOrDefault(x => x.AdGroupId == levelId)?.Profit ?? 0M;
goiResponse._30GOI.Cost = _30dCosts.FirstOrDefault(x => x.AdId == levelId)?.Cost ?? 0M;
goiResponse._30GOI.Profit = _30dProfits.FirstOrDefault(x => x.AdId == levelId)?.Profit ?? 0M;
goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => x.AdGroupId == levelId)?.Cost ?? 0M;
goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => x.AdGroupId == levelId)?.Profit ?? 0M;
goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => x.AdId == levelId)?.Cost ?? 0M;
goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => x.AdId == levelId)?.Profit ?? 0M;
goiResponse.TotalCost = _totalAdCosts.FirstOrDefault(x => x.AdId == levelId)?.Cost ?? 0M;
list.Add(goiResponse);
}
return list;
@ -1220,6 +1345,15 @@ namespace BBWY.Server.Business.Statistics
Sku = g.Key
});
var _totalSkuCosts = fsql.Select<JDPopularizeAdSku>()
.Where(jas => gOIRequest.LevelIdList.Contains(jas.Sku))
.GroupBy(jas => jas.Sku)
.ToList(g => new
{
Cost = g.Sum(g.Value.Cost),
Sku = g.Key
});
var list = new List<JDSkuLevelProductAndPopularizeGOIResponse>();
foreach (var levelId in gOIRequest.LevelIdList)
{
@ -1235,6 +1369,8 @@ namespace BBWY.Server.Business.Statistics
goiResponse.CustomDaysGOI.Cost = _customCosts.FirstOrDefault(x => x.Sku == levelId)?.Cost ?? 0M;
goiResponse.CustomDaysGOI.Profit = _customProfits.FirstOrDefault(x => x.Sku == levelId)?.Profit ?? 0M;
goiResponse.TotalCost = _totalSkuCosts.FirstOrDefault(x => x.Sku == levelId)?.Cost ?? 0M;
list.Add(goiResponse);
}
return list;

4
BBWY.Server.Model/Dto/Response/Statistics/JDReportForm/JDMultiLevelGOIResponse.cs

@ -21,6 +21,8 @@
public GOIResponse _30GOI { get; set; }
public GOIResponse CustomDaysGOI { get; set; }
public decimal TotalCost { get; set; }
}
public class JDSkuLevelGOIResponse : JDMultiLevelGOIResponse
@ -44,6 +46,8 @@
public GOIResponse _30GOI { get; set; }
public GOIResponse CustomDaysGOI { get; set; }
public decimal TotalCost { get; set; }
}
public class JDSkuLevelProductAndPopularizeGOIResponse : JDProductAndPopularizeLevelGOIResponse

Loading…
Cancel
Save