package controller import ( "context" "video-factory/shortdrama/model/dto" "video-factory/shortdrama/service" ) // ==================== Prop CRUD ==================== func (c *drama) ListProp(ctx context.Context, req *dto.ListPropReq) (res *dto.ListPropRes, err error) { list, err := service.DramaService.ListProp(ctx, req.DramaId) if err != nil { return nil, err } return &dto.ListPropRes{List: list}, nil } func (c *drama) AddProp(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() }() imagePath, err = service.DramaService.SaveScenePropFile(ctx, req.DramaId, f, req.ImageFile.Filename, "道具", req.Name) if err != nil { return nil, err } } _, err = service.DramaService.AddProp(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) UpdateProp(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() }() imagePath, err = service.DramaService.SaveScenePropFile(ctx, req.DramaId, f, req.ImageFile.Filename, "道具", req.Name) if err != nil { return nil, err } } err = service.DramaService.UpdateProp(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) DeleteProp(ctx context.Context, req *dto.DeletePropReq) (res *dto.GetDramaRes, err error) { err = service.DramaService.DeleteProp(ctx, req.Id) if err != nil { return nil, err } return c.Get(ctx, &dto.GetDramaReq{Id: req.DramaId}) }