Files
cid/controller/ad_source_controller.go
2025-12-10 15:41:52 +08:00

95 lines
2.1 KiB
Go

package controller
import (
"context"
"cid/model/dto"
"cid/service"
"github.com/gogf/gf/v2/errors/gerror"
)
var AdSource = new(adSource)
type adSource struct{}
// Create 创建广告源
func (c *adSource) Create(ctx context.Context, req *dto.CreateAdSourceReq) (res *dto.GetAdSourceRes, err error) {
id, err := service.AdSource.CreateAdSource(ctx, req)
if err != nil {
return nil, err
}
adSource, err := service.AdSource.GetAdSourceByID(ctx, id)
if err != nil {
return nil, err
}
return &dto.GetAdSourceRes{
AdSource: adSource,
}, nil
}
// Update 更新广告源
func (c *adSource) Update(ctx context.Context, req *dto.UpdateAdSourceReq) (res *dto.GetAdSourceRes, err error) {
affected, err := service.AdSource.UpdateAdSource(ctx, req.Id, req)
if err != nil {
return nil, err
}
if affected == 0 {
return nil, gerror.New("广告源更新失败")
}
adSource, err := service.AdSource.GetAdSourceByID(ctx, req.Id)
if err != nil {
return nil, err
}
return &dto.GetAdSourceRes{
AdSource: adSource,
}, nil
}
// Delete 删除广告源
func (c *adSource) Delete(ctx context.Context, req *dto.DeleteAdSourceReq) (res *dto.DeleteAdSourceRes, err error) {
affected, err := service.AdSource.DeleteAdSource(ctx, req.Id)
if err != nil {
return nil, err
}
if affected == 0 {
return nil, gerror.New("广告源删除失败")
}
return &dto.DeleteAdSourceRes{
Success: true,
}, nil
}
// GetByID 根据ID获取广告源
func (c *adSource) GetByID(ctx context.Context, req *dto.GetAdSourceReq) (res *dto.GetAdSourceRes, err error) {
adSource, err := service.AdSource.GetAdSourceByID(ctx, req.Id)
if err != nil {
return nil, err
}
if adSource == nil {
return nil, gerror.New("广告源不存在")
}
return &dto.GetAdSourceRes{
AdSource: adSource,
}, nil
}
// List 获取广告源列表
func (c *adSource) List(ctx context.Context, req *dto.ListAdSourceReq) (res *dto.ListAdSourceRes, err error) {
adSources, err := service.AdSource.GetAvailableSources(ctx)
if err != nil {
return nil, err
}
return &dto.ListAdSourceRes{
List: adSources,
Total: len(adSources),
}, nil
}