4.23.1: Исправлен сброс дневных баллов в 0:00
This commit is contained in:
@@ -3068,6 +3068,20 @@ func (a *App) getCurrentWeekScores(userID int) (map[int]float64, error) {
|
||||
// getTodayScores получает сумму score всех нод, созданных сегодня для конкретного пользователя
|
||||
// Возвращает map[project_id]today_score для сегодняшнего дня
|
||||
func (a *App) getTodayScores(userID int) (map[int]float64, error) {
|
||||
// Получаем часовой пояс из переменной окружения (по умолчанию UTC)
|
||||
timezoneStr := getEnv("TIMEZONE", "UTC")
|
||||
loc, err := time.LoadLocation(timezoneStr)
|
||||
if err != nil {
|
||||
log.Printf("Warning: Invalid timezone '%s': %v. Using UTC instead.", timezoneStr, err)
|
||||
loc = time.UTC
|
||||
timezoneStr = "UTC"
|
||||
}
|
||||
|
||||
// Вычисляем текущую дату в нужном часовом поясе
|
||||
now := time.Now().In(loc)
|
||||
todayStart := time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, loc)
|
||||
todayEnd := todayStart.Add(24 * time.Hour)
|
||||
|
||||
query := `
|
||||
SELECT
|
||||
n.project_id,
|
||||
@@ -3078,11 +3092,12 @@ func (a *App) getTodayScores(userID int) (map[int]float64, error) {
|
||||
p.deleted = FALSE
|
||||
AND p.user_id = $1
|
||||
AND n.user_id = $1
|
||||
AND DATE(n.created_date) = CURRENT_DATE
|
||||
AND n.created_date >= $2
|
||||
AND n.created_date < $3
|
||||
GROUP BY n.project_id
|
||||
`
|
||||
|
||||
rows, err := a.DB.Query(query, userID)
|
||||
rows, err := a.DB.Query(query, userID, todayStart, todayEnd)
|
||||
if err != nil {
|
||||
log.Printf("Error querying today scores: %v", err)
|
||||
return nil, fmt.Errorf("error querying today scores: %w", err)
|
||||
@@ -3106,6 +3121,20 @@ func (a *App) getTodayScores(userID int) (map[int]float64, error) {
|
||||
// getTodayScoresAllUsers получает сумму score всех нод, созданных сегодня для всех пользователей
|
||||
// Возвращает map[project_id]today_score для сегодняшнего дня
|
||||
func (a *App) getTodayScoresAllUsers() (map[int]float64, error) {
|
||||
// Получаем часовой пояс из переменной окружения (по умолчанию UTC)
|
||||
timezoneStr := getEnv("TIMEZONE", "UTC")
|
||||
loc, err := time.LoadLocation(timezoneStr)
|
||||
if err != nil {
|
||||
log.Printf("Warning: Invalid timezone '%s': %v. Using UTC instead.", timezoneStr, err)
|
||||
loc = time.UTC
|
||||
timezoneStr = "UTC"
|
||||
}
|
||||
|
||||
// Вычисляем текущую дату в нужном часовом поясе
|
||||
now := time.Now().In(loc)
|
||||
todayStart := time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, loc)
|
||||
todayEnd := todayStart.Add(24 * time.Hour)
|
||||
|
||||
query := `
|
||||
SELECT
|
||||
n.project_id,
|
||||
@@ -3114,11 +3143,12 @@ func (a *App) getTodayScoresAllUsers() (map[int]float64, error) {
|
||||
JOIN projects p ON n.project_id = p.id
|
||||
WHERE
|
||||
p.deleted = FALSE
|
||||
AND DATE(n.created_date) = CURRENT_DATE
|
||||
AND n.created_date >= $1
|
||||
AND n.created_date < $2
|
||||
GROUP BY n.project_id
|
||||
`
|
||||
|
||||
rows, err := a.DB.Query(query)
|
||||
rows, err := a.DB.Query(query, todayStart, todayEnd)
|
||||
if err != nil {
|
||||
log.Printf("Error querying today scores for all users: %v", err)
|
||||
return nil, fmt.Errorf("error querying today scores for all users: %w", err)
|
||||
|
||||
Reference in New Issue
Block a user