ai_task.go 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. package rag
  2. import (
  3. "eta/eta_api/global"
  4. "eta/eta_api/utils"
  5. "fmt"
  6. "time"
  7. )
  8. // AiTask ai这边的任务表
  9. type AiTask struct {
  10. AiTaskID int `gorm:"primaryKey;column:ai_task_id" json:"-"` // id
  11. TaskName string `gorm:"column:task_name" json:"taskName"` // 任务名称
  12. TaskType string `gorm:"column:task_type" json:"taskType"` // 任务类型
  13. Status string `gorm:"column:status" json:"status"` // 任务状态
  14. StartTime time.Time `gorm:"column:start_time" json:"startTime"` // 开始时间
  15. EndTime time.Time `gorm:"column:end_time" json:"endTime"` // 结束时间
  16. CreateTime time.Time `gorm:"column:create_time" json:"createTime"` // 创建时间
  17. UpdateTime time.Time `gorm:"column:update_time" json:"updateTime"` // 更新时间
  18. Parameters string `gorm:"column:parameters" json:"parameters"` // 执行参数
  19. Logs string `gorm:"column:logs" json:"logs"` // 日志
  20. Errormessage string `gorm:"column:ErrorMessage" json:"errorMessage"` // 错误信息
  21. Priority int `gorm:"column:priority" json:"priority"` // 优先级
  22. RetryCount int `gorm:"column:retry_count" json:"retryCount"` // 重试次数
  23. EstimatedCompletionTime time.Time `gorm:"column:estimated_completion_time" json:"estimatedCompletionTime"` // 预计完成时间
  24. ActualCompletitonTime time.Time `gorm:"column:actual_completiton_time" json:"actualCompletitonTime"` // 实际完成时间
  25. Remark string `gorm:"column:remark" json:"remark"` // 备注
  26. }
  27. // TableName get sql table name.获取数据库表名
  28. func (m *AiTask) TableName() string {
  29. return "ai_task"
  30. }
  31. // AiTaskColumns get sql column name.获取数据库列名
  32. var AiTaskColumns = struct {
  33. AiTaskID string
  34. TaskName string
  35. TaskType string
  36. Status string
  37. StartTime string
  38. EndTime string
  39. CreateTime string
  40. UpdateTime string
  41. Parameters string
  42. Logs string
  43. Errormessage string
  44. Priority string
  45. RetryCount string
  46. EstimatedCompletionTime string
  47. ActualCompletitonTime string
  48. Remark string
  49. }{
  50. AiTaskID: "ai_task_id",
  51. TaskName: "task_name",
  52. TaskType: "task_type",
  53. Status: "status",
  54. StartTime: "start_time",
  55. EndTime: "end_time",
  56. CreateTime: "create_time",
  57. UpdateTime: "update_time",
  58. Parameters: "parameters",
  59. Logs: "logs",
  60. Errormessage: "ErrorMessage",
  61. Priority: "priority",
  62. RetryCount: "retry_count",
  63. EstimatedCompletionTime: "estimated_completion_time",
  64. ActualCompletitonTime: "actual_completiton_time",
  65. Remark: "remark",
  66. }
  67. func (m *AiTask) Create() (err error) {
  68. err = global.DbMap[utils.DbNameAI].Create(&m).Error
  69. return
  70. }
  71. func (m *AiTask) Update(updateCols []string) (err error) {
  72. err = global.DbMap[utils.DbNameAI].Select(updateCols).Updates(&m).Error
  73. return
  74. }
  75. func (m *AiTask) Del() (err error) {
  76. err = global.DbMap[utils.DbNameAI].Delete(&m).Error
  77. return
  78. }
  79. func (m *AiTask) GetByID(id int) (item *AiTask, err error) {
  80. err = global.DbMap[utils.DbNameAI].Where(fmt.Sprintf("%s = ?", AiTaskColumns.AiTaskID), id).First(&item).Error
  81. return
  82. }
  83. func (m *AiTask) GetByCondition(condition string, pars []interface{}) (item *AiTask, err error) {
  84. sqlStr := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s`, m.TableName(), condition)
  85. err = global.DbMap[utils.DbNameAI].Raw(sqlStr, pars...).First(&item).Error
  86. return
  87. }
  88. func (m *AiTask) GetListByCondition(field, condition string, pars []interface{}, startSize, pageSize int) (items []*AiTask, err error) {
  89. if field == "" {
  90. field = "*"
  91. }
  92. sqlStr := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s order by AiTask_id desc LIMIT ?,?`, field, m.TableName(), condition)
  93. pars = append(pars, startSize, pageSize)
  94. err = global.DbMap[utils.DbNameAI].Raw(sqlStr, pars...).Find(&items).Error
  95. return
  96. }