Create & Init Project...

This commit is contained in:
2019-04-22 18:49:16 +08:00
commit fc4fa37393
25440 changed files with 4054998 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"archive.go",
"contest.go",
"game.go",
"http.go",
"match.go",
"match_active.go",
"match_detail.go",
"season.go",
"tag.go",
"team.go",
"tree.go",
],
importpath = "go-common/app/admin/main/esports/http",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/admin/main/esports/conf:go_default_library",
"//app/admin/main/esports/model:go_default_library",
"//app/admin/main/esports/service:go_default_library",
"//library/ecode:go_default_library",
"//library/log:go_default_library",
"//library/net/http/blademaster:go_default_library",
"//library/net/http/blademaster/middleware/permit:go_default_library",
"//library/xstr:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,191 @@
package http
import (
"encoding/csv"
"io/ioutil"
"strings"
"go-common/app/admin/main/esports/conf"
"go-common/app/admin/main/esports/model"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/xstr"
"strconv"
)
func arcList(c *bm.Context) {
var (
list []*model.ArcResult
cnt int
err error
)
v := new(model.ArcListParam)
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.ArcList(c, v); err != nil {
c.JSON(nil, err)
return
}
data := make(map[string]interface{}, 2)
page := map[string]int{
"num": v.Pn,
"size": v.Ps,
"total": cnt,
}
data["page"] = page
data["list"] = list
c.JSON(data, nil)
}
func batchAddArc(c *bm.Context) {
v := new(model.ArcAddParam)
if err := c.Bind(v); err != nil {
return
}
if len(v.Aids) > conf.Conf.Rule.MaxBatchArcLimit {
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(nil, esSvc.BatchAddArc(c, v))
}
func batchEditArc(c *bm.Context) {
v := new(model.ArcAddParam)
if err := c.Bind(v); err != nil {
return
}
if len(v.Aids) > conf.Conf.Rule.MaxBatchArcLimit {
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(nil, esSvc.BatchEditArc(c, v))
}
func editArc(c *bm.Context) {
v := new(model.ArcImportParam)
if err := c.Bind(v); err != nil {
return
}
c.JSON(nil, esSvc.EditArc(c, v))
}
func arcImportCSV(c *bm.Context) {
var (
err error
data []byte
)
file, _, err := c.Request.FormFile("file")
if err != nil {
log.Error("arcImportCSV upload err(%v)", err)
c.JSON(nil, ecode.RequestErr)
return
}
defer file.Close()
data, err = ioutil.ReadAll(file)
if err != nil {
log.Error("arcImportCSV ioutil.ReadAll err(%v)", err)
c.JSON(nil, ecode.RequestErr)
return
}
r := csv.NewReader(strings.NewReader(string(data)))
records, err := r.ReadAll()
if err != nil {
log.Error("r.ReadAll() err(%v)", err)
c.JSON(nil, ecode.RequestErr)
return
}
if l := len(records); l > conf.Conf.Rule.MaxCSVRows || l <= 1 {
c.JSON(nil, ecode.RequestErr)
return
}
var arcs []*model.ArcImportParam
aidMap := make(map[int64]int64, len(arcs))
for _, v := range records {
arc := new(model.ArcImportParam)
// aid
if aid, err := strconv.ParseInt(v[0], 10, 64); err != nil || aid <= 0 {
log.Warn("arcImportCSV strconv.ParseInt(%s) error(%v)", v[0], err)
continue
} else {
if _, ok := aidMap[aid]; ok {
continue
}
arc.Aid = aid
aidMap[aid] = aid
}
// gids
if gids, err := xstr.SplitInts(v[1]); err != nil {
log.Warn("arcImportCSV gids xstr.SplitInts(%s) aid(%d) error(%v)", v[1], arc.Aid, err)
} else {
for _, id := range gids {
if id > 0 {
arc.Gids = append(arc.Gids, id)
}
}
}
// match ids
if matchIDs, err := xstr.SplitInts(v[2]); err != nil {
log.Warn("arcImportCSV match xstr.SplitInts(%s) aid(%d) error(%v)", v[2], arc.Aid, err)
} else {
for _, id := range matchIDs {
if id > 0 {
arc.MatchIDs = append(arc.MatchIDs, id)
}
}
}
// team ids
if teamIDs, err := xstr.SplitInts(v[3]); err != nil {
log.Warn("arcImportCSV team xstr.SplitInts(%s) aid(%d) error(%v)", v[3], arc.Aid, err)
} else {
for _, id := range teamIDs {
if id > 0 {
arc.TeamIDs = append(arc.TeamIDs, id)
}
}
}
// tag ids
if tagIDs, err := xstr.SplitInts(v[4]); err != nil {
log.Warn("arcImportCSV tag xstr.SplitInts(%s) aid(%d) error(%v)", v[4], arc.Aid, err)
} else {
for _, id := range tagIDs {
if id > 0 {
arc.TagIDs = append(arc.TagIDs, id)
}
}
}
// years
if years, err := xstr.SplitInts(v[5]); err != nil {
log.Warn("arcImportCSV year xstr.SplitInts(%s) aid(%d) error(%v)", v[5], arc.Aid, err)
} else {
for _, id := range years {
if id > 0 {
arc.Years = append(arc.Years, id)
}
}
}
arcs = append(arcs, arc)
}
if len(arcs) == 0 {
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(nil, esSvc.ArcImportCSV(c, arcs))
}
func batchDelArc(c *bm.Context) {
v := new(struct {
Aids []int64 `form:"aids,split" validate:"dive,gt=1,required"`
})
if err := c.Bind(v); err != nil {
return
}
c.JSON(nil, esSvc.BatchDelArc(c, v.Aids))
}

View File

@@ -0,0 +1,148 @@
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))
}

