Files
video-factory/shortdrama/controller/bgm_controller.go
T
2026-07-24 10:40:33 +08:00

68 lines
1.8 KiB
Go

package controller
import (
"context"
"video-factory/shortdrama/model/dto"
"video-factory/shortdrama/service"
)
type bgm struct{}
var Bgm = new(bgm)
func (c *bgm) List(ctx context.Context, req *dto.ListBackgroundMusicReq) (res *dto.ListBackgroundMusicRes, err error) {
list, err := service.BgmService.ListBackgroundMusic(ctx, req.DramaId)
if err != nil {
return nil, err
}
return &dto.ListBackgroundMusicRes{List: list}, nil
}
func (c *bgm) Add(ctx context.Context, req *dto.AddBackgroundMusicReq) (res *dto.GetDramaRes, err error) {
var filePath string
if req.AudioFile != nil {
f, err := req.AudioFile.Open()
if err != nil {
return nil, err
}
defer func() { _ = f.Close() }()
filePath, err = service.SaveScenePropFile(ctx, req.DramaId, f, req.AudioFile.Filename, "背景音乐", req.Name)
if err != nil {
return nil, err
}
}
_, err = service.BgmService.AddBackgroundMusic(ctx, req.DramaId, req.Name, filePath)
if err != nil {
return nil, err
}
return nil, nil
}
func (c *bgm) Update(ctx context.Context, req *dto.UpdateBackgroundMusicReq) (res *dto.GetDramaRes, err error) {
var filePath string
if req.AudioFile != nil {
f, err := req.AudioFile.Open()
if err != nil {
return nil, err
}
defer func() { _ = f.Close() }()
filePath, err = service.SaveScenePropFile(ctx, req.DramaId, f, req.AudioFile.Filename, "背景音乐", req.Name)
if err != nil {
return nil, err
}
}
err = service.BgmService.UpdateBackgroundMusic(ctx, req.Id, req.DramaId, req.Name, filePath)
if err != nil {
return nil, err
}
return nil, nil
}
func (c *bgm) Delete(ctx context.Context, req *dto.DeleteBackgroundMusicReq) (res *dto.GetDramaRes, err error) {
err = service.BgmService.DeleteBackgroundMusic(ctx, req.Id)
if err != nil {
return nil, err
}
return nil, nil
}