|
|
@ -201,13 +201,14 @@ namespace SiNan.Business |
|
|
|
{ |
|
|
|
var costs = fsql.Select<JDPopularizeAdSku>() |
|
|
|
.Where(jas => skuIdList.Contains(jas.Sku) && jas.Date >= startDate && jas.Date <= endDate) |
|
|
|
.GroupBy(jas => new { jas.Sku, jas.BusinessType }) |
|
|
|
.GroupBy(jas => new { jas.Sku, jas.BusinessType, jas.CampaignId }) |
|
|
|
.ToList(g => new |
|
|
|
{ |
|
|
|
Cost = g.Sum(g.Value.Cost), |
|
|
|
Clicks = g.Sum(g.Value.Clicks), |
|
|
|
g.Key.Sku, |
|
|
|
g.Key.BusinessType |
|
|
|
g.Key.BusinessType, |
|
|
|
g.Key.CampaignId |
|
|
|
}); |
|
|
|
|
|
|
|
var profits = fsql.Select<JDOrderPopularizeRelation, OrderCostDetail, Order>() |
|
|
@ -217,41 +218,34 @@ namespace SiNan.Business |
|
|
|
jr.CookieTime >= startDate && jr.CookieTime <= endDate && |
|
|
|
ocd.IsEnabled == true && |
|
|
|
o.OrderState != Enums.OrderState.已取消) |
|
|
|
.GroupBy((jr, ocd, o) => new { jr.PopularizeSku, jr.BusinessType }) |
|
|
|
.GroupBy((jr, ocd, o) => new { jr.PopularizeSku, jr.BusinessType, jr.CampaignId }) |
|
|
|
.ToList(g => new |
|
|
|
{ |
|
|
|
Profit = g.Sum(g.Value.Item2.SkuGrossProfit), |
|
|
|
Sku = g.Key.PopularizeSku, |
|
|
|
g.Key.BusinessType |
|
|
|
g.Key.BusinessType, |
|
|
|
g.Key.CampaignId |
|
|
|
}); |
|
|
|
|
|
|
|
IList<GOIByAdSku> list = new List<GOIByAdSku>(); |
|
|
|
foreach (var skuId in skuIdList) |
|
|
|
{ |
|
|
|
var currentCosts = costs.Where(c => c.Sku == skuId).ToList(); |
|
|
|
foreach (var cost in currentCosts) |
|
|
|
{ |
|
|
|
var kuaicheCost = costs.FirstOrDefault(x => x.Sku == skuId && x.BusinessType == 2); |
|
|
|
var kuaicheProfit = profits.FirstOrDefault(x => x.Sku == skuId && x.BusinessType == 2); |
|
|
|
if (kuaicheCost != null || kuaicheProfit != null) |
|
|
|
var profit = profits.FirstOrDefault(x => x.Sku == skuId && |
|
|
|
x.BusinessType == cost.BusinessType && |
|
|
|
x.CampaignId == cost.CampaignId); |
|
|
|
var adskuGoi = new GOIByAdSku() |
|
|
|
{ |
|
|
|
var cost = kuaicheCost?.Cost ?? 0M; |
|
|
|
var clicks = kuaicheCost?.Clicks ?? 0; |
|
|
|
var profit = kuaicheProfit?.Profit ?? 0M; |
|
|
|
var adskuGoi = new GOIByAdSku() { Sku = skuId, Cost = cost, Profit = profit, BusinessType = 2, Clicks = Convert.ToInt32(clicks) }; |
|
|
|
list.Add(adskuGoi); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
{ |
|
|
|
var zntfCost = costs.FirstOrDefault(x => x.Sku == skuId && x.BusinessType == 134217728); |
|
|
|
var zntfProfit = profits.FirstOrDefault(x => x.Sku == skuId && x.BusinessType == 134217728); |
|
|
|
if (zntfCost != null || zntfProfit != null) |
|
|
|
{ |
|
|
|
var cost = zntfCost?.Cost ?? 0M; |
|
|
|
var clicks = zntfCost?.Clicks ?? 0; |
|
|
|
var profit = zntfProfit?.Profit ?? 0M; |
|
|
|
var adskuGoi = new GOIByAdSku() { Sku = skuId, Cost = cost, Profit = profit, BusinessType = 134217728, Clicks = Convert.ToInt32(clicks) }; |
|
|
|
list.Add(adskuGoi); |
|
|
|
} |
|
|
|
Sku = skuId, |
|
|
|
Cost = cost.Cost, |
|
|
|
Profit = profit?.Profit ?? 0M, |
|
|
|
BusinessType = cost.BusinessType.Value, |
|
|
|
CampaignId = cost.CampaignId.Value, |
|
|
|
Clicks = Convert.ToInt32(cost.Clicks) |
|
|
|
}; |
|
|
|
list.Add(adskuGoi); |
|
|
|
} |
|
|
|
} |
|
|
|
return list; |
|
|
@ -265,8 +259,8 @@ namespace SiNan.Business |
|
|
|
.ToList(g => new |
|
|
|
{ |
|
|
|
Cost = g.Sum(g.Value.Cost), |
|
|
|
Sku = g.Key.Sku, |
|
|
|
BusinessType = g.Key.BusinessType |
|
|
|
g.Key.Sku, |
|
|
|
g.Key.BusinessType |
|
|
|
}); |
|
|
|
|
|
|
|
var profits = fsql.Select<OrderCostDetail, Order>() |
|
|
|