View File

@@ -0,0 +1,112 @@
package http
import (
"go-common/app/admin/main/esports/model"
"go-common/library/ecode"
bm "go-common/library/net/http/blademaster"
)
func gameInfo(c *bm.Context) {
v := new(struct {
ID int64 `form:"id" validate:"min=1"`
})
if err := c.Bind(v); err != nil {
return
}
c.JSON(esSvc.GameInfo(c, v.ID))
}
func gameList(c *bm.Context) {
var (
list []*model.Game
cnt int64
err error
)
v := new(struct {
Pn int64 `form:"pn" validate:"min=0"`
Ps int64 `form:"ps" validate:"min=0,max=30"`
Name string `form:"name"`
State int64 `form:"state"`
})
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.GameList(c, v.Pn, v.Ps, v.Name); 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 addGame(c *bm.Context) {
v := new(model.Game)
if err := c.Bind(v); err != nil {
return
}
if v.Plat != 0 {
if _, ok := model.PlatMap[v.Plat]; !ok {
c.JSON(nil, ecode.RequestErr)
return
}
}
if v.Type != 0 {
if _, ok := model.TypeMap[v.Type]; !ok {
c.JSON(nil, ecode.RequestErr)
return
}
}
c.JSON(nil, esSvc.AddGame(c, v))
}
func editGame(c *bm.Context) {
v := new(model.Game)
if err := c.Bind(v); err != nil {
return
}
if v.ID <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
if v.Plat != 0 {
if _, ok := model.PlatMap[v.Plat]; !ok {
c.JSON(nil, ecode.RequestErr)
return
}
}
if v.Type != 0 {
if _, ok := model.TypeMap[v.Type]; !ok {
c.JSON(nil, ecode.RequestErr)
return
}
}
c.JSON(nil, esSvc.EditGame(c, v))
}
func forbidGame(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.ForbidGame(c, v.ID, v.State))
}
func types(c *bm.Context) {
c.JSON(esSvc.Types(c))
}

View File

