go-common/app/interface/main/creative/http/app_bgm.go

198 lines
4.1 KiB
Go
Raw Normal View History

2019-04-22 10:49:16 +00:00
package http
import (
"go-common/app/interface/main/creative/model/app"
mMdl "go-common/app/interface/main/creative/model/music"
"go-common/library/ecode"
bm "go-common/library/net/http/blademaster"
"strconv"
)
// prepare ext data for bgm-detail pager
func appBgmExt(c *bm.Context) {
midStr, _ := c.Get("mid")
mid := midStr.(int64)
if mid <= 0 {
c.JSON(nil, ecode.CreativeNotLogin)
return
}
params := c.Request.Form
sidStr := params.Get("sid")
var (
sid int64
err error
ext *mMdl.BgmExt
)
sid, err = strconv.ParseInt(sidStr, 10, 64)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
ext, err = musicSvc.BgmExt(c, mid, sid)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(ext, nil)
}
func appBgmPre(c *bm.Context) {
midStr, _ := c.Get("mid")
mid := midStr.(int64)
if mid <= 0 {
c.JSON(nil, ecode.CreativeNotLogin)
return
}
params := c.Request.Form
fromStr := params.Get("from")
from, _ := strconv.Atoi(fromStr)
if _, ok := app.BgmFrom[from]; !ok {
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(map[string]interface{}{
"typelist": musicSvc.PreByFrom(c, from),
"hotword": musicSvc.Hotwords,
}, nil)
}
func appBgmList(c *bm.Context) {
midStr, _ := c.Get("mid")
mid := midStr.(int64)
if mid <= 0 {
c.JSON(nil, ecode.CreativeNotLogin)
return
}
params := c.Request.Form
tidStr := params.Get("tid")
tid, err := strconv.Atoi(tidStr)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(musicSvc.BgmList(c, tid), nil)
}
func arcBgmList(c *bm.Context) {
v := new(struct {
AID int64 `form:"aid" validate:"required"`
CID int64 `form:"cid" validate:"required"`
Cache bool `form:"cache"`
})
if err := c.Bind(v); err != nil {
return
}
res, err := pubSvc.BgmBindList(c, v.AID, v.CID, 3, true)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(res, nil)
}
func appBgmSearch(c *bm.Context) {
midStr, _ := c.Get("mid")
mid := midStr.(int64)
if mid <= 0 {
c.JSON(nil, ecode.CreativeNotLogin)
return
}
params := c.Request.Form
pnStr := params.Get("pn")
psStr := params.Get("ps")
kw := params.Get("kw")
pn, _ := strconv.Atoi(pnStr)
if pn < 1 {
pn = 1
}
ps, _ := strconv.Atoi(psStr)
if ps > 20 || ps < 0 {
ps = 20
}
c.JSON(musicSvc.BgmSearch(c, kw, mid, pn, ps), nil)
}
func appBgmView(c *bm.Context) {
midStr, _ := c.Get("mid")
mid := midStr.(int64)
if mid <= 0 {
c.JSON(nil, ecode.CreativeNotLogin)
return
}
params := c.Request.Form
sidStr := params.Get("sid")
sid, err := strconv.ParseInt(sidStr, 10, 64)
if err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(musicSvc.BgmView(c, sid), nil)
}
func appMaterialPre(c *bm.Context) {
midStr, _ := c.Get("mid")
mid := midStr.(int64)
if mid <= 0 {
c.JSON(nil, ecode.CreativeNotLogin)
return
}
params := c.Request.Form
buildStr := params.Get("build")
build, _ := strconv.Atoi(buildStr)
plat := params.Get("platform")
c.JSON(musicSvc.MaterialPre(c, mid, plat, build), nil)
}
func appMaterial(c *bm.Context) {
midStr, _ := c.Get("mid")
mid := midStr.(int64)
if mid <= 0 {
c.JSON(nil, ecode.CreativeNotLogin)
return
}
params := c.Request.Form
idStr := params.Get("id")
id, _ := strconv.ParseInt(idStr, 10, 64)
tpStr := params.Get("type")
tp, _ := strconv.Atoi(tpStr)
c.JSONMap(map[string]interface{}{
"data": musicSvc.Material(c, id, int8(tp), mid),
}, nil)
}
func appMissionByType(c *bm.Context) {
midStr, _ := c.Get("mid")
mid := midStr.(int64)
if mid <= 0 {
c.JSON(nil, ecode.CreativeNotLogin)
return
}
params := c.Request.Form
tidStr := params.Get("tid")
tid, _ := strconv.Atoi(tidStr)
actWithTP, _ := arcSvc.MissionOnlineByTid(c, int16(tid), 1)
c.JSON(actWithTP, nil)
}
func appH5BgmFeedback(c *bm.Context) {
midStr, _ := c.Get("mid")
mid := midStr.(int64)
if mid <= 0 {
c.JSON(nil, ecode.CreativeNotLogin)
return
}
var err error
v := new(struct {
Name string `form:"name"`
Musicians string `form:"musicians"`
})
if err = c.Bind(v); err != nil {
return
}
if len(v.Name) == 0 && len(v.Musicians) == 0 {
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(musicSvc.AddBgmFeedBack(c, v.Name, v.Musicians, "h5", mid), nil)
}