🎨 新增用户登录日志记录
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
common "git.echol.cn/loser/lckt/model/common/request"
|
||||
user2 "git.echol.cn/loser/lckt/model/user"
|
||||
"gorm.io/gorm"
|
||||
"strconv"
|
||||
"time"
|
||||
@@ -67,6 +68,24 @@ func (*AppUserApi) Login(ctx *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
// 添加登录日志
|
||||
loginLog := user2.LoginLog{
|
||||
UserId: user.ID,
|
||||
UserName: user.NickName,
|
||||
Phone: user.Phone,
|
||||
Ip: ctx.ClientIP(),
|
||||
Address: utils.GetIPAdcode(ctx.ClientIP()),
|
||||
Device: ctx.Request.Header.Get("sec-ch-ua-platform"),
|
||||
UserAgent: ctx.Request.UserAgent(),
|
||||
Mode: "微信登录",
|
||||
LoginTime: time.Now().Format("2006-01-02 15:04:05"),
|
||||
}
|
||||
|
||||
err = global.GVA_DB.Create(&loginLog).Error
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("添加登录日志失败!", zap.Error(err))
|
||||
}
|
||||
|
||||
if _, err = global.GVA_REDIS.Get(ctx, strconv.Itoa(int(user.ID))).Result(); errors.Is(err, redis.Nil) {
|
||||
// 此处过期时间等于jwt过期时间
|
||||
dr, err := utils.ParseDuration(global.GVA_CONFIG.JWT.ExpiresTime)
|
||||
@@ -132,6 +151,24 @@ func (*AppUserApi) WechatLogin(ctx *gin.Context) {
|
||||
}
|
||||
user_jwt.SetToken(ctx, token, int(claims.RegisteredClaims.ExpiresAt.Unix()-time.Now().Unix()))
|
||||
|
||||
// 添加登录日志
|
||||
loginLog := user2.LoginLog{
|
||||
UserId: user.ID,
|
||||
UserName: user.NickName,
|
||||
Phone: user.Phone,
|
||||
Ip: ctx.ClientIP(),
|
||||
Address: utils.GetIPAdcode(ctx.ClientIP()),
|
||||
Device: ctx.Request.Header.Get("sec-ch-ua-platform"),
|
||||
UserAgent: ctx.Request.UserAgent(),
|
||||
Mode: "微信登录",
|
||||
LoginTime: time.Now().Format("2006-01-02 15:04:05"),
|
||||
}
|
||||
|
||||
err = global.GVA_DB.Create(&loginLog).Error
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("添加登录日志失败!", zap.Error(err))
|
||||
}
|
||||
|
||||
r.OkWithDetailed(gin.H{
|
||||
"User": user,
|
||||
"Token": token,
|
||||
|
||||
@@ -171,3 +171,28 @@ func (a *UserApi) UpdateTeacherApplyStatus(context *gin.Context) {
|
||||
}
|
||||
r.OkWithMessage("更新教师申请状态成功", context)
|
||||
}
|
||||
|
||||
// GetLoginLog 获取用户登录日志
|
||||
func (a *UserApi) GetLoginLog(context *gin.Context) {
|
||||
var p request.GetUserListReq
|
||||
if err := context.ShouldBind(&p); err != nil {
|
||||
global.GVA_LOG.Error("参数错误,获取登录日志失败", zap.Error(err))
|
||||
r.FailWithMessage("参数错误,获取登录日志失败", context)
|
||||
return
|
||||
}
|
||||
|
||||
logs, total, err := userService.GetLoginLog(p)
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("获取登录日志失败", zap.Error(err))
|
||||
r.FailWithMessage("获取登录日志失败", context)
|
||||
return
|
||||
}
|
||||
|
||||
r.OkWithDetailed(
|
||||
r.PageResult{
|
||||
List: logs,
|
||||
Total: total,
|
||||
Page: p.Page,
|
||||
PageSize: p.PageSize,
|
||||
}, "获取登录日志成功", context)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user