Files
data-engine/controller/tencent/oauth_controller.go

95 lines
3.4 KiB
Go
Raw Normal View History

2026-05-06 16:19:22 +08:00
package tencent
import (
"context"
dto "dataengine/model/dto/tencent"
entity "dataengine/model/entity/tencent"
service "dataengine/service/tencent"
"gitea.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)
}