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.
133 lines
3.0 KiB
133 lines
3.0 KiB
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 |
|
}
|
|
|