feat: 实现平台抽成、提现审批、异步任务集成及安全审计功能

This commit is contained in:
2025-12-30 14:54:19 +08:00
parent 5e8dbec806
commit ee1acae3ed
25 changed files with 985 additions and 60 deletions

View File

@@ -0,0 +1,39 @@
package jobs
import (
"context"
"time"
"github.com/riverqueue/river"
"quyun/v2/app/jobs/args"
"quyun/v2/database/models"
"quyun/v2/pkg/consts"
)
// @provider(job)
type MediaProcessWorker struct {
river.WorkerDefaults[args.MediaProcessArgs]
}
func (j *MediaProcessWorker) Work(ctx context.Context, job *river.Job[args.MediaProcessArgs]) error {
arg := job.Args
// 1. Fetch Asset
asset, err := models.MediaAssetQuery.WithContext(ctx).Where(models.MediaAssetQuery.ID.Eq(arg.AssetID)).First()
if err != nil {
return err
}
// 2. Mock Processing
// Update status to processing
_, err = models.MediaAssetQuery.WithContext(ctx).Where(models.MediaAssetQuery.ID.Eq(asset.ID)).UpdateSimple(models.MediaAssetQuery.Status.Value(consts.MediaAssetStatusProcessing))
if err != nil {
return err
}
// 3. Update status to ready
_, err = models.MediaAssetQuery.WithContext(ctx).Where(models.MediaAssetQuery.ID.Eq(asset.ID)).Updates(&models.MediaAsset{
Status: consts.MediaAssetStatusReady,
UpdatedAt: time.Now(),
})
return err
}