68 lines
1.8 KiB
Go
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) ListBackgroundMusic(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) AddBackgroundMusic(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) UpdateBackgroundMusic(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) DeleteBackgroundMusic(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
|
|
}
|