package mysql import ( "database/sql" "planA/initialization/golabl" "planA/tool" mysqlType "planA/type/mysql" "time" ) // CreateTaskExport 向task_export表插入一条记录 // @param export TaskExport 要插入的导出记录 // @return int64 插入记录的自增ID // @return error 错误信息 func CreateTaskExport(export mysqlType.TaskExport) (int64, error) { // 创建记录 createAt := time.Now() export.CreateAt = &createAt result := golabl.MysqlDb.Model(&mysqlType.TaskExport{}).Create(&export) // 检查是否有错误 if result.Error != nil { return 0, result.Error } // 返回插入的自增 ID return export.ID, nil } // UpdateTaskExportStatus 更新task_export表中的status字段 // @param taskId string 任务ID // @param status int64 状态 // @param fullPath string 文件路径 // @return error 错误信息 func UpdateTaskExportStatus(taskId string, status int64, fullPath string) error { var err error if status == 2 { completeAt := &sql.NullTime{ Time: time.Now(), Valid: true, } err = golabl.MysqlDb.Model(&mysqlType.TaskExport{}).Where("task_id = ?", taskId).Updates(&mysqlType.TaskExport{ FileUrl: &fullPath, Status: &status, CompleteAt: completeAt, }).Error } else { err = golabl.MysqlDb.Model(&mysqlType.TaskExport{}).Where("task_id = ?", taskId).Update("status", status).Error } return err } // GetTaskExportList 分页查询task_export表记录 // @param page 分页参数 // @param pageSize int 每页数量 // @param userId string 用户ID // @return []*TaskUser 查询结果 // @return int64 总条数 // @return error 错误信息 func GetTaskExportList(page, pageSize int, userId string) ([]mysqlType.TaskExport, int64, error) { var taskExport []mysqlType.TaskExport var total int64 //获取页 pageSize, offset := tool.GetPage(page, pageSize) // 构建查询条件 query := golabl.MysqlDb.Model(&mysqlType.TaskExport{}) if userId != "" { query = query.Where("user_id = ?", userId) } // 查询总条数 if err := query.Count(&total).Error; err != nil { return nil, 0, err } if total == 0 { return taskExport, total, nil } // 分页查询数据 err := query.Order("id DESC"). Offset(offset). Limit(pageSize). Find(&taskExport).Error if err != nil { return nil, 0, err } return taskExport, total, err } // DeleteOldExport 删除task_export表中N天前的记录 // @return error 错误信息 func DeleteOldExport() error { days := golabl.Config.Server.DataDay threeDaysAgo := time.Now().AddDate(0, 0, -days) return golabl.MysqlDb.Where("create_at < ?", threeDaysAgo).Delete(&mysqlType.TaskExport{}).Error } // GetOldExportSQLite 获取task_export表中N天前的记录 func GetOldExportSQLite() ([]mysqlType.TaskExport, error) { var taskExport []mysqlType.TaskExport days := golabl.Config.Server.DataDay threeDaysAgo := time.Now().AddDate(0, 0, -days) err := golabl.MysqlDb.Where("create_at < ?", threeDaysAgo).Find(&taskExport).Error return taskExport, err } // UpdateTaskExport 更新task_export信息 // @param taskExport mysqlType.TaskExport 要更新的任务信息 // @return error 错误信息 func UpdateTaskExport(taskExport mysqlType.TaskExport) error { return golabl.MysqlDb.Model(&mysqlType.TaskExport{}).Where("task_id = ?", taskExport.TaskID).Updates(taskExport).Error }