package services import ( "baihu/internal/database" "baihu/internal/models" ) type TaskService struct{} func NewTaskService() *TaskService { return &TaskService{} } func (ts *TaskService) CreateTask(name, command, schedule string, timeout int, cleanConfig string) *models.Task { task := &models.Task{ Name: name, Command: command, Schedule: schedule, Timeout: timeout, CleanConfig: cleanConfig, Enabled: true, } database.DB.Create(task) return task } func (ts *TaskService) GetTasks() []models.Task { var tasks []models.Task database.DB.Find(&tasks) return tasks } // GetTasksWithPagination 分页获取任务列表 func (ts *TaskService) GetTasksWithPagination(page, pageSize int, name string) ([]models.Task, int64) { var tasks []models.Task var total int64 query := database.DB.Model(&models.Task{}) if name != "" { query = query.Where("name LIKE ?", "%"+name+"%") } query.Count(&total) query.Order("id DESC").Offset((page - 1) * pageSize).Limit(pageSize).Find(&tasks) return tasks, total } func (ts *TaskService) GetTaskByID(id int) *models.Task { var task models.Task if err := database.DB.First(&task, id).Error; err != nil { return nil } return &task } func (ts *TaskService) UpdateTask(id int, name, command, schedule string, timeout int, cleanConfig string, enabled bool) *models.Task { var task models.Task if err := database.DB.First(&task, id).Error; err != nil { return nil } task.Name = name task.Command = command task.Schedule = schedule task.Timeout = timeout task.CleanConfig = cleanConfig task.Enabled = enabled database.DB.Save(&task) return &task } func (ts *TaskService) DeleteTask(id int) bool { result := database.DB.Delete(&models.Task{}, id) return result.RowsAffected > 0 }