package controller import ( "context" "video-factory/shortdrama/model/dto" "video-factory/shortdrama/service" ) type scene struct{} var Scene = new(scene) func (c *scene) List(ctx context.Context, req *dto.ListSceneReq) (res *dto.ListSceneRes, err error) { list, err := service.SceneService.ListScene(ctx, req.DramaId) if err != nil { return nil, err } return &dto.ListSceneRes{List: list}, nil } func (c *scene) Add(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() }() if err := service.ValidateUploadFile(ctx, req.ImageFile.Size, req.ImageFile.Filename, "image"); err != nil { return nil, err } imagePath, err = service.SaveScenePropFile(ctx, req.DramaId, f, req.ImageFile.Filename, "场景", req.Name) if err != nil { return nil, err } } _, err = service.SceneService.AddScene(ctx, req.DramaId, req.Name, req.Description, imagePath) if err != nil { return nil, err } return nil, nil } func (c *scene) Update(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() }() if err := service.ValidateUploadFile(ctx, req.ImageFile.Size, req.ImageFile.Filename, "image"); err != nil { return nil, err } imagePath, err = service.SaveScenePropFile(ctx, req.DramaId, f, req.ImageFile.Filename, "场景", req.Name) if err != nil { return nil, err } } err = service.SceneService.UpdateScene(ctx, req.Id, req.DramaId, req.Name, req.Description, imagePath) if err != nil { return nil, err } return nil, nil } func (c *scene) Delete(ctx context.Context, req *dto.DeleteSceneReq) (res *dto.GetDramaRes, err error) { err = service.SceneService.DeleteScene(ctx, req.Id) if err != nil { return nil, err } return nil, nil }