You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
119 lines
3.0 KiB
119 lines
3.0 KiB
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)) |
|
}
|
|
|