package tencent import ( "context" dto "dataengine/model/dto/tencent" entity "dataengine/model/entity/tencent" service "dataengine/service/tencent" "gitea.redpowerfuture.com/red-future/common/beans" ) type oauthController struct{} // OauthController OAuth控制器 var OauthController = new(oauthController) // RefreshToken 刷新腾讯广告Token func (c *oauthController) RefreshToken(ctx context.Context, req *dto.RefreshTokenReq) (res *dto.RefreshTokenRes, err error) { ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin"}) return service.OauthService.RefreshToken(ctx, req) } // SyncAccountRelation 同步账户关系(自动分页获取所有数据) func (c *oauthController) SyncAccountRelation(ctx context.Context, req *dto.SyncAccountRelationReq) (res *dto.SyncAccountRelationRes, err error) { ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin"}) return service.AccountRelationService.SyncAll(ctx, req) } // ListAccountRelation 获取所有账户关系 func (c *oauthController) ListAccountRelation(ctx context.Context, req *dto.ListAccountRelationReq) (res *dto.ListAccountRelationRes, err error) { ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin"}) list, err := service.AccountRelationService.ListAll(ctx) if err != nil { return nil, err } // 转换为DTO items := make([]dto.AccountRelationItem, 0, len(list)) for _, item := range list { items = append(items, dto.AccountRelationItem{ ID: item.Id, AccountID: item.AccountID, CorporationName: item.CorporationName, IsAdx: item.IsAdx, IsBid: item.IsBid, IsMp: item.IsMp, }) } res = &dto.ListAccountRelationRes{ List: items, } return res, nil } // SyncAudio 同步音乐素材(自动分页获取所有数据) func (c *oauthController) SyncAudio(ctx context.Context, req *dto.SyncAudioReq) (res *dto.SyncAudioRes, err error) { ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin"}) return service.AudioService.SyncAll(ctx, req) } // ListAudio 获取所有音乐素材 func (c *oauthController) ListAudio(ctx context.Context, req *dto.ListAudioReq) (res []entity.Audio, err error) { ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin"}) return service.AudioService.ListAll(ctx) } // SyncImage 同步图片素材(遍历所有账户,自动分页) func (c *oauthController) SyncImage(ctx context.Context, req *dto.SyncImageReq) (res *dto.SyncImageRes, err error) { ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin"}) return service.ImageService.SyncAll(ctx, req) } // ListImage 获取所有图片素材(旧接口,保留兼容) func (c *oauthController) ListImage(ctx context.Context, req *dto.ListImageReq) (res []entity.Image, err error) { ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin"}) return service.ImageService.ListAll(ctx) } // ListImagePage 分页查询图片素材(支持时间过滤) func (c *oauthController) ListImagePage(ctx context.Context, req *dto.ListImagePageReq) (res *dto.ListImageRes, err error) { ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin"}) // 转换请求参数为Service层使用的类型 queryReq := &dto.ListImageQueryReq{ Page: req.Page, PageSize: req.PageSize, AccountId: req.AccountId, StartTime: req.StartTime, EndTime: req.EndTime, Status: req.Status, } return service.ImageService.ListWithPage(ctx, queryReq) } // SyncVideo 同步视频素材(遍历所有账户,自动分页) func (c *oauthController) SyncVideo(ctx context.Context, req *dto.SyncVideoReq) (res *dto.SyncVideoRes, err error) { ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin"}) return service.VideoService.SyncAll(ctx, req) } // ListVideo 获取所有视频素材(旧接口,保留兼容) func (c *oauthController) ListVideo(ctx context.Context, req *dto.ListVideoReq) (res []entity.Video, err error) { ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin"}) return service.VideoService.ListAll(ctx) } // ListVideoPage 分页查询视频素材(支持时间过滤) func (c *oauthController) ListVideoPage(ctx context.Context, req *dto.ListVideoPageReq) (res *dto.ListVideoRes, err error) { ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin"}) // 转换请求参数为Service层使用的类型 queryReq := &dto.ListVideoQueryReq{ Page: req.Page, PageSize: req.PageSize, AccountId: req.AccountId, StartTime: req.StartTime, EndTime: req.EndTime, Status: req.Status, } return service.VideoService.ListWithPage(ctx, queryReq) }