258 lines
5.4 KiB
Go
258 lines
5.4 KiB
Go
package http
|
|
|
|
import (
|
|
"context"
|
|
"strconv"
|
|
|
|
"go-common/app/interface/main/creative/model/data"
|
|
artmdl "go-common/app/interface/openplatform/article/model"
|
|
"go-common/library/ecode"
|
|
"go-common/library/log"
|
|
bm "go-common/library/net/http/blademaster"
|
|
"go-common/library/net/metadata"
|
|
"go-common/library/sync/errgroup"
|
|
)
|
|
|
|
func converTmid(c *bm.Context, mid int64) (retMid int64) {
|
|
tmidStr := c.Request.Form.Get("tmid")
|
|
tmid, _ := strconv.ParseInt(tmidStr, 10, 64)
|
|
if tmid > 0 && dataSvc.IsWhite(mid) {
|
|
retMid = tmid
|
|
} else {
|
|
retMid = mid
|
|
}
|
|
return
|
|
}
|
|
|
|
func appDataArc(c *bm.Context) {
|
|
params := c.Request.Form
|
|
aidStr := params.Get("aid")
|
|
ip := metadata.String(c, metadata.RemoteIP)
|
|
midStr, _ := c.Get("mid")
|
|
mid := midStr.(int64)
|
|
if mid <= 0 {
|
|
c.JSON(nil, ecode.CreativeNotLogin)
|
|
return
|
|
}
|
|
// check params
|
|
aid, err := strconv.ParseInt(aidStr, 10, 64)
|
|
if err != nil {
|
|
log.Error("strconv.ParseInt(%s) error(%v)", aidStr, err)
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
mid = converTmid(c, mid)
|
|
arcStat, err := dataSvc.ArchiveStat(c, aid, mid, ip)
|
|
if err != nil {
|
|
c.JSON(nil, err)
|
|
return
|
|
}
|
|
_, vds, _ := arcSvc.Videos(c, mid, aid, ip)
|
|
arcStat.Videos = vds
|
|
c.JSON(arcStat, nil)
|
|
}
|
|
|
|
func appDataVideoQuit(c *bm.Context) {
|
|
params := c.Request.Form
|
|
cidStr := params.Get("cid")
|
|
ip := metadata.String(c, metadata.RemoteIP)
|
|
// check user
|
|
midStr, _ := c.Get("mid")
|
|
mid := midStr.(int64)
|
|
if mid <= 0 {
|
|
c.JSON(nil, ecode.CreativeNotLogin)
|
|
return
|
|
}
|
|
// check params
|
|
cid, err := strconv.ParseInt(cidStr, 10, 64)
|
|
if err != nil {
|
|
log.Error("strconv.ParseInt(%s) error(%v)", cidStr, err)
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
mid = converTmid(c, mid)
|
|
pts, err := dataSvc.AppVideoQuitPoints(c, cid, mid, ip)
|
|
if err != nil {
|
|
c.JSON(nil, err)
|
|
return
|
|
}
|
|
c.JSON(pts, nil)
|
|
}
|
|
|
|
func appFan(c *bm.Context) {
|
|
req := c.Request
|
|
params := req.Form
|
|
tyStr := params.Get("type")
|
|
ip := metadata.String(c, metadata.RemoteIP)
|
|
// check user
|
|
midStr, _ := c.Get("mid")
|
|
mid := midStr.(int64)
|
|
if mid <= 0 {
|
|
c.JSON(nil, ecode.CreativeNotLogin)
|
|
return
|
|
}
|
|
var (
|
|
err error
|
|
ty int
|
|
fan *data.AppFan
|
|
)
|
|
ty, err = strconv.Atoi(tyStr)
|
|
if err != nil {
|
|
log.Error("strconv.Atoi(%s) error(%v)", tyStr, err)
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
mid = converTmid(c, mid)
|
|
fan, err = dataSvc.UpFansAnalysisForApp(c, mid, ty, ip)
|
|
if err != nil {
|
|
c.JSON(nil, err)
|
|
return
|
|
}
|
|
c.JSON(fan, nil)
|
|
}
|
|
|
|
func appFanRank(c *bm.Context) {
|
|
req := c.Request
|
|
params := req.Form
|
|
tyStr := params.Get("type")
|
|
ip := metadata.String(c, metadata.RemoteIP)
|
|
// check user
|
|
midStr, _ := c.Get("mid")
|
|
mid := midStr.(int64)
|
|
if mid <= 0 {
|
|
c.JSON(nil, ecode.CreativeNotLogin)
|
|
return
|
|
}
|
|
var (
|
|
err error
|
|
ty int
|
|
rk map[string][]*data.RankInfo
|
|
)
|
|
ty, err = strconv.Atoi(tyStr)
|
|
if err != nil {
|
|
log.Error("strconv.Atoi(%s) error(%v)", tyStr, err)
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
mid = converTmid(c, mid)
|
|
rk, err = dataSvc.FanRankApp(c, mid, ty, ip)
|
|
if err != nil {
|
|
c.JSON(nil, err)
|
|
return
|
|
}
|
|
c.JSON(rk, nil)
|
|
}
|
|
|
|
func appOverView(c *bm.Context) {
|
|
req := c.Request
|
|
params := req.Form
|
|
tyStr := params.Get("type")
|
|
ip := metadata.String(c, metadata.RemoteIP)
|
|
midStr, _ := c.Get("mid")
|
|
mid := midStr.(int64)
|
|
if mid <= 0 {
|
|
c.JSON(nil, ecode.CreativeNotLogin)
|
|
return
|
|
}
|
|
var (
|
|
err error
|
|
ty int
|
|
ao *data.AppOverView
|
|
)
|
|
ty, err = strconv.Atoi(tyStr)
|
|
if err != nil {
|
|
log.Error("strconv.Atoi(%s) error(%v)", tyStr, err)
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
mid = converTmid(c, mid)
|
|
ao, err = dataSvc.OverView(c, mid, int8(ty), ip)
|
|
if err != nil {
|
|
c.JSON(nil, err)
|
|
return
|
|
}
|
|
c.JSON(ao, nil)
|
|
}
|
|
|
|
func appArchiveAnalyze(c *bm.Context) {
|
|
params := c.Request.Form
|
|
aidStr := params.Get("aid")
|
|
ip := metadata.String(c, metadata.RemoteIP)
|
|
midStr, _ := c.Get("mid")
|
|
mid := midStr.(int64)
|
|
if mid <= 0 {
|
|
c.JSON(nil, ecode.CreativeNotLogin)
|
|
return
|
|
}
|
|
aid, err := strconv.ParseInt(aidStr, 10, 64)
|
|
if err != nil {
|
|
log.Error("strconv.ParseInt(%s) error(%v)", aidStr, err)
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
mid = converTmid(c, mid)
|
|
arcStat, err := dataSvc.ArchiveAnalyze(c, aid, mid, ip)
|
|
if err != nil {
|
|
c.JSON(nil, err)
|
|
return
|
|
}
|
|
_, vds, _ := arcSvc.Videos(c, mid, aid, ip)
|
|
arcStat.Videos = vds
|
|
c.JSON(arcStat, nil)
|
|
}
|
|
|
|
func appVideoRetention(c *bm.Context) {
|
|
params := c.Request.Form
|
|
cidStr := params.Get("cid")
|
|
ip := metadata.String(c, metadata.RemoteIP)
|
|
midStr, _ := c.Get("mid")
|
|
mid := midStr.(int64)
|
|
if mid <= 0 {
|
|
c.JSON(nil, ecode.CreativeNotLogin)
|
|
return
|
|
}
|
|
cid, err := strconv.ParseInt(cidStr, 10, 64)
|
|
if err != nil {
|
|
log.Error("strconv.ParseInt(%s) error(%v)", cidStr, err)
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
mid = converTmid(c, mid)
|
|
pts, err := dataSvc.VideoRetention(c, cid, mid, ip)
|
|
if err != nil {
|
|
c.JSON(nil, err)
|
|
return
|
|
}
|
|
c.JSON(pts, nil)
|
|
}
|
|
|
|
func appDataArticle(c *bm.Context) {
|
|
ip := metadata.String(c, metadata.RemoteIP)
|
|
midStr, _ := c.Get("mid")
|
|
mid := midStr.(int64)
|
|
if mid <= 0 {
|
|
c.JSON(nil, ecode.CreativeNotLogin)
|
|
return
|
|
}
|
|
var (
|
|
artStat artmdl.UpStat
|
|
artIncr []*artmdl.ThirtyDayArticle
|
|
g = &errgroup.Group{}
|
|
ctx = context.TODO()
|
|
)
|
|
mid = converTmid(c, mid)
|
|
g.Go(func() error {
|
|
artStat, _ = artSvc.ArticleStat(ctx, mid, ip)
|
|
return nil
|
|
})
|
|
g.Go(func() error {
|
|
artIncr, _ = dataSvc.ThirtyDayArticle(ctx, mid, ip)
|
|
return nil
|
|
})
|
|
g.Wait()
|
|
c.JSON(map[string]interface{}{
|
|
"stat": artStat,
|
|
"incr": artIncr,
|
|
}, nil)
|
|
}
|