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.
157 lines
3.9 KiB
157 lines
3.9 KiB
package http |
|
|
|
import ( |
|
"strconv" |
|
"time" |
|
|
|
"go-common/app/interface/main/app-intl/model" |
|
"go-common/app/interface/main/app-intl/model/view" |
|
"go-common/library/ecode" |
|
bm "go-common/library/net/http/blademaster" |
|
"go-common/library/net/metadata" |
|
) |
|
|
|
const ( |
|
_viewPath = "/x/intl/view" |
|
_viewPagePath = "/x/intl/view/page" |
|
) |
|
|
|
var ( |
|
// _dislike is. |
|
_dislike = []*view.Dislike{ |
|
{ |
|
ID: 5, |
|
Name: "标题党/封面党", |
|
}, |
|
{ |
|
ID: 6, |
|
Name: "内容质量差", |
|
}, |
|
{ |
|
ID: 7, |
|
Name: "内容/封面令人不适", |
|
}, |
|
{ |
|
ID: 8, |
|
Name: "营销广告", |
|
}, |
|
} |
|
) |
|
|
|
// viewIndex view handler |
|
func viewIndex(c *bm.Context) { |
|
var ( |
|
mid, aid, movieID int64 |
|
err error |
|
) |
|
params := c.Request.Form |
|
header := c.Request.Header |
|
// get params |
|
aidStr := params.Get("aid") |
|
movieidStr := params.Get("movie_id") |
|
mobiApp := params.Get("mobi_app") |
|
device := params.Get("device") |
|
ak := params.Get("access_key") |
|
buildStr := params.Get("build") |
|
from := params.Get("from") |
|
trackid := params.Get("trackid") |
|
network := params.Get("network") |
|
adExtra := params.Get("ad_extra") |
|
locale := params.Get("locale") |
|
// check params |
|
if aidStr == "" && movieidStr == "" { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
if aidStr != "" && aidStr != "0" { |
|
if aid, err = strconv.ParseInt(aidStr, 10, 64); err != nil { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
} else if movieidStr != "" && movieidStr != "0" { |
|
if movieID, err = strconv.ParseInt(movieidStr, 10, 64); err != nil { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
} |
|
if aid < 1 && movieID < 1 { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
build, err := strconv.Atoi(buildStr) |
|
if err != nil { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
plat := model.Plat(mobiApp, device) |
|
buvid := header.Get("Buvid") |
|
disid := header.Get("Display-ID") |
|
cdnIP := header.Get("X-Cache-Server-Addr") |
|
if midInter, ok := c.Get("mid"); ok { |
|
mid = midInter.(int64) |
|
} |
|
autoplay, _ := strconv.Atoi(params.Get("autoplay")) |
|
now := time.Now() |
|
// view |
|
ip := metadata.String(c, metadata.RemoteIP) |
|
viewSvc.ViewInfoc(mid, int(plat), trackid, aidStr, ip, _viewPath, buildStr, buvid, disid, from, now, err, autoplay) |
|
data, err := viewSvc.View(c, mid, aid, movieID, plat, build, ak, mobiApp, device, buvid, cdnIP, network, adExtra, from, now, locale) |
|
if err != nil { |
|
c.JSON(nil, err) |
|
return |
|
} |
|
data.Dislikes = _dislike |
|
c.JSON(data, nil) |
|
viewSvc.RelateInfoc(mid, aid, int(plat), trackid, buildStr, buvid, disid, ip, _viewPath, data.ReturnCode, data.UserFeature, from, data.Relates, now, data.IsRec) |
|
} |
|
|
|
// viewPage view page handler. |
|
func viewPage(c *bm.Context) { |
|
var ( |
|
mid, aid int64 |
|
build int |
|
err error |
|
) |
|
params := c.Request.Form |
|
header := c.Request.Header |
|
// get params |
|
aidStr := params.Get("aid") |
|
mobiApp := params.Get("mobi_app") |
|
device := params.Get("device") |
|
ak := params.Get("access_key") |
|
buildStr := params.Get("build") |
|
from := params.Get("from") |
|
trackid := params.Get("trackid") |
|
locale := params.Get("locale") |
|
// check params |
|
if aid, err = strconv.ParseInt(aidStr, 10, 64); err != nil { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
if aid < 1 { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
if build, err = strconv.Atoi(buildStr); err != nil { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
plat := model.Plat(mobiApp, device) |
|
buvid := header.Get("Buvid") |
|
disid := header.Get("Display-ID") |
|
cdnIP := header.Get("X-Cache-Server-Addr") |
|
if midInter, ok := c.Get("mid"); ok { |
|
mid = midInter.(int64) |
|
} |
|
autoplay, _ := strconv.Atoi(params.Get("autoplay")) |
|
ip := metadata.String(c, metadata.RemoteIP) |
|
now := time.Now() |
|
// view page |
|
viewSvc.ViewInfoc(mid, int(plat), trackid, aidStr, ip, _viewPagePath, buildStr, buvid, disid, from, now, err, autoplay) |
|
data, err := viewSvc.ViewPage(c, mid, aid, 0, plat, build, ak, mobiApp, device, cdnIP, false, now, locale) |
|
if err != nil { |
|
c.JSON(nil, err) |
|
return |
|
} |
|
c.JSON(data, nil) |
|
}
|
|
|