From 2c222d9858bff0b30262b8da98fafbacf15965be Mon Sep 17 00:00:00 2001 From: liuzx Date: Thu, 17 Nov 2022 11:36:23 +0800 Subject: [PATCH] update --- models/cloudbrain_static.go | 11 +++++++++++ routers/repo/cloudbrain_statistic.go | 20 +++++++++++++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/models/cloudbrain_static.go b/models/cloudbrain_static.go index 48dd477be..b062870a0 100644 --- a/models/cloudbrain_static.go +++ b/models/cloudbrain_static.go @@ -377,6 +377,17 @@ func GetDurationRecordBeginTime() ([]*CloudbrainDurationStatistic, error) { return CloudbrainDurationStatistics, nil } +func GetDurationRecordUpdateTime() ([]*CloudbrainDurationStatistic, error) { + sess := xStatistic.NewSession() + defer sess.Close() + sess.OrderBy("cloudbrain_duration_statistic.date_time DESC limit 1") + CloudbrainDurationStatistics := make([]*CloudbrainDurationStatistic, 0) + if err := sess.Table(&CloudbrainDurationStatistic{}).Find(&CloudbrainDurationStatistics); err != nil { + log.Info("find error.") + } + return CloudbrainDurationStatistics, nil +} + func DeleteCloudbrainDurationStatistic() error { sess := xStatistic.NewSession() defer sess.Close() diff --git a/routers/repo/cloudbrain_statistic.go b/routers/repo/cloudbrain_statistic.go index 43f5a3b19..c39696ce0 100644 --- a/routers/repo/cloudbrain_statistic.go +++ b/routers/repo/cloudbrain_statistic.go @@ -14,10 +14,28 @@ import ( ) func CloudbrainDurationStatisticHour() { + var statisticTime time.Time + var count int64 + recordBeginTime, _ := time.ParseInLocation("2006-01-02 15:04:05", setting.Grampus.UsageRateBeginTime, time.Local) + recordDurationUpdateTime, err := models.GetDurationRecordUpdateTime() + if err != nil { + log.Error("Can not get GetDurationRecordBeginTime", err) + return + } + if recordDurationUpdateTime == nil { + statisticTime = recordBeginTime + } else { + statisticTime = time.Unix(0, int64(recordDurationUpdateTime[0].DateTime)) + } now := time.Now() currentTime := time.Date(now.Year(), now.Month(), now.Day(), now.Hour(), 0, 0, 0, now.Location()) - summaryDurationStat(currentTime) + for statisticTime.Before(currentTime) || statisticTime.Equal(currentTime) { + countEach := summaryDurationStat(statisticTime) + count += countEach + statisticTime = statisticTime.Add(+1 * time.Hour) + } + log.Info("summaryDurationStat count: %v", count) } func UpdateDurationStatisticHistoryData() int64 { var count int64