- 新增 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>
81 lines
2.5 KiB
Go
81 lines
2.5 KiB
Go
package advitiseV2Api
|
|
|
|
import (
|
|
"stat/api/proto"
|
|
"stat/common/stdLog"
|
|
"stat/service/advitiseV2Ser"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// @Tags 广告管理V2/统计
|
|
// @Summary 广告每日点击列表(汇总)
|
|
// @Router /api/stat/advitise/v2/day/click/list [POST]
|
|
// @Param param body proto.AdvitiseDayClickListReq true "参数"
|
|
// @Success 200 {object} proto.AdvitiseDayClickListResp "成功"
|
|
// @Security ApiKeyAuth
|
|
func DayClickList(ctx *gin.Context) {
|
|
req := &proto.AdvitiseDayClickListReq{}
|
|
if err := ctx.ShouldBindJSON(req); err != nil {
|
|
stdLog.ServerJSON(ctx, stdLog.ParamError, err.Error())
|
|
return
|
|
}
|
|
resp, err := advitiseV2Ser.DayClickList(ctx, req)
|
|
if err != nil {
|
|
stdLog.ServerJSON(ctx, stdLog.Failure, err.Error())
|
|
return
|
|
}
|
|
stdLog.ServerJSON(ctx, stdLog.Success, resp)
|
|
}
|
|
|
|
// @Tags 广告管理V2/统计
|
|
// @Summary 广告点击详情(细维度)
|
|
// @Router /api/stat/advitise/v2/day/click/info [POST]
|
|
// @Param param body proto.AdvitiseClickListReq true "参数"
|
|
// @Success 200 {object} proto.AdvitiseClickListResp "成功"
|
|
// @Security ApiKeyAuth
|
|
func DayClickInfo(ctx *gin.Context) {
|
|
req := &proto.AdvitiseClickListReq{}
|
|
if err := ctx.ShouldBindJSON(req); err != nil {
|
|
stdLog.ServerJSON(ctx, stdLog.ParamError, err.Error())
|
|
return
|
|
}
|
|
resp, err := advitiseV2Ser.ClickList(ctx, req)
|
|
if err != nil {
|
|
stdLog.ServerJSON(ctx, stdLog.Failure, err.Error())
|
|
return
|
|
}
|
|
stdLog.ServerJSON(ctx, stdLog.Success, resp)
|
|
}
|
|
|
|
// @Tags 广告管理V2/统计
|
|
// @Summary 广告细维度点击列表(广告位查看统计入口)
|
|
// @Router /api/stat/advitise/v2/click/list [POST]
|
|
// @Param param body proto.AdvitiseClickListReq true "参数"
|
|
// @Success 200 {object} proto.AdvitiseClickListResp "成功"
|
|
// @Security ApiKeyAuth
|
|
func ClickList(ctx *gin.Context) {
|
|
// 与 DayClickInfo 语义一致,复用同一入口
|
|
DayClickInfo(ctx)
|
|
}
|
|
|
|
// @Tags 广告管理V2/统计
|
|
// @Summary 按时间范围汇总广告点击量(每广告一行)
|
|
// @Router /api/stat/advitise/v2/day/click/summary [POST]
|
|
// @Param param body proto.AdvitiseClickSummaryReq true "参数"
|
|
// @Success 200 {object} proto.AdvitiseClickSummaryResp "成功"
|
|
// @Security ApiKeyAuth
|
|
func ClickSummary(ctx *gin.Context) {
|
|
req := &proto.AdvitiseClickSummaryReq{}
|
|
if err := ctx.ShouldBindJSON(req); err != nil {
|
|
stdLog.ServerJSON(ctx, stdLog.ParamError, err.Error())
|
|
return
|
|
}
|
|
resp, err := advitiseV2Ser.ClickSummary(ctx, req)
|
|
if err != nil {
|
|
stdLog.ServerJSON(ctx, stdLog.Failure, err.Error())
|
|
return
|
|
}
|
|
stdLog.ServerJSON(ctx, stdLog.Success, resp)
|
|
}
|