You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
193 lines
3.7 KiB
193 lines
3.7 KiB
package http |
|
|
|
import ( |
|
"time" |
|
|
|
"go-common/app/interface/main/esports/model" |
|
"go-common/library/ecode" |
|
bm "go-common/library/net/http/blademaster" |
|
) |
|
|
|
func addFav(c *bm.Context) { |
|
midStr, _ := c.Get("mid") |
|
mid := midStr.(int64) |
|
v := new(struct { |
|
Cid int64 `form:"cid" validate:"min=1"` |
|
}) |
|
if err := c.Bind(v); err != nil { |
|
return |
|
} |
|
c.JSON(nil, switchCode(eSvc.AddFav(c, mid, v.Cid))) |
|
} |
|
|
|
func delFav(c *bm.Context) { |
|
midStr, _ := c.Get("mid") |
|
mid := midStr.(int64) |
|
v := new(struct { |
|
Cid int64 `form:"cid" validate:"min=1"` |
|
}) |
|
if err := c.Bind(v); err != nil { |
|
return |
|
} |
|
c.JSON(nil, switchCode(eSvc.DelFav(c, mid, v.Cid))) |
|
} |
|
|
|
func listFav(c *bm.Context) { |
|
var ( |
|
mid int64 |
|
total int |
|
contest []*model.Contest |
|
err error |
|
) |
|
if midStr, ok := c.Get("mid"); ok { |
|
mid = midStr.(int64) |
|
} |
|
v := new(struct { |
|
VMID int64 `form:"vmid"` |
|
Pn int `form:"pn" default:"1" validate:"min=1"` |
|
Ps int `form:"ps" default:"5" validate:"min=1"` |
|
}) |
|
if err = c.Bind(v); err != nil { |
|
return |
|
} |
|
if contest, total, err = eSvc.ListFav(c, mid, v.VMID, v.Pn, v.Ps); err != nil { |
|
c.JSON(nil, err) |
|
return |
|
} |
|
data := make(map[string]interface{}, 2) |
|
page := map[string]int{ |
|
"num": v.Pn, |
|
"size": v.Ps, |
|
"total": total, |
|
} |
|
data["page"] = page |
|
data["list"] = contest |
|
c.JSON(data, nil) |
|
} |
|
func appListFav(c *bm.Context) { |
|
var ( |
|
mid int64 |
|
total int |
|
contest []*model.Contest |
|
err error |
|
) |
|
if midStr, ok := c.Get("mid"); ok { |
|
mid = midStr.(int64) |
|
} |
|
v := new(model.ParamFav) |
|
if err = c.Bind(v); err != nil { |
|
return |
|
} |
|
if mid == 0 && v.VMID == 0 { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
if v.Stime != "" { |
|
if _, err = time.Parse("2006-01-02", v.Stime); err != nil { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
} |
|
if v.Etime != "" { |
|
if _, err = time.Parse("2006-01-02", v.Etime); err != nil { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
} |
|
if contest, total, err = eSvc.ListAppFav(c, mid, 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": total, |
|
} |
|
data["page"] = page |
|
data["list"] = contest |
|
c.JSON(data, nil) |
|
} |
|
|
|
func seasonFav(c *bm.Context) { |
|
var ( |
|
mid int64 |
|
total int |
|
seasons []*model.Season |
|
err error |
|
) |
|
if midStr, ok := c.Get("mid"); ok { |
|
mid = midStr.(int64) |
|
} |
|
v := new(model.ParamSeason) |
|
if err = c.Bind(v); err != nil { |
|
return |
|
} |
|
if mid == 0 && v.VMID == 0 { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
if seasons, total, err = eSvc.SeasonFav(c, mid, 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": total, |
|
} |
|
data["page"] = page |
|
data["list"] = seasons |
|
c.JSON(data, nil) |
|
} |
|
|
|
func stimeFav(c *bm.Context) { |
|
var ( |
|
mid int64 |
|
total int |
|
stimes []string |
|
err error |
|
) |
|
if midStr, ok := c.Get("mid"); ok { |
|
mid = midStr.(int64) |
|
} |
|
v := new(model.ParamSeason) |
|
if err = c.Bind(v); err != nil { |
|
return |
|
} |
|
if mid == 0 && v.VMID == 0 { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
if stimes, total, err = eSvc.StimeFav(c, mid, 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": total, |
|
} |
|
data["page"] = page |
|
data["list"] = stimes |
|
c.JSON(data, nil) |
|
} |
|
|
|
func switchCode(err error) error { |
|
if err == nil { |
|
return err |
|
} |
|
switch ecode.Cause(err) { |
|
case ecode.FavResourceOverflow: |
|
err = ecode.EsportsContestMaxCount |
|
case ecode.FavResourceAlreadyDel: |
|
err = ecode.EsportsContestFavDel |
|
case ecode.FavResourceExist: |
|
err = ecode.EsportsContestFavExist |
|
case ecode.FavFolderNotExist: |
|
err = ecode.EsportsContestNotExist |
|
} |
|
return err |
|
}
|
|
|