149 lines
2.8 KiB
Go
149 lines
2.8 KiB
Go
|
package http
|
||
|
|
||
|
import (
|
||
|
"go-common/app/admin/main/esports/model"
|
||
|
"go-common/library/ecode"
|
||
|
bm "go-common/library/net/http/blademaster"
|
||
|
"go-common/library/xstr"
|
||
|
)
|
||
|
|
||
|
const _special = 1
|
||
|
|
||
|
func contestInfo(c *bm.Context) {
|
||
|
v := new(struct {
|
||
|
ID int64 `form:"id" validate:"min=1"`
|
||
|
})
|
||
|
if err := c.Bind(v); err != nil {
|
||
|
return
|
||
|
}
|
||
|
c.JSON(esSvc.ContestInfo(c, v.ID))
|
||
|
}
|
||
|
|
||
|
func contestList(c *bm.Context) {
|
||
|
var (
|
||
|
list []*model.ContestInfo
|
||
|
cnt int64
|
||
|
err error
|
||
|
)
|
||
|
v := new(struct {
|
||
|
Pn int64 `form:"pn" validate:"min=0"`
|
||
|
Ps int64 `form:"ps" validate:"min=0,max=50"`
|
||
|
Mid int64 `form:"mid"`
|
||
|
Sid int64 `form:"sid"`
|
||
|
Sort int64 `form:"sort"`
|
||
|
})
|
||
|
if err = c.Bind(v); err != nil {
|
||
|
return
|
||
|
}
|
||
|
if v.Pn == 0 {
|
||
|
v.Pn = 1
|
||
|
}
|
||
|
if v.Ps == 0 {
|
||
|
v.Ps = 20
|
||
|
}
|
||
|
if list, cnt, err = esSvc.ContestList(c, v.Mid, v.Sid, v.Pn, v.Ps, v.Sort); err != nil {
|
||
|
c.JSON(nil, err)
|
||
|
return
|
||
|
}
|
||
|
data := make(map[string]interface{}, 2)
|
||
|
page := map[string]int64{
|
||
|
"num": v.Pn,
|
||
|
"size": v.Ps,
|
||
|
"total": cnt,
|
||
|
}
|
||
|
data["page"] = page
|
||
|
data["list"] = list
|
||
|
c.JSON(data, nil)
|
||
|
}
|
||
|
|
||
|
func addContest(c *bm.Context) {
|
||
|
var (
|
||
|
err error
|
||
|
tmpGids, gids []int64
|
||
|
)
|
||
|
v := new(model.Contest)
|
||
|
if err = c.Bind(v); err != nil {
|
||
|
return
|
||
|
}
|
||
|
if v.Special == _special && v.SpecialName == "" {
|
||
|
c.JSON(nil, ecode.RequestErr)
|
||
|
return
|
||
|
}
|
||
|
gidStr := c.Request.Form.Get("gids")
|
||
|
if gidStr == "" {
|
||
|
c.JSON(nil, ecode.RequestErr)
|
||
|
return
|
||
|
}
|
||
|
if tmpGids, err = xstr.SplitInts(gidStr); err != nil {
|
||
|
c.JSON(nil, ecode.RequestErr)
|
||
|
return
|
||
|
}
|
||
|
for _, v := range tmpGids {
|
||
|
if v > 0 {
|
||
|
gids = append(gids, v)
|
||
|
}
|
||
|
}
|
||
|
if len(gids) == 0 {
|
||
|
c.JSON(nil, ecode.RequestErr)
|
||
|
return
|
||
|
}
|
||
|
if v.DataType > 0 && v.MatchID == 0 {
|
||
|
c.JSON(nil, ecode.RequestErr)
|
||
|
return
|
||
|
}
|
||
|
c.JSON(nil, esSvc.AddContest(c, v, gids))
|
||
|
}
|
||
|
|
||
|
func editContest(c *bm.Context) {
|
||
|
var (
|
||
|
err error
|
||
|
tmpGids, gids []int64
|
||
|
)
|
||
|
v := new(model.Contest)
|
||
|
if err = c.Bind(v); err != nil {
|
||
|
return
|
||
|
}
|
||
|
if v.ID <= 0 {
|
||
|
c.JSON(nil, ecode.RequestErr)
|
||
|
return
|
||
|
}
|
||
|
if v.Special == _special && v.SpecialName == "" {
|
||
|
c.JSON(nil, ecode.RequestErr)
|
||
|
return
|
||
|
}
|
||
|
gidStr := c.Request.Form.Get("gids")
|
||
|
if gidStr == "" {
|
||
|
c.JSON(nil, ecode.RequestErr)
|
||
|
return
|
||
|
}
|
||
|
if tmpGids, err = xstr.SplitInts(gidStr); err != nil {
|
||
|
c.JSON(nil, ecode.RequestErr)
|
||
|
return
|
||
|
}
|
||
|
for _, v := range tmpGids {
|
||
|
if v > 0 {
|
||
|
gids = append(gids, v)
|
||
|
}
|
||
|
}
|
||
|
if len(gids) == 0 {
|
||
|
c.JSON(nil, ecode.RequestErr)
|
||
|
return
|
||
|
}
|
||
|
if v.DataType > 0 && v.MatchID == 0 {
|
||
|
c.JSON(nil, ecode.RequestErr)
|
||
|
return
|
||
|
}
|
||
|
c.JSON(nil, esSvc.EditContest(c, v, gids))
|
||
|
}
|
||
|
|
||
|
func forbidContest(c *bm.Context) {
|
||
|
v := new(struct {
|
||
|
ID int64 `form:"id" validate:"min=1"`
|
||
|
State int `form:"state" validate:"min=0,max=1"`
|
||
|
})
|
||
|
if err := c.Bind(v); err != nil {
|
||
|
return
|
||
|
}
|
||
|
c.JSON(nil, esSvc.ForbidContest(c, v.ID, v.State))
|
||
|
}
|