bilibili-backup/app/interface/main/reply/dao/search/log.go
2019-04-22 02:59:20 +00:00

66 lines
2.1 KiB
Go

package search
import (
"context"
"net/url"
"strconv"
"time"
"go-common/app/interface/main/reply/model/adminlog"
"go-common/library/log"
"go-common/library/xstr"
)
type searchAdminLog struct {
ReplyID int64 `json:"rpid"` // 评论id
AdminID int64 `json:"adminid"` // 操作人
State int32 `json:"state"` // 操作人身份
ReplyMid int64 `json:"replymid"` // 评论人
CTime string `json:"ctime"` // 删除时间
}
// LogPaginate paginating the admin logs for size of 'pageSize', and returning the number of reporting, the number of admin logs delete by administrator
func (dao *Dao) LogPaginate(c context.Context, oid int64, tp int, states []int64, curPage, pageSize int, startTime string, now time.Time) (logs []*adminlog.AdminLog, replyCount, reportCount, pageCount, total int64, err error) {
params := url.Values{}
params.Set("appid", "replylog")
params.Set("oid", strconv.FormatInt(oid, 10))
params.Set("type", strconv.Itoa(tp))
params.Set("delstats", xstr.JoinInts(states))
params.Set("start_time", startTime)
params.Set("pagesize", strconv.Itoa(pageSize))
params.Set("page", strconv.Itoa(curPage))
var res struct {
Code int `json:"code"`
Logs []*searchAdminLog `json:"result"`
ReplyCount int64 `json:"adminDeletedNum"`
ReportCount int64 `json:"reportNum"`
Page int64 `json:"page"`
PageSize int64 `json:"pagesize"`
PageCount int64 `json:"pagecount"`
Total int64 `json:"total"`
}
if err = dao.httpCli.Get(c, dao.logURL, "", params, &res); err != nil {
log.Error("adminlog url(%v),err (%v)", dao.logURL+"?"+params.Encode(), err)
return
}
if res.Logs == nil {
logs = make([]*adminlog.AdminLog, 0)
}
for _, log := range res.Logs {
var (
tmp = &adminlog.AdminLog{}
)
tmp.ReplyID = log.ReplyID
tmp.State = log.State
tmp.AdminID = log.AdminID
tmp.CTime = log.CTime
tmp.ReplyMid = log.ReplyMid
logs = append(logs, tmp)
}
replyCount = res.ReplyCount
reportCount = res.ReportCount
pageCount = res.PageCount
total = res.Total
return
}