操作日志和访问日志

This commit is contained in:
2025-11-11 22:32:46 +08:00
parent efc079c0e5
commit 12a0ff8afc
17 changed files with 2300 additions and 4 deletions
+27
View File
@@ -0,0 +1,27 @@
package models
import (
"time"
)
// AccessLog 访问日志(针对读取/浏览/访问行为)
type AccessLog struct {
Id int64 `orm:"auto" json:"id"`
TenantId int `orm:"column(tenant_id)" json:"tenant_id"`
UserId int `orm:"column(user_id)" json:"user_id"`
Username string `orm:"column(username)" json:"username"`
Module string `orm:"column(module)" json:"module"`
ResourceType string `orm:"column(resource_type)" json:"resource_type"`
ResourceId *int `orm:"column(resource_id);null" json:"resource_id"`
RequestUrl string `orm:"column(request_url);null" json:"request_url"`
QueryString string `orm:"column(query_string);type(text);null" json:"query_string"`
IpAddress string `orm:"column(ip_address);null" json:"ip_address"`
UserAgent string `orm:"column(user_agent);null" json:"user_agent"`
RequestMethod string `orm:"column(request_method);null" json:"request_method"`
Duration int `orm:"column(duration);null" json:"duration"`
CreateTime time.Time `orm:"column(create_time);auto_now_add" json:"create_time"`
}
func (a *AccessLog) TableName() string {
return "sys_access_log"
}
+32
View File
@@ -0,0 +1,32 @@
package models
import (
"time"
)
// OperationLog 通用操作日志
type OperationLog struct {
Id int64 `orm:"auto" json:"id"`
TenantId int `orm:"column(tenant_id)" json:"tenant_id"`
UserId int `orm:"column(user_id)" json:"user_id"`
Username string `orm:"column(username)" json:"username"`
Module string `orm:"column(module)" json:"module"`
ResourceType string `orm:"column(resource_type)" json:"resource_type"`
ResourceId *int `orm:"column(resource_id);null" json:"resource_id"`
Operation string `orm:"column(operation)" json:"operation"`
Description string `orm:"column(description);null" json:"description"`
OldValue string `orm:"column(old_value);type(longtext);null" json:"old_value"`
NewValue string `orm:"column(new_value);type(longtext);null" json:"new_value"`
IpAddress string `orm:"column(ip_address);null" json:"ip_address"`
UserAgent string `orm:"column(user_agent);null" json:"user_agent"`
RequestMethod string `orm:"column(request_method);null" json:"request_method"`
RequestUrl string `orm:"column(request_url);null" json:"request_url"`
Status int8 `orm:"column(status)" json:"status"`
ErrorMessage string `orm:"column(error_message);type(text);null" json:"error_message"`
Duration int `orm:"column(duration);null" json:"duration"`
CreateTime time.Time `orm:"column(create_time);auto_now_add" json:"create_time"`
}
func (o *OperationLog) TableName() string {
return "sys_operation_log"
}
+4 -3
View File
@@ -46,6 +46,7 @@ func Init(version string) {
orm.RegisterModel(new(KnowledgeTag))
orm.RegisterModel(new(DictType))
orm.RegisterModel(new(DictItem))
orm.RegisterModel(new(OperationLog))
ormConfig, err := beego.AppConfig.String("orm")
if err != nil {
@@ -79,9 +80,9 @@ func Init(version string) {
}
// 设置连接池参数
dbConn.SetMaxIdleConns(10) // 设置空闲连接池中连接的最大数量
dbConn.SetMaxOpenConns(100) // 设置打开数据库连接的最大数量
dbConn.SetConnMaxLifetime(30 * time.Minute) // 设置连接可复用的最大时间(30分钟,避免连接过期)
dbConn.SetMaxIdleConns(10) // 设置空闲连接池中连接的最大数量
dbConn.SetMaxOpenConns(100) // 设置打开数据库连接的最大数量
dbConn.SetConnMaxLifetime(30 * time.Minute) // 设置连接可复用的最大时间(30分钟,避免连接过期)
// 注意:SetConnMaxIdleTime 在 Go 1.15+ 和 database/sql 1.4+ 中可用
// 如果版本不支持,可以移除这一行
// dbConn.SetConnMaxIdleTime(10 * time.Minute) // 设置空闲连接的最大空闲时间