package controller import ( "ai-agent/digital-human/model/dto" "ai-agent/digital-human/service" "context" "gitea.redpowerfuture.com/red-future/common/beans" "github.com/gogf/gf/v2/util/gconv" ) type audio struct{} // Audio 音频控制器 var Audio = new(audio) // CreateAudio 创建音频 func (c *audio) CreateAudio(ctx context.Context, req *dto.CreateAudioReq) (res *dto.CreateAudioRes, err error) { // 从上下文获取用户信息(gfdb Hook 会自动填充) if ctx.Value("userId") == nil { ctx = context.WithValue(ctx, "userId", gconv.String(1)) } if ctx.Value("userName") == nil { ctx = context.WithValue(ctx, "userName", "admin") } if ctx.Value("tenantId") == nil { ctx = context.WithValue(ctx, "tenantId", uint64(1)) } return service.Audio.Create(ctx, req) } // ListAudio 获取音频列表 func (c *audio) ListAudio(ctx context.Context, req *dto.ListAudioReq) (res *dto.ListAudioRes, err error) { // 从上下文获取用户信息 if ctx.Value("userId") == nil { ctx = context.WithValue(ctx, "userId", gconv.String(1)) } if ctx.Value("userName") == nil { ctx = context.WithValue(ctx, "userName", "admin") } if ctx.Value("tenantId") == nil { ctx = context.WithValue(ctx, "tenantId", uint64(1)) } return service.Audio.List(ctx, req) } // GetAudio 获取音频详情 func (c *audio) GetAudio(ctx context.Context, req *dto.GetAudioReq) (res *dto.GetAudioRes, err error) { if ctx.Value("userId") == nil { ctx = context.WithValue(ctx, "userId", gconv.String(1)) } if ctx.Value("userName") == nil { ctx = context.WithValue(ctx, "userName", "admin") } if ctx.Value("tenantId") == nil { ctx = context.WithValue(ctx, "tenantId", uint64(1)) } return service.Audio.GetOne(ctx, req.ID) } // UpdateAudio 更新音频 func (c *audio) UpdateAudio(ctx context.Context, req *dto.UpdateAudioReq) (res *beans.ResponseEmpty, err error) { if ctx.Value("userId") == nil { ctx = context.WithValue(ctx, "userId", gconv.String(1)) } if ctx.Value("userName") == nil { ctx = context.WithValue(ctx, "userName", "admin") } if ctx.Value("tenantId") == nil { ctx = context.WithValue(ctx, "tenantId", uint64(1)) } err = service.Audio.Update(ctx, req) return } // DeleteAudio 删除音频 func (c *audio) DeleteAudio(ctx context.Context, req *dto.DeleteAudioReq) (res *beans.ResponseEmpty, err error) { if ctx.Value("userId") == nil { ctx = context.WithValue(ctx, "userId", gconv.String(1)) } if ctx.Value("userName") == nil { ctx = context.WithValue(ctx, "userName", "admin") } if ctx.Value("tenantId") == nil { ctx = context.WithValue(ctx, "tenantId", uint64(1)) } err = service.Audio.Delete(ctx, req.ID) return } // GenerateAudio 重新生成音频 func (c *audio) GenerateAudio(ctx context.Context, req *dto.GenerateAudioReq) (res *dto.GenerateAudioRes, err error) { if ctx.Value("userId") == nil { ctx = context.WithValue(ctx, "userId", gconv.String(1)) } if ctx.Value("userName") == nil { ctx = context.WithValue(ctx, "userName", "admin") } if ctx.Value("tenantId") == nil { ctx = context.WithValue(ctx, "tenantId", uint64(1)) } return service.Audio.Generate(ctx, req) } // TTS 文本转语音 func (c *audio) TTS(ctx context.Context, req *dto.TTSReq) (res *dto.TTSRes, err error) { return service.Audio.TTS(ctx, req) } // GetStatusOptions 获取状态选项 func (c *audio) GetStatusOptions(ctx context.Context, req *dto.GetAudioStatusOptionsReq) (res *dto.GetAudioStatusOptionsRes, err error) { return service.Audio.GetStatusOptions(ctx, req) }