🎨新增请求日志记录
This commit is contained in:
50
repository/system_log.go
Normal file
50
repository/system_log.go
Normal file
@@ -0,0 +1,50 @@
|
||||
package repository
|
||||
|
||||
import (
|
||||
"gorm.io/gorm"
|
||||
"wireguard-dashboard/client"
|
||||
"wireguard-dashboard/constant"
|
||||
"wireguard-dashboard/http/param"
|
||||
"wireguard-dashboard/model/entity"
|
||||
"wireguard-dashboard/model/vo"
|
||||
"wireguard-dashboard/utils"
|
||||
)
|
||||
|
||||
type systemLog struct {
|
||||
*gorm.DB
|
||||
}
|
||||
|
||||
func SystemLog() systemLog {
|
||||
return systemLog{
|
||||
client.DB,
|
||||
}
|
||||
}
|
||||
|
||||
// SaveLog
|
||||
// @description: 保存记录
|
||||
// @receiver systemLog
|
||||
// @param data
|
||||
// @return err
|
||||
func (s systemLog) SaveLog(data *entity.SystemLog) (err error) {
|
||||
return s.Create(&data).Error
|
||||
}
|
||||
|
||||
// List
|
||||
// @description: 分页列表
|
||||
// @receiver s
|
||||
// @param p
|
||||
// @return data
|
||||
// @return total
|
||||
// @return err
|
||||
func (s systemLog) List(p param.OnlyPage, loginUser *entity.User) (data []vo.SystemLogItem, total int64, err error) {
|
||||
sel := s.Scopes(utils.Page(p.Current, p.Size)).Table("t_system_log as tsl").
|
||||
Joins("LEFT JOIN t_user as tu ON tu.id = tsl.user_id").
|
||||
Select("tsl.id", "tu.name as username", "tsl.client_ip", "tsl.method", "tsl.status_code", "tsl.host", "tsl.uri", "tsl.created_at").
|
||||
Order("tsl.created_at DESC")
|
||||
|
||||
if loginUser.IsAdmin == constant.NormalAdmin {
|
||||
sel.Where("tsl.user_id = ?", loginUser.Id)
|
||||
}
|
||||
err = sel.Find(&data).Offset(-1).Limit(-1).Count(&total).Error
|
||||
return
|
||||
}
|
Reference in New Issue
Block a user