2025-12-06 10:38:48 +08:00
|
|
|
package controller
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"context"
|
|
|
|
|
"strconv"
|
|
|
|
|
|
2025-12-09 16:10:45 +08:00
|
|
|
"cid/model/dto"
|
|
|
|
|
"cid/service"
|
2025-12-06 15:24:30 +08:00
|
|
|
|
2025-12-06 10:38:48 +08:00
|
|
|
"github.com/gogf/gf/v2/errors/gerror"
|
|
|
|
|
)
|
|
|
|
|
|
2025-12-08 16:56:38 +08:00
|
|
|
var AdSource = new(adSource)
|
2025-12-06 10:38:48 +08:00
|
|
|
|
2025-12-06 15:24:30 +08:00
|
|
|
type adSource struct{}
|
2025-12-06 10:38:48 +08:00
|
|
|
|
|
|
|
|
// Create 创建广告源
|
2025-12-06 15:24:30 +08:00
|
|
|
func (c *adSource) Create(ctx context.Context, req *dto.CreateAdSourceReq) (res *dto.GetAdSourceRes, err error) {
|
2025-12-06 10:38:48 +08:00
|
|
|
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 更新广告源
|
2025-12-06 15:24:30 +08:00
|
|
|
func (c *adSource) Update(ctx context.Context, req *dto.UpdateAdSourceReq) (res *dto.GetAdSourceRes, err error) {
|
2025-12-06 10:38:48 +08:00
|
|
|
id, err := strconv.ParseInt(req.Id, 10, 64)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, gerror.New("无效的广告源ID")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
affected, err := service.AdSource.UpdateAdSource(ctx, id, req)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
if affected == 0 {
|
|
|
|
|
return nil, gerror.New("广告源更新失败")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
adSource, err := service.AdSource.GetAdSourceByID(ctx, id)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return &dto.GetAdSourceRes{
|
|
|
|
|
AdSource: adSource,
|
|
|
|
|
}, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Delete 删除广告源
|
2025-12-06 15:24:30 +08:00
|
|
|
func (c *adSource) Delete(ctx context.Context, req *dto.DeleteAdSourceReq) (res *dto.DeleteAdSourceRes, err error) {
|
2025-12-06 10:38:48 +08:00
|
|
|
id, err := strconv.ParseInt(req.Id, 10, 64)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, gerror.New("无效的广告源ID")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
affected, err := service.AdSource.DeleteAdSource(ctx, id)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
if affected == 0 {
|
|
|
|
|
return nil, gerror.New("广告源删除失败")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return &dto.DeleteAdSourceRes{
|
|
|
|
|
Success: true,
|
|
|
|
|
}, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// GetByID 根据ID获取广告源
|
2025-12-06 15:24:30 +08:00
|
|
|
func (c *adSource) GetByID(ctx context.Context, req *dto.GetAdSourceReq) (res *dto.GetAdSourceRes, err error) {
|
2025-12-06 10:38:48 +08:00
|
|
|
id, err := strconv.ParseInt(req.Id, 10, 64)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, gerror.New("无效的广告源ID")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
adSource, err := service.AdSource.GetAdSourceByID(ctx, id)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
if adSource == nil {
|
|
|
|
|
return nil, gerror.New("广告源不存在")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return &dto.GetAdSourceRes{
|
|
|
|
|
AdSource: adSource,
|
|
|
|
|
}, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// GetList 获取广告源列表
|
2025-12-06 15:24:30 +08:00
|
|
|
func (c *adSource) GetList(ctx context.Context, req *dto.ListAdSourceReq) (res *dto.ListAdSourceRes, err error) {
|
2025-12-06 10:38:48 +08:00
|
|
|
adSources, err := service.AdSource.GetAvailableSources(ctx)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return &dto.ListAdSourceRes{
|
|
|
|
|
List: adSources,
|
|
|
|
|
Total: len(adSources),
|
|
|
|
|
}, nil
|
|
|
|
|
}
|