134 lines
3.0 KiB
Go
134 lines
3.0 KiB
Go
|
package http
|
||
|
|
||
|
import (
|
||
|
"strconv"
|
||
|
"time"
|
||
|
|
||
|
"go-common/app/admin/main/reply/model"
|
||
|
"go-common/library/ecode"
|
||
|
"go-common/library/log"
|
||
|
bm "go-common/library/net/http/blademaster"
|
||
|
)
|
||
|
|
||
|
const (
|
||
|
_remarkLength = 200
|
||
|
)
|
||
|
|
||
|
func adminSubject(c *bm.Context) {
|
||
|
params := c.Request.Form
|
||
|
oidStr := params.Get("oid")
|
||
|
tpStr := params.Get("type")
|
||
|
oid, err := strconv.ParseInt(oidStr, 10, 64)
|
||
|
if err != nil {
|
||
|
log.Warn("strconv.ParseInt(%s) error(%v)", oidStr, err)
|
||
|
c.JSON(nil, ecode.RequestErr)
|
||
|
return
|
||
|
}
|
||
|
tp, err := strconv.ParseInt(tpStr, 10, 64)
|
||
|
if err != nil {
|
||
|
log.Warn("strconv.ParseInt(%s) error(%v)", tpStr, err)
|
||
|
c.JSON(nil, ecode.RequestErr)
|
||
|
return
|
||
|
}
|
||
|
sub, err := rpSvc.Subject(c, oid, int32(tp))
|
||
|
if err != nil {
|
||
|
log.Error("rpSvr.AdminGetSubjectState(oid%d,tp,%d)error(%v)", oid, int32(tp))
|
||
|
c.JSON(nil, err)
|
||
|
return
|
||
|
}
|
||
|
c.JSON(sub, nil)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
// adminSubjectState modify subject state
|
||
|
func adminSubjectState(c *bm.Context) {
|
||
|
v := new(struct {
|
||
|
Oid []int64 `form:"oid,split" validate:"required"`
|
||
|
Type int32 `form:"type" validate:"required"`
|
||
|
State int32 `form:"state"`
|
||
|
Remark string `form:"remark"`
|
||
|
})
|
||
|
err := c.Bind(v)
|
||
|
if err != nil {
|
||
|
return
|
||
|
}
|
||
|
var adid int64
|
||
|
if uid, ok := c.Get("uid"); ok {
|
||
|
adid = uid.(int64)
|
||
|
}
|
||
|
var adName string
|
||
|
if uname, ok := c.Get("username"); ok {
|
||
|
adName = uname.(string)
|
||
|
}
|
||
|
fails, err := rpSvc.ModifySubState(c, adid, adName, v.Oid, v.Type, v.State, v.Remark)
|
||
|
c.JSON(fails, err)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
// SubLogSearch returns all subjects in recent 3 months by default,
|
||
|
// accept start time, end time, page, pagesize, order, sort as parameters.
|
||
|
func SubLogSearch(c *bm.Context) {
|
||
|
v := new(struct {
|
||
|
Oid int64 `form:"oid"`
|
||
|
Type int32 `form:"type"`
|
||
|
StartTime string `form:"start_time"`
|
||
|
EndTime string `form:"end_time"`
|
||
|
Page int64 `form:"pn"`
|
||
|
PageSize int64 `form:"ps"`
|
||
|
Order string `form:"order"`
|
||
|
Sort string `form:"sort"`
|
||
|
})
|
||
|
var err error
|
||
|
err = c.Bind(v)
|
||
|
if err != nil {
|
||
|
return
|
||
|
}
|
||
|
if v.EndTime == "" {
|
||
|
v.EndTime = time.Now().Format(model.DateFormat)
|
||
|
}
|
||
|
// 默认只展示3个月内的数据
|
||
|
if v.StartTime == "" {
|
||
|
v.StartTime = time.Now().AddDate(0, -3, 0).Format(model.DateFormat)
|
||
|
}
|
||
|
sp := model.LogSearchParam{
|
||
|
Oid: v.Oid,
|
||
|
Type: v.Type,
|
||
|
CtimeFrom: v.StartTime,
|
||
|
CtimeTo: v.EndTime,
|
||
|
Pn: v.Page,
|
||
|
Ps: v.PageSize,
|
||
|
Order: v.Order,
|
||
|
Sort: v.Sort,
|
||
|
}
|
||
|
data, err := rpSvc.SubjectLog(c, sp)
|
||
|
res := map[string]interface{}{}
|
||
|
res["data"] = data
|
||
|
c.JSONMap(res, err)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
// SubFreeze freeze or unfreeze the comments.
|
||
|
func SubFreeze(c *bm.Context) {
|
||
|
v := new(struct {
|
||
|
Oid []int64 `form:"oid,split"`
|
||
|
Type int32 `form:"type"`
|
||
|
Freeze int32 `form:"freeze"`
|
||
|
Remark string `form:"remark"`
|
||
|
})
|
||
|
err := c.Bind(v)
|
||
|
if err != nil {
|
||
|
return
|
||
|
}
|
||
|
var adid int64
|
||
|
if uid, ok := c.Get("uid"); ok {
|
||
|
adid = uid.(int64)
|
||
|
}
|
||
|
var adName string
|
||
|
if uname, ok := c.Get("username"); ok {
|
||
|
adName = uname.(string)
|
||
|
}
|
||
|
fails, err := rpSvc.FreezeSub(c, adid, adName, v.Oid, v.Type, v.Freeze, v.Remark)
|
||
|
c.JSON(fails, err)
|
||
|
return
|
||
|
}
|