Create & Init Project...

This commit is contained in:
2019-04-22 18:49:16 +08:00
commit fc4fa37393
25440 changed files with 4054998 additions and 0 deletions

View File

@@ -0,0 +1,54 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"banner.go",
"daily.go",
"http.go",
"local.go",
"rank.go",
"region.go",
"show.go",
],
importpath = "go-common/app/interface/main/app-show/http",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/interface/main/app-show/conf:go_default_library",
"//app/interface/main/app-show/model:go_default_library",
"//app/interface/main/app-show/model/region:go_default_library",
"//app/interface/main/app-show/model/show:go_default_library",
"//app/interface/main/app-show/service/banner:go_default_library",
"//app/interface/main/app-show/service/daily:go_default_library",
"//app/interface/main/app-show/service/ping:go_default_library",
"//app/interface/main/app-show/service/rank:go_default_library",
"//app/interface/main/app-show/service/region:go_default_library",
"//app/interface/main/app-show/service/show:go_default_library",
"//library/ecode:go_default_library",
"//library/log:go_default_library",
"//library/net/http/blademaster:go_default_library",
"//library/net/http/blademaster/middleware/auth:go_default_library",
"//library/net/http/blademaster/render:go_default_library",
"//library/net/metadata:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,32 @@
package http
import (
"strconv"
"go-common/app/interface/main/app-show/model"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
// banners get banners.
func banners(c *bm.Context) {
params := c.Request.Form
mobiApp := params.Get("mobi_app")
mobiApp = model.MobiAPPBuleChange(mobiApp)
buildStr := params.Get("build")
channel := params.Get("channel")
module := params.Get("module")
position := params.Get("position")
// check param
device := params.Get("device")
plat := model.Plat(mobiApp, device)
build, err := strconv.Atoi(buildStr)
if err != nil {
log.Error("build(%s) error(%v)", buildStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
data := bannerSvc.Display(c, plat, build, channel, module, position, mobiApp)
returnJSON(c, data, nil)
}

View File

@@ -0,0 +1,104 @@
package http
import (
"strconv"
"go-common/app/interface/main/app-show/model"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
func dailyID(c *bm.Context) {
params := c.Request.Form
mobiApp := params.Get("mobi_app")
mobiApp = model.MobiAPPBuleChange(mobiApp)
device := params.Get("device")
buildStr := params.Get("build")
pnStr := params.Get("pn")
psStr := params.Get("ps")
dailyIDStr := params.Get("daily_id")
dailyID, err := strconv.Atoi(dailyIDStr)
if err != nil {
log.Error("dailyID(%s) error(%v)", dailyIDStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
plat := model.Plat(mobiApp, device)
pn, err := strconv.Atoi(pnStr)
if err != nil || pn < 1 {
pn = 1
}
ps, err := strconv.Atoi(psStr)
if err != nil || ps > 60 || ps <= 0 {
ps = 60
}
build, err := strconv.Atoi(buildStr)
if err != nil {
log.Error("build(%s) error(%v)", buildStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
data := dailySvc.Daily(c, plat, build, dailyID, pn, ps)
returnJSON(c, data, nil)
}
func columnList(c *bm.Context) {
params := c.Request.Form
mobiApp := params.Get("mobi_app")
mobiApp = model.MobiAPPBuleChange(mobiApp)
device := params.Get("device")
buildStr := params.Get("build")
categoryIDStr := params.Get("category_id")
categoryID, err := strconv.Atoi(categoryIDStr)
if err != nil {
log.Error("categoryID(%s) error(%v)", categoryIDStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
plat := model.Plat(mobiApp, device)
build, err := strconv.Atoi(buildStr)
if err != nil {
log.Error("build(%s) error(%v)", buildStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
data := dailySvc.ColumnList(plat, build, categoryID)
returnJSON(c, data, nil)
}
func category(c *bm.Context) {
params := c.Request.Form
mobiApp := params.Get("mobi_app")
mobiApp = model.MobiAPPBuleChange(mobiApp)
device := params.Get("device")
buildStr := params.Get("build")
categoryIDStr := params.Get("category_id")
columnIDStr := params.Get("column_id")
pnStr := params.Get("pn")
psStr := params.Get("ps")
categoryID, err := strconv.Atoi(categoryIDStr)
if err != nil {
log.Error("categoryID(%s) error(%v)", categoryIDStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
columnID, _ := strconv.Atoi(columnIDStr)
plat := model.Plat(mobiApp, device)
build, err := strconv.Atoi(buildStr)
if err != nil {
log.Error("build(%s) error(%v)", buildStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
pn, err := strconv.Atoi(pnStr)
if err != nil || pn < 1 {
pn = 1
}
ps, err := strconv.Atoi(psStr)
if err != nil || ps > 60 || ps <= 0 {
ps = 60
}
data := dailySvc.Category(plat, build, categoryID, columnID, pn, ps)
returnJSON(c, data, nil)
}

View File

@@ -0,0 +1,139 @@
package http
import (
"net/http"
"go-common/app/interface/main/app-show/conf"
"go-common/app/interface/main/app-show/service/banner"
"go-common/app/interface/main/app-show/service/daily"
pingSvr "go-common/app/interface/main/app-show/service/ping"
"go-common/app/interface/main/app-show/service/rank"
"go-common/app/interface/main/app-show/service/region"
"go-common/app/interface/main/app-show/service/show"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/middleware/auth"
"go-common/library/net/http/blademaster/render"
)
var (
// depend service
authSvc *auth.Auth
// self service
bannerSvc *banner.Service
regionSvc *region.Service
showSvc *show.Service
pingSvc *pingSvr.Service
rankSvc *rank.Service
dailySvc *daily.Service
)
func Init(c *conf.Config) {
initService(c)
// init external router
engineOut := bm.DefaultServer(c.BM.Outer)
outerRouter(engineOut)
// init Outer server
if err := engineOut.Start(); err != nil {
log.Error("engineOut.Start() error(%v) | config(%v)", err, c)
panic(err)
}
}
// initService init services.
func initService(c *conf.Config) {
authSvc = auth.New(nil)
bannerSvc = banner.New(c)
regionSvc = region.New(c)
showSvc = show.New(c)
pingSvc = pingSvr.New(c)
rankSvc = rank.New(c)
dailySvc = daily.New(c)
}
// outerRouter init outer router api path.
func outerRouter(e *bm.Engine) {
e.Ping(ping)
bnnr := e.Group("/x/v2/banner", authSvc.GuestMobile)
{
bnnr.GET("", banners)
}
region := e.Group("/x/v2/region", authSvc.GuestMobile)
{
region.GET("", regions)
region.GET("/list", regionsList)
region.GET("/index", regionsIndex)
region.GET("/show", regionShow)
region.GET("/show/dynamic", regionShowDynamic)
region.GET("/show/child", regionChildShow)
region.GET("/show/child/list", regionChildListShow)
region.GET("/dynamic", regionDynamic)
region.GET("/dynamic/list", regionDynamicList)
region.GET("/dynamic/child", regionDynamicChild)
region.GET("/dynamic/child/list", regionDynamicChildList)
}
rank := e.Group("/x/v2/rank", authSvc.GuestMobile)
{
rank.GET("", rankAll)
rank.GET("/region", rankRegion)
}
show := e.Group("/x/v2/show", authSvc.GuestMobile)
{
show.GET("", shows)
show.GET("/region", showsRegion)
show.GET("/index", showsIndex)
show.GET("/widget", showWidget)
show.GET("/temp", showTemps)
show.GET("/change", showChange)
show.GET("/change/live", showLiveChange)
show.GET("/change/region", showRegionChange)
show.GET("/change/bangumi", showBangumiChange)
show.GET("/change/dislike", showDislike)
show.GET("/change/article", showArticleChange)
show.GET("/popular", popular)
show.GET("/popular/index", popular2)
}
daily := e.Group("/x/v2/daily", authSvc.GuestMobile)
{
daily.GET("/list", dailyID)
}
column := e.Group("/x/v2/column", authSvc.GuestMobile)
{
column.GET("", columnList)
}
cg := e.Group("/x/v2/category", authSvc.GuestMobile)
{
cg.GET("", category)
}
}
//returnJSON return json no message
func returnJSON(c *bm.Context, data interface{}, err error) {
code := http.StatusOK
c.Error = err
bcode := ecode.Cause(err)
c.Render(code, render.JSON{
Code: bcode.Code(),
Message: "",
Data: data,
})
}
//returnDataJSON return json no message
func returnDataJSON(c *bm.Context, data map[string]interface{}, ttl int, err error) {
code := http.StatusOK
if ttl < 1 {
ttl = 1
}
if err != nil {
c.JSON(nil, err)
} else {
if data != nil {
data["code"] = 0
data["message"] = ""
data["ttl"] = ttl
}
c.Render(code, render.MapJSON(data))
}
}

View File

@@ -0,0 +1,17 @@
package http
import (
"net/http"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
// ping check server ok.
func ping(c *bm.Context) {
var err error
if err = pingSvc.Ping(c); err != nil {
log.Error("app-show service ping error(%v)", err)
c.AbortWithStatus(http.StatusServiceUnavailable)
}
}

View File

@@ -0,0 +1,86 @@
package http
import (
"strconv"
"go-common/app/interface/main/app-show/model"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
func rankAll(c *bm.Context) {
params := c.Request.Form
mobiApp := params.Get("mobi_app")
device := params.Get("device")
order := params.Get("order")
buildStr := params.Get("build")
pnStr := params.Get("pn")
psStr := params.Get("ps")
plat := model.Plat(mobiApp, device)
pn, err := strconv.Atoi(pnStr)
if err != nil || pn < 1 {
pn = 1
}
ps, err := strconv.Atoi(psStr)
if err != nil || ps > 100 || ps <= 0 {
ps = 100
}
if ((pn-1)*ps)+1 > 100 {
returnJSON(c, _emptyShowItems, nil)
return
}
build, _ := strconv.Atoi(buildStr)
var mid int64
if midInter, ok := c.Get("mid"); ok {
mid = midInter.(int64)
}
// GetAudit
if audit, ok := rankSvc.Audit(c, mobiApp, order, plat, build, 0); ok {
returnJSON(c, audit, nil)
} else {
data := rankSvc.RankShow(c, plat, 0, pn, ps, mid, order)
returnJSON(c, data, nil)
}
}
func rankRegion(c *bm.Context) {
params := c.Request.Form
mobiApp := params.Get("mobi_app")
device := params.Get("device")
ridStr := params.Get("rid")
buildStr := params.Get("build")
pnStr := params.Get("pn")
psStr := params.Get("ps")
plat := model.Plat(mobiApp, device)
rid, err := strconv.Atoi(ridStr)
if err != nil {
log.Error("ridStr(%s) error(%v)", ridStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
pn, err := strconv.Atoi(pnStr)
if err != nil || pn < 1 {
pn = 1
}
ps, err := strconv.Atoi(psStr)
if err != nil || ps > 100 || ps <= 0 {
ps = 100
}
if ((pn-1)*ps)+1 > 100 {
returnJSON(c, _emptyShowItems, nil)
return
}
build, _ := strconv.Atoi(buildStr)
var mid int64
if midInter, ok := c.Get("mid"); ok {
mid = midInter.(int64)
}
// GetAudit
if audit, ok := rankSvc.Audit(c, mobiApp, "all", plat, build, rid); ok {
returnJSON(c, audit, nil)
} else {
data := rankSvc.RankShow(c, plat, rid, pn, ps, mid, "all")
returnJSON(c, data, nil)
}
}

View File

@@ -0,0 +1,477 @@
package http
import (
"strconv"
"time"
"go-common/app/interface/main/app-show/model"
"go-common/app/interface/main/app-show/model/region"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
var (
_emptyShowItems = []*region.ShowItem{}
)
// regions get region data
func regions(c *bm.Context) {
params := c.Request.Form
mobiApp := params.Get("mobi_app")
mobiApp = model.MobiAPPBuleChange(mobiApp)
buildStr := params.Get("build")
language := params.Get("lang")
ver := params.Get("ver")
// check params
build, err := strconv.Atoi(buildStr)
if err != nil {
log.Error("build(%s) error(%v)", buildStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
device := params.Get("device")
plat := model.Plat(mobiApp, device)
data, version, err := regionSvc.Regions(c, plat, build, ver, mobiApp, device, language)
if err == ecode.NotModified {
c.JSON(nil, err)
return
}
res := map[string]interface{}{
"data": data,
"ver": version,
}
returnDataJSON(c, res, 1, nil)
}
// regions get region data
func regionsList(c *bm.Context) {
params := c.Request.Form
mobiApp := params.Get("mobi_app")
mobiApp = model.MobiAPPBuleChange(mobiApp)
buildStr := params.Get("build")
language := params.Get("lang")
entrance := params.Get("entrance")
ver := params.Get("ver")
// check params
build, err := strconv.Atoi(buildStr)
if err != nil {
log.Error("build(%s) error(%v)", buildStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
device := params.Get("device")
plat := model.Plat(mobiApp, device)
data, version, err := regionSvc.RegionsList(c, plat, build, ver, mobiApp, device, language, entrance)
if err == ecode.NotModified {
c.JSON(nil, err)
return
}
res := map[string]interface{}{
"data": data,
"ver": version,
}
returnDataJSON(c, res, 1, nil)
}
// regions get region data
func regionsIndex(c *bm.Context) {
params := c.Request.Form
mobiApp := params.Get("mobi_app")
buildStr := params.Get("build")
language := params.Get("lang")
ver := params.Get("ver")
// check params
build, err := strconv.Atoi(buildStr)
if err != nil {
log.Error("build(%s) error(%v)", buildStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
device := params.Get("device")
plat := model.Plat(mobiApp, device)
data, version, err := regionSvc.NewRegionList(c, plat, build, ver, mobiApp, device, language)
if err == ecode.NotModified {
c.JSON(nil, err)
return
}
res := map[string]interface{}{
"data": data,
"ver": version,
}
returnDataJSON(c, res, 1, nil)
}
// regionShow region show
func regionShow(c *bm.Context) {
header := c.Request.Header
params := c.Request.Form
mobiApp := params.Get("mobi_app")
ridStr := params.Get("rid")
buildStr := params.Get("build")
channel := params.Get("channel")
network := params.Get("network")
// check params
build, err := strconv.Atoi(buildStr)
if err != nil {
log.Error("build(%s) error(%v)", buildStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
rid, err := strconv.Atoi(ridStr)
if err != nil {
log.Error("ridStr(%s) error(%v)", ridStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
var mid int64
if midInter, ok := c.Get("mid"); ok {
mid = midInter.(int64)
}
buvid := header.Get(_headerBuvid)
device := params.Get("device")
plat := model.Plat(mobiApp, device)
adExtra := params.Get("ad_extra")
// GetAudit
if audit, ok := regionSvc.Audit(c, mobiApp, plat, build, rid, true); ok {
returnJSON(c, audit, nil)
} else {
mobiApp = model.MobiAPPBuleChange(mobiApp)
data := regionSvc.Show(c, plat, rid, build, mid, channel, buvid, network, mobiApp, device, adExtra)
returnJSON(c, data, nil)
}
}
// regionChildShow region childShow
func regionChildShow(c *bm.Context) {
params := c.Request.Form
mobiApp := params.Get("mobi_app")
ridStr := params.Get("rid")
tagIDStr := params.Get("tag_id")
buildStr := params.Get("build")
channel := params.Get("channel")
// check params
build, err := strconv.Atoi(buildStr)
if err != nil {
log.Error("build(%s) error(%v)", buildStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
rid, err := strconv.Atoi(ridStr)
if err != nil {
log.Error("ridStr(%s) error(%v)", ridStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
var (
mid int64
tagID int
)
if midInter, ok := c.Get("mid"); ok {
mid = midInter.(int64)
}
if tagIDStr != "" {
if tagID, err = strconv.Atoi(tagIDStr); err != nil {
log.Error("tagId(%s) error(%v)", tagID, err)
c.JSON(nil, ecode.RequestErr)
return
}
}
device := params.Get("device")
plat := model.Plat(mobiApp, device)
// GetAudit
if audit, ok := regionSvc.AuditChild(c, mobiApp, "default", plat, build, rid, tagID); ok {
returnJSON(c, audit, nil)
} else {
mobiApp = model.MobiAPPBuleChange(mobiApp)
data := regionSvc.ChildShow(c, plat, mid, rid, tagID, build, channel, mobiApp, time.Now())
returnJSON(c, data, nil)
}
}
// regionChildListShow region childlistShow
func regionChildListShow(c *bm.Context) {
params := c.Request.Form
ridStr := params.Get("rid")
tagIDStr := params.Get("tag_id")
mobiApp := params.Get("mobi_app")
pnStr := params.Get("pn")
// psStr := params.Get("ps")
orderStr := params.Get("order")
buildStr := params.Get("build")
build, err := strconv.Atoi(buildStr)
if err != nil {
log.Error("build(%s) error(%v)", buildStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
rid, err := strconv.Atoi(ridStr)
if err != nil {
log.Error("ridStr(%s) error(%v)", ridStr, err)
return
}
var tagID int
if tagIDStr != "" {
if tagID, err = strconv.Atoi(tagIDStr); err != nil {
log.Error("tagId(%s) error(%v)", tagID, err)
c.JSON(nil, ecode.RequestErr)
return
}
}
pn, err := strconv.Atoi(pnStr)
if err != nil || pn < 1 {
pn = 1
}
// ps, err := strconv.Atoi(psStr)
// if err != nil || ps > 60 || ps <= 0 {
ps := 20
// }
if pn*ps > 400 {
returnJSON(c, _emptyShowItems, nil)
return
}
order := ""
switch orderStr {
case "view":
order = "click"
case "reply":
order = "scores"
case "danmaku":
order = "dm"
case "favorite":
order = "stow"
}
device := params.Get("device")
plat := model.Plat(mobiApp, device)
platform := params.Get("platform")
var mid int64
if midInter, ok := c.Get("mid"); ok {
mid = midInter.(int64)
}
// GetAudit
if audit, ok := regionSvc.AuditChildList(c, mobiApp, order, plat, build, rid, tagID, pn, ps); ok {
returnJSON(c, audit, nil)
} else {
mobiApp = model.MobiAPPBuleChange(mobiApp)
data := regionSvc.ChildListShow(c, plat, rid, tagID, pn, ps, build, mid, order, platform, mobiApp, device)
returnJSON(c, data, nil)
}
}
// regionChildListShow region childlistShow
func regionShowDynamic(c *bm.Context) {
params := c.Request.Form
ridStr := params.Get("rid")
pnStr := params.Get("pn")
psStr := params.Get("ps")
rid, err := strconv.Atoi(ridStr)
mobiApp := params.Get("mobi_app")
mobiApp = model.MobiAPPBuleChange(mobiApp)
buildStr := params.Get("build")
build, _ := strconv.Atoi(buildStr)
device := params.Get("device")
if err != nil {
log.Error("ridStr(%s) error(%v)", ridStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
pn, err := strconv.Atoi(pnStr)
if err != nil || pn < 1 {
pn = 1
}
ps, err := strconv.Atoi(psStr)
if err != nil || ps > 50 || ps <= 0 {
ps = 50
}
if pn*ps > 200 {
returnJSON(c, _emptyShowItems, nil)
return
}
plat := model.Plat(mobiApp, device)
data := regionSvc.ShowDynamic(c, plat, build, rid, pn, ps)
returnJSON(c, data, nil)
}
func regionDynamic(c *bm.Context) {
header := c.Request.Header
params := c.Request.Form
mobiApp := params.Get("mobi_app")
ridStr := params.Get("rid")
buildStr := params.Get("build")
channel := params.Get("channel")
network := params.Get("network")
// check params
build, err := strconv.Atoi(buildStr)
if err != nil {
log.Error("build(%s) error(%v)", buildStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
rid, err := strconv.Atoi(ridStr)
if err != nil {
log.Error("ridStr(%s) error(%v)", ridStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
var mid int64
if midInter, ok := c.Get("mid"); ok {
mid = midInter.(int64)
}
buvid := header.Get(_headerBuvid)
device := params.Get("device")
plat := model.Plat(mobiApp, device)
adExtra := params.Get("ad_extra")
// GetAudit
if audit, ok := regionSvc.Audit(c, mobiApp, plat, build, rid, true); ok {
returnJSON(c, audit, nil)
} else {
mobiApp = model.MobiAPPBuleChange(mobiApp)
data := regionSvc.Dynamic(c, plat, rid, build, mid, channel, buvid, network, mobiApp, device, adExtra, time.Now())
returnJSON(c, data, nil)
}
}
func regionDynamicList(c *bm.Context) {
params := c.Request.Form
mobiApp := params.Get("mobi_app")
ridStr := params.Get("rid")
pullStr := params.Get("pull")
ctimeStr := params.Get("ctime")
buildStr := params.Get("build")
build, err := strconv.Atoi(buildStr)
if err != nil {
log.Error("build(%s) error(%v)", buildStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
rid, err := strconv.Atoi(ridStr)
if err != nil {
log.Error("ridStr(%s) error(%v)", ridStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
pull, err := strconv.ParseBool(pullStr)
if err != nil {
log.Error("pullStr(%s) error(%v)", pullStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
// ctime
ctime, err := strconv.ParseInt(ctimeStr, 10, 64)
if err != nil || ctime < 0 {
ctime = 0
}
device := params.Get("device")
plat := model.Plat(mobiApp, device)
var mid int64
if midInter, ok := c.Get("mid"); ok {
mid = midInter.(int64)
}
// GetAudit
if _, ok := regionSvc.Audit(c, mobiApp, plat, build, rid, false); ok {
data := map[string]interface{}{}
returnJSON(c, data, nil)
} else {
mobiApp = model.MobiAPPBuleChange(mobiApp)
data := regionSvc.DynamicList(c, plat, rid, pull, ctime, mid, time.Now())
returnJSON(c, data, nil)
}
}
func regionDynamicChild(c *bm.Context) {
params := c.Request.Form
mobiApp := params.Get("mobi_app")
ridStr := params.Get("rid")
buildStr := params.Get("build")
tagIDStr := params.Get("tag_id")
// check params
build, err := strconv.Atoi(buildStr)
if err != nil {
log.Error("build(%s) error(%v)", buildStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
rid, err := strconv.Atoi(ridStr)
if err != nil {
log.Error("ridStr(%s) error(%v)", ridStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
var mid int64
if midInter, ok := c.Get("mid"); ok {
mid = midInter.(int64)
}
device := params.Get("device")
plat := model.Plat(mobiApp, device)
var tagID int
if tagIDStr != "" {
if tagID, err = strconv.Atoi(tagIDStr); err != nil {
log.Error("tagId(%s) error(%v)", tagID, err)
c.JSON(nil, ecode.RequestErr)
return
}
}
// GetAudit
if audit, ok := regionSvc.AuditChild(c, mobiApp, "", plat, build, rid, tagID); ok {
returnJSON(c, audit, nil)
} else {
mobiApp = model.MobiAPPBuleChange(mobiApp)
data := regionSvc.DynamicChild(c, plat, rid, tagID, build, mid, mobiApp, time.Now())
returnJSON(c, data, nil)
}
}
func regionDynamicChildList(c *bm.Context) {
params := c.Request.Form
mobiApp := params.Get("mobi_app")
ridStr := params.Get("rid")
pullStr := params.Get("pull")
ctimeStr := params.Get("ctime")
buildStr := params.Get("build")
tagIDStr := params.Get("tag_id")
build, err := strconv.Atoi(buildStr)
if err != nil {
log.Error("build(%s) error(%v)", buildStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
rid, err := strconv.Atoi(ridStr)
if err != nil {
log.Error("ridStr(%s) error(%v)", ridStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
pull, err := strconv.ParseBool(pullStr)
if err != nil {
log.Error("pullStr(%s) error(%v)", pullStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
// ctime
ctime, err := strconv.ParseInt(ctimeStr, 10, 64)
if err != nil || ctime < 0 {
ctime = 0
}
var tagID int
if tagIDStr != "" {
if tagID, err = strconv.Atoi(tagIDStr); err != nil {
log.Error("tagId(%s) error(%v)", tagID, err)
c.JSON(nil, ecode.RequestErr)
return
}
}
var mid int64
if midInter, ok := c.Get("mid"); ok {
mid = midInter.(int64)
}
device := params.Get("device")
plat := model.Plat(mobiApp, device)
// GetAudit
if audit, ok := regionSvc.AuditChild(c, mobiApp, "", plat, build, rid, tagID); ok {
returnJSON(c, audit, nil)
} else {
mobiApp = model.MobiAPPBuleChange(mobiApp)
data := regionSvc.DynamicListChild(c, plat, rid, tagID, build, pull, ctime, mid, time.Now())
returnJSON(c, data, nil)
}
}

View File

@@ -0,0 +1,425 @@
package http
import (
"strconv"
"time"
"go-common/app/interface/main/app-show/model"
"go-common/app/interface/main/app-show/model/show"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/metadata"
)
const (
_headerBuvid = "Buvid"
_headerDisplayID = "Display-ID"
)
func shows(c *bm.Context) {
var (
params = c.Request.Form
header = c.Request.Header
)
// get params
mobiApp := params.Get("mobi_app")
mobiApp = model.MobiAPPBuleChange(mobiApp)
buildStr := params.Get("build")
channel := params.Get("channel")
ak := params.Get("access_key")
// check params
build, err := strconv.Atoi(buildStr)
if err != nil {
log.Error("strconv.Atoi(%s) error(%v)", buildStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
device := params.Get("device")
plat := model.Plat(mobiApp, device)
// get audit data, if check audit hit.
ss, ok := showSvc.Audit(c, mobiApp, plat, build)
if ok {
returnJSON(c, ss, nil)
return
}
network := params.Get("network")
ip := metadata.String(c, metadata.RemoteIP)
buvid := header.Get(_headerBuvid)
disid := header.Get(_headerDisplayID)
var mid int64
if midInter, ok := c.Get("mid"); ok {
mid = midInter.(int64)
}
// display
ss = showSvc.Display(c, mid, plat, build, buvid, channel, ip, ak, network, mobiApp, device, "hans", "", false, time.Now())
returnJSON(c, ss, nil)
// infoc
if len(ss) == 0 {
return
}
showSvc.Infoc(mid, plat, buvid, disid, ip, "/x/v2/show", ss[0].Body, time.Now())
}
func showsRegion(c *bm.Context) {
var (
params = c.Request.Form
header = c.Request.Header
)
// get params
mobiApp := params.Get("mobi_app")
mobiApp = model.MobiAPPBuleChange(mobiApp)
buildStr := params.Get("build")
channel := params.Get("channel")
ak := params.Get("access_key")
// check params
build, err := strconv.Atoi(buildStr)
if err != nil {
log.Error("strconv.Atoi(%s) error(%v)", buildStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
device := params.Get("device")
plat := model.Plat(mobiApp, device)
// get audit data, if check audit hit.
ss, ok := showSvc.Audit(c, mobiApp, plat, build)
if !ok {
ip := metadata.String(c, metadata.RemoteIP)
buvid := header.Get(_headerBuvid)
network := params.Get("network")
var mid int64
if midInter, ok := c.Get("mid"); ok {
mid = midInter.(int64)
}
// display
language := params.Get("lang")
ss = showSvc.RegionDisplay(c, mid, plat, build, buvid, channel, ip, ak, network, mobiApp, device, language, "", false, time.Now())
}
res := map[string]interface{}{
"data": ss,
}
returnDataJSON(c, res, 25, nil)
}
func showsIndex(c *bm.Context) {
var (
params = c.Request.Form
header = c.Request.Header
)
// get params
mobiApp := params.Get("mobi_app")
mobiApp = model.MobiAPPBuleChange(mobiApp)
buildStr := params.Get("build")
channel := params.Get("channel")
ak := params.Get("access_key")
// check params
build, err := strconv.Atoi(buildStr)
if err != nil {
log.Error("strconv.Atoi(%s) error(%v)", buildStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
device := params.Get("device")
plat := model.Plat(mobiApp, device)
// get audit data, if check audit hit.
ss, ok := showSvc.Audit(c, mobiApp, plat, build)
if !ok {
ip := metadata.String(c, metadata.RemoteIP)
buvid := header.Get(_headerBuvid)
network := params.Get("network")
var mid int64
if midInter, ok := c.Get("mid"); ok {
mid = midInter.(int64)
}
// display
language := params.Get("lang")
adExtra := params.Get("ad_extra")
ss = showSvc.Index(c, mid, plat, build, buvid, channel, ip, ak, network, mobiApp, device, language, adExtra, false, time.Now())
}
res := map[string]interface{}{
"data": ss,
}
returnDataJSON(c, res, 25, nil)
}
func showTemps(c *bm.Context) {
var (
params = c.Request.Form
header = c.Request.Header
)
// get params
mobiApp := params.Get("mobi_app")
// check params
device := params.Get("device")
plat := model.Plat(mobiApp, device)
ip := metadata.String(c, metadata.RemoteIP)
var mid int64
if midInter, ok := c.Get("mid"); ok {
mid = midInter.(int64)
}
// display
data := showSvc.Display(c, mid, plat, 0, header.Get(_headerBuvid), "", ip, "", "wifi", mobiApp, device, "hans", "", true, time.Now())
returnJSON(c, data, nil)
}
func showChange(c *bm.Context) {
params := c.Request.Form
header := c.Request.Header
// get params
mobiApp := params.Get("mobi_app")
mobiApp = model.MobiAPPBuleChange(mobiApp)
randStr := params.Get("rand")
buildStr := params.Get("build")
// check params
rand, err := strconv.Atoi(randStr)
if err != nil {
log.Error("strconv.Atoi(%s) error(%v)", randStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
device := params.Get("device")
plat := model.Plat(mobiApp, device)
// normal data
ip := metadata.String(c, metadata.RemoteIP)
buvid := header.Get(_headerBuvid)
disid := header.Get(_headerDisplayID)
network := params.Get("network")
var mid int64
if midInter, ok := c.Get("mid"); ok {
mid = midInter.(int64)
}
build, _ := strconv.Atoi(buildStr)
// change
sis := showSvc.Change(c, mid, build, plat, rand, buvid, ip, network, mobiApp, device)
returnJSON(c, sis, nil)
// infoc
showSvc.Infoc(mid, plat, buvid, disid, ip, "/x/v2/show/change", sis, time.Now())
}
// showRegionChange
func showRegionChange(c *bm.Context) {
params := c.Request.Form
mobiApp := params.Get("mobi_app")
mobiApp = model.MobiAPPBuleChange(mobiApp)
device := params.Get("device")
buildStr := params.Get("build")
plat := model.Plat(mobiApp, device)
// get params
randStr := params.Get("rand")
// check params
rand, err := strconv.Atoi(randStr)
if err != nil {
log.Error("strconv.Atoi(%s) error(%v)", randStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
ridStr := params.Get("rid")
rid, err := strconv.Atoi(ridStr)
if err != nil {
log.Error("ridStr(%s) error(%v)", ridStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
build, _ := strconv.Atoi(buildStr)
data := showSvc.RegionChange(c, rid, rand, plat, build, mobiApp)
returnJSON(c, data, nil)
}
// showBangumiChange
func showBangumiChange(c *bm.Context) {
params := c.Request.Form
mobiApp := params.Get("mobi_app")
mobiApp = model.MobiAPPBuleChange(mobiApp)
device := params.Get("device")
plat := model.Plat(mobiApp, device)
// get params
randStr := params.Get("rand")
// check params
rand, err := strconv.Atoi(randStr)
if err != nil {
log.Error("strconv.Atoi(%s) error(%v)", randStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
data := showSvc.BangumiChange(c, rand, plat)
returnJSON(c, data, nil)
}
// showArticleChange
func showArticleChange(c *bm.Context) {
data := []*show.Item{}
returnJSON(c, data, nil)
}
// showDislike
func showDislike(c *bm.Context) {
var (
params = c.Request.Form
header = c.Request.Header
mid int64
)
// get params
mobiApp := params.Get("mobi_app")
mobiApp = model.MobiAPPBuleChange(mobiApp)
device := params.Get("device")
plat := model.Plat(mobiApp, device)
if midInter, ok := c.Get("mid"); ok {
mid = midInter.(int64)
}
idStr := params.Get("id")
gt := params.Get("goto")
if !model.IsGoto(gt) {
c.JSON(nil, ecode.RequestErr)
return
}
// normal data
ip := metadata.String(c, metadata.RemoteIP)
buvid := header.Get(_headerBuvid)
disid := header.Get(_headerDisplayID)
// parse id
id, err := strconv.ParseInt(idStr, 10, 64)
if err != nil {
log.Error("strconv.Atoi(%s) error(%v)", idStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
// change
si := showSvc.Dislike(c, mid, plat, id, buvid, mobiApp, device, gt, ip)
returnJSON(c, si, nil)
// infoc
showSvc.Infoc(mid, plat, buvid, disid, ip, "/x/v2/show/change/dislike", []*show.Item{si}, time.Now())
}
func showWidget(c *bm.Context) {
params := c.Request.Form
mobiApp := params.Get("mobi_app")
device := params.Get("device")
plat := model.Plat(mobiApp, device)
buildStr := params.Get("build")
build, err := strconv.Atoi(buildStr)
if err != nil {
log.Error("strconv.Atoi(%s) error(%v)", buildStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
var data []*show.Item
if ss, ok := showSvc.AuditChild(c, mobiApp, plat, build); ok {
if len(ss) > 3 {
data = ss[:3]
} else {
data = ss
}
returnJSON(c, data, nil)
return
}
data = showSvc.Widget(c, plat)
returnJSON(c, data, nil)
}
// show live change
func showLiveChange(c *bm.Context) {
params := c.Request.Form
// get params
randStr := params.Get("rand")
ak := params.Get("access_key")
rand, err := strconv.Atoi(randStr)
if err != nil {
log.Error("strconv.Atoi(%s) error(%v)", randStr, err)
c.JSON(nil, ecode.RequestErr)
return
}
var mid int64
if midInter, ok := c.Get("mid"); ok {
mid = midInter.(int64)
}
// change
ip := metadata.String(c, metadata.RemoteIP)
data := showSvc.LiveChange(c, mid, ak, ip, rand, time.Now())
returnJSON(c, data, nil)
}
// popular hot tab popular
func popular(c *bm.Context) {
var (
params = c.Request.Form
header = c.Request.Header
mid int64
)
mobiApp := params.Get("mobi_app")
device := params.Get("device")
buildStr := params.Get("build")
idxStr := params.Get("idx")
loginEventStr := params.Get("login_event")
lastParam := params.Get("last_param")
build, err := strconv.Atoi(buildStr)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
plat := model.Plat(mobiApp, device)
loginEvent, err := strconv.Atoi(loginEventStr)
if err != nil {
loginEvent = 0
}
idx, err := strconv.ParseInt(idxStr, 10, 64)
if err != nil || idx < 0 {
idx = 0
}
now := time.Now()
if midInter, ok := c.Get("mid"); ok {
mid = midInter.(int64)
}
buvid := header.Get(_headerBuvid)
// get audit data, if check audit hit.
data, ok := showSvc.AuditFeed(c, mobiApp, plat, build)
if !ok {
data = showSvc.FeedIndex(c, mid, idx, plat, build, loginEvent, lastParam, mobiApp, device, buvid, now)
}
c.JSON(data, nil)
}
// popular hot tab popular
func popular2(c *bm.Context) {
var (
params = c.Request.Form
header = c.Request.Header
mid int64
)
mobiApp := params.Get("mobi_app")
device := params.Get("device")
buildStr := params.Get("build")
idxStr := params.Get("idx")
loginEventStr := params.Get("login_event")
lastParam := params.Get("last_param")
build, err := strconv.Atoi(buildStr)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
plat := model.Plat(mobiApp, device)
loginEvent, err := strconv.Atoi(loginEventStr)
if err != nil {
loginEvent = 0
}
idx, err := strconv.ParseInt(idxStr, 10, 64)
if err != nil || idx < 0 {
idx = 0
}
now := time.Now()
if midInter, ok := c.Get("mid"); ok {
mid = midInter.(int64)
}
buvid := header.Get(_headerBuvid)
// get audit data, if check audit hit.
data, ok := showSvc.AuditFeed2(c, mobiApp, plat, build)
var (
ver string
)
if !ok {
data, ver, err = showSvc.FeedIndex2(c, mid, idx, plat, build, loginEvent, lastParam, mobiApp, device, buvid, now)
}
config := map[string]interface{}{
"item_title": "当前热门",
}
c.JSONMap(map[string]interface{}{"data": data, "ver": ver, "config": config}, err)
}