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.
183 lines
3.9 KiB
183 lines
3.9 KiB
package http |
|
|
|
import ( |
|
"strconv" |
|
|
|
"go-common/app/interface/main/space/conf" |
|
"go-common/app/interface/main/space/model" |
|
"go-common/library/ecode" |
|
bm "go-common/library/net/http/blademaster" |
|
"strings" |
|
) |
|
|
|
func topArc(c *bm.Context) { |
|
var ( |
|
mid, vmid int64 |
|
err error |
|
) |
|
vmidStr := c.Request.Form.Get("vmid") |
|
if vmid, err = strconv.ParseInt(vmidStr, 10, 64); err != nil || vmid <= 0 { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
if midInter, ok := c.Get("mid"); ok { |
|
mid = midInter.(int64) |
|
} |
|
c.JSON(spcSvc.TopArc(c, mid, vmid)) |
|
} |
|
|
|
func setTopArc(c *bm.Context) { |
|
v := new(struct { |
|
Aid int64 `form:"aid" validate:"min=1"` |
|
Reason string `form:"reason"` |
|
}) |
|
if err := c.Bind(v); err != nil { |
|
return |
|
} |
|
reason := strings.TrimSpace(v.Reason) |
|
if len([]rune(reason)) > conf.Conf.Rule.MaxTopReasonLen { |
|
c.JSON(nil, ecode.TopReasonLong) |
|
return |
|
} |
|
midStr, _ := c.Get("mid") |
|
mid := midStr.(int64) |
|
c.JSON(nil, spcSvc.SetTopArc(c, mid, v.Aid, reason)) |
|
} |
|
|
|
func cancelTopArc(c *bm.Context) { |
|
midStr, _ := c.Get("mid") |
|
mid := midStr.(int64) |
|
c.JSON(nil, spcSvc.DelTopArc(c, mid)) |
|
} |
|
|
|
func masterpiece(c *bm.Context) { |
|
var ( |
|
mid, vmid int64 |
|
err error |
|
) |
|
vmidStr := c.Request.Form.Get("vmid") |
|
if vmid, err = strconv.ParseInt(vmidStr, 10, 64); err != nil || vmid <= 0 { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
if midInter, ok := c.Get("mid"); ok { |
|
mid = midInter.(int64) |
|
} |
|
c.JSON(spcSvc.Masterpiece(c, mid, vmid)) |
|
} |
|
|
|
func addMasterpiece(c *bm.Context) { |
|
v := new(struct { |
|
Aid int64 `form:"aid" validate:"min=1"` |
|
Reason string `form:"reason"` |
|
}) |
|
if err := c.Bind(v); err != nil { |
|
return |
|
} |
|
reason := strings.TrimSpace(v.Reason) |
|
if len([]rune(reason)) > conf.Conf.Rule.MaxMpReasonLen { |
|
c.JSON(nil, ecode.TopReasonLong) |
|
return |
|
} |
|
midStr, _ := c.Get("mid") |
|
mid := midStr.(int64) |
|
c.JSON(nil, spcSvc.AddMasterpiece(c, mid, v.Aid, reason)) |
|
} |
|
|
|
func editMasterpiece(c *bm.Context) { |
|
v := new(struct { |
|
Aid int64 `form:"aid" validate:"min=1"` |
|
PreAid int64 `form:"pre_aid" validate:"min=1"` |
|
Reason string `form:"reason"` |
|
}) |
|
if err := c.Bind(v); err != nil { |
|
return |
|
} |
|
reason := strings.TrimSpace(v.Reason) |
|
if len([]rune(reason)) > conf.Conf.Rule.MaxMpReasonLen { |
|
c.JSON(nil, ecode.TopReasonLong) |
|
return |
|
} |
|
midStr, _ := c.Get("mid") |
|
mid := midStr.(int64) |
|
c.JSON(nil, spcSvc.EditMasterpiece(c, mid, v.Aid, v.PreAid, reason)) |
|
} |
|
|
|
func cancelMasterpiece(c *bm.Context) { |
|
v := new(struct { |
|
Aid int64 `form:"aid" validate:"min=1"` |
|
}) |
|
if err := c.Bind(v); err != nil { |
|
return |
|
} |
|
midStr, _ := c.Get("mid") |
|
mid := midStr.(int64) |
|
c.JSON(nil, spcSvc.CancelMasterpiece(c, mid, v.Aid)) |
|
} |
|
|
|
func arcSearch(c *bm.Context) { |
|
var ( |
|
res *model.SearchRes |
|
total int |
|
mid int64 |
|
err error |
|
v = new(model.SearchArg) |
|
) |
|
if err = c.Bind(v); err != nil { |
|
return |
|
} |
|
if v.CheckType != "" { |
|
if _, ok := model.ArcCheckType[v.CheckType]; !ok { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
if v.CheckID <= 0 { |
|
c.JSON(nil, ecode.RequestErr) |
|
return |
|
} |
|
} |
|
if midInter, ok := c.Get("mid"); ok { |
|
mid = midInter.(int64) |
|
} |
|
if res, total, err = spcSvc.ArcSearch(c, mid, v); err != nil { |
|
c.JSON(nil, err) |
|
return |
|
} |
|
data := make(map[string]interface{}, 2) |
|
page := map[string]int{ |
|
"pn": v.Pn, |
|
"ps": v.Ps, |
|
"count": total, |
|
} |
|
data["page"] = page |
|
data["list"] = res |
|
c.JSON(data, nil) |
|
} |
|
|
|
func arcList(c *bm.Context) { |
|
var ( |
|
rs *model.UpArc |
|
err error |
|
) |
|
v := new(struct { |
|
Mid int64 `form:"mid" validate:"min=1"` |
|
Pn int32 `form:"pn" default:"1" validate:"min=1"` |
|
Ps int32 `form:"ps" default:"20" validate:"min=1"` |
|
}) |
|
if err = c.Bind(v); err != nil { |
|
return |
|
} |
|
if rs, err = spcSvc.UpArcs(c, v.Mid, v.Pn, v.Ps); err != nil { |
|
c.JSON(nil, err) |
|
return |
|
} |
|
data := make(map[string]interface{}, 2) |
|
page := map[string]int64{ |
|
"pn": int64(v.Pn), |
|
"ps": int64(v.Ps), |
|
"count": rs.Count, |
|
} |
|
data["page"] = page |
|
data["archives"] = rs.List |
|
c.JSON(data, nil) |
|
}
|
|
|