Files
2026-07-24 10:40:33 +08:00

74 lines
2.0 KiB
Go

package controller
import (
"context"
"video-factory/shortdrama/model/dto"
"video-factory/shortdrama/service"
)
type prop struct{}
var Prop = new(prop)
func (c *prop) List(ctx context.Context, req *dto.ListPropReq) (res *dto.ListPropRes, err error) {
list, err := service.PropService.ListProp(ctx, req.DramaId)
if err != nil {
return nil, err
}
return &dto.ListPropRes{List: list}, nil
}
func (c *prop) Add(ctx context.Context, req *dto.AddPropReq) (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.PropService.AddProp(ctx, req.DramaId, req.Name, req.Description, imagePath)
if err != nil {
return nil, err
}
return nil, nil
}
func (c *prop) Update(ctx context.Context, req *dto.UpdatePropReq) (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.PropService.UpdateProp(ctx, req.Id, req.DramaId, req.Name, req.Description, imagePath)
if err != nil {
return nil, err
}
return nil, nil
}
func (c *prop) Delete(ctx context.Context, req *dto.DeletePropReq) (res *dto.GetDramaRes, err error) {
err = service.PropService.DeleteProp(ctx, req.Id)
if err != nil {
return nil, err
}
return nil, nil
}