Files
PandaX/pkg/middleware/oper.go
2023-09-15 15:13:39 +08:00

44 lines
1.0 KiB
Go

package middleware
import (
"github.com/PandaXGO/PandaKit/restfulx"
"github.com/PandaXGO/PandaKit/utils"
"net/http"
"pandax/apps/log/entity"
"pandax/apps/log/services"
)
func OperationHandler(rc *restfulx.ReqCtx) error {
c := rc.Request
// 请求操作不做记录
if c.Request.Method == http.MethodGet || rc.LoginAccount == nil {
return nil
}
if rc.RequiredPermission == nil || !rc.RequiredPermission.NeedToken {
return nil
}
go func() {
oper := entity.LogOper{
Title: rc.LogInfo.Description,
BusinessType: "0",
Method: c.Request.Method,
OperName: rc.LoginAccount.UserName,
OperUrl: c.Request.URL.Path,
OperIp: c.Request.RemoteAddr,
OperLocation: utils.GetRealAddressByIP(c.Request.RemoteAddr),
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
}