Files
PandaX/pkg/middleware/oper.go
2022-07-18 18:17:11 +08:00

42 lines
976 B
Go

package middleware
import (
"net/http"
"pandax/apps/log/entity"
"pandax/apps/log/services"
"pandax/base/ctx"
"pandax/base/utils"
)
func OperationHandler(rc *ctx.ReqCtx) error {
c := rc.GinCtx
// 请求操作不做记录
if c.Request.Method == http.MethodGet || rc.LoginAccount == nil {
return nil
}
if rc.RequiredPermission == nil || !rc.RequiredPermission.NeedToken {
return nil
}
oper := entity.LogOper{
Title: rc.LogInfo.Description,
BusinessType: "0",
Method: c.Request.Method,
OperName: rc.LoginAccount.UserName,
OperUrl: c.Request.URL.Path,
OperIp: c.ClientIP(),
OperLocation: utils.GetRealAddressByIP(c.ClientIP()),
OperParam: "",
Status: "0",
}
if c.Request.Method == "POST" {
oper.BusinessType = "1"
} else if c.Request.Method == "PUT" {
oper.BusinessType = "2"
} else if c.Request.Method == "DELETE" {
oper.BusinessType = "3"
}
services.LogOperModelDao.Insert(oper)
return nil
}