@@ -0,0 +1,124 @@
package http
import (
"net/http"
"go-common/app/admin/main/esports/conf"
"go-common/app/admin/main/esports/service"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/middleware/permit"
)
var (
esSvc *service.Service
//idfSvc *identify.Identify
permitSvc *permit.Permit
)
// Init init http sever instance.
func Init(c *conf.Config, s *service.Service) {
esSvc = s
permitSvc = permit.New(c.Permit)
engine := bm.DefaultServer(c.BM)
authRouter(engine)
// init internal server
if err := engine.Start(); err != nil {
log.Error("engine.Start error(%v)", err)
panic(err)
}
}
func authRouter(e *bm.Engine) {
e.Ping(ping)
group := e.Group("/x/admin/esports", permitSvc.Permit("ESPORTS_ADMIN"))
{
matchGroup := group.Group("/matchs")
{
matchGroup.GET("/info", matchInfo)
matchGroup.GET("/list", matchList)
matchGroup.POST("/add", addMatch)
matchGroup.POST("/save", editMatch)
matchGroup.POST("/forbid", forbidMatch)
}
seasonGroup := group.Group("/seasons")
{
seasonGroup.GET("/info", seasonInfo)
seasonGroup.GET("/list", seasonList)
seasonGroup.POST("/add", addSeason)
seasonGroup.POST("/save", editSeason)
seasonGroup.POST("/forbid", forbidSeason)
}
contestGroup := group.Group("/contest")
{
contestGroup.GET("/info", contestInfo)
contestGroup.GET("/list", contestList)
contestGroup.POST("/add", addContest)
contestGroup.POST("/save", editContest)
contestGroup.POST("/forbid", forbidContest)
}
gameGroup := group.Group("/games")
{
gameGroup.GET("/info", gameInfo)
gameGroup.GET("/list", gameList)
gameGroup.POST("/add", addGame)
gameGroup.POST("/save", editGame)
gameGroup.POST("/forbid", forbidGame)
gameGroup.GET("/types", types)
}
teamGroup := group.Group("/teams")
{
teamGroup.GET("/info", teamInfo)
teamGroup.GET("/list", teamList)
teamGroup.POST("/add", addTeam)
teamGroup.POST("/save", editTeam)
teamGroup.POST("/forbid", forbidTeam)
}
tagGroup := group.Group("/tags")
{
tagGroup.GET("/info", tagInfo)
tagGroup.GET("/list", tagList)
tagGroup.POST("/add", addTag)
tagGroup.POST("/save", editTag)
tagGroup.POST("/forbid", forbidTag)
}
arcGroup := group.Group("/arcs")
{
arcGroup.GET("/list", arcList)
arcGroup.POST("/edit", editArc)
arcGroup.POST("/batch/add", batchAddArc)
arcGroup.POST("/batch/edit", batchEditArc)
arcGroup.POST("/batch/del", batchDelArc)
arcGroup.POST("/import/csv", arcImportCSV)
}
actGroup := group.Group("/active")
{
actGroup.GET("", listAct)
actGroup.POST("/add", addAct)
actGroup.POST("/edit", editAct)
actGroup.POST("/forbid", forbidAct)
dGroup := actGroup.Group("/detail")
{
dGroup.GET("/list", listDetail)
dGroup.POST("/add", addDetail)
dGroup.POST("/edit", editDetail)
dGroup.POST("/forbid", forbidDetail)
dGroup.POST("/online", onLine)
}
tGroup := actGroup.Group("/tree")
{
tGroup.GET("/list", listTree)
tGroup.POST("/add", addTree)
tGroup.POST("/edit", editTree)
tGroup.POST("/del", delTree)
}
}
}
}
func ping(c *bm.Context) {
if err := esSvc.Ping(c); err != nil {
log.Error("esport-admin ping error")
c.AbortWithStatus(http.StatusServiceUnavailable)
}
}

View File

@@ -0,0 +1,128 @@
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"
)
func matchInfo(c *bm.Context) {
v := new(struct {
ID int64 `form:"id" validate:"min=1"`
})
if err := c.Bind(v); err != nil {
return
}
c.JSON(esSvc.MatchInfo(c, v.ID))
}
func matchList(c *bm.Context) {
var (
list []*model.MatchInfo
cnt int64
err error
)
v := new(struct {
Pn int64 `form:"pn" validate:"min=0"`
Ps int64 `form:"ps" validate:"min=0,max=50"`
Title string `form:"title"`
})
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.MatchList(c, v.Pn, v.Ps, v.Title); 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 addMatch(c *bm.Context) {
var (
err error
tmpGids, gids []int64
)
v := new(model.Match)
if err = c.Bind(v); err != nil {
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
}
c.JSON(nil, esSvc.AddMatch(c, v, gids))
}
func editMatch(c *bm.Context) {
var (
err error
tmpGids, gids []int64
)
v := new(model.Match)
if err = c.Bind(v); err != nil {
return
}
if v.ID <= 0 {
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
}
c.JSON(nil, esSvc.EditMatch(c, v, gids))
}
func forbidMatch(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.ForbidMatch(c, v.ID, v.State))
}

View File

