66 lines
1.8 KiB
Go
66 lines
1.8 KiB
Go
package controller
|
|
|
|
import (
|
|
"context"
|
|
|
|
"cidservice/model/dto"
|
|
"cidservice/service"
|
|
|
|
"gitee.com/red-future---jilin-g/common/http"
|
|
)
|
|
|
|
type adPosition struct{}
|
|
|
|
var AdPosition = new(adPosition)
|
|
|
|
// Add 添加广告位
|
|
func (c *adPosition) Add(ctx context.Context, req *dto.AddAdPositionReq) (res *dto.AddAdPositionRes, err error) {
|
|
return service.AdPosition.Add(ctx, req)
|
|
}
|
|
|
|
// Update 更新广告位
|
|
func (c *adPosition) Update(ctx context.Context, req *dto.UpdateAdPositionReq) (res *http.ResponseEmpty, err error) {
|
|
err = service.AdPosition.Update(ctx, req)
|
|
return
|
|
}
|
|
|
|
// UpdateStatus 更新广告位状态
|
|
func (c *adPosition) UpdateStatus(ctx context.Context, req *dto.UpdateAdPositionStatusReq) (res *http.ResponseEmpty, err error) {
|
|
err = service.AdPosition.UpdateStatus(ctx, req)
|
|
return
|
|
}
|
|
|
|
// GetOne 获取广告位详情
|
|
func (c *adPosition) GetOne(ctx context.Context, req *dto.GetAdPositionReq) (res *dto.GetAdPositionRes, err error) {
|
|
return service.AdPosition.GetOne(ctx, req)
|
|
}
|
|
|
|
// List 获取广告位列表
|
|
func (c *adPosition) List(ctx context.Context, req *dto.ListAdPositionReq) (res *dto.ListAdPositionRes, err error) {
|
|
return service.AdPosition.List(ctx, req)
|
|
}
|
|
|
|
// GetAvailableAdPositions 获取可用的广告位列表
|
|
func (c *adPosition) GetAvailableAdPositions(ctx context.Context, _ *dto.GetAvailableAdPositionsReq) (res *dto.GetAvailableAdPositionsRes, err error) {
|
|
list, err := service.AdPosition.GetAvailableAdPositions(ctx)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &dto.GetAvailableAdPositionsRes{
|
|
List: list,
|
|
}, nil
|
|
}
|
|
|
|
// MatchAd 匹配广告
|
|
func (c *adPosition) MatchAd(ctx context.Context, req *dto.MatchAdReq) (res *dto.MatchAdRes, err error) {
|
|
ad, err := service.AdPosition.MatchAd(ctx, req.PositionCode, req.UserInfo)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &dto.MatchAdRes{
|
|
Advertisement: ad,
|
|
}, nil
|
|
}
|