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 }