@@ -0,0 +1,62 @@
package http
import (
"go-common/app/admin/main/esports/model"
bm "go-common/library/net/http/blademaster"
)
func addAct(c *bm.Context) {
v := new(model.ParamMA)
if err := c.Bind(v); err != nil {
return
}
c.JSON(esSvc.AddAct(c, v))
}
func editAct(c *bm.Context) {
v := new(model.ParamMA)
if err := c.Bind(v); err != nil {
return
}
c.JSON(esSvc.EditAct(c, v))
}
func forbidAct(c *bm.Context) {
v := new(struct {
ID int64 `form:"id" validate:"required"`
State int `form:"state" validate:"min=0,max=1"`
})
if err := c.Bind(v); err != nil {
return
}
c.JSON(nil, esSvc.ForbidAct(c, v.ID, v.State))
}
func listAct(c *bm.Context) {
var (
list []*model.MatchModule
cnt int64
err error
)
v := new(struct {
Mid int64 `form:"mid"`
Pn int64 `form:"pn" validate:"min=0" default:"1"`
Ps int64 `form:"ps" validate:"min=0,max=30" default:"20"`
})
if err = c.Bind(v); err != nil {
return
}
if list, cnt, err = esSvc.ListAct(c, v.Mid, v.Pn, v.Ps); err != nil {
c.JSON(nil, err)
return
}
data := make(map[string]interface{}, 2)
page := map[string]int64{
"num": v.Pn,
"size": v.Ps,
"count": cnt,
}
data["page"] = page
data["list"] = list
c.JSON(data, nil)
}

View File

@@ -0,0 +1,73 @@
package http
import (
"go-common/app/admin/main/esports/model"
bm "go-common/library/net/http/blademaster"
)
func addDetail(c *bm.Context) {
v := new(model.MatchDetail)
if err := c.Bind(v); err != nil {
return
}
c.JSON(nil, esSvc.AddDetail(c, v))
}
func editDetail(c *bm.Context) {
v := new(model.MatchDetail)
if err := c.Bind(v); err != nil {
return
}
c.JSON(nil, esSvc.EditDetail(c, v))
}
func forbidDetail(c *bm.Context) {
v := new(struct {
ID int64 `form:"id" validate:"required"`
State int `form:"state" validate:"min=0,max=1"`
})
if err := c.Bind(v); err != nil {
return
}
c.JSON(nil, esSvc.ForbidDetail(c, v.ID, v.State))
}
func onLine(c *bm.Context) {
v := new(struct {
ID int64 `form:"id" validate:"required"`
State int64 `form:"state" validate:"min=0,max=1"`
})
if err := c.Bind(v); err != nil {
return
}
c.JSON(nil, esSvc.UpOnline(c, v.ID, v.State))
}
func listDetail(c *bm.Context) {
var (
list []*model.MatchDetail
cnt int64
err error
)
v := new(struct {
MaID int64 `json:"ma_id,omitempty" form:"ma_id" validate:"required"`
Pn int64 `form:"pn" validate:"min=0" default:"1"`
Ps int64 `form:"ps" validate:"min=0,max=30" default:"20"`
})
if err = c.Bind(v); err != nil {
return
}
if list, cnt, err = esSvc.ListDetail(c, v.MaID, v.Pn, v.Ps); err != nil {
c.JSON(nil, err)
return
}
data := make(map[string]interface{}, 2)
page := map[string]int64{
"num": v.Pn,
"size": v.Ps,
"count": cnt,
}
data["page"] = page
data["list"] = list
c.JSON(data, nil)
}

View File

@@ -0,0 +1,128 @@
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"
)
func seasonInfo(c *bm.Context) {
v := new(struct {
ID int64 `form:"id" validate:"min=1"`
})
if err := c.Bind(v); err != nil {
return
}
c.JSON(esSvc.SeasonInfo(c, v.ID))
}
func seasonList(c *bm.Context) {
var (
list []*model.SeasonInfo
cnt int64
err error
)
v := new(struct {
Mid int64 `form:"mid"`
Pn int64 `form:"pn" validate:"min=0"`
Ps int64 `form:"ps" validate:"min=0,max=30"`
})
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.SeasonList(c, v.Mid, v.Pn, v.Ps); err != nil {
c.JSON(nil, err)
return
}
data := make(map[string]interface{}, 2)
page := map[string]int64{
"num": v.Pn,
"size": v.Ps,
"count": cnt,
}
data["page"] = page
data["list"] = list
c.JSON(data, nil)
}
func addSeason(c *bm.Context) {
var (
err error
tmpGids, gids []int64
)
v := new(model.Season)
if err = c.Bind(v); err != nil {
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
}
c.JSON(nil, esSvc.AddSeason(c, v, gids))
}
func editSeason(c *bm.Context) {
var (
err error
tmpGids, gids []int64
)
v := new(model.Season)
if err = c.Bind(v); err != nil {
return
}
if v.ID <= 0 {
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
}
c.JSON(nil, esSvc.EditSeason(c, v, gids))
}
func forbidSeason(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.ForbidSeason(c, v.ID, v.State))
}

