|
|
@ -33,7 +33,7 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
|
|
|
|
public void StartCheckGOI() |
|
|
|
{ |
|
|
|
var shopList = venderBusiness.GetShopList(platform: Enums.Platform.京东, filterSiNan: true); |
|
|
|
var shopList = venderBusiness.GetShopList(shopId: 11514921, platform: Enums.Platform.京东, filterSiNan: true); |
|
|
|
foreach (var shop in shopList) |
|
|
|
{ |
|
|
|
Task.Factory.StartNew(() => CheckGOI(shop), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.GOIWarningTaskScheduler); |
|
|
@ -77,15 +77,14 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
|
|
|
|
var growupCost = 0; //成长加速期花费阈值
|
|
|
|
var growupLevel1Cost = 0; //成长加速期第一阶段成本
|
|
|
|
var growupLevel2Cost = 0; //成长加速期第二阶段成本
|
|
|
|
var growupLevel2MinCost = 0; //成长加速期第二阶段最低成本
|
|
|
|
var growupLevel2MaxCost = 0M; //成长加速期第二阶段最大成本
|
|
|
|
var growupLevel2MinGOI = 0M; //成长加速器第二阶段最低GOI
|
|
|
|
var growupLevel2MaxGOI = 0M; //成长加速器第二阶段最大GOI
|
|
|
|
var growupLevel3Cost = 0; //成长加速期第三阶段成本
|
|
|
|
var growupLevel3MinCost = 0; //成长加速期第三阶段最小成本
|
|
|
|
var growupLevel3MaxCost = 0M; //成长加速期第三阶段最大成本
|
|
|
|
var growupLevel3MinGOI = 0M; //成长加速器第三阶段最低GOI
|
|
|
|
var growupLevel3MaxGOI = 0M; //成长加速器第三阶段最大GOI
|
|
|
|
var growupLevel4Cost = 0; //成长加速期第四阶段成本
|
|
|
|
var growupLevel4MinGOI = 0M; //成长加速器第四阶段最低GOI
|
|
|
|
var growupLevel4MaxGOI = 0M; //成长加速器第四阶段最大GOI
|
|
|
|
|
|
|
|
var matureCost = 0; //成熟期花费阈值
|
|
|
|
var mature7dCost = 0; //成熟期7天花费阈值
|
|
|
@ -102,15 +101,14 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
{ |
|
|
|
growupCost = 300; |
|
|
|
growupLevel1Cost = 100; |
|
|
|
growupLevel2Cost = 100; |
|
|
|
growupLevel2MinCost = 100; |
|
|
|
growupLevel2MaxCost = 199.9M; |
|
|
|
growupLevel2MinGOI = 0.5M; |
|
|
|
growupLevel2MaxGOI = 1.1M; |
|
|
|
growupLevel3Cost = 200; |
|
|
|
growupLevel3MinCost = 200; |
|
|
|
growupLevel3MaxCost = 299.9M; |
|
|
|
growupLevel3MinGOI = 0.7M; |
|
|
|
growupLevel3MaxGOI = 1.1M; |
|
|
|
growupLevel4Cost = 300; |
|
|
|
growupLevel4MinGOI = 0.9M; |
|
|
|
growupLevel4MaxGOI = 1.1M; |
|
|
|
|
|
|
|
matureCost = 300; |
|
|
|
mature7dCost = 150; |
|
|
@ -126,15 +124,14 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
{ |
|
|
|
growupCost = 600; |
|
|
|
growupLevel1Cost = 200; |
|
|
|
growupLevel2Cost = 200; |
|
|
|
growupLevel2MinCost = 200; |
|
|
|
growupLevel2MaxCost = 399.9M; |
|
|
|
growupLevel2MinGOI = 0.5M; |
|
|
|
growupLevel2MaxGOI = 1.1M; |
|
|
|
growupLevel3Cost = 400; |
|
|
|
growupLevel3MinCost = 400; |
|
|
|
growupLevel3MaxCost = 599.9M; |
|
|
|
growupLevel3MinGOI = 0.7M; |
|
|
|
growupLevel3MaxGOI = 1.1M; |
|
|
|
growupLevel4Cost = 600; |
|
|
|
growupLevel4MinGOI = 0.9M; |
|
|
|
growupLevel4MaxGOI = 1.1M; |
|
|
|
|
|
|
|
matureCost = 600; |
|
|
|
mature7dCost = 300; |
|
|
@ -150,15 +147,14 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
{ |
|
|
|
growupCost = 1000; |
|
|
|
growupLevel1Cost = 300; |
|
|
|
growupLevel2Cost = 300; |
|
|
|
growupLevel2MinCost = 300; |
|
|
|
growupLevel2MaxCost = 699.9M; |
|
|
|
growupLevel2MinGOI = 0.5M; |
|
|
|
growupLevel2MaxGOI = 1.1M; |
|
|
|
growupLevel3Cost = 700; |
|
|
|
growupLevel3MinCost = 700; |
|
|
|
growupLevel3MaxCost = 999.9M; |
|
|
|
growupLevel3MinGOI = 0.7M; |
|
|
|
growupLevel3MaxGOI = 1.1M; |
|
|
|
growupLevel4Cost = 999; |
|
|
|
growupLevel4MinGOI = 0.9M; |
|
|
|
growupLevel4MaxGOI = 1.1M; |
|
|
|
|
|
|
|
matureCost = 1000; |
|
|
|
mature7dCost = 500; |
|
|
@ -182,8 +178,10 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
EndDate = yesterday |
|
|
|
}); |
|
|
|
|
|
|
|
foreach (var adGroupGOI in adGroupGOIList) |
|
|
|
//foreach (var adGroupGOI in adGroupGOIList)
|
|
|
|
for (var i = 0; i < adGroupGOIList.Count(); i++) |
|
|
|
{ |
|
|
|
var adGroupGOI = adGroupGOIList[i]; |
|
|
|
var adGroup = yesterdayJDpopularizeadskuList.FirstOrDefault(s => s.AdGroupId == adGroupGOI.LevelId); |
|
|
|
if (adGroup == null) |
|
|
|
continue; |
|
|
@ -203,20 +201,20 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
//不建议调整
|
|
|
|
isWarning = false; |
|
|
|
} |
|
|
|
else if (adGroupGOI.TotalCost >= growupLevel4Cost) |
|
|
|
else if (adGroupGOI.TotalCost >= growupLevel2MinCost && adGroupGOI.TotalCost <= growupLevel2MaxCost) |
|
|
|
{ |
|
|
|
if (adGroupGOI.CustomDaysGOI.GOI < growupLevel4MinGOI) |
|
|
|
if (adGroupGOI.CustomDaysGOI.GOI < growupLevel2MinGOI) |
|
|
|
{ |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{adGroup.CampaignName}-{adGroup.AdGroupName} 处于{siNanCycleType},近7天GOI低于{growupLevel4MinGOI},请及时优化!"; |
|
|
|
dingdingWarningContent = $"{adGroup.CampaignName}-{adGroup.AdGroupName} 处于{siNanCycleType},近7天GOI低于{growupLevel2MinGOI},请及时优化!"; |
|
|
|
} |
|
|
|
else if (adGroupGOI.CustomDaysGOI.GOI > growupLevel4MaxGOI) |
|
|
|
else if (adGroupGOI.CustomDaysGOI.GOI < growupLevel2MaxGOI) |
|
|
|
{ |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{adGroup.CampaignName}-{adGroup.AdGroupName} 处于{siNanCycleType},近7天GOI低于{growupLevel4MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
dingdingWarningContent = $"{adGroup.CampaignName}-{adGroup.AdGroupName} 处于{siNanCycleType},近7天GOI低于{growupLevel2MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
} |
|
|
|
} |
|
|
|
else if (adGroupGOI.TotalCost >= growupLevel3Cost) |
|
|
|
else if (adGroupGOI.TotalCost >= growupLevel3MinCost && adGroupGOI.TotalCost <= growupLevel3MaxCost) |
|
|
|
{ |
|
|
|
if (adGroupGOI.CustomDaysGOI.GOI < growupLevel3MinGOI) |
|
|
|
{ |
|
|
@ -229,21 +227,8 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
dingdingWarningContent = $"{adGroup.CampaignName}-{adGroup.AdGroupName} 处于{siNanCycleType},近7天GOI低于{growupLevel3MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
} |
|
|
|
} |
|
|
|
else if (adGroupGOI.TotalCost >= growupLevel2Cost) |
|
|
|
{ |
|
|
|
if (adGroupGOI.CustomDaysGOI.GOI < growupLevel2MinGOI) |
|
|
|
{ |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{adGroup.CampaignName}-{adGroup.AdGroupName} 处于{siNanCycleType},近7天GOI低于{growupLevel2MinGOI},请及时优化!"; |
|
|
|
} |
|
|
|
else if (adGroupGOI.CustomDaysGOI.GOI < growupLevel2MaxGOI) |
|
|
|
{ |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{adGroup.CampaignName}-{adGroup.AdGroupName} 处于{siNanCycleType},近7天GOI低于{growupLevel2MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if (adGroupGOI.TotalCost > matureCost && adGroupGOI.CustomDaysGOI.Cost > mature7dCost) |
|
|
|
else if (adGroupGOI.TotalCost >= matureCost && adGroupGOI.CustomDaysGOI.Cost >= mature7dCost) |
|
|
|
{ |
|
|
|
siNanCycleType = Enums.SiNanCycleType.成熟利润期; |
|
|
|
if (adGroupGOI.CustomDaysGOI.GOI < matureLevel1MinGOI) |
|
|
@ -257,7 +242,7 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
dingdingWarningContent = $"{adGroup.CampaignName}-{adGroup.AdGroupName} 处于{siNanCycleType},近7天GOI低于{matureLevel1MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
} |
|
|
|
} |
|
|
|
else if (adGroupGOI.TotalCost > stableCost && adGroupGOI.CustomDaysGOI.Cost < stable7dCost) |
|
|
|
else if (adGroupGOI.TotalCost >= stableCost && adGroupGOI.CustomDaysGOI.Cost < stable7dCost) |
|
|
|
{ |
|
|
|
siNanCycleType = Enums.SiNanCycleType.稳定日销期; |
|
|
|
if (adGroupGOI.CustomDaysGOI.GOI < stableLevel1MinGOI) |
|
|
@ -286,8 +271,7 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
dingdingContentBuilder.Append("快车业务线-单元维度\n"); |
|
|
|
isAddBusinessTypeTitle = true; |
|
|
|
} |
|
|
|
|
|
|
|
dingdingContentBuilder.Append($"{dingdingWarningContent}\n"); |
|
|
|
dingdingContentBuilder.Append($"{dingdingWarningContent}{(i == adGroupGOIList.Count() - 1 ? "\r" : string.Empty)}\n"); |
|
|
|
} |
|
|
|
} |
|
|
|
#endregion
|
|
|
@ -304,8 +288,9 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
EndDate = yesterday |
|
|
|
}); |
|
|
|
|
|
|
|
foreach (var adGOI in adGOIList) |
|
|
|
for (var i = 0; i < adGOIList.Count(); i++) |
|
|
|
{ |
|
|
|
var adGOI = adGOIList[i]; |
|
|
|
var ad = yesterdayJDpopularizeadskuList.FirstOrDefault(s => s.AdId == adGOI.LevelId); |
|
|
|
if (ad == null) |
|
|
|
continue; |
|
|
@ -325,20 +310,20 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
//不建议调整
|
|
|
|
isWarning = false; |
|
|
|
} |
|
|
|
else if (adGOI.TotalCost >= growupLevel4Cost) |
|
|
|
else if (adGOI.TotalCost >= growupLevel2MinCost && adGOI.TotalCost <= growupLevel2MaxCost) |
|
|
|
{ |
|
|
|
if (adGOI.CustomDaysGOI.GOI < growupLevel4MinGOI) |
|
|
|
if (adGOI.CustomDaysGOI.GOI < growupLevel2MinGOI) |
|
|
|
{ |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{ad.CampaignName}-{ad.AdGroupName}-{ad.AdName} 处于{siNanCycleType},近7天GOI低于{growupLevel4MinGOI},请及时优化!"; |
|
|
|
dingdingWarningContent = $"{ad.CampaignName}-{ad.AdGroupName}-{ad.AdName} 处于{siNanCycleType},近7天GOI低于{growupLevel2MinGOI},请及时优化!"; |
|
|
|
} |
|
|
|
else if (adGOI.CustomDaysGOI.GOI > growupLevel4MaxGOI) |
|
|
|
else if (adGOI.CustomDaysGOI.GOI < growupLevel2MaxGOI) |
|
|
|
{ |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{ad.CampaignName}-{ad.AdGroupName}-{ad.AdName} 处于{siNanCycleType},近7天GOI低于{growupLevel4MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
dingdingWarningContent = $"{ad.CampaignName}-{ad.AdGroupName}-{ad.AdName} 处于{siNanCycleType},近7天GOI低于{growupLevel2MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
} |
|
|
|
} |
|
|
|
else if (adGOI.TotalCost >= growupLevel3Cost) |
|
|
|
else if (adGOI.TotalCost >= growupLevel3MinCost && adGOI.TotalCost <= growupLevel3MaxCost) |
|
|
|
{ |
|
|
|
if (adGOI.CustomDaysGOI.GOI < growupLevel3MinGOI) |
|
|
|
{ |
|
|
@ -351,21 +336,8 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
dingdingWarningContent = $"{ad.CampaignName}-{ad.AdGroupName}-{ad.AdName} 处于{siNanCycleType},近7天GOI低于{growupLevel3MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
} |
|
|
|
} |
|
|
|
else if (adGOI.TotalCost >= growupLevel2Cost) |
|
|
|
{ |
|
|
|
if (adGOI.CustomDaysGOI.GOI < growupLevel2MinGOI) |
|
|
|
{ |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{ad.CampaignName}-{ad.AdGroupName}-{ad.AdName} 处于{siNanCycleType},近7天GOI低于{growupLevel2MinGOI},请及时优化!"; |
|
|
|
} |
|
|
|
else if (adGOI.CustomDaysGOI.GOI < growupLevel2MaxGOI) |
|
|
|
{ |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{ad.CampaignName}-{ad.AdGroupName}-{ad.AdName} 处于{siNanCycleType},近7天GOI低于{growupLevel2MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if (adGOI.TotalCost > matureCost && adGOI.CustomDaysGOI.Cost > mature7dCost) |
|
|
|
else if (adGOI.TotalCost >= matureCost && adGOI.CustomDaysGOI.Cost >= mature7dCost) |
|
|
|
{ |
|
|
|
siNanCycleType = Enums.SiNanCycleType.成熟利润期; |
|
|
|
if (adGOI.CustomDaysGOI.GOI < matureLevel1MinGOI) |
|
|
@ -379,7 +351,7 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
dingdingWarningContent = $"{ad.CampaignName}-{ad.AdGroupName}-{ad.AdName} 处于{siNanCycleType},近7天GOI低于{matureLevel1MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
} |
|
|
|
} |
|
|
|
else if (adGOI.TotalCost > stableCost && adGOI.CustomDaysGOI.Cost < stable7dCost) |
|
|
|
else if (adGOI.TotalCost >= stableCost && adGOI.CustomDaysGOI.Cost < stable7dCost) |
|
|
|
{ |
|
|
|
siNanCycleType = Enums.SiNanCycleType.稳定日销期; |
|
|
|
if (adGOI.CustomDaysGOI.GOI < stableLevel1MinGOI) |
|
|
@ -410,7 +382,7 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
isAddBusinessTypeTitle = true; |
|
|
|
} |
|
|
|
|
|
|
|
dingdingContentBuilder.Append($"{dingdingWarningContent}\n"); |
|
|
|
dingdingContentBuilder.Append($"{dingdingWarningContent}{(i == adGOIList.Count() - 1 ? "\r" : string.Empty)}\n"); |
|
|
|
} |
|
|
|
} |
|
|
|
#endregion
|
|
|
@ -427,8 +399,9 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
EndDate = yesterday |
|
|
|
}); |
|
|
|
|
|
|
|
foreach (var skuGOI in skuGOIList) |
|
|
|
for (var i = 0; i < skuGOIList.Count(); i++) |
|
|
|
{ |
|
|
|
var skuGOI = skuGOIList[i]; |
|
|
|
var sku = yesterdayJDpopularizeadskuList.FirstOrDefault(s => s.Sku == skuGOI.LevelId); |
|
|
|
if (sku == null) |
|
|
|
continue; |
|
|
@ -448,20 +421,20 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
//不建议调整
|
|
|
|
isWarning = false; |
|
|
|
} |
|
|
|
else if (skuGOI.TotalCost >= growupLevel4Cost) |
|
|
|
else if (skuGOI.TotalCost >= growupLevel2MinCost && skuGOI.TotalCost <= growupLevel2MaxCost) |
|
|
|
{ |
|
|
|
if (skuGOI.CustomDaysGOI.GOI < growupLevel4MinGOI) |
|
|
|
if (skuGOI.CustomDaysGOI.GOI < growupLevel2MinGOI) |
|
|
|
{ |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{sku.CampaignName}-{sku.Sku} 处于{siNanCycleType},近7天GOI低于{growupLevel4MinGOI},请及时优化!"; |
|
|
|
dingdingWarningContent = $"{sku.CampaignName}-{sku.Sku} 处于{siNanCycleType},近7天GOI低于{growupLevel2MinGOI},请及时优化!"; |
|
|
|
} |
|
|
|
else if (skuGOI.CustomDaysGOI.GOI > growupLevel4MaxGOI) |
|
|
|
else if (skuGOI.CustomDaysGOI.GOI < growupLevel2MaxGOI) |
|
|
|
{ |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{sku.CampaignName}-{sku.Sku} 处于{siNanCycleType},近7天GOI低于{growupLevel4MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
dingdingWarningContent = $"{sku.CampaignName}-{sku.Sku} 处于{siNanCycleType},近7天GOI低于{growupLevel2MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
} |
|
|
|
} |
|
|
|
else if (skuGOI.TotalCost >= growupLevel3Cost) |
|
|
|
else if (skuGOI.TotalCost >= growupLevel3MinCost && skuGOI.TotalCost <= growupLevel3MaxCost) |
|
|
|
{ |
|
|
|
if (skuGOI.CustomDaysGOI.GOI < growupLevel3MinGOI) |
|
|
|
{ |
|
|
@ -474,21 +447,9 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
dingdingWarningContent = $"{sku.CampaignName}-{sku.Sku} 处于{siNanCycleType},近7天GOI低于{growupLevel3MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
} |
|
|
|
} |
|
|
|
else if (skuGOI.TotalCost >= growupLevel2Cost) |
|
|
|
{ |
|
|
|
if (skuGOI.CustomDaysGOI.GOI < growupLevel2MinGOI) |
|
|
|
{ |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{sku.CampaignName}-{sku.Sku} 处于{siNanCycleType},近7天GOI低于{growupLevel2MinGOI},请及时优化!"; |
|
|
|
} |
|
|
|
else if (skuGOI.CustomDaysGOI.GOI < growupLevel2MaxGOI) |
|
|
|
{ |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{sku.CampaignName}-{sku.Sku} 处于{siNanCycleType},近7天GOI低于{growupLevel2MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
else if (skuGOI.TotalCost > matureCost && skuGOI.CustomDaysGOI.Cost > mature7dCost) |
|
|
|
else if (skuGOI.TotalCost >= matureCost && skuGOI.CustomDaysGOI.Cost >= mature7dCost) |
|
|
|
{ |
|
|
|
siNanCycleType = Enums.SiNanCycleType.成熟利润期; |
|
|
|
if (skuGOI.CustomDaysGOI.GOI < matureLevel1MinGOI) |
|
|
@ -502,7 +463,7 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
dingdingWarningContent = $"{sku.CampaignName}-{sku.Sku} 处于{siNanCycleType},近7天GOI低于{matureLevel1MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
} |
|
|
|
} |
|
|
|
else if (skuGOI.TotalCost > stableCost && skuGOI.CustomDaysGOI.Cost < stable7dCost) |
|
|
|
else if (skuGOI.TotalCost >= stableCost && skuGOI.CustomDaysGOI.Cost < stable7dCost) |
|
|
|
{ |
|
|
|
siNanCycleType = Enums.SiNanCycleType.稳定日销期; |
|
|
|
if (skuGOI.CustomDaysGOI.GOI < stableLevel1MinGOI) |
|
|
@ -533,7 +494,7 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
isAddBusinessTypeTitle = true; |
|
|
|
} |
|
|
|
|
|
|
|
dingdingContentBuilder.Append($"{dingdingWarningContent}\n"); |
|
|
|
dingdingContentBuilder.Append($"{dingdingWarningContent}{(i == skuGOIList.Count() - 1 ? "\r" : string.Empty)}\n"); |
|
|
|
} |
|
|
|
} |
|
|
|
#endregion
|
|
|
|