150 lines
3.7 KiB
Go
150 lines
3.7 KiB
Go
package http
|
|
|
|
import (
|
|
"strconv"
|
|
|
|
"go-common/app/interface/main/dm2/model"
|
|
"go-common/library/ecode"
|
|
"go-common/library/log"
|
|
bm "go-common/library/net/http/blademaster"
|
|
)
|
|
|
|
// dmUpSearch danmu content List by cid
|
|
func dmUpSearch(c *bm.Context) {
|
|
p := c.Request.Form
|
|
mid, _ := c.Get("mid")
|
|
params := &model.SearchDMParams{
|
|
Mids: p.Get("mids"),
|
|
Mode: p.Get("modes"),
|
|
Pool: p.Get("pool"),
|
|
ProgressFrom: model.CondIntNil,
|
|
ProgressTo: model.CondIntNil,
|
|
CtimeFrom: p.Get("ctime_from"),
|
|
CtimeTo: p.Get("ctime_to"),
|
|
Pn: 1,
|
|
Ps: 100,
|
|
Sort: "desc",
|
|
Order: "ctime",
|
|
Keyword: p.Get("keyword"),
|
|
Attrs: p.Get("attrs"),
|
|
State: "0,2,6",
|
|
}
|
|
tp, err := strconv.ParseInt(p.Get("type"), 10, 64)
|
|
if err != nil {
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
params.Type = int32(tp)
|
|
oid, err := strconv.ParseInt(p.Get("oid"), 10, 64)
|
|
if err != nil {
|
|
log.Error("param err oid %s %v", p.Get("oid"), err)
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
params.Oid = oid
|
|
if p.Get("pn") != "" {
|
|
if params.Pn, err = strconv.ParseInt(p.Get("pn"), 10, 64); err != nil {
|
|
log.Error("param err page number %s %v", p.Get("pn"), err)
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
}
|
|
if p.Get("ps") != "" {
|
|
if params.Ps, err = strconv.ParseInt(p.Get("ps"), 10, 64); err != nil {
|
|
log.Error("param err page_size %s %v", p.Get("page_size"), err)
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
}
|
|
if p.Get("progress_from") != "" {
|
|
if params.ProgressFrom, err = strconv.ParseInt(p.Get("progress_from"), 10, 64); err != nil {
|
|
log.Error("param err progress_from %s %v", p.Get("progress_from"), err)
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
params.ProgressFrom = params.ProgressFrom * 1000
|
|
}
|
|
if p.Get("progress_to") != "" {
|
|
if params.ProgressTo, err = strconv.ParseInt(p.Get("progress_to"), 10, 64); err != nil {
|
|
log.Error("param err progress_to %s %v", p.Get("progress_to"), err)
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
params.ProgressTo = params.ProgressTo * 1000
|
|
}
|
|
if p.Get("order") != "" {
|
|
params.Order = p.Get("order")
|
|
}
|
|
if p.Get("sort") != "" {
|
|
params.Sort = p.Get("sort")
|
|
}
|
|
data, err := dmSvc.DMUpSearch(c, mid.(int64), params)
|
|
c.JSON(data, err)
|
|
}
|
|
|
|
// dmUpRecent get dm list by mid fron redis
|
|
func dmUpRecent(c *bm.Context) {
|
|
var (
|
|
err error
|
|
v = new(struct {
|
|
Pn int64 `form:"pn" default:"1"`
|
|
Ps int64 `form:"ps" default:"100"`
|
|
})
|
|
)
|
|
if err = c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
mid, _ := c.Get("mid")
|
|
c.JSON(dmSvc.DMUpRecent(c, mid.(int64), v.Pn, v.Ps))
|
|
}
|
|
|
|
// 统计一个每个时间段弹幕数
|
|
func dmDistribution(c *bm.Context) {
|
|
p := c.Request.Form
|
|
typ, err := strconv.ParseInt(p.Get("type"), 10, 64)
|
|
if err != nil {
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
oid, err := strconv.ParseInt(p.Get("oid"), 10, 64)
|
|
if err != nil {
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
interval, err := strconv.ParseInt(p.Get("interval"), 10, 64)
|
|
if err != nil || interval <= 0 {
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
data, err := dmSvc.DMDistribution(c, int32(typ), oid, int32(interval))
|
|
if err != nil {
|
|
c.JSON(nil, err)
|
|
return
|
|
}
|
|
c.JSON(data, nil)
|
|
}
|
|
|
|
func dmUpConfig(c *bm.Context) {
|
|
mid, _ := c.Get("mid")
|
|
advPermit, err := dmSvc.AdvancePermit(c, mid.(int64))
|
|
if err != nil {
|
|
c.JSON(nil, err)
|
|
return
|
|
}
|
|
data := map[string]interface{}{
|
|
"advance_permit": advPermit,
|
|
}
|
|
c.JSON(data, nil)
|
|
}
|
|
|
|
func upAdvancePermit(c *bm.Context) {
|
|
mid, _ := c.Get("mid")
|
|
p := c.Request.Form
|
|
permit, err := strconv.ParseInt(p.Get("advance_permit"), 10, 64)
|
|
if err != nil || int8(permit) > model.AdvPermitForbid {
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
c.JSON(nil, dmSvc.UpdateAdvancePermit(c, mid.(int64), int8(permit)))
|
|
}
|