- 新增 advitise v2: info/location/bind/click-stat/day-click-stat 模型与 对应的 service、api、router、proto 定义 - models/index.go 注册 5 个新模型的索引初始化 - 鉴权白名单: /rsdownload/ 改为 /download/,放行 advitise v2 的 get/click 接口 - statg/config: proxyUrl 增加 fileRes1 - common/genId: lid 生成逻辑补充 - 新增 91fans / huangguo 的 mobileconfig 描述文件 - 新增 deploy/nginx/cpcdownload.mfcg.me.conf 网关配置 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
130 lines
7.4 KiB
Go
130 lines
7.4 KiB
Go
package proto
|
|
|
|
import (
|
|
"stat/common"
|
|
"stat/models/advertiseMod"
|
|
"time"
|
|
)
|
|
|
|
// 广告位置列表请求
|
|
type ListAdsReq struct {
|
|
AppId *int32 `form:"appId" json:"appId" binding:"omitempty"` // appId,过滤条件
|
|
IsActive *bool `form:"isActive" json:"isActive" binding:"omitempty"` // appId,过滤条件
|
|
LocId *int32 `json:"locId"` // 位置id
|
|
common.Page
|
|
Link *string `form:"link" json:"link"` // 链接地址
|
|
Title *string `form:"title" json:"title"` // 广告标题
|
|
DaoLiangTitle *string `json:"daoLiangTitle"` // 广告导量标题
|
|
}
|
|
|
|
type ListAdsRes struct {
|
|
Total int64 `json:"total"`
|
|
List []AdsInfo `json:"list"`
|
|
}
|
|
|
|
type LinkInfo struct {
|
|
Link string `json:"link"` // 链接地址
|
|
Foreign bool `json:"foreign"` // true 国外用户
|
|
Weight int `json:"weight"` // 权重
|
|
}
|
|
|
|
type AdsInfo struct {
|
|
Id int64 `json:"id"` // 广告id
|
|
AppId int32 `json:"appId"` // 应用id
|
|
AppName string `json:"appName"` // 应用名称
|
|
Title string `json:"title"` // 广告标题
|
|
DaoLiangTitle string `json:"daoLiangTitle"` // 广告导量标题
|
|
Tags []string `json:"tags"` // 广告标签
|
|
CoverImg string `json:"coverImg"` // 封面
|
|
VisibleChannels []string `json:"visibleChannels"` // 可见的渠道
|
|
LocId int32 `json:"locId"` // 位置id
|
|
ImgSizeDesc string `json:"imgSizeDesc"` // 图片尺寸
|
|
LocName string `json:"locName"` // 位置名称
|
|
Links []LinkInfo `json:"links"` // 链接地址
|
|
Sort int64 `json:"sort"` // 排序值--优先级
|
|
IsActive bool `json:"isActive"` // 是否激活
|
|
StartTime time.Time `json:"startTime"` // 开始时间
|
|
EndTime time.Time `json:"endTime"` // 结束时间
|
|
Remark string `json:"remark"` // 备注
|
|
ClickCount int64 `json:"clickCount"` // 点击次数
|
|
AmbientColor string `json:"ambientColor"` // 氛围色
|
|
CreatedAt time.Time `json:"createAt"` // 创建时间
|
|
UpdatedAt time.Time `json:"updatedAt"` // 更新时间
|
|
}
|
|
|
|
// 添加广告请求
|
|
type AddAdsReq struct {
|
|
AppId int32 `form:"appId" json:"appId"` // 应用id
|
|
Title string `form:"title" json:"title" ` // 广告标题
|
|
Tags string `form:"tags" json:"tags" ` // 广告标签
|
|
CoverImg string `form:"coverImg" json:"coverImg"` // 封面
|
|
LocId int32 `form:"locId" json:"locId"` // 位置id
|
|
Sort int64 `form:"sort" json:"sort"` // 排序值--优先级
|
|
IsActive bool `form:"isActive" json:"isActive"` // 是否激活
|
|
Links []LinkInfo `form:"links" json:"links"` // 链接地址
|
|
StartTime time.Time `form:"startTime" json:"startTime" ` // 开始时间
|
|
EndTime time.Time `form:"endTime" json:"endTime"` // 结束时间
|
|
Remark string `form:"remark" json:"remark"` // 备注
|
|
AmbientColor string `form:"ambientColor" json:"ambientColor"` // 氛围色
|
|
}
|
|
|
|
// 更新广告请求
|
|
type UpdateAdsReq struct {
|
|
Id *int64 `form:"id" json:"id" binding:"omitempty"` // 广告id
|
|
AppId *int32 `form:"appId" json:"appId" binding:"omitempty"` // 应用id
|
|
Title *string `form:"title" json:"title" binding:"omitempty"` // 广告标题
|
|
DaoLiangTitle *string `form:"daoLiangTitle" json:"daoLiangTitle" binding:"omitempty"` // 广告导量标题
|
|
Tags *string `form:"tags" json:"tags" binding:"omitempty"` // 广告标签
|
|
CoverImg *string `form:"coverImg" json:"coverImg" binding:"omitempty"` // 封面
|
|
VisibleChannels *string `form:"visibleChannels" json:"visibleChannels" binding:"omitempty"` // 可见的渠道,可输入多个渠道,用英文逗号","分隔开
|
|
Location *int64 `form:"locId" json:"locId" binding:"omitempty"` // 位置
|
|
JumpType *advertiseMod.JumpType `form:"jumpType" json:"jumpType" binding:"omitempty"` // 跳转方式 0:外部浏览器跳转 1:内部浏览器跳转 2:app内部跳转
|
|
Links *[]LinkInfo `form:"links" json:"links" binding:"omitempty"` // 链接地址
|
|
Sort *int64 `form:"sort" json:"sort" binding:"omitempty"` // 排序值--优先级
|
|
IsActive *bool `form:"isActive" json:"isActive" binding:"omitempty"` // 是否激活
|
|
StartTime *time.Time `form:"startTime" json:"startTime" binding:"omitempty"` // 开始时间s
|
|
EndTime *time.Time `form:"endTime" json:"endTime" binding:"omitempty"` // 结束时间
|
|
Remark *string `form:"remark" json:"remark" binding:"omitempty"`
|
|
AmbientColor *string `form:"ambientColor" json:"ambientColor" binding:"omitempty"` //氛围色
|
|
}
|
|
|
|
// 删除广告请求
|
|
type DelAdsReq struct {
|
|
Id *int64 `form:"id" json:"id" binding:"required"` // 应用id
|
|
}
|
|
|
|
// 外部获取广告
|
|
type AdvertiseReq struct {
|
|
AppId int32 `form:"appId" json:"appId" binding:"required"` // 应用id
|
|
LocId *int32 `form:"locId" json:"locId" binding:"omitempty"` // 位置id
|
|
UserId *uint64 `form:"userId" json:"userId" binding:"omitempty"` // 用户ID
|
|
IP *string `form:"ip" json:"ip" binding:"omitempty"` // 用户IP
|
|
}
|
|
|
|
type AdvertiseRes struct {
|
|
AdvertiseList []*AdvertiseInfo `json:"advertiseList"` // 广告列表
|
|
}
|
|
|
|
// 外部广告信息
|
|
type AdvertiseInfo struct {
|
|
Id int64 `json:"id"` // 广告id(V2 = advitiseId)
|
|
Title string `json:"title"` // 广告标题
|
|
CoverImg string `json:"coverImg"` // 封面
|
|
LocId int32 `json:"locId"` // 位置id
|
|
JumpType advertiseMod.JumpType `json:"jumpType"` // 跳转方式 0:外部浏览器跳转 1:内部浏览器跳转 2:app内部跳转
|
|
Link string `json:"link"` // 链接地址
|
|
Sort int64 `json:"sort"` // 排序
|
|
Tags string `json:"tags"` // 标签
|
|
Remark string `json:"remark"` // 备注描述
|
|
AmbientColor string `json:"ambientColor"` // 氛围色(逼哩漫画)
|
|
Type int // 0:系统 1:渠道
|
|
BindId int64 `json:"bindId,omitempty"` // V2 点击回传凭证(老接口不填,omitempty 隐藏)
|
|
}
|
|
|
|
// 广告点击请求
|
|
type AdsClickReq struct {
|
|
Id *int64 `from:"id" json:"id" binding:"required"` // 广告id(客户端上报,可能已过期)
|
|
AppId *int32 `from:"appId" json:"appId" binding:"required"` // 应用id
|
|
LocId *int32 `from:"locId" json:"locId"` // 位置id(可选;传入后,Id 失效时会按 AppId+LocId 定位最新广告)
|
|
}
|