All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 30s
50 lines
1.1 KiB
Go
50 lines
1.1 KiB
Go
package logic
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"godemo/file/file"
|
|
"godemo/file/internal/svc"
|
|
"godemo/file/worker"
|
|
|
|
"github.com/google/uuid"
|
|
"github.com/zeromicro/go-zero/core/logx"
|
|
)
|
|
|
|
type GenerateImageVersionsLogic struct {
|
|
ctx context.Context
|
|
svcCtx *svc.ServiceContext
|
|
logx.Logger
|
|
}
|
|
|
|
func NewGenerateImageVersionsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GenerateImageVersionsLogic {
|
|
return &GenerateImageVersionsLogic{
|
|
ctx: ctx,
|
|
svcCtx: svcCtx,
|
|
Logger: logx.WithContext(ctx),
|
|
}
|
|
}
|
|
|
|
// 异步生成图片版本接口
|
|
func (l *GenerateImageVersionsLogic) GenerateImageVersions(in *file.GenerateImageVersionsRequest) (*file.GenerateImageVersionsResponse, error) {
|
|
// 1. 验证输入参数
|
|
|
|
// 2. 检查文件是否存在
|
|
|
|
// 3. 创建任务对象,并提交到任务队列
|
|
requestID := uuid.New().String()
|
|
worker.ImageProcessTaskQueue <- worker.ImageProcessTask{
|
|
FileID: in.FileId,
|
|
Versions: in.Versions,
|
|
RequestID: requestID,
|
|
CreatedAt: time.Now(),
|
|
}
|
|
|
|
// 4. 返回响应
|
|
return &file.GenerateImageVersionsResponse{
|
|
TaskId: requestID,
|
|
Accepted: true,
|
|
}, nil
|
|
}
|