feat: cron task style fix

This commit is contained in:
engigu
2025-12-21 21:11:54 +08:00
parent d8b5b75eaf
commit a66f14b5f4
2 changed files with 16 additions and 22 deletions
+11 -15
View File
@@ -15,19 +15,18 @@ func NewSendStatsService() *SendStatsService {
// IncrementStats 增加任务执行统计
func (s *SendStatsService) IncrementStats(taskID uint, status string) error {
today := time.Now().Format("2006-01-02")
startOfDay, _ := time.ParseInLocation("2006-01-02", today, time.Local)
day := time.Now().Format("2006-01-02")
var stats models.SendStats
result := database.DB.Where("task_id = ? AND status = ? AND created_at >= ?", taskID, status, startOfDay).First(&stats)
result := database.DB.Where("task_id = ? AND day = ? AND status = ?", taskID, day, status).First(&stats)
if result.Error != nil {
// 不存在则创建
stats = models.SendStats{
TaskID: taskID,
Status: status,
Num: 1,
CreatedAt: time.Now(),
TaskID: taskID,
Day: day,
Status: status,
Num: 1,
}
return database.DB.Create(&stats).Error
}
@@ -39,25 +38,22 @@ func (s *SendStatsService) IncrementStats(taskID uint, status string) error {
// GetStatsByTaskID 获取任务的统计数据
func (s *SendStatsService) GetStatsByTaskID(taskID uint) []models.SendStats {
var stats []models.SendStats
database.DB.Where("task_id = ?", taskID).Order("created_at DESC").Find(&stats)
database.DB.Where("task_id = ?", taskID).Order("day DESC").Find(&stats)
return stats
}
// GetTodayStats 获取今日统计
func (s *SendStatsService) GetTodayStats() []models.SendStats {
today := time.Now().Format("2006-01-02")
startOfDay, _ := time.ParseInLocation("2006-01-02", today, time.Local)
day := time.Now().Format("2006-01-02")
var stats []models.SendStats
database.DB.Where("created_at >= ?", startOfDay).Find(&stats)
database.DB.Where("day = ?", day).Find(&stats)
return stats
}
// GetRecentStats 获取最近N天的统计
func (s *SendStatsService) GetRecentStats(days int) []models.SendStats {
startDate := time.Now().AddDate(0, 0, -days)
startDay := time.Now().AddDate(0, 0, -days).Format("2006-01-02")
var stats []models.SendStats
database.DB.Where("created_at >= ?", startDate).Order("created_at DESC").Find(&stats)
database.DB.Where("day >= ?", startDay).Order("day DESC").Find(&stats)
return stats
}