mirror of
https://gitee.com/xiangheng/x_admin.git
synced 2025-10-09 01:50:23 +08:00
分层中
This commit is contained in:
122
server/service/systemService/logService.go
Normal file
122
server/service/systemService/logService.go
Normal file
@@ -0,0 +1,122 @@
|
||||
package systemService
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"x_admin/core"
|
||||
"x_admin/core/request"
|
||||
"x_admin/core/response"
|
||||
"x_admin/model/system_model"
|
||||
. "x_admin/schema/systemSchema"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
var LogsService = NewSystemLogsServer()
|
||||
|
||||
// NewSystemLogsServer 初始化
|
||||
func NewSystemLogsServer() *systemLogsServer {
|
||||
db := core.GetDB()
|
||||
return &systemLogsServer{db: db}
|
||||
}
|
||||
|
||||
// systemLogsServer 系统日志服务实现类
|
||||
type systemLogsServer struct {
|
||||
db *gorm.DB
|
||||
}
|
||||
|
||||
// Operate 系统操作日志
|
||||
func (logSrv systemLogsServer) Operate(page request.PageReq, logReq SystemLogOperateReq) (res response.PageResp, e error) {
|
||||
// 分页信息
|
||||
limit := page.PageSize
|
||||
offset := page.PageSize * (page.PageNo - 1)
|
||||
// 查询
|
||||
logTbName := core.DBTableName(&system_model.SystemLogOperate{})
|
||||
adminTbName := core.DBTableName(&system_model.SystemAuthAdmin{})
|
||||
logModel := logSrv.db.Table(logTbName + " AS log").Joins(
|
||||
fmt.Sprintf("LEFT JOIN %s AS admin ON log.admin_id = admin.id", adminTbName)).Select(
|
||||
"log.*, admin.username, admin.nickname")
|
||||
// 条件
|
||||
if logReq.Title != "" {
|
||||
logModel = logModel.Where("title like ?", "%"+logReq.Title+"%")
|
||||
}
|
||||
if logReq.Username != "" {
|
||||
logModel = logModel.Where("username like ?", "%"+logReq.Username+"%")
|
||||
}
|
||||
if logReq.Ip != "" {
|
||||
logModel = logModel.Where("ip like ?", "%"+logReq.Ip+"%")
|
||||
}
|
||||
if logReq.Type != "" {
|
||||
logModel = logModel.Where("type = ?", logReq.Type)
|
||||
}
|
||||
if logReq.Status > 0 {
|
||||
logModel = logModel.Where("status = ?", logReq.Status)
|
||||
}
|
||||
if logReq.Url != "" {
|
||||
logModel = logModel.Where("url = ?", logReq.Url)
|
||||
}
|
||||
if logReq.StartTime != "" {
|
||||
logModel = logModel.Where("log.create_time >= ?", logReq.StartTime)
|
||||
}
|
||||
if logReq.EndTime != "" {
|
||||
logModel = logModel.Where("log.create_time <= ?", logReq.EndTime)
|
||||
}
|
||||
// 总数
|
||||
var count int64
|
||||
err := logModel.Count(&count).Error
|
||||
if e = response.CheckErr(err, "Operate Count err"); e != nil {
|
||||
return
|
||||
}
|
||||
// 数据
|
||||
var logResp []SystemLogOperateResp
|
||||
err = logModel.Limit(limit).Offset(offset).Order("id desc").Find(&logResp).Error
|
||||
if e = response.CheckErr(err, "Operate Find err"); e != nil {
|
||||
return
|
||||
}
|
||||
return response.PageResp{
|
||||
PageNo: page.PageNo,
|
||||
PageSize: page.PageSize,
|
||||
Count: count,
|
||||
Lists: logResp,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// Login 系统登录日志
|
||||
func (logSrv systemLogsServer) Login(page request.PageReq, logReq SystemLogLoginReq) (res response.PageResp, e error) {
|
||||
// 分页信息
|
||||
limit := page.PageSize
|
||||
offset := page.PageSize * (page.PageNo - 1)
|
||||
// 查询
|
||||
logModel := logSrv.db.Model(&system_model.SystemLogLogin{})
|
||||
// 条件
|
||||
if logReq.Username != "" {
|
||||
logModel = logModel.Where("username like ?", "%"+logReq.Username+"%")
|
||||
}
|
||||
if logReq.Status > 0 {
|
||||
logModel = logModel.Where("status = ?", logReq.Status)
|
||||
}
|
||||
// todo
|
||||
if logReq.StartTime != "" {
|
||||
logModel = logModel.Where("create_time >= now(?)", logReq.StartTime)
|
||||
}
|
||||
if logReq.EndTime != "" {
|
||||
logModel = logModel.Where("create_time <= now(?)", logReq.EndTime)
|
||||
}
|
||||
// 总数
|
||||
var count int64
|
||||
err := logModel.Count(&count).Error
|
||||
if e = response.CheckErr(err, "Login Count err"); e != nil {
|
||||
return
|
||||
}
|
||||
// 数据
|
||||
var logResp []SystemLogLoginResp
|
||||
err = logModel.Limit(limit).Offset(offset).Order("id desc").Find(&logResp).Error
|
||||
if e = response.CheckErr(err, "Login Find err"); e != nil {
|
||||
return
|
||||
}
|
||||
return response.PageResp{
|
||||
PageNo: page.PageNo,
|
||||
PageSize: page.PageSize,
|
||||
Count: count,
|
||||
Lists: logResp,
|
||||
}, nil
|
||||
}
|
Reference in New Issue
Block a user