mirror of
https://gitee.com/dromara/RuoYi-Cloud-Plus.git
synced 2025-11-28 01:00:05 +08:00
update 优化 sys_logininfor 丰富多种信息
This commit is contained in:
@@ -54,6 +54,24 @@ public class SysLogininfor implements Serializable {
|
||||
@ExcelProperty(value = "地址")
|
||||
private String ipaddr;
|
||||
|
||||
/**
|
||||
* 登录地点
|
||||
*/
|
||||
@ExcelProperty(value = "登录地点")
|
||||
private String loginLocation;
|
||||
|
||||
/**
|
||||
* 浏览器类型
|
||||
*/
|
||||
@ExcelProperty(value = "浏览器类型")
|
||||
private String browser;
|
||||
|
||||
/**
|
||||
* 操作系统
|
||||
*/
|
||||
@ExcelProperty(value = "操作系统")
|
||||
private String os;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
@@ -64,7 +82,7 @@ public class SysLogininfor implements Serializable {
|
||||
* 访问时间
|
||||
*/
|
||||
@ExcelProperty(value = "访问时间")
|
||||
private Date accessTime;
|
||||
private Date loginTime;
|
||||
|
||||
/**
|
||||
* 请求参数
|
||||
|
||||
@@ -4,6 +4,8 @@ import cn.dev33.satoken.exception.NotLoginException;
|
||||
import cn.dev33.satoken.secure.BCrypt;
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.http.useragent.UserAgent;
|
||||
import cn.hutool.http.useragent.UserAgentUtil;
|
||||
import com.ruoyi.auth.form.RegisterBody;
|
||||
import com.ruoyi.auth.properties.UserPasswordProperties;
|
||||
import com.ruoyi.common.core.constant.CacheConstants;
|
||||
@@ -17,6 +19,7 @@ import com.ruoyi.common.core.utils.MessageUtils;
|
||||
import com.ruoyi.common.core.utils.ServletUtils;
|
||||
import com.ruoyi.common.core.utils.SpringUtils;
|
||||
import com.ruoyi.common.core.utils.StringUtils;
|
||||
import com.ruoyi.common.core.utils.ip.AddressUtils;
|
||||
import com.ruoyi.common.log.event.LogininforEvent;
|
||||
import com.ruoyi.common.redis.utils.RedisUtils;
|
||||
import com.ruoyi.common.satoken.utils.LoginHelper;
|
||||
@@ -29,6 +32,7 @@ import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.time.Duration;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
@@ -129,9 +133,22 @@ public class SysLoginService {
|
||||
* @return
|
||||
*/
|
||||
public void recordLogininfor(String username, String status, String message) {
|
||||
HttpServletRequest request = ServletUtils.getRequest();
|
||||
final UserAgent userAgent = UserAgentUtil.parse(request.getHeader("User-Agent"));
|
||||
final String ip = ServletUtils.getClientIP(request);
|
||||
|
||||
String address = AddressUtils.getRealAddressByIP(ip);
|
||||
// 获取客户端操作系统
|
||||
String os = userAgent.getOs().getName();
|
||||
// 获取客户端浏览器
|
||||
String browser = userAgent.getBrowser().getName();
|
||||
// 封装对象
|
||||
LogininforEvent logininfor = new LogininforEvent();
|
||||
logininfor.setUserName(username);
|
||||
logininfor.setIpaddr(ServletUtils.getClientIP());
|
||||
logininfor.setIpaddr(ip);
|
||||
logininfor.setLoginLocation(address);
|
||||
logininfor.setBrowser(browser);
|
||||
logininfor.setOs(os);
|
||||
logininfor.setMsg(message);
|
||||
// 日志状态
|
||||
if (StringUtils.equalsAny(status, Constants.LOGIN_SUCCESS, Constants.LOGOUT, Constants.REGISTER)) {
|
||||
|
||||
@@ -30,6 +30,21 @@ public class LogininforEvent implements Serializable {
|
||||
*/
|
||||
private String ipaddr;
|
||||
|
||||
/**
|
||||
* 登录地点
|
||||
*/
|
||||
private String loginLocation;
|
||||
|
||||
/**
|
||||
* 浏览器类型
|
||||
*/
|
||||
private String browser;
|
||||
|
||||
/**
|
||||
* 操作系统
|
||||
*/
|
||||
private String os;
|
||||
|
||||
/**
|
||||
* 提示消息
|
||||
*/
|
||||
|
||||
@@ -102,7 +102,10 @@
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="访问编号" align="center" prop="infoId" />
|
||||
<el-table-column label="用户名称" align="center" prop="userName" :show-overflow-tooltip="true" sortable="custom" :sort-orders="['descending', 'ascending']" />
|
||||
<el-table-column label="地址" align="center" prop="ipaddr" width="130" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="登录地址" align="center" prop="ipaddr" width="130" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="登录地点" align="center" prop="loginLocation" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="浏览器" align="center" prop="browser" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="操作系统" align="center" prop="os" />
|
||||
<el-table-column label="登录状态" align="center" prop="status">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.sys_common_status" :value="scope.row.status"/>
|
||||
|
||||
@@ -704,22 +704,28 @@ create table sys_logininfor (
|
||||
info_id number(20) not null,
|
||||
user_name varchar2(50) default '',
|
||||
ipaddr varchar2(128) default '',
|
||||
login_location varchar2(255) default '',
|
||||
browser varchar2(50) default '',
|
||||
os varchar2(50) default '',
|
||||
status char(1) default '0',
|
||||
msg varchar2(255) default '',
|
||||
access_time date
|
||||
login_time date
|
||||
);
|
||||
|
||||
alter table sys_logininfor add constraint pk_sys_logininfor primary key (info_id);
|
||||
create unique index idx_sys_logininfor_s on sys_logininfor (status);
|
||||
create unique index idx_sys_logininfor_lt on sys_logininfor (access_time);
|
||||
create unique index idx_sys_logininfor_lt on sys_logininfor (login_time);
|
||||
|
||||
comment on table sys_logininfor is '系统访问记录';
|
||||
comment on column sys_logininfor.info_id is '访问ID';
|
||||
comment on column sys_logininfor.user_name is '登录账号';
|
||||
comment on column sys_logininfor.ipaddr is '登录IP地址';
|
||||
comment on column sys_logininfor.login_location is '登录地点';
|
||||
comment on column sys_logininfor.browser is '浏览器类型';
|
||||
comment on column sys_logininfor.os is '操作系统';
|
||||
comment on column sys_logininfor.status is '登录状态(0成功 1失败)';
|
||||
comment on column sys_logininfor.msg is '提示消息';
|
||||
comment on column sys_logininfor.access_time is '访问时间';
|
||||
comment on column sys_logininfor.login_time is '访问时间';
|
||||
|
||||
|
||||
-- ----------------------------
|
||||
|
||||
@@ -719,22 +719,28 @@ create table if not exists sys_logininfor
|
||||
info_id int8,
|
||||
user_name varchar(50) default ''::varchar,
|
||||
ipaddr varchar(128) default ''::varchar,
|
||||
login_location varchar(255) default ''::varchar,
|
||||
browser varchar(50) default ''::varchar,
|
||||
os varchar(50) default ''::varchar,
|
||||
status char default '0'::bpchar,
|
||||
msg varchar(255) default ''::varchar,
|
||||
access_time timestamp,
|
||||
login_time timestamp,
|
||||
constraint sys_logininfor_pk primary key (info_id)
|
||||
);
|
||||
|
||||
create unique index idx_sys_logininfor_s ON sys_logininfor (status);
|
||||
create unique index idx_sys_logininfor_lt ON sys_logininfor (access_time);
|
||||
create unique index idx_sys_logininfor_lt ON sys_logininfor (login_time);
|
||||
|
||||
comment on table sys_logininfor is '系统访问记录';
|
||||
comment on column sys_logininfor.info_id is '访问ID';
|
||||
comment on column sys_logininfor.user_name is '用户账号';
|
||||
comment on column sys_logininfor.ipaddr is '登录IP地址';
|
||||
comment on column sys_logininfor.status is '登录状态(0成功 1失败)';
|
||||
comment on column sys_logininfor.msg is '提示消息';
|
||||
comment on column sys_logininfor.access_time is '访问时间';
|
||||
comment on table sys_logininfor is '系统访问记录';
|
||||
comment on column sys_logininfor.info_id is '访问ID';
|
||||
comment on column sys_logininfor.user_name is '用户账号';
|
||||
comment on column sys_logininfor.ipaddr is '登录IP地址';
|
||||
comment on column sys_logininfor.login_location is '登录地点';
|
||||
comment on column sys_logininfor.browser is '浏览器类型';
|
||||
comment on column sys_logininfor.os is '操作系统';
|
||||
comment on column sys_logininfor.status is '登录状态(0成功 1失败)';
|
||||
comment on column sys_logininfor.msg is '提示消息';
|
||||
comment on column sys_logininfor.login_time is '访问时间';
|
||||
|
||||
-- ----------------------------
|
||||
-- 17、通知公告表
|
||||
|
||||
@@ -550,12 +550,15 @@ create table sys_logininfor (
|
||||
info_id bigint(20) not null comment '访问ID',
|
||||
user_name varchar(50) default '' comment '用户账号',
|
||||
ipaddr varchar(128) default '' comment '登录IP地址',
|
||||
login_location varchar(255) default '' comment '登录地点',
|
||||
browser varchar(50) default '' comment '浏览器类型',
|
||||
os varchar(50) default '' comment '操作系统',
|
||||
status char(1) default '0' comment '登录状态(0成功 1失败)',
|
||||
msg varchar(255) default '' comment '提示信息',
|
||||
access_time datetime comment '访问时间',
|
||||
msg varchar(255) default '' comment '提示消息',
|
||||
login_time datetime comment '访问时间',
|
||||
primary key (info_id),
|
||||
key idx_sys_logininfor_s (status),
|
||||
key idx_sys_logininfor_lt (access_time)
|
||||
key idx_sys_logininfor_lt (login_time)
|
||||
) engine=innodb comment = '系统访问记录';
|
||||
|
||||
-- ----------------------------
|
||||
|
||||
Reference in New Issue
Block a user