123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320 |
- package http
- import (
- "net/http"
- "strconv"
- "time"
- "go-common/app/admin/main/videoup/model/archive"
- "go-common/library/ecode"
- "go-common/library/log"
- bm "go-common/library/net/http/blademaster"
- "go-common/library/net/http/blademaster/render"
- )
- func taskTooks(c *bm.Context) {
- req := c.Request
- params := req.Form
- stimeStr := params.Get("stime")
- etimeStr := params.Get("etime")
- if stimeStr == "" {
- stimeStr = time.Now().Format("2006-01-02") + " 00:00:00"
- }
- if etimeStr == "" {
- etimeStr = time.Now().Format("2006-01-02 15:04:05")
- }
- local, _ := time.LoadLocation("Local")
- stime, err := time.ParseInLocation("2006-01-02 15:04:05", stimeStr, local)
- if stime.Unix() < 1 || err != nil {
- c.JSON(nil, ecode.RequestErr)
- return
- }
- etime, err := time.ParseInLocation("2006-01-02 15:04:05", etimeStr, local)
- if etime.Unix() < 1 || err != nil {
- c.JSON(nil, ecode.RequestErr)
- return
- }
- tooks, err := vdaSvc.TaskTooksByHalfHour(c, stime, etime)
- if err != nil {
- c.JSON(nil, err)
- return
- }
- c.JSON(tooks, nil)
- }
- func next(c *bm.Context) {
- uidS := c.Request.Form.Get("uid")
- uid, err := strconv.Atoi(uidS)
- if err != nil {
- c.JSON(nil, ecode.RequestErr)
- return
- }
- task, err := vdaSvc.Next(c, int64(uid))
- if err != nil {
- log.Error("vdaSvc.Next(uid=%d) error(%v)", uid, err)
- c.JSON(nil, err)
- return
- }
- c.JSON(task, nil)
- }
- func list(c *bm.Context) {
- v := new(struct {
- UID int64 `form:"uid" default:"0"`
- IsLeader int8 `form:"isleader" default:"0"`
- Lt int8 `form:"listtype" default:"0"`
- Pn int `form:"page" default:"1"`
- Ps int `form:"pagesize" default:"20"`
- })
- err := c.Bind(v)
- if err != nil {
- c.JSON(nil, ecode.RequestErr)
- return
- }
- tasks, err := vdaSvc.List(c, v.UID, v.Pn, v.Ps, v.Lt, v.IsLeader)
- if err != nil {
- log.Error("vdaSvc.List(uid=%d,page=%d, pagesize=%d, listtype=%d, isleader=%d) error(%v)",
- v.UID, v.Pn, v.Ps, v.Lt, v.IsLeader, err)
- c.JSON(nil, err)
- return
- }
- c.JSON(tasks, nil)
- }
- func info(c *bm.Context) {
- tidS := c.Request.Form.Get("taskid")
- tid, err := strconv.Atoi(tidS)
- if err != nil {
- c.JSON(nil, ecode.RequestErr)
- return
- }
- task, err := vdaSvc.Info(c, int64(tid))
- if err != nil {
- log.Error("vdaSvc.Info(taskid=%d) error(%v)", tid, err)
- c.JSON(nil, err)
- return
- }
- c.JSON(task, nil)
- }
- // 权重管理
- func addwtconf(c *bm.Context) {
- var err error
- cfg := &archive.WeightConf{}
- if err = c.Bind(cfg); err != nil {
- log.Error("addwtconf error(%v)", err)
- c.JSON(nil, ecode.RequestErr)
- return
- }
- uid, uname := getUIDName(c)
- err = vdaSvc.AddWeightConf(c, cfg, uid, uname)
- if err != nil {
- data := map[string]interface{}{
- "code": ecode.RequestErr,
- "message": err.Error(),
- }
- c.Render(http.StatusOK, render.MapJSON(data))
- return
- }
- c.JSON(nil, nil)
- }
- func delwtconf(c *bm.Context) {
- var err error
- ids := c.Request.Form.Get("id")
- id, err := strconv.Atoi(ids)
- if err != nil {
- c.JSON(nil, ecode.RequestErr)
- return
- }
- c.JSON(vdaSvc.DelWeightConf(c, int64(id)), nil)
- }
- func listwtconf(c *bm.Context) {
- v := new(archive.Confs)
- if err := c.Bind(v); err != nil {
- c.JSON(nil, ecode.RequestErr)
- return
- }
- c.JSON(vdaSvc.ListWeightConf(c, v))
- }
- func maxweight(c *bm.Context) {
- c.JSON(vdaSvc.MaxWeight(c))
- }
- func listwtlog(c *bm.Context) {
- v := new(struct {
- Taskid int64 `form:"taskid" validate:"required"`
- Pn int `form:"page" default:"1"`
- Ps int `form:"ps" default:"20"`
- })
- if err := c.Bind(v); err != nil {
- c.JSON(nil, ecode.RequestErr)
- return
- }
- cfg, count, err := vdaSvc.ListWeightLogs(c, v.Taskid, v.Pn)
- if err != nil {
- c.JSON(nil, err)
- return
- }
- data := make(map[string]interface{})
- data["data"] = cfg
- data["pager"] = map[string]int{
- "current_page": v.Pn,
- "total_items": int(count),
- "page_size": 20,
- }
- c.JSONMap(data, err)
- }
- func show(c *bm.Context) {
- c.JSON(vdaSvc.ShowWeightVC(c))
- }
- func set(c *bm.Context) {
- v := new(archive.WeightVC)
- if err := c.Bind(v); err != nil {
- c.JSON(nil, ecode.RequestErr)
- return
- }
- c.JSON(nil, vdaSvc.SetWeightVC(c, v))
- }
- // 登录管理
- func on(c *bm.Context) {
- uid, uname := getUIDName(c)
- err := vdaSvc.HandsUp(c, uid, uname)
- if err != nil {
- data := map[string]interface{}{
- "code": ecode.RequestErr,
- "message": err.Error(),
- }
- c.Render(http.StatusOK, render.MapJSON(data))
- return
- }
- c.JSON(nil, nil)
- }
- // 踢出
- func forceoff(c *bm.Context) {
- uidS := c.Request.Form.Get("uid")
- uid, _ := strconv.ParseInt(uidS, 10, 64)
- if uid == 0 {
- c.JSON(nil, ecode.RequestErr)
- return
- }
- adminuid, _ := getUIDName(c)
- err := vdaSvc.HandsOff(c, adminuid, uid)
- if err != nil {
- data := map[string]interface{}{
- "code": ecode.RequestErr,
- "message": err.Error(),
- }
- c.Render(http.StatusOK, render.MapJSON(data))
- return
- }
- c.JSON(nil, nil)
- }
- func off(c *bm.Context) {
- adminuid, _ := getUIDName(c)
- err := vdaSvc.HandsOff(c, adminuid, 0)
- if err != nil {
- data := map[string]interface{}{
- "code": ecode.RequestErr,
- "message": err.Error(),
- }
- c.Render(http.StatusOK, render.MapJSON(data))
- return
- }
- c.JSON(nil, nil)
- }
- func online(c *bm.Context) {
- c.JSON(vdaSvc.Online(c))
- }
- func inoutlist(c *bm.Context) {
- v := new(struct {
- Unames string `form:"unames" default:""`
- Bt string `form:"bt" default:""`
- Et string `form:"et" default:""`
- })
- if err := c.Bind(v); err != nil {
- c.JSON(nil, ecode.RequestErr)
- return
- }
- c.JSON(vdaSvc.InOutList(c, v.Unames, v.Bt, v.Et))
- }
- // 任务管理
- func delay(c *bm.Context) {
- v := new(struct {
- Taskid int64 `form:"task_id" validate:"required"`
- Reason string `form:"reason"`
- })
- if err := c.Bind(v); err != nil {
- c.JSON(nil, ecode.RequestErr)
- return
- }
- uid, _ := getUIDName(c)
- c.JSON(nil, vdaSvc.Delay(c, v.Taskid, uid, v.Reason))
- }
- func taskfree(c *bm.Context) {
- var uid, rows int64
- uid, _ = getUIDName(c)
- rows = vdaSvc.Free(c, uid)
- log.Info("释放任务(uid=%d,rows=%d)", uid, rows)
- c.JSON(nil, nil)
- }
- func checkgroup() bm.HandlerFunc {
- return func(ctx *bm.Context) {
- uid, _ := getUIDName(ctx)
- role, err := vdaSvc.CheckGroup(ctx, uid)
- if err != nil || role == 0 {
- data := map[string]interface{}{
- "code": ecode.RequestErr,
- "message": "权限错误",
- }
- ctx.Render(http.StatusOK, render.MapJSON(data))
- ctx.Abort()
- return
- }
- }
- }
- // 校验任务操作权限
- func checkowner() bm.HandlerFunc {
- return func(ctx *bm.Context) {
- tidS := ctx.Request.Form.Get("task_id")
- tid, err := strconv.Atoi(tidS)
- if err != nil {
- ctx.JSON(nil, ecode.RequestErr)
- ctx.Abort()
- return
- }
- uid, _ := getUIDName(ctx)
- if err := vdaSvc.CheckOwner(ctx, int64(tid), uid); err != nil {
- data := map[string]interface{}{
- "code": ecode.RequestErr,
- "message": err.Error(),
- }
- ctx.Render(http.StatusOK, render.MapJSON(data))
- ctx.Abort()
- return
- }
- }
- }
|