代码提交

This commit is contained in:
2026-11-14 11:24:19 +08:00
parent e1674ec96b
commit 37757d6aa5
5 changed files with 176 additions and 21 deletions
+22 -2
View File
@@ -94,7 +94,7 @@ func DailyBotReportTask(ctx context.Context, bot *tgbot.TgBot, appId int32, repo
//text := report.DisplayDayHourText(appName, report)
//_ = bot.SendBroadcastMessage(text, "", tgbot.FileTypeNone)
text, title, desc := report.DisplayDayHourTextWithTitle(appName, historyReport)
text, title, desc := report.DisplayDayHourTextWithTitle(appName, historyReport, lastWeekHourStat(ctx, appId, reportTime))
et := tgbot.NewEntityList(title, desc, []*tgbot.Entity{
{
Content: text,
@@ -144,7 +144,7 @@ func DailyBotReportInfo(ctx context.Context, appId int32, reportTime time.Time)
appNameMap, _ := appInfoMod.GetAllAppIdNameMap(ctx)
appName := appNameMap[appId]
if statg.GlobalEndpoints.GetBotStatEndpoints().ExistsByAppId(appId) {
text, title, desc = report.DisplayDayHourTextWithTitle(appName, historyReport)
text, title, desc = report.DisplayDayHourTextWithTitle(appName, historyReport, lastWeekHourStat(ctx, appId, reportTime))
}
log.Error("DailyBotReportTask end", log.Any("appid", appId),
log.Any("time", reportTime))
@@ -347,3 +347,23 @@ func BotDailyHourStat(ctx context.Context, appId int32, reportTime time.Time, sa
}
return report, nil
}
// lastWeekHourStat 取上周当日同一小时的统计记录,给汇报里的"环比"做基准。
// 只查不补算: 现算一份七天前的数据要把当天的原始流水全量聚合一遍,代价高,
// 而且历史原始数据可能已经被清理,算出来反而是错的。查不到就返回 nil,
// 展示层会把那一行标成"无数据"。
func lastWeekHourStat(ctx context.Context, appId int32, reportTime time.Time) *botdailyhourstat.BotHourStat {
filter := bson.M{
botreport.FN.BotReport.AppId: appId,
botreport.FN.BotReport.SumDate: reportTime.AddDate(0, 0, -7),
}
report, err := botdailyhourstat.FindOneBotHourStatEx(ctx, filter)
if err != nil {
if err != mongo.ErrNoDocuments {
log.Warn("lastWeekHourStat failed", log.E(err),
log.Any("appId", appId), log.Any("sumDate", reportTime))
}
return nil
}
return report
}
+1 -1
View File
@@ -491,7 +491,7 @@ func DailyStat(ctx context.Context, cmd *tgbot.Command, moveBackDays int) error
return tgbot.NewUserError(cmd, "服务器错误:"+err.Error())
}
}
text, title, desc := report.DisplayDayHourTextWithTitle(appInfo.Name, historyReport)
text, title, desc := report.DisplayDayHourTextWithTitle(appInfo.Name, historyReport, lastWeekHourStat(ctx, appId, reportTime))
et := tgbot.NewEntityList(title, desc, []*tgbot.Entity{
{
Content: text,