diff --git a/backend/app/commands/queue/river.go b/backend/app/commands/queue/river.go index e9df549..1d02975 100644 --- a/backend/app/commands/queue/river.go +++ b/backend/app/commands/queue/river.go @@ -13,7 +13,9 @@ import ( "quyun/v2/database" "quyun/v2/providers/app" "quyun/v2/providers/job" + "quyun/v2/providers/jwt" "quyun/v2/providers/postgres" + "quyun/v2/providers/storage" log "github.com/sirupsen/logrus" "github.com/spf13/cobra" @@ -24,6 +26,8 @@ func defaultProviders() container.Providers { return commands.Default(container.Providers{ postgres.DefaultProvider(), job.DefaultProvider(), + jwt.DefaultProvider(), + storage.DefaultProvider(), database.DefaultProvider(), }...) } diff --git a/backend/app/jobs/media_process_job.go b/backend/app/jobs/media_process_job.go index dfb8bc7..34d9ac6 100644 --- a/backend/app/jobs/media_process_job.go +++ b/backend/app/jobs/media_process_job.go @@ -53,13 +53,14 @@ func (j *MediaProcessWorker) Work(ctx context.Context, job *river.Job[args.Media } // 2. 更新状态为处理中,标识处理已开始。 - _, err = models.MediaAssetQuery.WithContext(ctx). - Where(models.MediaAssetQuery.ID.Eq(asset.ID)). - UpdateSimple( - models.MediaAssetQuery.Status.Value(consts.MediaAssetStatusProcessing), - models.MediaAssetQuery.UpdatedAt.Value(time.Now()), - ) - if err != nil { + if err := models.MediaAssetQuery.WithContext(ctx). + UnderlyingDB(). + Model(&models.MediaAsset{}). + Where("id = ?", asset.ID). + Updates(map[string]any{ + "status": consts.MediaAssetStatusProcessing, + "updated_at": time.Now(), + }).Error; err != nil { return err } @@ -114,13 +115,17 @@ func (j *MediaProcessWorker) Work(ctx context.Context, job *river.Job[args.Media } // 4. 更新最终状态。 - _, err = models.MediaAssetQuery.WithContext(ctx). - Where(models.MediaAssetQuery.ID.Eq(asset.ID)). - Updates(&models.MediaAsset{ - Status: finalStatus, - UpdatedAt: time.Now(), - }) - return err + if err := models.MediaAssetQuery.WithContext(ctx). + UnderlyingDB(). + Model(&models.MediaAsset{}). + Where("id = ?", asset.ID). + Updates(map[string]any{ + "status": finalStatus, + "updated_at": time.Now(), + }).Error; err != nil { + return err + } + return nil } func (j *MediaProcessWorker) registerCoverAsset(ctx context.Context, asset *models.MediaAsset, coverFile string) error {