支持系统访问记录
This commit is contained in:
parent
64fe58211d
commit
9e2e65e69f
|
|
@ -110,10 +110,10 @@ insert into sys_menu values('3', '用户管理', '1', '1', '/system/user/userLis
|
||||||
insert into sys_menu values('4', '角色管理', '1', '2', '/system/role/roleList', 'C', '0', 'system:role:list', '#', '2018-01-01', '', 'admin', '角色管理菜单');
|
insert into sys_menu values('4', '角色管理', '1', '2', '/system/role/roleList', 'C', '0', 'system:role:list', '#', '2018-01-01', '', 'admin', '角色管理菜单');
|
||||||
insert into sys_menu values('5', '菜单管理', '1', '3', '/system/menu/menuList', 'C', '0', 'system:menu:list', '#', '2018-01-01', '', 'admin', '菜单管理菜单');
|
insert into sys_menu values('5', '菜单管理', '1', '3', '/system/menu/menuList', 'C', '0', 'system:menu:list', '#', '2018-01-01', '', 'admin', '菜单管理菜单');
|
||||||
insert into sys_menu values('6', '部门管理', '1', '3', '/system/dept/deptList', 'C', '0', 'system:dept:list', '#', '2018-01-01', '', 'admin', '部门管理菜单');
|
insert into sys_menu values('6', '部门管理', '1', '3', '/system/dept/deptList', 'C', '0', 'system:dept:list', '#', '2018-01-01', '', 'admin', '部门管理菜单');
|
||||||
insert into sys_menu values('7', '操作日志', '2', '1', '/system/operlog/operlogList', 'C', '0', 'system:operlog:list', '#', '2018-01-01', '', 'admin', '操作日志菜单');
|
insert into sys_menu values('7', '操作日志', '2', '1', '/monitor/operlog', 'C', '0', 'monitor:operlog', '#', '2018-01-01', '', 'admin', '操作日志菜单');
|
||||||
insert into sys_menu values('8', '登录日志', '2', '2', '/system/userlog/userlogList', 'C', '0', 'system:userlog:list', '#', '2018-01-01', '', 'admin', '登录日志菜单');
|
insert into sys_menu values('8', '登录日志', '2', '2', '/monitor/logininfor', 'C', '0', 'monitor:logininfor', '#', '2018-01-01', '', 'admin', '登录日志菜单');
|
||||||
insert into sys_menu values('9', '在线用户', '2', '3', '/monitor/online', 'C', '0', 'monitor:online', '#', '2018-01-01', '', 'admin', '在线用户菜单');
|
insert into sys_menu values('9', '在线用户', '2', '3', '/monitor/online', 'C', '0', 'monitor:online', '#', '2018-01-01', '', 'admin', '在线用户菜单');
|
||||||
insert into sys_menu values('10', '数据监控', '2', '4', '/monitor/druid/index.html', 'C', '0', 'monitor:druid:list', '#', '2018-01-01', '', 'admin', '数据监控菜单');
|
insert into sys_menu values('10', '数据监控', '2', '4', '/monitor/druid/index.html', 'C', '0', 'monitor:druid', '#', '2018-01-01', '', 'admin', '数据监控菜单');
|
||||||
--- 三级用户按钮
|
--- 三级用户按钮
|
||||||
insert into sys_menu values('11', '用户新增', '3', '1', '/system/user/add', 'F', '0', 'sys:user:add', '#', '2018-01-01', '', 'admin', '用户管理新增按钮');
|
insert into sys_menu values('11', '用户新增', '3', '1', '/system/user/add', 'F', '0', 'sys:user:add', '#', '2018-01-01', '', 'admin', '用户管理新增按钮');
|
||||||
insert into sys_menu values('12', '用户修改', '3', '2', '/system/user/update', 'F', '0', 'sys:user:update', '#', '2018-01-01', '', 'admin', '用户管理修改按钮');
|
insert into sys_menu values('12', '用户修改', '3', '2', '/system/user/update', 'F', '0', 'sys:user:update', '#', '2018-01-01', '', 'admin', '用户管理修改按钮');
|
||||||
|
|
@ -131,10 +131,6 @@ insert into sys_menu values('21', '菜单新增', '5', '1', '/system/menu/add',
|
||||||
insert into sys_menu values('22', '菜单修改', '5', '2', '/system/menu/update', 'F', '0', 'sys:menu:update', '#', '2018-01-01', '', 'admin', '菜单管理修改按钮');
|
insert into sys_menu values('22', '菜单修改', '5', '2', '/system/menu/update', 'F', '0', 'sys:menu:update', '#', '2018-01-01', '', 'admin', '菜单管理修改按钮');
|
||||||
insert into sys_menu values('23', '菜单删除', '5', '3', '/system/menu/delete', 'F', '0', 'sys:menu:delete', '#', '2018-01-01', '', 'admin', '菜单管理删除按钮');
|
insert into sys_menu values('23', '菜单删除', '5', '3', '/system/menu/delete', 'F', '0', 'sys:menu:delete', '#', '2018-01-01', '', 'admin', '菜单管理删除按钮');
|
||||||
insert into sys_menu values('24', '菜单查询', '5', '4', '/system/menu/select', 'F', '0', 'sys:menu:select', '#', '2018-01-01', '', 'system', '菜单管理查询按钮');
|
insert into sys_menu values('24', '菜单查询', '5', '4', '/system/menu/select', 'F', '0', 'sys:menu:select', '#', '2018-01-01', '', 'system', '菜单管理查询按钮');
|
||||||
--- 三级日志按钮
|
|
||||||
insert into sys_menu values('25', '操作日志查询', '4', '5', '/system/operlog/auth', 'F', '0', 'sys:operlog:select', '#', '2018-01-01', '', 'admin', '操作日志查询按钮');
|
|
||||||
insert into sys_menu values('26', '登录日志查询', '4', '5', '/system/userlog/auth', 'F', '0', 'sys:userlog:select', '#', '2018-01-01', '', 'admin', '登录日志查询按钮');
|
|
||||||
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- 5、用户和角色关联表 用户N-1角色
|
-- 5、用户和角色关联表 用户N-1角色
|
||||||
|
|
@ -244,16 +240,16 @@ drop table if exists sys_logininfor;
|
||||||
create table sys_logininfor (
|
create table sys_logininfor (
|
||||||
info_id int(11) not null auto_increment comment '访问ID',
|
info_id int(11) not null auto_increment comment '访问ID',
|
||||||
login_name varchar(50) default '' comment '登录名',
|
login_name varchar(50) default '' comment '登录名',
|
||||||
status int(1) default 0 comment '登录状态 0成功 1失败',
|
|
||||||
ipaddr varchar(50) default '' comment '登录IP地址',
|
ipaddr varchar(50) default '' comment '登录IP地址',
|
||||||
browser varchar(50) default '' comment '浏览器类型',
|
browser varchar(50) default '' comment '浏览器类型',
|
||||||
os varchar(50) default '' comment '操作系统',
|
os varchar(50) default '' comment '操作系统',
|
||||||
|
status int(1) default 0 comment '登录状态 0成功 1失败',
|
||||||
msg varchar(255) default '' comment '提示消息',
|
msg varchar(255) default '' comment '提示消息',
|
||||||
logondate timestamp default current_timestamp comment '访问时间',
|
login_time timestamp default current_timestamp comment '访问时间',
|
||||||
primary key (info_id)
|
primary key (info_id)
|
||||||
) engine=innodb auto_increment=100 default charset=utf8;
|
) engine=innodb auto_increment=100 default charset=utf8;
|
||||||
|
|
||||||
insert into sys_logininfor values(1, 'admin', 0 , '127.0.0.1', 'Chrome 45', 'Windows 7', '登录成功' ,'2018-01-01');
|
insert into sys_logininfor values(1, 'admin', '127.0.0.1', 'Chrome 45', 'Windows 7', 0, '登录成功' ,'2018-01-01');
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- 10、在线用户记录
|
-- 10、在线用户记录
|
||||||
|
|
@ -269,7 +265,7 @@ create table sys_user_online (
|
||||||
status varchar(10) default '' comment '在线状态on_line在线off_line离线',
|
status varchar(10) default '' comment '在线状态on_line在线off_line离线',
|
||||||
start_timestsamp timestamp default current_timestamp comment 'session创建时间',
|
start_timestsamp timestamp default current_timestamp comment 'session创建时间',
|
||||||
last_access_time timestamp default current_timestamp comment 'session最后访问时间',
|
last_access_time timestamp default current_timestamp comment 'session最后访问时间',
|
||||||
expireTime int(5) default 0 comment '超时时间,单位为分钟',
|
expire_time int(5) default 0 comment '超时时间,单位为分钟',
|
||||||
primary key (sessionId)
|
primary key (sessionId)
|
||||||
) engine=innodb default charset=utf8;
|
) engine=innodb default charset=utf8;
|
||||||
|
|
||||||
|
|
@ -8,7 +8,7 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
|
||||||
/**
|
/**
|
||||||
* 启动程序
|
* 启动程序
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class })
|
@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class })
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package com.ruoyi.common.constant;
|
||||||
/**
|
/**
|
||||||
* 通用常量信息
|
* 通用常量信息
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class CommonConstant
|
public class CommonConstant
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package com.ruoyi.common.constant;
|
||||||
/**
|
/**
|
||||||
* Shiro通用常量
|
* Shiro通用常量
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public interface ShiroConstants
|
public interface ShiroConstants
|
||||||
{
|
{
|
||||||
|
|
@ -17,11 +17,6 @@ public interface ShiroConstants
|
||||||
*/
|
*/
|
||||||
public static final String CURRENT_USERNAME = "username";
|
public static final String CURRENT_USERNAME = "username";
|
||||||
|
|
||||||
/**
|
|
||||||
* 验证码
|
|
||||||
*/
|
|
||||||
public static final String CURRENT_JCAPTCHA = "jcaptcha";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 消息key
|
* 消息key
|
||||||
*/
|
*/
|
||||||
|
|
@ -32,11 +27,6 @@ public interface ShiroConstants
|
||||||
*/
|
*/
|
||||||
public static String ERROR = "errorMsg";
|
public static String ERROR = "errorMsg";
|
||||||
|
|
||||||
/**
|
|
||||||
* 验证码错误
|
|
||||||
*/
|
|
||||||
public static final String JCAPTCHA_ERROR = "jcaptchaError";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 编码格式
|
* 编码格式
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package com.ruoyi.common.constant;
|
||||||
/**
|
/**
|
||||||
* 用户常量信息
|
* 用户常量信息
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class UserConstants
|
public class UserConstants
|
||||||
{
|
{
|
||||||
|
|
@ -23,8 +23,6 @@ public class UserConstants
|
||||||
/** 名称是否唯一的返回结果码 */
|
/** 名称是否唯一的返回结果码 */
|
||||||
public final static String NAME_UNIQUE = "0";
|
public final static String NAME_UNIQUE = "0";
|
||||||
|
|
||||||
public final static String NAME_NOT_UNIQUE = "1";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户名长度限制
|
* 用户名长度限制
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
package com.ruoyi.common.exception;
|
|
||||||
|
|
||||||
import com.ruoyi.common.exception.user.UserException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 验证码错误异常类
|
|
||||||
*
|
|
||||||
* @author yangzz
|
|
||||||
*/
|
|
||||||
public class CaptchaException extends UserException
|
|
||||||
{
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
|
|
||||||
public CaptchaException()
|
|
||||||
{
|
|
||||||
super("user.jcaptcha.error", null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -7,7 +7,7 @@ import com.ruoyi.common.utils.MessageUtils;
|
||||||
/**
|
/**
|
||||||
* 基础异常
|
* 基础异常
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class BaseException extends RuntimeException
|
public class BaseException extends RuntimeException
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package com.ruoyi.common.exception.base;
|
||||||
/**
|
/**
|
||||||
* Dao异常
|
* Dao异常
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class DaoException extends RuntimeException
|
public class DaoException extends RuntimeException
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package com.ruoyi.common.exception.user;
|
||||||
/**
|
/**
|
||||||
* 角色锁定异常类
|
* 角色锁定异常类
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class RoleBlockedException extends UserException
|
public class RoleBlockedException extends UserException
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package com.ruoyi.common.exception.user;
|
||||||
/**
|
/**
|
||||||
* 用户锁定异常类
|
* 用户锁定异常类
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class UserBlockedException extends UserException
|
public class UserBlockedException extends UserException
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import com.ruoyi.common.exception.base.BaseException;
|
||||||
/**
|
/**
|
||||||
* 用户信息异常类
|
* 用户信息异常类
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class UserException extends BaseException
|
public class UserException extends BaseException
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package com.ruoyi.common.exception.user;
|
||||||
/**
|
/**
|
||||||
* 用户不存在异常类
|
* 用户不存在异常类
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class UserNotExistsException extends UserException
|
public class UserNotExistsException extends UserException
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package com.ruoyi.common.exception.user;
|
||||||
/**
|
/**
|
||||||
* 用户密码不正确或不符合规范异常类
|
* 用户密码不正确或不符合规范异常类
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class UserPasswordNotMatchException extends UserException
|
public class UserPasswordNotMatchException extends UserException
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package com.ruoyi.common.exception.user;
|
||||||
/**
|
/**
|
||||||
* 用户错误记数异常类
|
* 用户错误记数异常类
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class UserPasswordRetryLimitCountException extends UserException
|
public class UserPasswordRetryLimitCountException extends UserException
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package com.ruoyi.common.exception.user;
|
||||||
/**
|
/**
|
||||||
* 用户错误最大次数异常类
|
* 用户错误最大次数异常类
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class UserPasswordRetryLimitExceedException extends UserException
|
public class UserPasswordRetryLimitExceedException extends UserException
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import java.util.Date;
|
||||||
/**
|
/**
|
||||||
* 时间工具类
|
* 时间工具类
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class DateUtils
|
public class DateUtils
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import org.springframework.web.context.request.ServletRequestAttributes;
|
||||||
/**
|
/**
|
||||||
* 客户端工具类
|
* 客户端工具类
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class HttpContextUtils
|
public class HttpContextUtils
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import javax.servlet.http.HttpServletRequest;
|
||||||
/**
|
/**
|
||||||
* 获取IP方法
|
* 获取IP方法
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class IpUtils
|
public class IpUtils
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import java.util.Map;
|
||||||
/**
|
/**
|
||||||
* 处理并记录日志文件
|
* 处理并记录日志文件
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class LogUtils
|
public class LogUtils
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import java.security.MessageDigest;
|
||||||
/**
|
/**
|
||||||
* Md5加密方法
|
* Md5加密方法
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class Md5Utils
|
public class Md5Utils
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import com.ruoyi.common.utils.spring.SpringUtils;
|
||||||
/**
|
/**
|
||||||
* 获取i18n资源文件
|
* 获取i18n资源文件
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class MessageUtils
|
public class MessageUtils
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import java.util.Map;
|
||||||
/**
|
/**
|
||||||
* 字符串工具类
|
* 字符串工具类
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class StringUtils
|
public class StringUtils
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -6,14 +6,15 @@ import org.slf4j.LoggerFactory;
|
||||||
import com.ruoyi.common.constant.CommonConstant;
|
import com.ruoyi.common.constant.CommonConstant;
|
||||||
import com.ruoyi.common.utils.security.ShiroUtils;
|
import com.ruoyi.common.utils.security.ShiroUtils;
|
||||||
import com.ruoyi.common.utils.spring.SpringUtils;
|
import com.ruoyi.common.utils.spring.SpringUtils;
|
||||||
import com.ruoyi.project.system.logininfor.domain.Logininfor;
|
import com.ruoyi.project.monitor.logininfor.domain.Logininfor;
|
||||||
import com.ruoyi.project.system.logininfor.service.LogininforServiceImpl;
|
import com.ruoyi.project.monitor.logininfor.service.LogininforServiceImpl;
|
||||||
|
|
||||||
import eu.bitwalker.useragentutils.UserAgent;
|
import eu.bitwalker.useragentutils.UserAgent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 记录用户日志信息
|
* 记录用户日志信息
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class SystemLogUtils
|
public class SystemLogUtils
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import com.ruoyi.project.system.menu.domain.Menu;
|
||||||
/**
|
/**
|
||||||
* 权限数据处理
|
* 权限数据处理
|
||||||
*
|
*
|
||||||
* @author y
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class TreeUtils
|
public class TreeUtils
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import com.ruoyi.project.system.user.domain.User;
|
||||||
/**
|
/**
|
||||||
* shiro 工具类
|
* shiro 工具类
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class ShiroUtils
|
public class ShiroUtils
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import org.springframework.stereotype.Component;
|
||||||
/**
|
/**
|
||||||
* spring工具类 方便在非spring管理环境中获取bean
|
* spring工具类 方便在非spring管理环境中获取bean
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
public final class SpringUtils implements BeanFactoryPostProcessor
|
public final class SpringUtils implements BeanFactoryPostProcessor
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||||
/**
|
/**
|
||||||
* 操作日志记录处理
|
* 操作日志记录处理
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@Aspect
|
@Aspect
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import java.lang.annotation.Target;
|
||||||
/**
|
/**
|
||||||
* 自定义操作日志记录注解
|
* 自定义操作日志记录注解
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@Target({ ElementType.PARAMETER, ElementType.METHOD })
|
@Target({ ElementType.PARAMETER, ElementType.METHOD })
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
|
||||||
/**
|
/**
|
||||||
* 通用配置
|
* 通用配置
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
public class BaseConfig extends WebMvcConfigurerAdapter
|
public class BaseConfig extends WebMvcConfigurerAdapter
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import org.springframework.stereotype.Component;
|
||||||
/**
|
/**
|
||||||
* 配置信息
|
* 配置信息
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
@ConfigurationProperties(prefix = "ruoyi")
|
@ConfigurationProperties(prefix = "ruoyi")
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||||
/**
|
/**
|
||||||
* Druid数据库信息配置加载
|
* Druid数据库信息配置加载
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
@Slf4j
|
@Slf4j
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import org.springframework.web.servlet.i18n.SessionLocaleResolver;
|
||||||
/**
|
/**
|
||||||
* 资源文件配置加载
|
* 资源文件配置加载
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
@Component
|
@Component
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ import at.pollux.thymeleaf.shiro.dialect.ShiroDialect;
|
||||||
/**
|
/**
|
||||||
* 权限配置加载
|
* 权限配置加载
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
public class ShiroConfig
|
public class ShiroConfig
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ import com.ruoyi.framework.web.page.PageUtilEntity;
|
||||||
/**三
|
/**三
|
||||||
* 拦截需要分页SQL
|
* 拦截需要分页SQL
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Intercepts({ @Signature(type = StatementHandler.class, method = "prepare", args = { Connection.class, Integer.class }) })
|
@Intercepts({ @Signature(type = StatementHandler.class, method = "prepare", args = { Connection.class, Integer.class }) })
|
||||||
public class ExecutorPageMethodInterceptor implements Interceptor
|
public class ExecutorPageMethodInterceptor implements Interceptor
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import java.lang.reflect.Field;
|
||||||
/**
|
/**
|
||||||
* 拦截需要分页SQL 反射工具
|
* 拦截需要分页SQL 反射工具
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class ReflectHelper
|
public class ReflectHelper
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -14,8 +14,6 @@ import org.apache.shiro.authz.SimpleAuthorizationInfo;
|
||||||
import org.apache.shiro.realm.AuthorizingRealm;
|
import org.apache.shiro.realm.AuthorizingRealm;
|
||||||
import org.apache.shiro.subject.PrincipalCollection;
|
import org.apache.shiro.subject.PrincipalCollection;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
import com.ruoyi.common.exception.CaptchaException;
|
|
||||||
import com.ruoyi.common.exception.user.RoleBlockedException;
|
import com.ruoyi.common.exception.user.RoleBlockedException;
|
||||||
import com.ruoyi.common.exception.user.UserBlockedException;
|
import com.ruoyi.common.exception.user.UserBlockedException;
|
||||||
import com.ruoyi.common.exception.user.UserNotExistsException;
|
import com.ruoyi.common.exception.user.UserNotExistsException;
|
||||||
|
|
@ -26,13 +24,12 @@ import com.ruoyi.framework.shiro.service.LoginService;
|
||||||
import com.ruoyi.project.system.menu.service.IMenuService;
|
import com.ruoyi.project.system.menu.service.IMenuService;
|
||||||
import com.ruoyi.project.system.role.service.IRoleService;
|
import com.ruoyi.project.system.role.service.IRoleService;
|
||||||
import com.ruoyi.project.system.user.domain.User;
|
import com.ruoyi.project.system.user.domain.User;
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 自定义Realm 处理登录 权限
|
* 自定义Realm 处理登录 权限
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class UserRealm extends AuthorizingRealm
|
public class UserRealm extends AuthorizingRealm
|
||||||
|
|
@ -81,11 +78,6 @@ public class UserRealm extends AuthorizingRealm
|
||||||
{
|
{
|
||||||
user = loginService.login(username, password);
|
user = loginService.login(username, password);
|
||||||
}
|
}
|
||||||
|
|
||||||
catch (CaptchaException e)
|
|
||||||
{
|
|
||||||
throw new AuthenticationException(e.getMessage(), e);
|
|
||||||
}
|
|
||||||
catch (UserNotExistsException e)
|
catch (UserNotExistsException e)
|
||||||
{
|
{
|
||||||
throw new UnknownAccountException(e.getMessage(), e);
|
throw new UnknownAccountException(e.getMessage(), e);
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ import com.ruoyi.project.system.user.service.IUserService;
|
||||||
/**
|
/**
|
||||||
* 登录校验方法
|
* 登录校验方法
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
public class LoginService
|
public class LoginService
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ import com.ruoyi.project.system.user.domain.User;
|
||||||
/**
|
/**
|
||||||
* 登录密码方法
|
* 登录密码方法
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
public class PasswordService
|
public class PasswordService
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import com.ruoyi.project.monitor.online.service.IUserOnlineService;
|
||||||
/**
|
/**
|
||||||
* 针对自定义的ShiroSession的db操作
|
* 针对自定义的ShiroSession的db操作
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class OnlineSessionDAO extends EnterpriseCacheSessionDAO
|
public class OnlineSessionDAO extends EnterpriseCacheSessionDAO
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ import eu.bitwalker.useragentutils.UserAgent;
|
||||||
/**
|
/**
|
||||||
* 自定义sessionFactory会话
|
* 自定义sessionFactory会话
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
public class OnlineSessionFactory implements SessionFactory
|
public class OnlineSessionFactory implements SessionFactory
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,8 @@ import com.ruoyi.project.system.user.domain.User;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 自定义访问控制
|
* 自定义访问控制
|
||||||
* @author yangzz
|
|
||||||
*
|
*
|
||||||
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class OnlineSessionFilter extends AccessControlFilter
|
public class OnlineSessionFilter extends AccessControlFilter
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import com.ruoyi.project.monitor.online.domain.OnlineSession;
|
||||||
/**
|
/**
|
||||||
* 同步Session数据到Db
|
* 同步Session数据到Db
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class SyncOnlineSessionFilter extends PathMatchingFilter
|
public class SyncOnlineSessionFilter extends PathMatchingFilter
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||||
/**
|
/**
|
||||||
* 主要是在此如果会话的属性修改了 就标识下其修改了 然后方便 OnlineSessionDao同步
|
* 主要是在此如果会话的属性修改了 就标识下其修改了 然后方便 OnlineSessionDao同步
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class OnlineWebSessionManager extends DefaultWebSessionManager
|
public class OnlineWebSessionManager extends DefaultWebSessionManager
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||||
/**
|
/**
|
||||||
* 自定义任务调度器完成
|
* 自定义任务调度器完成
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class SpringSessionValidationScheduler implements SessionValidationScheduler
|
public class SpringSessionValidationScheduler implements SessionValidationScheduler
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import com.ruoyi.project.system.user.domain.User;
|
||||||
/**
|
/**
|
||||||
* web层通用数据处理
|
* web层通用数据处理
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class BaseController
|
public class BaseController
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -6,15 +6,13 @@ import org.apache.ibatis.session.ExecutorType;
|
||||||
import org.apache.ibatis.session.SqlSession;
|
import org.apache.ibatis.session.SqlSession;
|
||||||
import org.apache.ibatis.session.SqlSessionFactory;
|
import org.apache.ibatis.session.SqlSessionFactory;
|
||||||
import org.mybatis.spring.SqlSessionTemplate;
|
import org.mybatis.spring.SqlSessionTemplate;
|
||||||
|
|
||||||
import com.ruoyi.common.exception.base.DaoException;
|
import com.ruoyi.common.exception.base.DaoException;
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 数据DAO层通用数据处理
|
* 数据DAO层通用数据处理
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class DynamicObjectBaseDao
|
public class DynamicObjectBaseDao
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import java.util.Map;
|
||||||
/**
|
/**
|
||||||
* 返回数据通用处理
|
* 返回数据通用处理
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class JSON extends HashMap<String, Object>
|
public class JSON extends HashMap<String, Object>
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||||
/**
|
/**
|
||||||
* 自定义异常处理器
|
* 自定义异常处理器
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@RestControllerAdvice
|
@RestControllerAdvice
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import lombok.Data;
|
||||||
/**
|
/**
|
||||||
* 表格请求参数封装
|
* 表格请求参数封装
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class PageUtilEntity
|
public class PageUtilEntity
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import java.util.List;
|
||||||
/**
|
/**
|
||||||
* 表格分页数据对象
|
* 表格分页数据对象
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class TableDataInfo implements Serializable
|
public class TableDataInfo implements Serializable
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import com.ruoyi.framework.web.page.PageUtilEntity;
|
||||||
/**
|
/**
|
||||||
* 表格数据处理
|
* 表格数据处理
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class TableSupport
|
public class TableSupport
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
package com.ruoyi.project.monitor.logininfor.controller;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
import com.ruoyi.framework.web.controller.BaseController;
|
||||||
|
import com.ruoyi.framework.web.page.PageUtilEntity;
|
||||||
|
import com.ruoyi.framework.web.page.TableDataInfo;
|
||||||
|
import com.ruoyi.project.monitor.logininfor.domain.Logininfor;
|
||||||
|
import com.ruoyi.project.monitor.logininfor.service.ILogininforService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 系统访问记录
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
*/
|
||||||
|
@Controller
|
||||||
|
@RequestMapping("/monitor/logininfor")
|
||||||
|
public class LogininforController extends BaseController
|
||||||
|
{
|
||||||
|
private String prefix = "monitor/logininfor";
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ILogininforService logininforService;
|
||||||
|
|
||||||
|
@GetMapping()
|
||||||
|
public String logininfor()
|
||||||
|
{
|
||||||
|
return prefix + "/logininfor";
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/list")
|
||||||
|
@ResponseBody
|
||||||
|
public TableDataInfo list()
|
||||||
|
{
|
||||||
|
PageUtilEntity pageUtilEntity = this.getPageUtilEntity();
|
||||||
|
List<Logininfor> list = logininforService.pageInfoQueryLogininfor(pageUtilEntity);
|
||||||
|
TableDataInfo tableDataInfo = new TableDataInfo(list, pageUtilEntity.getTotalResult());
|
||||||
|
return tableDataInfo;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
package com.ruoyi.project.monitor.logininfor.dao;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import com.ruoyi.framework.web.page.PageUtilEntity;
|
||||||
|
import com.ruoyi.project.monitor.logininfor.domain.Logininfor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 系统访问日志情况信息 数据层
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
*/
|
||||||
|
public interface ILogininforDao
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 新增系统登录日志
|
||||||
|
*
|
||||||
|
* @param logininfor 访问日志对象
|
||||||
|
*/
|
||||||
|
public void insertLogininfor(Logininfor logininfor);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询系统登录日志集合
|
||||||
|
*
|
||||||
|
* @param pageUtilEntity 分页参数
|
||||||
|
* @return 登录记录集合
|
||||||
|
*/
|
||||||
|
public List<Logininfor> pageInfoQuery(PageUtilEntity pageUtilEntity);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,49 @@
|
||||||
|
package com.ruoyi.project.monitor.logininfor.dao;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
import com.ruoyi.framework.web.dao.DynamicObjectBaseDao;
|
||||||
|
import com.ruoyi.framework.web.page.PageUtilEntity;
|
||||||
|
import com.ruoyi.project.monitor.logininfor.domain.Logininfor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 登录日志记录 数据层
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
*/
|
||||||
|
@Repository("logininforDao")
|
||||||
|
public class LogininforDaoImpl extends DynamicObjectBaseDao implements ILogininforDao
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 新增系统登录日志
|
||||||
|
*
|
||||||
|
* @param logininfor 访问日志对象
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void insertLogininfor(Logininfor logininfor)
|
||||||
|
{
|
||||||
|
this.save("SystemLogininforMapper.insertLogininfor", logininfor);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询系统登录日志集合
|
||||||
|
*
|
||||||
|
* @param pageUtilEntity 分页参数
|
||||||
|
* @return 登录记录集合
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<Logininfor> pageInfoQuery(PageUtilEntity pageUtilEntity)
|
||||||
|
{
|
||||||
|
List<Logininfor> logininforList = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
logininforList = this.findForList("SystemLogininforMapper.pageInfoQueryLogininfor", pageUtilEntity);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return logininforList;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,11 +1,13 @@
|
||||||
package com.ruoyi.project.system.logininfor.domain;
|
package com.ruoyi.project.monitor.logininfor.domain;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 系统访问日志情况信息 sys_logininfor
|
* 系统访问日志情况信息 sys_logininfor
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class Logininfor
|
public class Logininfor
|
||||||
|
|
@ -25,6 +27,6 @@ public class Logininfor
|
||||||
/** 提示消息 */
|
/** 提示消息 */
|
||||||
private String msg;
|
private String msg;
|
||||||
/** 访问时间 */
|
/** 访问时间 */
|
||||||
private String loginTime;
|
private Date loginTime;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
package com.ruoyi.project.monitor.logininfor.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import com.ruoyi.framework.web.page.PageUtilEntity;
|
||||||
|
import com.ruoyi.project.monitor.logininfor.domain.Logininfor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 系统访问日志情况信息 服务层
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
*/
|
||||||
|
public interface ILogininforService
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增系统登录日志
|
||||||
|
*
|
||||||
|
* @param logininfor 访问日志对象
|
||||||
|
*/
|
||||||
|
public void insertLogininfor(Logininfor logininfor);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询系统登录日志集合
|
||||||
|
*
|
||||||
|
* @param pageUtilEntity 分页参数
|
||||||
|
* @return 登录记录集合
|
||||||
|
*/
|
||||||
|
public List<Logininfor> pageInfoQueryLogininfor(PageUtilEntity pageUtilEntity);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
package com.ruoyi.project.monitor.logininfor.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import com.ruoyi.framework.web.page.PageUtilEntity;
|
||||||
|
import com.ruoyi.project.monitor.logininfor.dao.ILogininforDao;
|
||||||
|
import com.ruoyi.project.monitor.logininfor.domain.Logininfor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 系统访问日志情况信息 服务层处理
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
*/
|
||||||
|
@Service("logininforService")
|
||||||
|
public class LogininforServiceImpl implements ILogininforService
|
||||||
|
{
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ILogininforDao logininforDao;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增系统登录日志
|
||||||
|
*
|
||||||
|
* @param logininfor 访问日志对象
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void insertLogininfor(Logininfor logininfor)
|
||||||
|
{
|
||||||
|
logininforDao.insertLogininfor(logininfor);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询系统登录日志集合
|
||||||
|
*
|
||||||
|
* @param pageUtilEntity 分页参数
|
||||||
|
* @return 登录记录集合
|
||||||
|
*/
|
||||||
|
public List<Logininfor> pageInfoQueryLogininfor(PageUtilEntity pageUtilEntity)
|
||||||
|
{
|
||||||
|
return logininforDao.pageInfoQuery(pageUtilEntity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -24,7 +24,7 @@ import com.ruoyi.project.monitor.online.service.IUserOnlineService;
|
||||||
/**
|
/**
|
||||||
* 在线用户监控
|
* 在线用户监控
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Controller
|
@Controller
|
||||||
@RequestMapping("/monitor/online")
|
@RequestMapping("/monitor/online")
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,9 @@ import com.ruoyi.framework.web.page.PageUtilEntity;
|
||||||
import com.ruoyi.project.monitor.online.domain.UserOnline;
|
import com.ruoyi.project.monitor.online.domain.UserOnline;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 在线用户 服务层
|
* 在线用户 数据层
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public interface IUserOnlineDao
|
public interface IUserOnlineDao
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import com.ruoyi.project.monitor.online.domain.UserOnline;
|
||||||
/**
|
/**
|
||||||
* 在线用户数据层
|
* 在线用户数据层
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Repository("userOnlineDao")
|
@Repository("userOnlineDao")
|
||||||
public class UserOnlineDaoImpl extends DynamicObjectBaseDao implements IUserOnlineDao
|
public class UserOnlineDaoImpl extends DynamicObjectBaseDao implements IUserOnlineDao
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import org.apache.shiro.session.mgt.SimpleSession;
|
||||||
/**
|
/**
|
||||||
* 在线用户会话属性
|
* 在线用户会话属性
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class OnlineSession extends SimpleSession
|
public class OnlineSession extends SimpleSession
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import lombok.Data;
|
||||||
/**
|
/**
|
||||||
* 当前在线会话 sys_user_online
|
* 当前在线会话 sys_user_online
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class UserOnline
|
public class UserOnline
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import com.ruoyi.project.monitor.online.domain.UserOnline;
|
||||||
/**
|
/**
|
||||||
* 在线用户 服务层
|
* 在线用户 服务层
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public interface IUserOnlineService
|
public interface IUserOnlineService
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -14,9 +14,9 @@ import com.ruoyi.project.monitor.online.dao.IUserOnlineDao;
|
||||||
import com.ruoyi.project.monitor.online.domain.UserOnline;
|
import com.ruoyi.project.monitor.online.domain.UserOnline;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 在线用户 服务层
|
* 在线用户 服务层处理
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Service("userOnlineService")
|
@Service("userOnlineService")
|
||||||
public class UserOnlineServiceImpl implements IUserOnlineService
|
public class UserOnlineServiceImpl implements IUserOnlineService
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import com.ruoyi.project.monitor.operlog.domain.OperLog;
|
||||||
/**
|
/**
|
||||||
* 操作日志 数据层
|
* 操作日志 数据层
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public interface IOperLogDao
|
public interface IOperLogDao
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import com.ruoyi.project.monitor.operlog.domain.OperLog;
|
||||||
/**
|
/**
|
||||||
* 操作日志记录 数据层
|
* 操作日志记录 数据层
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Repository("operLogDao")
|
@Repository("operLogDao")
|
||||||
public class OperLogDaoImpl extends DynamicObjectBaseDao implements IOperLogDao
|
public class OperLogDaoImpl extends DynamicObjectBaseDao implements IOperLogDao
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import lombok.Data;
|
||||||
/**
|
/**
|
||||||
* 操作日志记录 oper_log
|
* 操作日志记录 oper_log
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class OperLog
|
public class OperLog
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import com.ruoyi.project.monitor.operlog.domain.OperLog;
|
||||||
/**
|
/**
|
||||||
* 操作日志 服务层
|
* 操作日志 服务层
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public interface IOperLogService
|
public interface IOperLogService
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import com.ruoyi.project.monitor.operlog.domain.OperLog;
|
||||||
/**
|
/**
|
||||||
* 操作日志 服务层处理
|
* 操作日志 服务层处理
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Service("operLogService")
|
@Service("operLogService")
|
||||||
public class OperLogServiceImpl implements IOperLogService
|
public class OperLogServiceImpl implements IOperLogService
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import lombok.Data;
|
||||||
/**
|
/**
|
||||||
* 部门对象 sys_dept
|
* 部门对象 sys_dept
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class Dept
|
public class Dept
|
||||||
|
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
package com.ruoyi.project.system.logininfor.dao;
|
|
||||||
|
|
||||||
import com.ruoyi.project.system.logininfor.domain.Logininfor;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 系统访问日志情况信息 数据层
|
|
||||||
*
|
|
||||||
* @author y
|
|
||||||
*/
|
|
||||||
public interface ILogininforDao
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* 新增系统登录日志
|
|
||||||
*
|
|
||||||
* @param logininfor 访问日志对象
|
|
||||||
*/
|
|
||||||
public void insertLogininfor(Logininfor logininfor);
|
|
||||||
}
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
package com.ruoyi.project.system.logininfor.dao;
|
|
||||||
|
|
||||||
import org.springframework.stereotype.Repository;
|
|
||||||
|
|
||||||
import com.ruoyi.framework.web.dao.DynamicObjectBaseDao;
|
|
||||||
import com.ruoyi.project.system.logininfor.domain.Logininfor;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 登录日志记录 数据层
|
|
||||||
*
|
|
||||||
* @author yangzz
|
|
||||||
*/
|
|
||||||
@Repository("logininforDao")
|
|
||||||
public class LogininforDaoImpl extends DynamicObjectBaseDao implements ILogininforDao
|
|
||||||
{
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void insertLogininfor(Logininfor logininfor)
|
|
||||||
{
|
|
||||||
this.save("SystemLogininforMapper.insertLogininfor", logininfor);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
package com.ruoyi.project.system.logininfor.service;
|
|
||||||
|
|
||||||
import com.ruoyi.project.system.logininfor.domain.Logininfor;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 系统访问日志情况信息 服务层
|
|
||||||
*
|
|
||||||
* @author yangzz
|
|
||||||
*/
|
|
||||||
public interface ILogininforService
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 新增系统登录日志
|
|
||||||
*
|
|
||||||
* @param logininfor 访问日志对象
|
|
||||||
*/
|
|
||||||
public void insertLogininfor(Logininfor logininfor);
|
|
||||||
}
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
||||||
package com.ruoyi.project.system.logininfor.service;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import com.ruoyi.project.system.logininfor.dao.ILogininforDao;
|
|
||||||
import com.ruoyi.project.system.logininfor.domain.Logininfor;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 系统访问日志情况信息 服务层处理
|
|
||||||
*
|
|
||||||
* @author yangzz
|
|
||||||
*/
|
|
||||||
@Service("logininforService")
|
|
||||||
public class LogininforServiceImpl implements ILogininforService
|
|
||||||
{
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private ILogininforDao logininforDao;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 新增系统登录日志
|
|
||||||
*
|
|
||||||
* @param logininfor 访问日志对象
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void insertLogininfor(Logininfor logininfor)
|
|
||||||
{
|
|
||||||
logininforDao.insertLogininfor(logininfor);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -6,7 +6,7 @@ import com.ruoyi.project.system.menu.domain.Menu;
|
||||||
/**
|
/**
|
||||||
* 菜单表 数据层
|
* 菜单表 数据层
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public interface IMenuDao
|
public interface IMenuDao
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import com.ruoyi.project.system.menu.domain.Menu;
|
||||||
/**
|
/**
|
||||||
* 菜单 数据层处理
|
* 菜单 数据层处理
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Repository("menuDao")
|
@Repository("menuDao")
|
||||||
public class MenuDaoImpl extends DynamicObjectBaseDao implements IMenuDao
|
public class MenuDaoImpl extends DynamicObjectBaseDao implements IMenuDao
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import lombok.Data;
|
||||||
/**
|
/**
|
||||||
* 角色对象 sys_menu
|
* 角色对象 sys_menu
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class Menu
|
public class Menu
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import com.ruoyi.project.system.menu.domain.Menu;
|
||||||
/**
|
/**
|
||||||
* 菜单 业务层
|
* 菜单 业务层
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public interface IMenuService
|
public interface IMenuService
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ import com.ruoyi.project.system.menu.domain.Menu;
|
||||||
/**
|
/**
|
||||||
* 菜单 业务层处理
|
* 菜单 业务层处理
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Service("menuService")
|
@Service("menuService")
|
||||||
public class MenuServiceImpl implements IMenuService
|
public class MenuServiceImpl implements IMenuService
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import java.util.List;
|
||||||
/**
|
/**
|
||||||
* 角色表 数据层
|
* 角色表 数据层
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public interface IRoleDao
|
public interface IRoleDao
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import com.ruoyi.framework.web.dao.DynamicObjectBaseDao;
|
||||||
/**
|
/**
|
||||||
* 角色 数据层处理
|
* 角色 数据层处理
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Repository("roleDao")
|
@Repository("roleDao")
|
||||||
public class RoleDaoImpl extends DynamicObjectBaseDao implements IRoleDao
|
public class RoleDaoImpl extends DynamicObjectBaseDao implements IRoleDao
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import lombok.Data;
|
||||||
/**
|
/**
|
||||||
* 角色对象 sys_role
|
* 角色对象 sys_role
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class Role
|
public class Role
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import java.util.Set;
|
||||||
/**
|
/**
|
||||||
* 角色业务层
|
* 角色业务层
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public interface IRoleService
|
public interface IRoleService
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import com.ruoyi.project.system.role.dao.IRoleDao;
|
||||||
/**
|
/**
|
||||||
* 角色 业务层处理
|
* 角色 业务层处理
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Service("roleService")
|
@Service("roleService")
|
||||||
public class RoleServiceImpl implements IRoleService
|
public class RoleServiceImpl implements IRoleService
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import com.ruoyi.project.system.user.domain.User;
|
||||||
/**
|
/**
|
||||||
* 首页 业务处理
|
* 首页 业务处理
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Controller
|
@Controller
|
||||||
public class IndexController extends BaseController
|
public class IndexController extends BaseController
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ import com.ruoyi.framework.web.domain.JSON;
|
||||||
/**
|
/**
|
||||||
* 登录验证
|
* 登录验证
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
// @RestController
|
// @RestController
|
||||||
@Controller
|
@Controller
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ import com.ruoyi.project.system.user.service.IUserService;
|
||||||
/**
|
/**
|
||||||
* 用户信息
|
* 用户信息
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Controller
|
@Controller
|
||||||
@RequestMapping("/system/user")
|
@RequestMapping("/system/user")
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import com.ruoyi.project.system.user.domain.User;
|
||||||
/**
|
/**
|
||||||
* 用户表 数据层
|
* 用户表 数据层
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public interface IUserDao
|
public interface IUserDao
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ import com.ruoyi.project.system.user.domain.User;
|
||||||
/**
|
/**
|
||||||
* 用户 数据层处理
|
* 用户 数据层处理
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Repository("userDao")
|
@Repository("userDao")
|
||||||
public class UserDaoImpl extends DynamicObjectBaseDao implements IUserDao
|
public class UserDaoImpl extends DynamicObjectBaseDao implements IUserDao
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import lombok.Data;
|
||||||
/**
|
/**
|
||||||
* 用户对象 sys_user
|
* 用户对象 sys_user
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class User
|
public class User
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import com.ruoyi.project.system.user.domain.User;
|
||||||
/**
|
/**
|
||||||
* 用户 业务层
|
* 用户 业务层
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public interface IUserService
|
public interface IUserService
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ import com.ruoyi.project.system.user.domain.User;
|
||||||
/**
|
/**
|
||||||
* 用户 业务层处理
|
* 用户 业务层处理
|
||||||
*
|
*
|
||||||
* @author yangzz
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
@Service("userService")
|
@Service("userService")
|
||||||
public class UserServiceImpl implements IUserService
|
public class UserServiceImpl implements IUserService
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@ spring:
|
||||||
datasource:
|
datasource:
|
||||||
type: com.alibaba.druid.pool.DruidDataSource
|
type: com.alibaba.druid.pool.DruidDataSource
|
||||||
driverClassName: com.mysql.jdbc.Driver
|
driverClassName: com.mysql.jdbc.Driver
|
||||||
#url: jdbc:mysql://10.213.24.45:3306/ry?useUnicode=true&characterEncoding=utf8
|
url: jdbc:mysql://10.213.24.45:3306/ry?useUnicode=true&characterEncoding=utf8
|
||||||
url: jdbc:mysql://localhost:3306/ry?useUnicode=true&characterEncoding=utf8
|
#url: jdbc:mysql://localhost:3306/ry?useUnicode=true&characterEncoding=utf8
|
||||||
username: root
|
username: root
|
||||||
password: password
|
password: password
|
||||||
# 初始化大小,最小,最大
|
# 初始化大小,最小,最大
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<result property="browser" column="browser" />
|
<result property="browser" column="browser" />
|
||||||
<result property="os" column="os" />
|
<result property="os" column="os" />
|
||||||
<result property="msg" column="msg" />
|
<result property="msg" column="msg" />
|
||||||
<result property="logondate" column="logondate" />
|
<result property="loginTime" column="login_time" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<insert id="insertLogininfor" parameterType="Logininfor">
|
<insert id="insertLogininfor" parameterType="Logininfor">
|
||||||
|
|
@ -20,4 +20,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
values (#{loginName}, #{status}, #{ipaddr}, #{browser}, #{os}, #{msg})
|
values (#{loginName}, #{status}, #{ipaddr}, #{browser}, #{os}, #{msg})
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
<select id="pageInfoQueryLogininfor" parameterType="PageUtilEntity" resultMap="LogininforResult">
|
||||||
|
select * from sys_logininfor
|
||||||
|
<where>
|
||||||
|
<if test="searchValue != null">
|
||||||
|
AND login_name = #{searchValue}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
@ -14,7 +14,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<result property="status" column="status" />
|
<result property="status" column="status" />
|
||||||
<result property="startTimestamp" column="start_timestsamp" />
|
<result property="startTimestamp" column="start_timestsamp" />
|
||||||
<result property="lastAccessTime" column="last_access_time" />
|
<result property="lastAccessTime" column="last_access_time" />
|
||||||
<result property="expireTime" column="expireTime" />
|
<result property="expireTime" column="expire_time" />
|
||||||
<association property="session" javaType="OnlineSession" resultMap="OnlineSessionResult" />
|
<association property="session" javaType="OnlineSession" resultMap="OnlineSessionResult" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
|
|
@ -32,7 +32,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<insert id="saveByOnline" parameterType="UserOnline">
|
<insert id="saveByOnline" parameterType="UserOnline">
|
||||||
replace into sys_user_online(sessionId, login_name, dept_name, ipaddr, browser, os, status, start_timestsamp, last_access_time, expireTime)
|
replace into sys_user_online(sessionId, login_name, dept_name, ipaddr, browser, os, status, start_timestsamp, last_access_time, expire_time)
|
||||||
values (#{sessionId}, #{loginName}, #{deptName}, #{ipaddr}, #{browser}, #{os}, #{status}, #{startTimestamp}, #{lastAccessTime}, #{expireTime})
|
values (#{sessionId}, #{loginName}, #{deptName}, #{ipaddr}, #{browser}, #{os}, #{status}, #{startTimestamp}, #{lastAccessTime}, #{expireTime})
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,8 @@
|
||||||
// 自定义分页处理 ruoyi
|
/**
|
||||||
|
* 自定义分页处理
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
*/
|
||||||
|
|
||||||
// 初始化表格
|
// 初始化表格
|
||||||
function initTable(_columns, _url) {
|
function initTable(_columns, _url) {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
var prefix = "/monitor/logininfor"
|
||||||
|
|
||||||
|
$(function() {
|
||||||
|
var columns = [{
|
||||||
|
field: 'infoId',
|
||||||
|
// 列字段名
|
||||||
|
title: '访问编号' // 列标题
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'loginName',
|
||||||
|
title: '登录名称'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'ipaddr',
|
||||||
|
title: '主机'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'browser',
|
||||||
|
title: '浏览器'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'os',
|
||||||
|
title: '操作系统'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'status',
|
||||||
|
title: '状态',
|
||||||
|
align: 'center',
|
||||||
|
formatter: function(value, row, index) {
|
||||||
|
if (value == 0) {
|
||||||
|
return '<span class="label label-success">成功</span>';
|
||||||
|
} else if (value == 1) {
|
||||||
|
return '<span class="label label-primary">失败</span>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'loginTime',
|
||||||
|
title: '登录时间'
|
||||||
|
}];
|
||||||
|
var url = prefix + "/list";
|
||||||
|
initTable(columns, url);
|
||||||
|
});
|
||||||
|
|
@ -104,6 +104,7 @@
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<ol>
|
<ol>
|
||||||
<li>支持在线用户管理</li>
|
<li>支持在线用户管理</li>
|
||||||
|
<li>支持系统访问记录</li>
|
||||||
</ol>
|
</ol>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org"
|
||||||
|
xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<head th:include="include :: header"></head>
|
||||||
|
<body class="gray-bg">
|
||||||
|
<div class="wrapper wrapper-content">
|
||||||
|
<table class="bootstrap-table" data-mobile-responsive="true"
|
||||||
|
data-sort-name="login_time" data-sort-order="desc">
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div th:include="include :: footer"></div>
|
||||||
|
<script type="text/javascript" src="/ruoyi/monitor/logininfor/logininfor.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Loading…
Reference in New Issue