feat(report): support historical rebuild dates

This commit is contained in:
phamnazage-jpg
2026-05-14 09:40:34 +08:00
parent 2dca9aa627
commit 988a7533c6
3 changed files with 104 additions and 1 deletions

View File

@@ -85,7 +85,10 @@ func run() error {
}
defer db.Close()
date := time.Now().Format("2006-01-02")
date, err := resolveReportDate(time.Now(), os.Args[1:], os.Getenv("REPORT_DATE"))
if err != nil {
return err
}
// 1. 获取报告数据(使用新schema)
report, err := generateReportDataV3(db, date)
@@ -133,6 +136,35 @@ func run() error {
return nil
}
func resolveReportDate(now time.Time, args []string, envDate string) (string, error) {
date := strings.TrimSpace(envDate)
for i := 0; i < len(args); i++ {
switch {
case args[i] == "-date" || args[i] == "--date":
if i+1 >= len(args) {
return "", fmt.Errorf("缺少 -date 参数值,期望格式 YYYY-MM-DD")
}
date = strings.TrimSpace(args[i+1])
i++
case strings.HasPrefix(args[i], "-date="):
date = strings.TrimSpace(strings.TrimPrefix(args[i], "-date="))
case strings.HasPrefix(args[i], "--date="):
date = strings.TrimSpace(strings.TrimPrefix(args[i], "--date="))
}
}
if date == "" {
return now.Format("2006-01-02"), nil
}
parsed, err := time.Parse("2006-01-02", date)
if err != nil {
return "", fmt.Errorf("无效报告日期 %q期望格式 YYYY-MM-DD", date)
}
return parsed.Format("2006-01-02"), nil
}
// ============ 数据模型 ============
const (