View File

@@ -0,0 +1,82 @@
package http
import (
"go-common/app/admin/main/esports/model"
"go-common/library/ecode"
bm "go-common/library/net/http/blademaster"
)
func tagInfo(c *bm.Context) {
v := new(struct {
ID int64 `form:"id" validate:"min=1"`
})
if err := c.Bind(v); err != nil {
return
}
c.JSON(esSvc.TagInfo(c, v.ID))
}
func tagList(c *bm.Context) {
var (
list []*model.Tag
cnt int64
err error
)
v := new(struct {
Pn int64 `form:"pn" validate:"min=0"`
Ps int64 `form:"ps" validate:"min=0,max=30"`
})
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.TagList(c, v.Pn, v.Ps); err != nil {
c.JSON(nil, err)
return
}
data := make(map[string]interface{}, 2)
page := map[string]int64{
"num": v.Pn,
"size": v.Ps,
"count": cnt,
}
data["page"] = page
data["list"] = list
c.JSON(data, nil)
}
func addTag(c *bm.Context) {
v := new(model.Tag)
if err := c.Bind(v); err != nil {
return
}
c.JSON(nil, esSvc.AddTag(c, v))
}
func editTag(c *bm.Context) {
v := new(model.Tag)
if err := c.Bind(v); err != nil {
return
}
if v.ID <= 0 {
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(nil, esSvc.EditTag(c, v))
}
func forbidTag(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.ForbidTag(c, v.ID, v.State))
}

View File

@@ -0,0 +1,129 @@
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"
)
func teamInfo(c *bm.Context) {
v := new(struct {
ID int64 `form:"id" validate:"min=1"`
})
if err := c.Bind(v); err != nil {
return
}
c.JSON(esSvc.TeamInfo(c, v.ID))
}
func teamList(c *bm.Context) {
var (
list []*model.TeamInfo
cnt int64
err error
)
v := new(struct {
Pn int64 `form:"pn" validate:"min=0"`
Ps int64 `form:"ps" validate:"min=0,max=30"`
Title string `form:"title"`
Status int `form:"status"`
})
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.TeamList(c, v.Pn, v.Ps, v.Title, v.Status); err != nil {
c.JSON(nil, err)
return
}
data := make(map[string]interface{}, 2)
page := map[string]int64{
"num": v.Pn,
"size": v.Ps,
"count": cnt,
}
data["page"] = page
data["list"] = list
c.JSON(data, nil)
}
func addTeam(c *bm.Context) {
var (
err error
gids, tmpGids []int64
)
v := new(model.Team)
if err = c.Bind(v); err != nil {
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
}
c.JSON(nil, esSvc.AddTeam(c, v, gids))
}
func editTeam(c *bm.Context) {
var (
err error
gids, tmpGids []int64
)
v := new(model.Team)
if err = c.Bind(v); err != nil {
return
}
if v.ID <= 0 {
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
}
c.JSON(nil, esSvc.EditTeam(c, v, gids))
}
func forbidTeam(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.ForbidTeam(c, v.ID, v.State))
}

View File

@@ -0,0 +1,43 @@
package http
import (
"go-common/app/admin/main/esports/model"
"go-common/library/ecode"
bm "go-common/library/net/http/blademaster"
)
func addTree(c *bm.Context) {
v := new(model.Tree)
if err := c.Bind(v); err != nil {
return
}
if v.Pid > 0 && v.RootID == 0 {
c.JSON(nil, ecode.RequestErr)
return
}
c.JSON(esSvc.AddTree(c, v))
}
func editTree(c *bm.Context) {
v := new(model.TreeEditParam)
if err := c.Bind(v); err != nil {
return
}
c.JSON(nil, esSvc.EditTree(c, v))
}
func delTree(c *bm.Context) {
v := new(model.TreeDelParam)
if err := c.Bind(v); err != nil {
return
}
c.JSON(nil, esSvc.DelTree(c, v))
}
func listTree(c *bm.Context) {
v := new(model.TreeListParam)
if err := c.Bind(v); err != nil {
return
}
c.JSON(esSvc.TreeList(c, v))
}