Files
video-factory/shortdrama/controller/scene_controller.go
T
2026-06-29 13:32:50 +08:00

66 lines
1.9 KiB
Go

package controller
import (
"context"
"video-factory/shortdrama/model/dto"
"video-factory/shortdrama/service"
)
// ==================== Scene CRUD ====================
func (c *drama) ListScene(ctx context.Context, req *dto.ListSceneReq) (res *dto.ListSceneRes, err error) {
list, err := service.DramaService.ListScene(ctx, req.DramaId)
if err != nil {
return nil, err
}
return &dto.ListSceneRes{List: list}, nil
}
func (c *drama) AddScene(ctx context.Context, req *dto.AddSceneReq) (res *dto.GetDramaRes, err error) {
var imagePath string
if req.ImageFile != nil {
f, err := req.ImageFile.Open()
if err != nil {
return nil, err
}
defer func() { _ = f.Close() }()
imagePath, err = service.DramaService.SaveScenePropFile(ctx, req.DramaId, f, req.ImageFile.Filename, "场景", req.Name)
if err != nil {
return nil, err
}
}
_, err = service.DramaService.AddScene(ctx, req.DramaId, req.Name, req.Description, imagePath)
if err != nil {
return nil, err
}
return c.Get(ctx, &dto.GetDramaReq{Id: req.DramaId})
}
func (c *drama) UpdateScene(ctx context.Context, req *dto.UpdateSceneReq) (res *dto.GetDramaRes, err error) {
var imagePath string
if req.ImageFile != nil {
f, err := req.ImageFile.Open()
if err != nil {
return nil, err
}
defer func() { _ = f.Close() }()
imagePath, err = service.DramaService.SaveScenePropFile(ctx, req.DramaId, f, req.ImageFile.Filename, "场景", req.Name)
if err != nil {
return nil, err
}
}
err = service.DramaService.UpdateScene(ctx, req.Id, req.DramaId, req.Name, req.Description, imagePath)
if err != nil {
return nil, err
}
return c.Get(ctx, &dto.GetDramaReq{Id: req.DramaId})
}
func (c *drama) DeleteScene(ctx context.Context, req *dto.DeleteSceneReq) (res *dto.GetDramaRes, err error) {
err = service.DramaService.DeleteScene(ctx, req.Id)
if err != nil {
return nil, err
}
return c.Get(ctx, &dto.GetDramaReq{Id: req.DramaId})
}