daShangDao_planA/service/mysql/taskExport.go

111 lines
3.2 KiB
Go

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
}