diff --git a/app/admin/middleware/handler/auth.go b/app/admin/middleware/handler/auth.go index f32908d4..038109d0 100644 --- a/app/admin/middleware/handler/auth.go +++ b/app/admin/middleware/handler/auth.go @@ -3,6 +3,7 @@ package handler import ( "go-admin/app/admin/models/system" "go-admin/app/admin/service" + "go-admin/common/log" "net/http" "github.com/gin-gonic/gin" @@ -100,22 +101,28 @@ func Authenticator(c *gin.Context) (interface{}, error) { // Write log to database func LoginLogToDB(c *gin.Context, status string, msg string, username string) { if config.LoggerConfig.EnabledDB { - var loginlog system.SysLoginLog - serviceLoginLog :=service.SysLoginLog{} + var loginLog system.SysLoginLog + msgID := tools.GenerateMsgIDFromContext(c) + db, err := tools.GetOrm(c) + if err != nil { + log.Errorf("msgID[%s] 获取Orm失败, error:%s", msgID, err) + } ua := user_agent.New(c.Request.UserAgent()) - loginlog.Ipaddr = c.ClientIP() - loginlog.Username = username + loginLog.Ipaddr = c.ClientIP() + loginLog.Username = username location := tools.GetLocation(c.ClientIP()) - loginlog.LoginLocation = location - loginlog.LoginTime = tools.GetCurrentTime() - loginlog.Status = status - loginlog.Remark = c.Request.UserAgent() + loginLog.LoginLocation = location + loginLog.LoginTime = tools.GetCurrentTime() + loginLog.Status = status + loginLog.Remark = c.Request.UserAgent() browserName, browserVersion := ua.Browser() - loginlog.Browser = browserName + " " + browserVersion - loginlog.Os = ua.OS() - loginlog.Msg = msg - loginlog.Platform = ua.Platform() - _ = serviceLoginLog.InsertSysLoginLog(loginlog.Generate()) + loginLog.Browser = browserName + " " + browserVersion + loginLog.Os = ua.OS() + loginLog.Msg = msg + loginLog.Platform = ua.Platform() + serviceLoginLog := service.SysLoginLog{} + serviceLoginLog.Orm = db + _ = serviceLoginLog.InsertSysLoginLog(loginLog.Generate()) } } @@ -129,22 +136,28 @@ func LoginLogToDB(c *gin.Context, status string, msg string, username string) { // @Router /logout [post] // @Security Bearer func LogOut(c *gin.Context) { - var loginlog system.SysLoginLog + var loginLog system.SysLoginLog ua := user_agent.New(c.Request.UserAgent()) - loginlog.Ipaddr = c.ClientIP() + loginLog.Ipaddr = c.ClientIP() location := tools.GetLocation(c.ClientIP()) - loginlog.LoginLocation = location - loginlog.LoginTime = tools.GetCurrentTime() - loginlog.Status = "0" - loginlog.Remark = c.Request.UserAgent() + loginLog.LoginLocation = location + loginLog.LoginTime = tools.GetCurrentTime() + loginLog.Status = "0" + loginLog.Remark = c.Request.UserAgent() browserName, browserVersion := ua.Browser() - loginlog.Browser = browserName + " " + browserVersion - loginlog.Os = ua.OS() - loginlog.Platform = ua.Platform() - loginlog.Username = tools.GetUserName(c) - loginlog.Msg = "退出成功" - serviceLoginLog:=service.SysLoginLog{} - _ = serviceLoginLog.InsertSysLoginLog(loginlog.Generate()) + loginLog.Browser = browserName + " " + browserVersion + loginLog.Os = ua.OS() + loginLog.Platform = ua.Platform() + loginLog.Username = tools.GetUserName(c) + loginLog.Msg = "退出成功" + msgID := tools.GenerateMsgIDFromContext(c) + db, err := tools.GetOrm(c) + if err != nil { + log.Errorf("msgID[%s] 获取Orm失败, error:%s", msgID, err) + } + serviceLoginLog := service.SysLoginLog{} + serviceLoginLog.Orm = db + _ = serviceLoginLog.InsertSysLoginLog(loginLog.Generate()) c.JSON(http.StatusOK, gin.H{ "code": 200, diff --git a/app/admin/middleware/logger.go b/app/admin/middleware/logger.go index 98aa1d04..7974c010 100644 --- a/app/admin/middleware/logger.go +++ b/app/admin/middleware/logger.go @@ -4,6 +4,7 @@ import ( "fmt" "go-admin/app/admin/models/system" "go-admin/app/admin/service" + "go-admin/common/log" "strings" "time" @@ -108,6 +109,12 @@ func SetDBOperLog(c *gin.Context, clientIP string, statusCode int, reqUri string } else { sysOperaLog.Status = "1" } + msgID := tools.GenerateMsgIDFromContext(c) + db, err := tools.GetOrm(c) + if err !=nil{ + log.Errorf("msgID[%s] 获取Orm失败, error:%s", msgID, err) + } serviceOperaLog:=service.SysOperaLog{} + serviceOperaLog.Orm = db _ = serviceOperaLog.InsertSysOperaLog(sysOperaLog.Generate()) }