From ac0285c2e6fda12b1f5e17cfb8e014accf4f15ff Mon Sep 17 00:00:00 2001 From: Pijus Kamandulis Date: Sat, 5 Jul 2025 08:44:52 +0300 Subject: [PATCH] Fix? --- database/db.go | 15 +++++++++------ jobs/recalculateCurrentDayStatsJob.go | 8 +++----- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/database/db.go b/database/db.go index 7391baf..4a77eea 100644 --- a/database/db.go +++ b/database/db.go @@ -216,13 +216,12 @@ func GetTimeWindowHighShares(db *clover.DB) []models.TimeWindowHighShare { } func SetTimeWindowHighShare(db *clover.DB, share models.TimeWindowHighShare) error { - doc := document.NewDocumentOf(&share) - db.Delete( c.NewQuery(TimeWindowHighShareCollectionName). Where(c.Field("TimeWindowID"). Eq(share.TimeWindowID))) + doc := document.NewDocumentOf(&share) db.InsertOne(TimeWindowHighShareCollectionName, doc) return nil @@ -261,11 +260,15 @@ func GetDailyStats(db *clover.DB, date time.Time) (*models.DailyStats, error) { existingDoc, err := db.FindFirst(c.NewQuery(DailyStatsCollectionName). Where(c.Field("Date").Eq(dateStr))) if err == nil && existingDoc != nil { - var stats models.DailyStats - if err := existingDoc.Unmarshal(&stats); err != nil { - return nil, fmt.Errorf("failed to unmarshal daily stats: %v", err) + if existingDoc.ExpiresAt().After(time.Now()) { + DeleteDailyStatsForDay(db, date) + } else { + var stats models.DailyStats + if err := existingDoc.Unmarshal(&stats); err != nil { + return nil, fmt.Errorf("failed to unmarshal daily stats: %v", err) + } + return &stats, nil } - return &stats, nil } // Get shares in range diff --git a/jobs/recalculateCurrentDayStatsJob.go b/jobs/recalculateCurrentDayStatsJob.go index de8c469..6977e15 100644 --- a/jobs/recalculateCurrentDayStatsJob.go +++ b/jobs/recalculateCurrentDayStatsJob.go @@ -21,15 +21,13 @@ func (job *RecalculateCurrentDayStatsJob) Run() error { defer ticker.Stop() for { - select { - case <-ticker.C: - job.recalculateCurrentDayStats() - } + <-ticker.C + job.recalculateCurrentDayStats() } } func (job *RecalculateCurrentDayStatsJob) recalculateCurrentDayStats() { - today := time.Now().Truncate(24 * time.Hour) + today := time.Now() yesterday := today.Add(-24 * time.Hour) database.DeleteDailyStatsForDay(job.DB, today)