135 lines
4.3 KiB
Go
135 lines
4.3 KiB
Go
package controllers
|
|
|
|
import (
|
|
"github.com/phachon/mm-wiki/app/models"
|
|
"strings"
|
|
)
|
|
|
|
type LogController struct {
|
|
BaseController
|
|
}
|
|
|
|
func (this *LogController) System() {
|
|
|
|
page, _ := this.GetInt("page", 1)
|
|
number, _ := this.GetRangeInt("number", 20, 10, 100)
|
|
level := strings.TrimSpace(this.GetString("level", ""))
|
|
message := strings.TrimSpace(this.GetString("message", ""))
|
|
username := strings.TrimSpace(this.GetString("username", ""))
|
|
|
|
limit := (page - 1) * number
|
|
var err error
|
|
var count int64
|
|
var logs []map[string]string
|
|
if level != "" || message != "" || username != "" {
|
|
count, err = models.LogModel.CountLogsByKeyword(level, message, username)
|
|
logs, err = models.LogModel.GetLogsByKeywordAndLimit(level, message, username, limit, number)
|
|
} else {
|
|
count, err = models.LogModel.CountLogs()
|
|
logs, err = models.LogModel.GetLogsByLimit(limit, number)
|
|
}
|
|
if err != nil {
|
|
this.ErrorLog("查找系统日志出错:" + err.Error())
|
|
this.ViewError("查找系统日志出错", "/system/main/index")
|
|
}
|
|
|
|
this.Data["logs"] = logs
|
|
this.Data["username"] = username
|
|
this.Data["level"] = level
|
|
this.Data["message"] = message
|
|
this.SetPaginator(number, count)
|
|
this.viewLayout("log/system", "log")
|
|
}
|
|
|
|
func (this *LogController) Info() {
|
|
|
|
logId := this.GetString("log_id", "")
|
|
if logId == "" {
|
|
this.ViewError("日志不存在", "/system/log/system")
|
|
}
|
|
|
|
log, err := models.LogModel.GetLogByLogId(logId)
|
|
if err != nil {
|
|
this.ViewError("日志不存在", "/system/log/system")
|
|
}
|
|
|
|
this.Data["log"] = log
|
|
this.viewLayout("log/info", "log")
|
|
}
|
|
|
|
func (this *LogController) Document() {
|
|
|
|
page, _ := this.GetInt("page", 1)
|
|
number, _ := this.GetRangeInt("number", 20, 10, 100)
|
|
keyword := strings.TrimSpace(this.GetString("keyword", ""))
|
|
userId := strings.TrimSpace(this.GetString("user_id", ""))
|
|
|
|
limit := (page - 1) * number
|
|
var logDocuments = []map[string]string{}
|
|
var err error
|
|
var count int64
|
|
if keyword != "" && userId != "" {
|
|
logDocuments, err = models.LogDocumentModel.GetLogDocumentsByUserIdKeywordAndLimit(userId, keyword, limit, number)
|
|
count, err = models.LogDocumentModel.CountLogDocumentsByUserIdAndKeyword(userId, keyword)
|
|
} else if userId != "" {
|
|
logDocuments, err = models.LogDocumentModel.GetLogDocumentsByUserIdAndLimit(userId, limit, number)
|
|
count, err = models.LogDocumentModel.CountLogDocumentsByUserId(userId)
|
|
} else if keyword != "" {
|
|
logDocuments, err = models.LogDocumentModel.GetLogDocumentsByKeywordAndLimit(keyword, limit, number)
|
|
count, err = models.LogDocumentModel.CountLogDocumentsByKeyword(userId)
|
|
} else {
|
|
logDocuments, err = models.LogDocumentModel.GetLogDocumentsByLimit(this.UserId, limit, number)
|
|
count, err = models.LogDocumentModel.CountLogDocuments()
|
|
}
|
|
if err != nil {
|
|
this.ErrorLog("文档日志查找失败:" + err.Error())
|
|
this.ViewError("文档日志查找失败!", "/system/main/index")
|
|
}
|
|
|
|
userIds := []string{}
|
|
docIds := []string{}
|
|
for _, logDocument := range logDocuments {
|
|
userIds = append(userIds, logDocument["user_id"])
|
|
docIds = append(docIds, logDocument["document_id"])
|
|
}
|
|
users, err := models.UserModel.GetUsersByUserIds(userIds)
|
|
if err != nil {
|
|
this.ErrorLog("文档日志查找失败:" + err.Error())
|
|
this.ViewError("文档日志查找失败!", "/system/main/index")
|
|
}
|
|
docs, err := models.DocumentModel.GetAllDocumentsByDocumentIds(docIds)
|
|
if err != nil {
|
|
this.ErrorLog("文档日志查找失败:" + err.Error())
|
|
this.ViewError("文档日志查找失败!", "/system/main/index")
|
|
}
|
|
for _, logDocument := range logDocuments {
|
|
logDocument["username"] = ""
|
|
for _, user := range users {
|
|
if logDocument["user_id"] == user["user_id"] {
|
|
logDocument["username"] = user["username"]
|
|
logDocument["given_name"] = user["given_name"]
|
|
break
|
|
}
|
|
}
|
|
for _, doc := range docs {
|
|
if logDocument["document_id"] == doc["document_id"] {
|
|
logDocument["document_name"] = doc["name"]
|
|
logDocument["document_type"] = doc["type"]
|
|
break
|
|
}
|
|
}
|
|
}
|
|
|
|
users, err = models.UserModel.GetUsers()
|
|
if err != nil {
|
|
this.ErrorLog("文档日志查找失败:" + err.Error())
|
|
this.ViewError("文档日志查找失败!", "/system/main/index")
|
|
}
|
|
this.Data["logDocuments"] = logDocuments
|
|
this.Data["keyword"] = keyword
|
|
this.Data["userId"] = userId
|
|
this.Data["users"] = users
|
|
this.SetPaginator(number, count)
|
|
this.viewLayout("log/document", "log")
|
|
}
|