|
|
@ -33,7 +33,7 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
|
|
|
|
public void StartCheckGOI() |
|
|
|
{ |
|
|
|
var shopList = venderBusiness.GetShopList(shopId: 11514921, platform: Enums.Platform.京东, filterSiNan: true); |
|
|
|
var shopList = venderBusiness.GetShopList(platform: Enums.Platform.京东, filterSiNan: true); |
|
|
|
foreach (var shop in shopList) |
|
|
|
{ |
|
|
|
Task.Factory.StartNew(() => CheckGOI(shop), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.GOIWarningTaskScheduler); |
|
|
@ -70,10 +70,10 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
var skuIds = yesterdayJDpopularizeadskuList.Where(s => s.BusinessType == 134217728).Select(s => s.Sku).Distinct().ToList(); |
|
|
|
|
|
|
|
|
|
|
|
bool isSendDingTalk = false; |
|
|
|
var dingdingContentBuilder = new StringBuilder(); |
|
|
|
dingdingContentBuilder.Append(shop.ShopName); |
|
|
|
dingdingContentBuilder.AppendLine(); |
|
|
|
IList<StringBuilder> dingdingSendBuilderList = new List<StringBuilder>(); |
|
|
|
StringBuilder adGroupDingdingContentBuilder = null; |
|
|
|
StringBuilder adDingdingContentBuilder = null; |
|
|
|
StringBuilder skuDingdingContentBuilder = null; |
|
|
|
|
|
|
|
var growupCost = 0; //成长加速期花费阈值
|
|
|
|
var growupLevel1Cost = 0; //成长加速期第一阶段成本
|
|
|
@ -208,10 +208,10 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{adGroup.CampaignName}-{adGroup.AdGroupName} 处于{siNanCycleType},近7天GOI低于{growupLevel2MinGOI},请及时优化!"; |
|
|
|
} |
|
|
|
else if (adGroupGOI.CustomDaysGOI.GOI < growupLevel2MaxGOI) |
|
|
|
else if (adGroupGOI.CustomDaysGOI.GOI > growupLevel2MaxGOI) |
|
|
|
{ |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{adGroup.CampaignName}-{adGroup.AdGroupName} 处于{siNanCycleType},近7天GOI低于{growupLevel2MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
dingdingWarningContent = $"{adGroup.CampaignName}-{adGroup.AdGroupName} 处于{siNanCycleType},近7天GOI高于{growupLevel2MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
} |
|
|
|
} |
|
|
|
else if (adGroupGOI.TotalCost >= growupLevel3MinCost && adGroupGOI.TotalCost <= growupLevel3MaxCost) |
|
|
@ -221,10 +221,10 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{adGroup.CampaignName}-{adGroup.AdGroupName} 处于{siNanCycleType},近7天GOI低于{growupLevel3MinGOI},请及时优化!"; |
|
|
|
} |
|
|
|
else if (adGroupGOI.CustomDaysGOI.GOI < growupLevel3MaxGOI) |
|
|
|
else if (adGroupGOI.CustomDaysGOI.GOI > growupLevel3MaxGOI) |
|
|
|
{ |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{adGroup.CampaignName}-{adGroup.AdGroupName} 处于{siNanCycleType},近7天GOI低于{growupLevel3MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
dingdingWarningContent = $"{adGroup.CampaignName}-{adGroup.AdGroupName} 处于{siNanCycleType},近7天GOI高于{growupLevel3MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -239,7 +239,7 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
else if (adGroupGOI.CustomDaysGOI.GOI > matureLevel1MaxGOI) |
|
|
|
{ |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{adGroup.CampaignName}-{adGroup.AdGroupName} 处于{siNanCycleType},近7天GOI低于{matureLevel1MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
dingdingWarningContent = $"{adGroup.CampaignName}-{adGroup.AdGroupName} 处于{siNanCycleType},近7天GOI高于{matureLevel1MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
} |
|
|
|
} |
|
|
|
else if (adGroupGOI.TotalCost >= stableCost && adGroupGOI.CustomDaysGOI.Cost < stable7dCost) |
|
|
@ -253,7 +253,7 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
else if (adGroupGOI.CustomDaysGOI.GOI > stableLevel1MaxGOI) |
|
|
|
{ |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{adGroup.CampaignName}-{adGroup.AdGroupName} 处于{siNanCycleType},近7天GOI低于{stableLevel1MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
dingdingWarningContent = $"{adGroup.CampaignName}-{adGroup.AdGroupName} 处于{siNanCycleType},近7天GOI高于{stableLevel1MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -265,13 +265,16 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
nLogManager.GetLogger(loggerName).Info(logContentBuilder); |
|
|
|
if (isWarning) |
|
|
|
{ |
|
|
|
isSendDingTalk = true; |
|
|
|
if (!isAddBusinessTypeTitle) |
|
|
|
{ |
|
|
|
dingdingContentBuilder.Append("快车业务线-单元维度\n"); |
|
|
|
adGroupDingdingContentBuilder = new StringBuilder(); |
|
|
|
dingdingSendBuilderList.Add(adGroupDingdingContentBuilder); |
|
|
|
adGroupDingdingContentBuilder.Append(shop.ShopName); |
|
|
|
adGroupDingdingContentBuilder.AppendLine(); |
|
|
|
adGroupDingdingContentBuilder.Append("快车业务线-单元维度\n"); |
|
|
|
isAddBusinessTypeTitle = true; |
|
|
|
} |
|
|
|
dingdingContentBuilder.Append($"{dingdingWarningContent}{(i == adGroupGOIList.Count() - 1 ? "\r" : string.Empty)}\n"); |
|
|
|
adGroupDingdingContentBuilder.Append($"{dingdingWarningContent}{(i == adGroupGOIList.Count() - 1 ? "\r" : string.Empty)}\n"); |
|
|
|
} |
|
|
|
} |
|
|
|
#endregion
|
|
|
@ -317,10 +320,10 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{ad.CampaignName}-{ad.AdGroupName}-{ad.AdName} 处于{siNanCycleType},近7天GOI低于{growupLevel2MinGOI},请及时优化!"; |
|
|
|
} |
|
|
|
else if (adGOI.CustomDaysGOI.GOI < growupLevel2MaxGOI) |
|
|
|
else if (adGOI.CustomDaysGOI.GOI > growupLevel2MaxGOI) |
|
|
|
{ |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{ad.CampaignName}-{ad.AdGroupName}-{ad.AdName} 处于{siNanCycleType},近7天GOI低于{growupLevel2MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
dingdingWarningContent = $"{ad.CampaignName}-{ad.AdGroupName}-{ad.AdName} 处于{siNanCycleType},近7天GOI高于{growupLevel2MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
} |
|
|
|
} |
|
|
|
else if (adGOI.TotalCost >= growupLevel3MinCost && adGOI.TotalCost <= growupLevel3MaxCost) |
|
|
@ -330,10 +333,10 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{ad.CampaignName}-{ad.AdGroupName}-{ad.AdName} 处于{siNanCycleType},近7天GOI低于{growupLevel3MinGOI},请及时优化!"; |
|
|
|
} |
|
|
|
else if (adGOI.CustomDaysGOI.GOI < growupLevel3MaxGOI) |
|
|
|
else if (adGOI.CustomDaysGOI.GOI > growupLevel3MaxGOI) |
|
|
|
{ |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{ad.CampaignName}-{ad.AdGroupName}-{ad.AdName} 处于{siNanCycleType},近7天GOI低于{growupLevel3MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
dingdingWarningContent = $"{ad.CampaignName}-{ad.AdGroupName}-{ad.AdName} 处于{siNanCycleType},近7天GOI高于{growupLevel3MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -348,7 +351,7 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
else if (adGOI.CustomDaysGOI.GOI > matureLevel1MaxGOI) |
|
|
|
{ |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{ad.CampaignName}-{ad.AdGroupName}-{ad.AdName} 处于{siNanCycleType},近7天GOI低于{matureLevel1MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
dingdingWarningContent = $"{ad.CampaignName}-{ad.AdGroupName}-{ad.AdName} 处于{siNanCycleType},近7天GOI高于{matureLevel1MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
} |
|
|
|
} |
|
|
|
else if (adGOI.TotalCost >= stableCost && adGOI.CustomDaysGOI.Cost < stable7dCost) |
|
|
@ -362,7 +365,7 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
else if (adGOI.CustomDaysGOI.GOI > stableLevel1MaxGOI) |
|
|
|
{ |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{ad.CampaignName}-{ad.AdGroupName}-{ad.AdName} 处于{siNanCycleType},近7天GOI低于{stableLevel1MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
dingdingWarningContent = $"{ad.CampaignName}-{ad.AdGroupName}-{ad.AdName} 处于{siNanCycleType},近7天GOI高于{stableLevel1MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -375,14 +378,17 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
|
|
|
|
if (isWarning) |
|
|
|
{ |
|
|
|
isSendDingTalk = true; |
|
|
|
if (!isAddBusinessTypeTitle) |
|
|
|
{ |
|
|
|
dingdingContentBuilder.Append("快车业务线-创意维度\n"); |
|
|
|
adDingdingContentBuilder = new StringBuilder(); |
|
|
|
dingdingSendBuilderList.Add(adDingdingContentBuilder); |
|
|
|
adDingdingContentBuilder.Append(shop.ShopName); |
|
|
|
adDingdingContentBuilder.AppendLine(); |
|
|
|
adDingdingContentBuilder.Append("快车业务线-创意维度\n"); |
|
|
|
isAddBusinessTypeTitle = true; |
|
|
|
} |
|
|
|
|
|
|
|
dingdingContentBuilder.Append($"{dingdingWarningContent}{(i == adGOIList.Count() - 1 ? "\r" : string.Empty)}\n"); |
|
|
|
adDingdingContentBuilder.Append($"{dingdingWarningContent}{(i == adGOIList.Count() - 1 ? "\r" : string.Empty)}\n"); |
|
|
|
} |
|
|
|
} |
|
|
|
#endregion
|
|
|
@ -428,10 +434,10 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{sku.CampaignName}-{sku.Sku} 处于{siNanCycleType},近7天GOI低于{growupLevel2MinGOI},请及时优化!"; |
|
|
|
} |
|
|
|
else if (skuGOI.CustomDaysGOI.GOI < growupLevel2MaxGOI) |
|
|
|
else if (skuGOI.CustomDaysGOI.GOI > growupLevel2MaxGOI) |
|
|
|
{ |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{sku.CampaignName}-{sku.Sku} 处于{siNanCycleType},近7天GOI低于{growupLevel2MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
dingdingWarningContent = $"{sku.CampaignName}-{sku.Sku} 处于{siNanCycleType},近7天GOI高于{growupLevel2MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
} |
|
|
|
} |
|
|
|
else if (skuGOI.TotalCost >= growupLevel3MinCost && skuGOI.TotalCost <= growupLevel3MaxCost) |
|
|
@ -441,10 +447,10 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{sku.CampaignName}-{sku.Sku} 处于{siNanCycleType},近7天GOI低于{growupLevel3MinGOI},请及时优化!"; |
|
|
|
} |
|
|
|
else if (skuGOI.CustomDaysGOI.GOI < growupLevel3MaxGOI) |
|
|
|
else if (skuGOI.CustomDaysGOI.GOI > growupLevel3MaxGOI) |
|
|
|
{ |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{sku.CampaignName}-{sku.Sku} 处于{siNanCycleType},近7天GOI低于{growupLevel3MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
dingdingWarningContent = $"{sku.CampaignName}-{sku.Sku} 处于{siNanCycleType},近7天GOI高于{growupLevel3MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -460,7 +466,7 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
else if (skuGOI.CustomDaysGOI.GOI > matureLevel1MaxGOI) |
|
|
|
{ |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{sku.CampaignName}-{sku.Sku} 处于{siNanCycleType},近7天GOI低于{matureLevel1MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
dingdingWarningContent = $"{sku.CampaignName}-{sku.Sku} 处于{siNanCycleType},近7天GOI高于{matureLevel1MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
} |
|
|
|
} |
|
|
|
else if (skuGOI.TotalCost >= stableCost && skuGOI.CustomDaysGOI.Cost < stable7dCost) |
|
|
@ -474,7 +480,7 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
else if (skuGOI.CustomDaysGOI.GOI > stableLevel1MaxGOI) |
|
|
|
{ |
|
|
|
isWarning = true; |
|
|
|
dingdingWarningContent = $"{sku.CampaignName}-{sku.Sku} 处于{siNanCycleType},近7天GOI低于{stableLevel1MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
dingdingWarningContent = $"{sku.CampaignName}-{sku.Sku} 处于{siNanCycleType},近7天GOI高于{stableLevel1MaxGOI},舍不得孩子套不住狼,请及时优化!"; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -487,20 +493,26 @@ namespace BBWY.Server.Business.SiNan |
|
|
|
|
|
|
|
if (isWarning) |
|
|
|
{ |
|
|
|
isSendDingTalk = true; |
|
|
|
if (!isAddBusinessTypeTitle) |
|
|
|
{ |
|
|
|
dingdingContentBuilder.Append("京速推业务线-SKU维度\n"); |
|
|
|
skuDingdingContentBuilder = new StringBuilder(); |
|
|
|
dingdingSendBuilderList.Add(skuDingdingContentBuilder); |
|
|
|
skuDingdingContentBuilder.Append(shop.ShopName); |
|
|
|
skuDingdingContentBuilder.AppendLine(); |
|
|
|
skuDingdingContentBuilder.Append("京速推业务线-SKU维度\n"); |
|
|
|
isAddBusinessTypeTitle = true; |
|
|
|
} |
|
|
|
|
|
|
|
dingdingContentBuilder.Append($"{dingdingWarningContent}{(i == skuGOIList.Count() - 1 ? "\r" : string.Empty)}\n"); |
|
|
|
skuDingdingContentBuilder.Append($"{dingdingWarningContent}{(i == skuGOIList.Count() - 1 ? "\r" : string.Empty)}\n"); |
|
|
|
} |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
|
|
|
|
if (isSendDingTalk) |
|
|
|
dingDingBusiness.SendDingDingBotMessage(shop.SiNanDingDingKey, shop.SiNanDingDingWebHook, dingdingContentBuilder.ToString()); |
|
|
|
if (dingdingSendBuilderList.Count > 0) |
|
|
|
{ |
|
|
|
foreach(var sendBuilder in dingdingSendBuilderList) |
|
|
|
dingDingBusiness.SendDingDingBotMessage(shop.SiNanDingDingKey, shop.SiNanDingDingWebHook, sendBuilder.ToString()); |
|
|
|
} |
|
|
|
} |
|
|
|
catch (Exception ex) |
|
|
|
{ |
|
|
|