步步为盈
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

552 lines
29 KiB

3 years ago
using BBWY.Common.Extensions;
using BBWY.Common.Http;
using BBWY.Common.Models;
using BBWY.Server.Business.Statistics;
using BBWY.Server.Model;
using BBWY.Server.Model.Db;
using BBWY.Server.Model.Dto;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
3 years ago
using Yitter.IdGenerator;
namespace BBWY.Server.Business.SiNan
{
public class GOIWarningBusiness : BaseBusiness, IDenpendency
{
3 years ago
private TaskSchedulerManager taskSchedulerManager;
private VenderBusiness venderBusiness;
private JDReportFormStatisticsBusiness jDReportFormStatisticsBusiness;
private DingDingBusiness dingDingBusiness;
public GOIWarningBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, TaskSchedulerManager taskSchedulerManager, VenderBusiness venderBusiness, JDReportFormStatisticsBusiness jDReportFormStatisticsBusiness, DingDingBusiness dingDingBusiness) : base(fsql, nLogManager, idGenerator)
{
this.taskSchedulerManager = taskSchedulerManager;
this.venderBusiness = venderBusiness;
this.jDReportFormStatisticsBusiness = jDReportFormStatisticsBusiness;
this.dingDingBusiness = dingDingBusiness;
}
public void StartCheckGOI()
{
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);
}
}
3 years ago
private void CheckGOI(ShopResponse shop)
3 years ago
{
3 years ago
var loggerName = $"GOI预警-{shop.ShopName}";
try
{
var shopId = long.Parse(shop.ShopId);
var yesterday = DateTime.Now.Date.AddDays(-1);
var startQueryDay = yesterday.AddDays(-6);
var yesterdayJDpopularizeadskuList = fsql.Select<JDPopularizeAdSku, JDPopularizeCampaign, JDPopularizeAdGroup>()
.LeftJoin((s, c, adg) => s.CampaignId == c.CampaignId && s.Date == c.Date)
.LeftJoin((s, c, adg) => s.AdGroupId == adg.AdGroupId && s.Date == adg.Date)
.Where((s, c, adg) => s.ShopId == shopId && s.Date == yesterday)
.ToList((s, c, adg) => new
{
CampaignId = s.CampaignId,
CampaignName = c.CampaignName,
AdGroupId = s.AdGroupId,
AdGroupName = adg.AdGroupName,
AdId = s.AdId,
AdName = s.AdName,
BusinessType = s.BusinessType,
Sku = s.Sku
});
var adGroupIds = yesterdayJDpopularizeadskuList.Where(s => s.BusinessType == 2).Select(s => s.AdGroupId.Value).Distinct().ToList();
var adIds = yesterdayJDpopularizeadskuList.Where(s => s.BusinessType == 2).Select(s => s.AdId.Value).Distinct().ToList();
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();
var growupCost = 0; //成长加速期花费阈值
var growupLevel1Cost = 0; //成长加速期第一阶段成本
var growupLevel2Cost = 0; //成长加速期第二阶段成本
var growupLevel2MinGOI = 0M; //成长加速器第二阶段最低GOI
var growupLevel2MaxGOI = 0M; //成长加速器第二阶段最大GOI
var growupLevel3Cost = 0; //成长加速期第三阶段成本
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天花费阈值
var matureLevel1MinGOI = 0M; //成熟期第一阶段最低GOI
var matureLevel1MaxGOI = 0M; //成熟期第一阶段最大GOI
var stableCost = 0; //稳定期花费阈值
var stable7dCost = 0; //稳定期7天花费阈值
var stableLevel1MinGOI = 0M; //稳定期第一阶段最低GOI
var stableLevel1MaxGOI = 0M; //稳定期第一阶段最大GOI
if (shop.SiNanPolicyLevel == 0) //初级策略
{
growupCost = 300;
growupLevel1Cost = 100;
growupLevel2Cost = 100;
growupLevel2MinGOI = 0.5M;
growupLevel2MaxGOI = 1.1M;
growupLevel3Cost = 200;
growupLevel3MinGOI = 0.7M;
growupLevel3MaxGOI = 1.1M;
growupLevel4Cost = 300;
growupLevel4MinGOI = 0.9M;
growupLevel4MaxGOI = 1.1M;
matureCost = 300;
mature7dCost = 150;
matureLevel1MinGOI = 0.9M;
matureLevel1MaxGOI = 1.2M;
stableCost = 300;
stable7dCost = 150;
stableLevel1MinGOI = 1.0M;
stableLevel1MaxGOI = 2;
}
else if (shop.SiNanPolicyLevel == 1) //中级策略
{
growupCost = 600;
growupLevel1Cost = 200;
growupLevel2Cost = 200;
growupLevel2MinGOI = 0.5M;
growupLevel2MaxGOI = 1.1M;
growupLevel3Cost = 400;
growupLevel3MinGOI = 0.7M;
growupLevel3MaxGOI = 1.1M;
growupLevel4Cost = 600;
growupLevel4MinGOI = 0.9M;
growupLevel4MaxGOI = 1.1M;
matureCost = 600;
mature7dCost = 300;
matureLevel1MinGOI = 0.9M;
matureLevel1MaxGOI = 1.2M;
stableCost = 600;
stable7dCost = 300;
stableLevel1MinGOI = 1.0M;
stableLevel1MaxGOI = 2;
}
else if (shop.SiNanPolicyLevel == 2) //高级策略
{
growupCost = 1000;
growupLevel1Cost = 300;
growupLevel2Cost = 300;
growupLevel2MinGOI = 0.5M;
growupLevel2MaxGOI = 1.1M;
growupLevel3Cost = 700;
growupLevel3MinGOI = 0.7M;
growupLevel3MaxGOI = 1.1M;
growupLevel4Cost = 999;
growupLevel4MinGOI = 0.9M;
growupLevel4MaxGOI = 1.1M;
matureCost = 1000;
mature7dCost = 500;
matureLevel1MinGOI = 0.9M;
matureLevel1MaxGOI = 1.2M;
stableCost = 1000;
stable7dCost = 500;
stableLevel1MinGOI = 1.0M;
stableLevel1MaxGOI = 2;
}
#region 单元
bool isAddBusinessTypeTitle = false;
var adGroupGOIList = jDReportFormStatisticsBusiness.CalculationAdGroupLevelGOI(new GOIRequest()
{
BusinessType = 2,
LevelIdList = adGroupIds,
OnlyCustomDate = true,
3 years ago
StartDate = startQueryDay,
EndDate = yesterday
3 years ago
});
foreach (var adGroupGOI in adGroupGOIList)
{
var adGroup = yesterdayJDpopularizeadskuList.FirstOrDefault(s => s.AdGroupId == adGroupGOI.LevelId);
if (adGroup == null)
continue;
var logContentBuilder = new StringBuilder();
logContentBuilder.AppendLine($"单元维度 {adGroup.CampaignName}({adGroup.CampaignId})-{adGroup.AdGroupName}({adGroup.AdGroupId})");
Enums.SiNanCycleType? siNanCycleType = Enums.SiNanCycleType.;
bool isWarning = false;
string dingdingWarningContent = string.Empty;
if (adGroupGOI.TotalCost < growupCost)
{
siNanCycleType = Enums.SiNanCycleType.;
if (adGroupGOI.TotalCost < growupLevel1Cost)
{
//不建议调整
isWarning = false;
}
else if (adGroupGOI.TotalCost >= growupLevel4Cost)
{
if (adGroupGOI.CustomDaysGOI.GOI < growupLevel4MinGOI)
{
isWarning = true;
dingdingWarningContent = $"{adGroup.CampaignName}-{adGroup.AdGroupName} 处于{siNanCycleType},近7天GOI低于{growupLevel4MinGOI},请及时优化!";
}
else if (adGroupGOI.CustomDaysGOI.GOI > growupLevel4MaxGOI)
{
isWarning = true;
dingdingWarningContent = $"{adGroup.CampaignName}-{adGroup.AdGroupName} 处于{siNanCycleType},近7天GOI低于{growupLevel4MaxGOI},舍不得孩子套不住狼,请及时优化!";
}
}
else if (adGroupGOI.TotalCost >= growupLevel3Cost)
{
if (adGroupGOI.CustomDaysGOI.GOI < growupLevel3MinGOI)
{
isWarning = true;
dingdingWarningContent = $"{adGroup.CampaignName}-{adGroup.AdGroupName} 处于{siNanCycleType},近7天GOI低于{growupLevel3MinGOI},请及时优化!";
}
else if (adGroupGOI.CustomDaysGOI.GOI < growupLevel3MaxGOI)
{
isWarning = true;
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)
{
siNanCycleType = Enums.SiNanCycleType.;
if (adGroupGOI.CustomDaysGOI.GOI < matureLevel1MinGOI)
{
isWarning = true;
dingdingWarningContent = $"{adGroup.CampaignName}-{adGroup.AdGroupName} 处于{siNanCycleType},近7天GOI低于{matureLevel1MinGOI},请及时优化!";
}
else if (adGroupGOI.CustomDaysGOI.GOI > matureLevel1MaxGOI)
{
isWarning = true;
dingdingWarningContent = $"{adGroup.CampaignName}-{adGroup.AdGroupName} 处于{siNanCycleType},近7天GOI低于{matureLevel1MaxGOI},舍不得孩子套不住狼,请及时优化!";
}
}
else if (adGroupGOI.TotalCost > stableCost && adGroupGOI.CustomDaysGOI.Cost < stable7dCost)
{
siNanCycleType = Enums.SiNanCycleType.;
if (adGroupGOI.CustomDaysGOI.GOI < stableLevel1MinGOI)
{
isWarning = true;
dingdingWarningContent = $"{adGroup.CampaignName}-{adGroup.AdGroupName} 处于{siNanCycleType},近7天GOI低于{stableLevel1MinGOI},请及时优化!";
}
else if (adGroupGOI.CustomDaysGOI.GOI > stableLevel1MaxGOI)
{
isWarning = true;
dingdingWarningContent = $"{adGroup.CampaignName}-{adGroup.AdGroupName} 处于{siNanCycleType},近7天GOI低于{stableLevel1MaxGOI},舍不得孩子套不住狼,请及时优化!";
}
}
logContentBuilder.AppendLine($"{siNanCycleType}");
logContentBuilder.AppendLine($"累计推广花费{adGroupGOI.TotalCost}");
logContentBuilder.AppendLine($"近7天花费{adGroupGOI.CustomDaysGOI.Cost}");
logContentBuilder.AppendLine($"近7天GOI{adGroupGOI.CustomDaysGOI.GOI}");
logContentBuilder.AppendLine($"是否出发预警{isWarning}");
3 years ago
nLogManager.GetLogger(loggerName).Info(logContentBuilder);
3 years ago
if (isWarning)
{
isSendDingTalk = true;
if (!isAddBusinessTypeTitle)
{
dingdingContentBuilder.Append("快车业务线-单元维度\n");
isAddBusinessTypeTitle = true;
}
dingdingContentBuilder.Append($"{dingdingWarningContent}\n");
}
}
#endregion
#region 创意
isAddBusinessTypeTitle = false;
var adGOIList = jDReportFormStatisticsBusiness.CalculationAdLevelGOI(new GOIRequest()
{
BusinessType = 2,
LevelIdList = adIds,
OnlyCustomDate = true,
3 years ago
StartDate = startQueryDay,
EndDate = yesterday
3 years ago
});
foreach (var adGOI in adGOIList)
{
var ad = yesterdayJDpopularizeadskuList.FirstOrDefault(s => s.AdId == adGOI.LevelId);
if (ad == null)
continue;
var logContentBuilder = new StringBuilder();
logContentBuilder.AppendLine($"创意维度 {ad.CampaignName}({ad.CampaignId})-{ad.AdGroupName}({ad.AdGroupId})-{ad.AdName}({ad.AdId})");
Enums.SiNanCycleType? siNanCycleType = Enums.SiNanCycleType.;
bool isWarning = false;
string dingdingWarningContent = string.Empty;
if (adGOI.TotalCost < growupCost)
{
siNanCycleType = Enums.SiNanCycleType.;
if (adGOI.TotalCost < growupLevel1Cost)
{
//不建议调整
isWarning = false;
}
else if (adGOI.TotalCost >= growupLevel4Cost)
{
if (adGOI.CustomDaysGOI.GOI < growupLevel4MinGOI)
{
isWarning = true;
dingdingWarningContent = $"{ad.CampaignName}-{ad.AdGroupName}-{ad.AdName} 处于{siNanCycleType},近7天GOI低于{growupLevel4MinGOI},请及时优化!";
}
else if (adGOI.CustomDaysGOI.GOI > growupLevel4MaxGOI)
{
isWarning = true;
dingdingWarningContent = $"{ad.CampaignName}-{ad.AdGroupName}-{ad.AdName} 处于{siNanCycleType},近7天GOI低于{growupLevel4MaxGOI},舍不得孩子套不住狼,请及时优化!";
}
}
else if (adGOI.TotalCost >= growupLevel3Cost)
{
if (adGOI.CustomDaysGOI.GOI < growupLevel3MinGOI)
{
isWarning = true;
dingdingWarningContent = $"{ad.CampaignName}-{ad.AdGroupName}-{ad.AdName} 处于{siNanCycleType},近7天GOI低于{growupLevel3MinGOI},请及时优化!";
}
else if (adGOI.CustomDaysGOI.GOI < growupLevel3MaxGOI)
{
isWarning = true;
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)
{
siNanCycleType = Enums.SiNanCycleType.;
if (adGOI.CustomDaysGOI.GOI < matureLevel1MinGOI)
{
isWarning = true;
dingdingWarningContent = $"{ad.CampaignName}-{ad.AdGroupName}-{ad.AdName} 处于{siNanCycleType},近7天GOI低于{matureLevel1MinGOI},请及时优化!";
}
else if (adGOI.CustomDaysGOI.GOI > matureLevel1MaxGOI)
{
isWarning = true;
dingdingWarningContent = $"{ad.CampaignName}-{ad.AdGroupName}-{ad.AdName} 处于{siNanCycleType},近7天GOI低于{matureLevel1MaxGOI},舍不得孩子套不住狼,请及时优化!";
}
}
else if (adGOI.TotalCost > stableCost && adGOI.CustomDaysGOI.Cost < stable7dCost)
{
siNanCycleType = Enums.SiNanCycleType.;
if (adGOI.CustomDaysGOI.GOI < stableLevel1MinGOI)
{
isWarning = true;
dingdingWarningContent = $"{ad.CampaignName}-{ad.AdGroupName}-{ad.AdName} 处于{siNanCycleType},近7天GOI低于{stableLevel1MinGOI},请及时优化!";
}
else if (adGOI.CustomDaysGOI.GOI > stableLevel1MaxGOI)
{
isWarning = true;
dingdingWarningContent = $"{ad.CampaignName}-{ad.AdGroupName}-{ad.AdName} 处于{siNanCycleType},近7天GOI低于{stableLevel1MaxGOI},舍不得孩子套不住狼,请及时优化!";
}
}
logContentBuilder.AppendLine($"{siNanCycleType}");
logContentBuilder.AppendLine($"累计推广花费{adGOI.TotalCost}");
logContentBuilder.AppendLine($"近7天花费{adGOI.CustomDaysGOI.Cost}");
logContentBuilder.AppendLine($"近7天GOI{adGOI.CustomDaysGOI.GOI}");
logContentBuilder.AppendLine($"是否出发预警{isWarning}");
3 years ago
nLogManager.GetLogger(loggerName).Info(logContentBuilder);
3 years ago
if (isWarning)
{
isSendDingTalk = true;
if (!isAddBusinessTypeTitle)
{
dingdingContentBuilder.Append("快车业务线-创意维度\n");
isAddBusinessTypeTitle = true;
}
dingdingContentBuilder.Append($"{dingdingWarningContent}\n");
}
}
#endregion
#region SKU精速推
isAddBusinessTypeTitle = false;
var skuGOIList = jDReportFormStatisticsBusiness.CalculationSkuLevelGOI(new SkuGOIRequest()
{
BusinessType = 134217728,
LevelIdList = skuIds,
OnlyCustomDate = true,
3 years ago
StartDate = startQueryDay,
EndDate = yesterday
3 years ago
});
foreach (var skuGOI in skuGOIList)
{
var sku = yesterdayJDpopularizeadskuList.FirstOrDefault(s => s.Sku == skuGOI.LevelId);
if (sku == null)
continue;
var logContentBuilder = new StringBuilder();
logContentBuilder.AppendLine($"SKU维度 {sku.CampaignName}({sku.CampaignId})-{sku.Sku}");
Enums.SiNanCycleType? siNanCycleType = Enums.SiNanCycleType.;
bool isWarning = false;
string dingdingWarningContent = string.Empty;
if (skuGOI.TotalCost < growupCost)
{
siNanCycleType = Enums.SiNanCycleType.;
if (skuGOI.TotalCost < growupLevel1Cost)
{
//不建议调整
isWarning = false;
}
else if (skuGOI.TotalCost >= growupLevel4Cost)
{
if (skuGOI.CustomDaysGOI.GOI < growupLevel4MinGOI)
{
isWarning = true;
dingdingWarningContent = $"{sku.CampaignName}-{sku.Sku} 处于{siNanCycleType},近7天GOI低于{growupLevel4MinGOI},请及时优化!";
}
else if (skuGOI.CustomDaysGOI.GOI > growupLevel4MaxGOI)
{
isWarning = true;
dingdingWarningContent = $"{sku.CampaignName}-{sku.Sku} 处于{siNanCycleType},近7天GOI低于{growupLevel4MaxGOI},舍不得孩子套不住狼,请及时优化!";
}
}
else if (skuGOI.TotalCost >= growupLevel3Cost)
{
if (skuGOI.CustomDaysGOI.GOI < growupLevel3MinGOI)
{
isWarning = true;
dingdingWarningContent = $"{sku.CampaignName}-{sku.Sku} 处于{siNanCycleType},近7天GOI低于{growupLevel3MinGOI},请及时优化!";
}
else if (skuGOI.CustomDaysGOI.GOI < growupLevel3MaxGOI)
{
isWarning = true;
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)
{
siNanCycleType = Enums.SiNanCycleType.;
if (skuGOI.CustomDaysGOI.GOI < matureLevel1MinGOI)
{
isWarning = true;
dingdingWarningContent = $"{sku.CampaignName}-{sku.Sku} 处于{siNanCycleType},近7天GOI低于{matureLevel1MinGOI},请及时优化!";
}
else if (skuGOI.CustomDaysGOI.GOI > matureLevel1MaxGOI)
{
isWarning = true;
dingdingWarningContent = $"{sku.CampaignName}-{sku.Sku} 处于{siNanCycleType},近7天GOI低于{matureLevel1MaxGOI},舍不得孩子套不住狼,请及时优化!";
}
}
else if (skuGOI.TotalCost > stableCost && skuGOI.CustomDaysGOI.Cost < stable7dCost)
{
siNanCycleType = Enums.SiNanCycleType.;
if (skuGOI.CustomDaysGOI.GOI < stableLevel1MinGOI)
{
isWarning = true;
dingdingWarningContent = $"{sku.CampaignName}-{sku.Sku} 处于{siNanCycleType},近7天GOI低于{stableLevel1MinGOI},请及时优化!";
}
else if (skuGOI.CustomDaysGOI.GOI > stableLevel1MaxGOI)
{
isWarning = true;
dingdingWarningContent = $"{sku.CampaignName}-{sku.Sku} 处于{siNanCycleType},近7天GOI低于{stableLevel1MaxGOI},舍不得孩子套不住狼,请及时优化!";
}
}
logContentBuilder.AppendLine($"{siNanCycleType}");
logContentBuilder.AppendLine($"累计推广花费{skuGOI.TotalCost}");
logContentBuilder.AppendLine($"近7天花费{skuGOI.CustomDaysGOI.Cost}");
logContentBuilder.AppendLine($"近7天GOI{skuGOI.CustomDaysGOI.GOI}");
logContentBuilder.AppendLine($"是否出发预警{isWarning}");
3 years ago
nLogManager.GetLogger(loggerName).Info(logContentBuilder);
3 years ago
if (isWarning)
{
isSendDingTalk = true;
if (!isAddBusinessTypeTitle)
{
dingdingContentBuilder.Append("京速推业务线-SKU维度\n");
isAddBusinessTypeTitle = true;
}
dingdingContentBuilder.Append($"{dingdingWarningContent}\n");
}
}
#endregion
if (isSendDingTalk)
dingDingBusiness.SendDingDingBotMessage(shop.SiNanDingDingKey, shop.SiNanDingDingWebHook, dingdingContentBuilder.ToString());
}
catch (Exception ex)
{
nLogManager.GetLogger(loggerName).Error(ex, "GOI预警失败");
}
3 years ago
}
}
}