120 lines
3.0 KiB
Go
120 lines
3.0 KiB
Go
package http
|
|
|
|
import (
|
|
"net/url"
|
|
"strconv"
|
|
|
|
pushmdl "go-common/app/service/main/push/model"
|
|
"go-common/library/ecode"
|
|
"go-common/library/log"
|
|
bm "go-common/library/net/http/blademaster"
|
|
)
|
|
|
|
const (
|
|
timeZoneMin = -12
|
|
timeZoneMax = 14
|
|
)
|
|
|
|
func report(c *bm.Context) {
|
|
var (
|
|
mid int64
|
|
params = c.Request.Form
|
|
)
|
|
midItf, _ := c.Get("mid")
|
|
if midItf != nil {
|
|
mid = midItf.(int64)
|
|
}
|
|
platform := params.Get("mobi_app")
|
|
if platform == "" {
|
|
c.JSON(nil, ecode.RequestErr)
|
|
log.Warn("mobi_app is empty")
|
|
return
|
|
}
|
|
buvid := params.Get("buvid")
|
|
if buvid == "" {
|
|
c.JSON(nil, ecode.RequestErr)
|
|
log.Warn("buvid is empty")
|
|
return
|
|
}
|
|
dt := params.Get("device_token")
|
|
build, _ := strconv.Atoi(params.Get("build"))
|
|
if build < 1 {
|
|
c.JSON(nil, ecode.RequestErr)
|
|
log.Warn("build is wrong: %s", params.Get("build"))
|
|
return
|
|
}
|
|
pushSDK, _ := strconv.Atoi(params.Get("push_sdk"))
|
|
platformID := pushmdl.Platform(platform, pushSDK)
|
|
if platformID == pushmdl.PlatformUnknown {
|
|
c.JSON(nil, ecode.RequestErr)
|
|
log.Warn("push_sdk is wrong: %s", params.Get("push_sdk"))
|
|
return
|
|
}
|
|
tm, _ := strconv.Atoi(params.Get("time_zone"))
|
|
if tm < timeZoneMin || tm > timeZoneMax {
|
|
c.JSON(nil, ecode.RequestErr)
|
|
log.Warn("time_zone is wrong: %s", params.Get("time_zone"))
|
|
return
|
|
}
|
|
ns, _ := strconv.Atoi(params.Get("notify_switch"))
|
|
if ns != 0 && ns != 1 {
|
|
c.JSON(nil, ecode.RequestErr)
|
|
log.Warn("notify_switch is wrong: %s", params.Get("notify_switch"))
|
|
return
|
|
}
|
|
// tp, _ := strconv.Atoi(params.Get("type"))
|
|
appID, _ := strconv.ParseInt(params.Get("app_id"), 10, 64)
|
|
if appID == 0 {
|
|
appID = pushmdl.APPIDBBPhone
|
|
}
|
|
deviceBrand, _ := url.QueryUnescape(params.Get("mobile_brand"))
|
|
deviceModel, _ := url.QueryUnescape(params.Get("mobile_model"))
|
|
osVersion, _ := url.QueryUnescape(params.Get("mobile_version"))
|
|
r := &pushmdl.Report{
|
|
APPID: appID,
|
|
PlatformID: platformID,
|
|
Mid: mid,
|
|
Buvid: buvid,
|
|
DeviceToken: dt,
|
|
Build: build,
|
|
TimeZone: tm,
|
|
NotifySwitch: ns,
|
|
DeviceBrand: deviceBrand,
|
|
DeviceModel: deviceModel,
|
|
OSVersion: osVersion,
|
|
}
|
|
if dt == "" {
|
|
log.Warn("device_token is empty(%+v)", r)
|
|
c.JSON(nil, nil) // iOS可能取不到device token
|
|
return
|
|
}
|
|
c.JSON(nil, pushSrv.PubReport(c, r))
|
|
}
|
|
|
|
func reportOld(ctx *bm.Context) {
|
|
var params = ctx.Request.Form
|
|
buvid := params.Get("buvid")
|
|
if buvid == "" {
|
|
log.Warn("buvid is empty")
|
|
ctx.JSON(nil, nil)
|
|
return
|
|
}
|
|
token := params.Get("device_token")
|
|
if token == "" {
|
|
log.Warn("device_token is empty")
|
|
ctx.JSON(nil, nil)
|
|
return
|
|
}
|
|
ma := params.Get("mobi_app")
|
|
if ma != "" && ma != "android" && ma != "iphone" && ma != "ipad" {
|
|
log.Warn("invalid mobi_app(%s)", ma)
|
|
ctx.JSON(nil, nil)
|
|
return
|
|
}
|
|
mid, _ := strconv.ParseInt(params.Get("mid"), 10, 64)
|
|
pid, _ := strconv.Atoi(params.Get("pid"))
|
|
timezone, _ := strconv.Atoi(params.Get("time_zone"))
|
|
version := params.Get("ver")
|
|
ctx.JSON(nil, pushSrv.ReportOld(ctx, token, buvid, version, mid, pid, timezone))
|
|
}
|