57 lines
1.1 KiB
Go
57 lines
1.1 KiB
Go
package web
|
|
|
|
import (
|
|
"net/http"
|
|
"videoweb/app/service/adsser"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// adsClickBody 浏览器上报体;appId 由服务端固定,不信任前端。
|
|
type adsClickBody struct {
|
|
AdsId int64 `json:"adsId"`
|
|
Location int64 `json:"location"`
|
|
}
|
|
|
|
// AdsClick BFF:代理 POST /api/app/ads/click(广告点击上报)。
|
|
func AdsClick(c *gin.Context) {
|
|
var body adsClickBody
|
|
if err := c.ShouldBindJSON(&body); err != nil || body.AdsId <= 0 || body.Location <= 0 {
|
|
c.JSON(http.StatusBadRequest, gin.H{
|
|
"code": 400,
|
|
"msg": "invalid body",
|
|
"tip": "参数错误",
|
|
"data": nil,
|
|
})
|
|
return
|
|
}
|
|
|
|
env, err := adsser.Click(c, adsser.ClickReq{
|
|
AppId: adsser.ClickAppID,
|
|
AdsId: body.AdsId,
|
|
Location: body.Location,
|
|
})
|
|
if err != nil {
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"code": 500,
|
|
"msg": err.Error(),
|
|
"data": nil,
|
|
})
|
|
return
|
|
}
|
|
if env == nil {
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"code": 500,
|
|
"msg": "empty response",
|
|
"data": nil,
|
|
})
|
|
return
|
|
}
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"code": env.Code,
|
|
"msg": env.Msg,
|
|
"tip": env.Tip,
|
|
"data": env.Data,
|
|
})
|
|
}
|