| package model |
|
|
| type Midjourney struct { |
| Id int `json:"id"` |
| Code int `json:"code"` |
| UserId int `json:"user_id" gorm:"index"` |
| Action string `json:"action" gorm:"type:varchar(40);index"` |
| MjId string `json:"mj_id" gorm:"index"` |
| Prompt string `json:"prompt"` |
| PromptEn string `json:"prompt_en"` |
| Description string `json:"description"` |
| State string `json:"state"` |
| SubmitTime int64 `json:"submit_time" gorm:"index"` |
| StartTime int64 `json:"start_time" gorm:"index"` |
| FinishTime int64 `json:"finish_time" gorm:"index"` |
| ImageUrl string `json:"image_url"` |
| VideoUrl string `json:"video_url"` |
| VideoUrls string `json:"video_urls"` |
| Status string `json:"status" gorm:"type:varchar(20);index"` |
| Progress string `json:"progress" gorm:"type:varchar(30);index"` |
| FailReason string `json:"fail_reason"` |
| ChannelId int `json:"channel_id"` |
| Quota int `json:"quota"` |
| Buttons string `json:"buttons"` |
| Properties string `json:"properties"` |
| } |
|
|
| |
| type TaskQueryParams struct { |
| ChannelID string |
| MjID string |
| StartTimestamp string |
| EndTimestamp string |
| } |
|
|
| func GetAllUserTask(userId int, startIdx int, num int, queryParams TaskQueryParams) []*Midjourney { |
| var tasks []*Midjourney |
| var err error |
|
|
| |
| query := DB.Where("user_id = ?", userId) |
|
|
| if queryParams.MjID != "" { |
| query = query.Where("mj_id = ?", queryParams.MjID) |
| } |
| if queryParams.StartTimestamp != "" { |
| |
| query = query.Where("submit_time >= ?", queryParams.StartTimestamp) |
| } |
| if queryParams.EndTimestamp != "" { |
| query = query.Where("submit_time <= ?", queryParams.EndTimestamp) |
| } |
|
|
| |
| err = query.Order("id desc").Limit(num).Offset(startIdx).Find(&tasks).Error |
| if err != nil { |
| return nil |
| } |
|
|
| return tasks |
| } |
|
|
| func GetAllTasks(startIdx int, num int, queryParams TaskQueryParams) []*Midjourney { |
| var tasks []*Midjourney |
| var err error |
|
|
| |
| query := DB |
|
|
| |
| if queryParams.ChannelID != "" { |
| query = query.Where("channel_id = ?", queryParams.ChannelID) |
| } |
| if queryParams.MjID != "" { |
| query = query.Where("mj_id = ?", queryParams.MjID) |
| } |
| if queryParams.StartTimestamp != "" { |
| query = query.Where("submit_time >= ?", queryParams.StartTimestamp) |
| } |
| if queryParams.EndTimestamp != "" { |
| query = query.Where("submit_time <= ?", queryParams.EndTimestamp) |
| } |
|
|
| |
| err = query.Order("id desc").Limit(num).Offset(startIdx).Find(&tasks).Error |
| if err != nil { |
| return nil |
| } |
|
|
| return tasks |
| } |
|
|
| func GetAllUnFinishTasks() []*Midjourney { |
| var tasks []*Midjourney |
| var err error |
| |
| err = DB.Where("progress != ?", "100%").Find(&tasks).Error |
| if err != nil { |
| return nil |
| } |
| return tasks |
| } |
|
|
| func GetByOnlyMJId(mjId string) *Midjourney { |
| var mj *Midjourney |
| var err error |
| err = DB.Where("mj_id = ?", mjId).First(&mj).Error |
| if err != nil { |
| return nil |
| } |
| return mj |
| } |
|
|
| func GetByMJId(userId int, mjId string) *Midjourney { |
| var mj *Midjourney |
| var err error |
| err = DB.Where("user_id = ? and mj_id = ?", userId, mjId).First(&mj).Error |
| if err != nil { |
| return nil |
| } |
| return mj |
| } |
|
|
| func GetByMJIds(userId int, mjIds []string) []*Midjourney { |
| var mj []*Midjourney |
| var err error |
| err = DB.Where("user_id = ? and mj_id in (?)", userId, mjIds).Find(&mj).Error |
| if err != nil { |
| return nil |
| } |
| return mj |
| } |
|
|
| func GetMjByuId(id int) *Midjourney { |
| var mj *Midjourney |
| var err error |
| err = DB.Where("id = ?", id).First(&mj).Error |
| if err != nil { |
| return nil |
| } |
| return mj |
| } |
|
|
| func UpdateProgress(id int, progress string) error { |
| return DB.Model(&Midjourney{}).Where("id = ?", id).Update("progress", progress).Error |
| } |
|
|
| func (midjourney *Midjourney) Insert() error { |
| var err error |
| err = DB.Create(midjourney).Error |
| return err |
| } |
|
|
| func (midjourney *Midjourney) Update() error { |
| var err error |
| err = DB.Save(midjourney).Error |
| return err |
| } |
|
|
| func MjBulkUpdate(mjIds []string, params map[string]any) error { |
| return DB.Model(&Midjourney{}). |
| Where("mj_id in (?)", mjIds). |
| Updates(params).Error |
| } |
|
|
| func MjBulkUpdateByTaskIds(taskIDs []int, params map[string]any) error { |
| return DB.Model(&Midjourney{}). |
| Where("id in (?)", taskIDs). |
| Updates(params).Error |
| } |
|
|
| |
| func CountAllTasks(queryParams TaskQueryParams) int64 { |
| var total int64 |
| query := DB.Model(&Midjourney{}) |
| if queryParams.ChannelID != "" { |
| query = query.Where("channel_id = ?", queryParams.ChannelID) |
| } |
| if queryParams.MjID != "" { |
| query = query.Where("mj_id = ?", queryParams.MjID) |
| } |
| if queryParams.StartTimestamp != "" { |
| query = query.Where("submit_time >= ?", queryParams.StartTimestamp) |
| } |
| if queryParams.EndTimestamp != "" { |
| query = query.Where("submit_time <= ?", queryParams.EndTimestamp) |
| } |
| _ = query.Count(&total).Error |
| return total |
| } |
|
|
| |
| func CountAllUserTask(userId int, queryParams TaskQueryParams) int64 { |
| var total int64 |
| query := DB.Model(&Midjourney{}).Where("user_id = ?", userId) |
| if queryParams.MjID != "" { |
| query = query.Where("mj_id = ?", queryParams.MjID) |
| } |
| if queryParams.StartTimestamp != "" { |
| query = query.Where("submit_time >= ?", queryParams.StartTimestamp) |
| } |
| if queryParams.EndTimestamp != "" { |
| query = query.Where("submit_time <= ?", queryParams.EndTimestamp) |
| } |
| _ = query.Count(&total).Error |
| return total |
| } |
|
|