From 84ce4013703d0dab2f07253c19a1ea35a2ef556a Mon Sep 17 00:00:00 2001 From: tbphp Date: Sat, 19 Jul 2025 18:36:19 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=8A=98=E7=BA=BF=E5=9B=BEdb=E6=97=B6?= =?UTF-8?q?=E5=8C=BA=E5=85=BC=E5=AE=B9=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/handler/dashboard_handler.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/internal/handler/dashboard_handler.go b/internal/handler/dashboard_handler.go index 79df614..d4fdd61 100644 --- a/internal/handler/dashboard_handler.go +++ b/internal/handler/dashboard_handler.go @@ -107,10 +107,12 @@ func (s *Server) Stats(c *gin.Context) { func (s *Server) Chart(c *gin.Context) { groupID := c.Query("groupId") - twentyFourHoursAgo := time.Now().Add(-24 * time.Hour) + now := time.Now() + endHour := now.Truncate(time.Hour) + startHour := endHour.Add(-23 * time.Hour) var hourlyStats []models.GroupHourlyStat - query := s.DB.Where("time >= ? ", twentyFourHoursAgo) + query := s.DB.Where("time >= ? AND time < ?", startHour, endHour.Add(time.Hour)) if groupID != "" { query = query.Where("group_id = ?", groupID) } @@ -121,7 +123,7 @@ func (s *Server) Chart(c *gin.Context) { statsByHour := make(map[time.Time]map[string]int64) for _, stat := range hourlyStats { - hour := stat.Time.Truncate(time.Hour) + hour := stat.Time.Local().Truncate(time.Hour) if _, ok := statsByHour[hour]; !ok { statsByHour[hour] = make(map[string]int64) } @@ -133,7 +135,7 @@ func (s *Server) Chart(c *gin.Context) { var successData, failureData []int64 for i := range 24 { - hour := twentyFourHoursAgo.Add(time.Duration(i+1) * time.Hour).Truncate(time.Hour) + hour := startHour.Add(time.Duration(i) * time.Hour) labels = append(labels, hour.Format(time.RFC3339)) if data, ok := statsByHour[hour]; ok {