fix: enable dashboard gift reconcile lookback

This commit is contained in:
zhx 2026-05-28 11:57:25 +08:00
parent 358036a847
commit b2d351d489
2 changed files with 13 additions and 2 deletions

View File

@ -86,6 +86,7 @@ type GiftReconcileConfig struct {
Enabled bool
Interval time.Duration
CurrentDayLag time.Duration
LookbackDays int
BatchLimit int
}
@ -129,8 +130,8 @@ func Load() (Config, error) {
},
Mongo: MongoConfig{
Enabled: envBool("MONGO_ENABLED", false),
URI: env("MONGO_URI", env("LIKEI_MONGO_URI", "")),
Database: env("MONGO_DATABASE", env("LIKEI_MONGO_DB", "")),
URI: env("MONGO_URI", env("LIKEI_MONGO_URI", env("LIKEI_CLOUD_MONGO_URI", ""))),
Database: env("MONGO_DATABASE", env("LIKEI_MONGO_DB", env("LIKEI_CLOUD_MONGO_DB", ""))),
},
Redis: RedisConfig{
Enabled: envBool("REDIS_ENABLED", false),
@ -173,6 +174,7 @@ func Load() (Config, error) {
Enabled: envBool("DASHBOARD_GIFT_RECONCILE_ENABLED", true),
Interval: envDuration("DASHBOARD_GIFT_RECONCILE_INTERVAL", 10*time.Minute),
CurrentDayLag: envDuration("DASHBOARD_GIFT_RECONCILE_CURRENT_DAY_LAG", 5*time.Minute),
LookbackDays: envInt("DASHBOARD_GIFT_RECONCILE_LOOKBACK_DAYS", 2),
BatchLimit: envInt("DASHBOARD_GIFT_RECONCILE_BATCH_LIMIT", 50000),
},
Game: GameReconcileConfig{
@ -232,6 +234,9 @@ func Load() (Config, error) {
if cfg.Gift.BatchLimit <= 0 {
cfg.Gift.BatchLimit = 50000
}
if cfg.Gift.LookbackDays <= 0 {
cfg.Gift.LookbackDays = 1
}
if cfg.User.LookbackDays <= 0 {
cfg.User.LookbackDays = 3
}

View File

@ -47,7 +47,13 @@ func (r *MySQLRepository) StartGiftReconciler(ctx context.Context, db *mongo.Dat
}
run := func() {
since := currentStatDayStart(r.cfg.Dashboard.StatTimezones, r.cfg.Gift.CurrentDayLag)
if r.cfg.Gift.LookbackDays > 1 {
since = since.AddDate(0, 0, -(r.cfg.Gift.LookbackDays - 1))
}
until := since.AddDate(0, 0, 1)
if r.cfg.Gift.LookbackDays > 1 {
until = since.AddDate(0, 0, r.cfg.Gift.LookbackDays)
}
if err := r.RebuildGiftMetricsRange(ctx, db, since, until); err != nil {
if r.metrics != nil {
r.metrics.RecordError(err)