forked from all_user/stat_center
64 lines
1.3 KiB
Go
64 lines
1.3 KiB
Go
package opLogSer
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"github.com/gin-gonic/gin"
|
|
"stat/api/proto"
|
|
"stat/common"
|
|
"stat/common/stdLog"
|
|
"stat/common/utils"
|
|
"stat/models/opLogMod"
|
|
"time"
|
|
)
|
|
|
|
// 添加操作日志
|
|
func AddOpLog(ctx *gin.Context, account string, isAdmin bool, opData interface{}) {
|
|
common.Go(func() {
|
|
now := time.Now()
|
|
opDataStr, _ := json.Marshal(opData)
|
|
|
|
doc := opLogMod.OpLog{
|
|
Operator: account,
|
|
Router: ctx.Request.RequestURI,
|
|
Data: string(opDataStr),
|
|
IsAdmin: isAdmin,
|
|
CreatedAt: now,
|
|
}
|
|
|
|
_ = opLogMod.AddOpLog(ctx, &doc)
|
|
})
|
|
}
|
|
|
|
func GetOpLogList(ctx context.Context, param proto.ListOpLogReq) (code stdLog.CodeType, data interface{}, err error) {
|
|
resp := proto.ListOpLogRes{
|
|
Total: 0,
|
|
List: make([]proto.OpLogInfo, 0),
|
|
}
|
|
|
|
skip, limit := utils.ToDBPage(param.PageNum, param.PageSize)
|
|
total, opList, err := opLogMod.GetOpLogList(ctx, param.Operator, param.Router, param.IsAdmin, skip, limit)
|
|
if err != nil {
|
|
code = stdLog.Failure
|
|
return
|
|
}
|
|
|
|
for _, v := range opList {
|
|
tmp := proto.OpLogInfo{
|
|
Operator: v.Operator,
|
|
Router: v.Router,
|
|
Data: v.Data,
|
|
IsAdmin: v.IsAdmin,
|
|
CreatedAt: v.CreatedAt,
|
|
}
|
|
|
|
resp.List = append(resp.List, tmp)
|
|
}
|
|
|
|
resp.Total = total
|
|
|
|
data = resp
|
|
code = stdLog.Success
|
|
return
|
|
}
|