优化操作日志模块,新增数据库字段
This commit is contained in:
parent
64af9e9df3
commit
df19d305b8
|
@ -7,6 +7,7 @@ import (
|
||||||
"go-admin/logger"
|
"go-admin/logger"
|
||||||
config2 "go-admin/tools/config"
|
config2 "go-admin/tools/config"
|
||||||
"io"
|
"io"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
@ -116,29 +117,24 @@ func SetDBOperLog(c *gin.Context, clientIP string, statusCode int, reqUri string
|
||||||
sysOperLog.RequestMethod = c.Request.Method
|
sysOperLog.RequestMethod = c.Request.Method
|
||||||
sysOperLog.OperUrl = reqUri
|
sysOperLog.OperUrl = reqUri
|
||||||
if reqUri == "/login" {
|
if reqUri == "/login" {
|
||||||
sysOperLog.BusinessType = "10"
|
|
||||||
sysOperLog.Title = "用户登录"
|
sysOperLog.Title = "用户登录"
|
||||||
sysOperLog.OperName = "-"
|
sysOperLog.OperName = "-"
|
||||||
} else if strings.Contains(reqUri, "/api/v1/logout") {
|
|
||||||
sysOperLog.BusinessType = "11"
|
|
||||||
} else if strings.Contains(reqUri, "/api/v1/getCaptcha") {
|
} else if strings.Contains(reqUri, "/api/v1/getCaptcha") {
|
||||||
sysOperLog.BusinessType = "12"
|
|
||||||
sysOperLog.Title = "验证码"
|
sysOperLog.Title = "验证码"
|
||||||
} else {
|
|
||||||
if reqMethod == "POST" {
|
|
||||||
sysOperLog.BusinessType = "1"
|
|
||||||
} else if reqMethod == "PUT" {
|
|
||||||
sysOperLog.BusinessType = "2"
|
|
||||||
} else if reqMethod == "DELETE" {
|
|
||||||
sysOperLog.BusinessType = "3"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 从白名单中读取对应的操作类型
|
||||||
|
resultUrl := strings.Replace(c.Request.RequestURI, "/api/v1", "", 1)
|
||||||
|
nType, _ := global.WHILTE[resultUrl]
|
||||||
|
sysOperLog.BusinessType = strconv.Itoa(nType)
|
||||||
|
|
||||||
sysOperLog.Method = reqMethod
|
sysOperLog.Method = reqMethod
|
||||||
if len(menuList) > 0 {
|
if len(menuList) > 0 {
|
||||||
sysOperLog.Title = menuList[0].Title
|
sysOperLog.Title = menuList[0].Title
|
||||||
|
menu.Title = menuList[0].Title
|
||||||
|
sysOperLog.MenuTitle, _ = menu.GetParentTitle()
|
||||||
}
|
}
|
||||||
b, _ := c.Get("body")
|
|
||||||
sysOperLog.OperParam, _ = tools.StructToJsonStr(b)
|
|
||||||
sysOperLog.CreateBy = tools.GetUserName(c)
|
sysOperLog.CreateBy = tools.GetUserName(c)
|
||||||
sysOperLog.OperTime = tools.GetCurrentTime()
|
sysOperLog.OperTime = tools.GetCurrentTime()
|
||||||
sysOperLog.LatencyTime = (latencyTime).String()
|
sysOperLog.LatencyTime = (latencyTime).String()
|
||||||
|
|
|
@ -3,7 +3,6 @@ package models
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
orm "go-admin/common/global"
|
orm "go-admin/common/global"
|
||||||
"go-admin/tools"
|
"go-admin/tools"
|
||||||
)
|
)
|
||||||
|
@ -249,6 +248,44 @@ func (e *Menu) Get() (Menus []Menu, err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (e *Menu) GetParentTitle() (title string, err error) {
|
||||||
|
// 查询指定 title 的记录
|
||||||
|
var menu Menu
|
||||||
|
table := orm.Eloquent.Table(e.TableName())
|
||||||
|
if err := table.Where("title = ? AND menu_type = ?", e.Title, "F").First(&menu).Error; err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 递归查询父节点的 title 直到找到 parentId 为 0 的节点
|
||||||
|
return getParentTitle(menu.ParentId)
|
||||||
|
}
|
||||||
|
|
||||||
|
// getParentTitle 递归查询父节点的 title
|
||||||
|
func getParentTitle(parentID int) (string, error) {
|
||||||
|
if parentID == 0 {
|
||||||
|
return "", nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var parentMenu Menu
|
||||||
|
table := orm.Eloquent.Table("sys_menu")
|
||||||
|
// 查询父节点的记录
|
||||||
|
if err := table.Where("menu_id = ?", parentID).First(&parentMenu).Error; err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 递归查询父节点的 title
|
||||||
|
parentTitle, err := getParentTitle(parentMenu.ParentId)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 组合当前节点的 title 和父节点的 title,去掉开头的横杠
|
||||||
|
if parentTitle != "" {
|
||||||
|
return fmt.Sprintf("%s-%s", parentTitle, parentMenu.Title), nil
|
||||||
|
}
|
||||||
|
return parentMenu.Title, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (e *Menu) GetPage() (Menus []Menu, err error) {
|
func (e *Menu) GetPage() (Menus []Menu, err error) {
|
||||||
table := orm.Eloquent.Table(e.TableName())
|
table := orm.Eloquent.Table(e.TableName())
|
||||||
if e.MenuName != "" {
|
if e.MenuName != "" {
|
||||||
|
|
|
@ -9,7 +9,7 @@ import (
|
||||||
// sys_operlog
|
// sys_operlog
|
||||||
type SysOperLog struct {
|
type SysOperLog struct {
|
||||||
OperId int `json:"operId" gorm:"primary_key;AUTO_INCREMENT"` //日志编码
|
OperId int `json:"operId" gorm:"primary_key;AUTO_INCREMENT"` //日志编码
|
||||||
Title string `json:"title" gorm:"size:255;"` //操作模块
|
Title string `json:"title" gorm:"size:255;"` //操作模块-具体事件
|
||||||
BusinessType string `json:"businessType" gorm:"size:128;"` //操作类型
|
BusinessType string `json:"businessType" gorm:"size:128;"` //操作类型
|
||||||
BusinessTypes string `json:"businessTypes" gorm:"size:128;"`
|
BusinessTypes string `json:"businessTypes" gorm:"size:128;"`
|
||||||
Method string `json:"method" gorm:"size:128;"` //函数
|
Method string `json:"method" gorm:"size:128;"` //函数
|
||||||
|
@ -31,6 +31,7 @@ type SysOperLog struct {
|
||||||
Remark string `json:"remark" gorm:"size:255;"` //备注
|
Remark string `json:"remark" gorm:"size:255;"` //备注
|
||||||
LatencyTime string `json:"latencyime" gorm:"size:128;"` //耗时
|
LatencyTime string `json:"latencyime" gorm:"size:128;"` //耗时
|
||||||
UserAgent string `json:"userAgent" gorm:"size:255;"` //ua
|
UserAgent string `json:"userAgent" gorm:"size:255;"` //ua
|
||||||
|
MenuTitle string `json:"menuTitle" gorm:"size:255;"` //操作模块
|
||||||
BaseModel
|
BaseModel
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,22 +1,26 @@
|
||||||
package global
|
package global
|
||||||
|
|
||||||
|
// WHILTE 操作类型: 1 新增;2 修改;3 删除;4 授权;5 导出;6 导入;10 登陆;11 退出; 12 获取验证码;
|
||||||
var WHILTE = map[string]int{
|
var WHILTE = map[string]int{
|
||||||
"/supplier/create": 1, //供应商
|
"/supplier/create": 1, //供应商
|
||||||
"/supplier/update": 2,
|
"/supplier/update": 2,
|
||||||
"/supplier/delete": 3,
|
"/supplier/delete": 3,
|
||||||
"/category/create": 4, //商品分类
|
"/category/create": 1, //商品分类
|
||||||
"/category/update": 5,
|
"/category/update": 2,
|
||||||
"/category/delete": 6,
|
"/category/delete": 3,
|
||||||
"/category/import_category": 7,
|
"/category/import_category": 6,
|
||||||
"/commodity/create": 8, //商品资料
|
"/commodity/create": 1, //商品资料
|
||||||
"/commodity/edit": 9,
|
"/commodity/edit": 2,
|
||||||
"/commodity/delete": 10,
|
"/commodity/delete": 3,
|
||||||
"/commodity/import_commodity": 11,
|
"/commodity/import_commodity": 6,
|
||||||
"/cashier/create": 12, //收付款设置
|
"/cashier/create": 1, //收付款设置
|
||||||
"/cashier/edit": 13,
|
"/cashier/edit": 2,
|
||||||
"/cashier/delete": 14,
|
"/cashier/delete": 3,
|
||||||
"/inventory/delivery": 15, //库存管理
|
"/inventory/delivery": 2, //库存管理
|
||||||
"/inventory/print": 16,
|
"/inventory/print": 2,
|
||||||
"/inventory/import": 17,
|
"/inventory/import": 6,
|
||||||
"/inventory/add_remark": 18,
|
"/inventory/add_remark": 2,
|
||||||
|
"/login": 10, //登陆
|
||||||
|
"/logout": 11, //退出
|
||||||
|
"/getCaptcha": 12, //获取验证码
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user