package rag import ( "eta/eta_api/global" "eta/eta_api/utils" "fmt" "time" ) // AiTask ai这边的任务表 type AiTask struct { AiTaskID int `gorm:"primaryKey;column:ai_task_id" json:"-"` // id TaskName string `gorm:"column:task_name" json:"taskName"` // 任务名称 TaskType string `gorm:"column:task_type" json:"taskType"` // 任务类型 Status string `gorm:"column:status" json:"status"` // 任务状态 StartTime time.Time `gorm:"column:start_time" json:"startTime"` // 开始时间 EndTime time.Time `gorm:"column:end_time" json:"endTime"` // 结束时间 CreateTime time.Time `gorm:"column:create_time" json:"createTime"` // 创建时间 UpdateTime time.Time `gorm:"column:update_time" json:"updateTime"` // 更新时间 Parameters string `gorm:"column:parameters" json:"parameters"` // 执行参数 Logs string `gorm:"column:logs" json:"logs"` // 日志 Errormessage string `gorm:"column:ErrorMessage" json:"errorMessage"` // 错误信息 Priority int `gorm:"column:priority" json:"priority"` // 优先级 RetryCount int `gorm:"column:retry_count" json:"retryCount"` // 重试次数 EstimatedCompletionTime time.Time `gorm:"column:estimated_completion_time" json:"estimatedCompletionTime"` // 预计完成时间 ActualCompletitonTime time.Time `gorm:"column:actual_completiton_time" json:"actualCompletitonTime"` // 实际完成时间 Remark string `gorm:"column:remark" json:"remark"` // 备注 } // TableName get sql table name.获取数据库表名 func (m *AiTask) TableName() string { return "ai_task" } // AiTaskColumns get sql column name.获取数据库列名 var AiTaskColumns = struct { AiTaskID string TaskName string TaskType string Status string StartTime string EndTime string CreateTime string UpdateTime string Parameters string Logs string Errormessage string Priority string RetryCount string EstimatedCompletionTime string ActualCompletitonTime string Remark string }{ AiTaskID: "ai_task_id", TaskName: "task_name", TaskType: "task_type", Status: "status", StartTime: "start_time", EndTime: "end_time", CreateTime: "create_time", UpdateTime: "update_time", Parameters: "parameters", Logs: "logs", Errormessage: "ErrorMessage", Priority: "priority", RetryCount: "retry_count", EstimatedCompletionTime: "estimated_completion_time", ActualCompletitonTime: "actual_completiton_time", Remark: "remark", } func (m *AiTask) Create() (err error) { err = global.DbMap[utils.DbNameAI].Create(&m).Error return } func (m *AiTask) Update(updateCols []string) (err error) { err = global.DbMap[utils.DbNameAI].Select(updateCols).Updates(&m).Error return } func (m *AiTask) Del() (err error) { err = global.DbMap[utils.DbNameAI].Delete(&m).Error return } func (m *AiTask) GetByID(id int) (item *AiTask, err error) { err = global.DbMap[utils.DbNameAI].Where(fmt.Sprintf("%s = ?", AiTaskColumns.AiTaskID), id).First(&item).Error return } func (m *AiTask) GetByCondition(condition string, pars []interface{}) (item *AiTask, err error) { sqlStr := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s`, m.TableName(), condition) err = global.DbMap[utils.DbNameAI].Raw(sqlStr, pars...).First(&item).Error return } func (m *AiTask) GetListByCondition(field, condition string, pars []interface{}, startSize, pageSize int) (items []*AiTask, err error) { if field == "" { field = "*" } sqlStr := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s order by AiTask_id desc LIMIT ?,?`, field, m.TableName(), condition) pars = append(pars, startSize, pageSize) err = global.DbMap[utils.DbNameAI].Raw(sqlStr, pars...).Find(&items).Error return }