支持系统访问记录
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('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('7', '操作日志', '2', '1', '/system/operlog/operlogList', 'C', '0', 'system:operlog:list', '#', '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('7', '操作日志', '2', '1', '/monitor/operlog', 'C', '0', 'monitor:operlog', '#', '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('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('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('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('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角色
|
||||
|
|
@ -244,16 +240,16 @@ drop table if exists sys_logininfor;
|
|||
create table sys_logininfor (
|
||||
info_id int(11) not null auto_increment comment '访问ID',
|
||||
login_name varchar(50) default '' comment '登录名',
|
||||
status int(1) default 0 comment '登录状态 0成功 1失败',
|
||||
ipaddr varchar(50) default '' comment '登录IP地址',
|
||||
browser varchar(50) default '' comment '浏览器类型',
|
||||
os varchar(50) default '' comment '操作系统',
|
||||
status int(1) default 0 comment '登录状态 0成功 1失败',
|
||||
msg varchar(255) default '' comment '提示消息',
|
||||
logondate timestamp default current_timestamp comment '访问时间',
|
||||
login_time timestamp default current_timestamp comment '访问时间',
|
||||
primary key (info_id)
|
||||
) 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、在线用户记录
|
||||
|
|
@ -269,7 +265,7 @@ create table sys_user_online (
|
|||
status varchar(10) default '' comment '在线状态on_line在线off_line离线',
|
||||
start_timestsamp 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)
|
||||
) engine=innodb default charset=utf8;
|
||||
|
||||
|
|
@ -8,7 +8,7 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
|
|||
/**
|
||||
* 启动程序
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@SpringBootApplication
|
||||
@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class })
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package com.ruoyi.common.constant;
|
|||
/**
|
||||
* 通用常量信息
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class CommonConstant
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package com.ruoyi.common.constant;
|
|||
/**
|
||||
* Shiro通用常量
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public interface ShiroConstants
|
||||
{
|
||||
|
|
@ -17,11 +17,6 @@ public interface ShiroConstants
|
|||
*/
|
||||
public static final String CURRENT_USERNAME = "username";
|
||||
|
||||
/**
|
||||
* 验证码
|
||||
*/
|
||||
public static final String CURRENT_JCAPTCHA = "jcaptcha";
|
||||
|
||||
/**
|
||||
* 消息key
|
||||
*/
|
||||
|
|
@ -32,11 +27,6 @@ public interface ShiroConstants
|
|||
*/
|
||||
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
|
||||
{
|
||||
|
|
@ -23,8 +23,6 @@ public class UserConstants
|
|||
/** 名称是否唯一的返回结果码 */
|
||||
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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package com.ruoyi.common.exception.base;
|
|||
/**
|
||||
* Dao异常
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class DaoException extends RuntimeException
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package com.ruoyi.common.exception.user;
|
|||
/**
|
||||
* 角色锁定异常类
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class RoleBlockedException extends UserException
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package com.ruoyi.common.exception.user;
|
|||
/**
|
||||
* 用户锁定异常类
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package com.ruoyi.common.exception.user;
|
|||
/**
|
||||
* 用户不存在异常类
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class UserNotExistsException extends UserException
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package com.ruoyi.common.exception.user;
|
|||
/**
|
||||
* 用户密码不正确或不符合规范异常类
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class UserPasswordNotMatchException extends UserException
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package com.ruoyi.common.exception.user;
|
|||
/**
|
||||
* 用户错误记数异常类
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class UserPasswordRetryLimitCountException extends UserException
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package com.ruoyi.common.exception.user;
|
|||
/**
|
||||
* 用户错误最大次数异常类
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class UserPasswordRetryLimitExceedException extends UserException
|
||||
{
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import java.util.Date;
|
|||
/**
|
||||
* 时间工具类
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class DateUtils
|
||||
{
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import org.springframework.web.context.request.ServletRequestAttributes;
|
|||
/**
|
||||
* 客户端工具类
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class HttpContextUtils
|
||||
{
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import javax.servlet.http.HttpServletRequest;
|
|||
/**
|
||||
* 获取IP方法
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class IpUtils
|
||||
{
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import java.util.Map;
|
|||
/**
|
||||
* 处理并记录日志文件
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class LogUtils
|
||||
{
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import java.security.MessageDigest;
|
|||
/**
|
||||
* Md5加密方法
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Slf4j
|
||||
public class Md5Utils
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import com.ruoyi.common.utils.spring.SpringUtils;
|
|||
/**
|
||||
* 获取i18n资源文件
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class MessageUtils
|
||||
{
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import java.util.Map;
|
|||
/**
|
||||
* 字符串工具类
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class StringUtils
|
||||
{
|
||||
|
|
|
|||
|
|
@ -6,14 +6,15 @@ import org.slf4j.LoggerFactory;
|
|||
import com.ruoyi.common.constant.CommonConstant;
|
||||
import com.ruoyi.common.utils.security.ShiroUtils;
|
||||
import com.ruoyi.common.utils.spring.SpringUtils;
|
||||
import com.ruoyi.project.system.logininfor.domain.Logininfor;
|
||||
import com.ruoyi.project.system.logininfor.service.LogininforServiceImpl;
|
||||
import com.ruoyi.project.monitor.logininfor.domain.Logininfor;
|
||||
import com.ruoyi.project.monitor.logininfor.service.LogininforServiceImpl;
|
||||
|
||||
import eu.bitwalker.useragentutils.UserAgent;
|
||||
|
||||
/**
|
||||
* 记录用户日志信息
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class SystemLogUtils
|
||||
{
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import com.ruoyi.project.system.menu.domain.Menu;
|
|||
/**
|
||||
* 权限数据处理
|
||||
*
|
||||
* @author y
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class TreeUtils
|
||||
{
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import com.ruoyi.project.system.user.domain.User;
|
|||
/**
|
||||
* shiro 工具类
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class ShiroUtils
|
||||
{
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import org.springframework.stereotype.Component;
|
|||
/**
|
||||
* spring工具类 方便在非spring管理环境中获取bean
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Component
|
||||
public final class SpringUtils implements BeanFactoryPostProcessor
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||
/**
|
||||
* 操作日志记录处理
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
|
||||
@Aspect
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import java.lang.annotation.Target;
|
|||
/**
|
||||
* 自定义操作日志记录注解
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*
|
||||
*/
|
||||
@Target({ ElementType.PARAMETER, ElementType.METHOD })
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
|
|||
/**
|
||||
* 通用配置
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Configuration
|
||||
public class BaseConfig extends WebMvcConfigurerAdapter
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import org.springframework.stereotype.Component;
|
|||
/**
|
||||
* 配置信息
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Component
|
||||
@ConfigurationProperties(prefix = "ruoyi")
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||
/**
|
||||
* Druid数据库信息配置加载
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Configuration
|
||||
@Slf4j
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import org.springframework.web.servlet.i18n.SessionLocaleResolver;
|
|||
/**
|
||||
* 资源文件配置加载
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Configuration
|
||||
@Component
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ import at.pollux.thymeleaf.shiro.dialect.ShiroDialect;
|
|||
/**
|
||||
* 权限配置加载
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Configuration
|
||||
public class ShiroConfig
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ import com.ruoyi.framework.web.page.PageUtilEntity;
|
|||
/**三
|
||||
* 拦截需要分页SQL
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Intercepts({ @Signature(type = StatementHandler.class, method = "prepare", args = { Connection.class, Integer.class }) })
|
||||
public class ExecutorPageMethodInterceptor implements Interceptor
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import java.lang.reflect.Field;
|
|||
/**
|
||||
* 拦截需要分页SQL 反射工具
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class ReflectHelper
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,8 +14,6 @@ import org.apache.shiro.authz.SimpleAuthorizationInfo;
|
|||
import org.apache.shiro.realm.AuthorizingRealm;
|
||||
import org.apache.shiro.subject.PrincipalCollection;
|
||||
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.UserBlockedException;
|
||||
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.role.service.IRoleService;
|
||||
import com.ruoyi.project.system.user.domain.User;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 自定义Realm 处理登录 权限
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Slf4j
|
||||
public class UserRealm extends AuthorizingRealm
|
||||
|
|
@ -81,11 +78,6 @@ public class UserRealm extends AuthorizingRealm
|
|||
{
|
||||
user = loginService.login(username, password);
|
||||
}
|
||||
|
||||
catch (CaptchaException e)
|
||||
{
|
||||
throw new AuthenticationException(e.getMessage(), e);
|
||||
}
|
||||
catch (UserNotExistsException e)
|
||||
{
|
||||
throw new UnknownAccountException(e.getMessage(), e);
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ import com.ruoyi.project.system.user.service.IUserService;
|
|||
/**
|
||||
* 登录校验方法
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Component
|
||||
public class LoginService
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ import com.ruoyi.project.system.user.domain.User;
|
|||
/**
|
||||
* 登录密码方法
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Component
|
||||
public class PasswordService
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import com.ruoyi.project.monitor.online.service.IUserOnlineService;
|
|||
/**
|
||||
* 针对自定义的ShiroSession的db操作
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class OnlineSessionDAO extends EnterpriseCacheSessionDAO
|
||||
{
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ import eu.bitwalker.useragentutils.UserAgent;
|
|||
/**
|
||||
* 自定义sessionFactory会话
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Component
|
||||
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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import com.ruoyi.project.monitor.online.domain.OnlineSession;
|
|||
/**
|
||||
* 同步Session数据到Db
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class SyncOnlineSessionFilter extends PathMatchingFilter
|
||||
{
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||
/**
|
||||
* 主要是在此如果会话的属性修改了 就标识下其修改了 然后方便 OnlineSessionDao同步
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Slf4j
|
||||
public class OnlineWebSessionManager extends DefaultWebSessionManager
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||
/**
|
||||
* 自定义任务调度器完成
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Slf4j
|
||||
public class SpringSessionValidationScheduler implements SessionValidationScheduler
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import com.ruoyi.project.system.user.domain.User;
|
|||
/**
|
||||
* web层通用数据处理
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class BaseController
|
||||
{
|
||||
|
|
|
|||
|
|
@ -6,15 +6,13 @@ import org.apache.ibatis.session.ExecutorType;
|
|||
import org.apache.ibatis.session.SqlSession;
|
||||
import org.apache.ibatis.session.SqlSessionFactory;
|
||||
import org.mybatis.spring.SqlSessionTemplate;
|
||||
|
||||
import com.ruoyi.common.exception.base.DaoException;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 数据DAO层通用数据处理
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Slf4j
|
||||
public class DynamicObjectBaseDao
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import java.util.Map;
|
|||
/**
|
||||
* 返回数据通用处理
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class JSON extends HashMap<String, Object>
|
||||
{
|
||||
|
|
|
|||
|
|
@ -10,8 +10,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||
/**
|
||||
* 自定义异常处理器
|
||||
*
|
||||
* @author yangzz
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Slf4j
|
||||
@RestControllerAdvice
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import lombok.Data;
|
|||
/**
|
||||
* 表格请求参数封装
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Data
|
||||
public class PageUtilEntity
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import java.util.List;
|
|||
/**
|
||||
* 表格分页数据对象
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class TableDataInfo implements Serializable
|
||||
{
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import com.ruoyi.framework.web.page.PageUtilEntity;
|
|||
/**
|
||||
* 表格数据处理
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
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;
|
||||
|
||||
/**
|
||||
* 系统访问日志情况信息 sys_logininfor
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Data
|
||||
public class Logininfor
|
||||
|
|
@ -25,6 +27,6 @@ public class Logininfor
|
|||
/** 提示消息 */
|
||||
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
|
||||
@RequestMapping("/monitor/online")
|
||||
|
|
|
|||
|
|
@ -6,9 +6,9 @@ import com.ruoyi.framework.web.page.PageUtilEntity;
|
|||
import com.ruoyi.project.monitor.online.domain.UserOnline;
|
||||
|
||||
/**
|
||||
* 在线用户 服务层
|
||||
* 在线用户 数据层
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public interface IUserOnlineDao
|
||||
{
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import com.ruoyi.project.monitor.online.domain.UserOnline;
|
|||
/**
|
||||
* 在线用户数据层
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Repository("userOnlineDao")
|
||||
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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import lombok.Data;
|
|||
/**
|
||||
* 当前在线会话 sys_user_online
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Data
|
||||
public class UserOnline
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import com.ruoyi.project.monitor.online.domain.UserOnline;
|
|||
/**
|
||||
* 在线用户 服务层
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public interface IUserOnlineService
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,9 +14,9 @@ import com.ruoyi.project.monitor.online.dao.IUserOnlineDao;
|
|||
import com.ruoyi.project.monitor.online.domain.UserOnline;
|
||||
|
||||
/**
|
||||
* 在线用户 服务层
|
||||
* 在线用户 服务层处理
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Service("userOnlineService")
|
||||
public class UserOnlineServiceImpl implements IUserOnlineService
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import com.ruoyi.project.monitor.operlog.domain.OperLog;
|
|||
/**
|
||||
* 操作日志 数据层
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public interface IOperLogDao
|
||||
{
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import com.ruoyi.project.monitor.operlog.domain.OperLog;
|
|||
/**
|
||||
* 操作日志记录 数据层
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Repository("operLogDao")
|
||||
public class OperLogDaoImpl extends DynamicObjectBaseDao implements IOperLogDao
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import lombok.Data;
|
|||
/**
|
||||
* 操作日志记录 oper_log
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Data
|
||||
public class OperLog
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import com.ruoyi.project.monitor.operlog.domain.OperLog;
|
|||
/**
|
||||
* 操作日志 服务层
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public interface IOperLogService
|
||||
{
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import com.ruoyi.project.monitor.operlog.domain.OperLog;
|
|||
/**
|
||||
* 操作日志 服务层处理
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Service("operLogService")
|
||||
public class OperLogServiceImpl implements IOperLogService
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import lombok.Data;
|
|||
/**
|
||||
* 部门对象 sys_dept
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Data
|
||||
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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import com.ruoyi.project.system.menu.domain.Menu;
|
|||
/**
|
||||
* 菜单 数据层处理
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Repository("menuDao")
|
||||
public class MenuDaoImpl extends DynamicObjectBaseDao implements IMenuDao
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import lombok.Data;
|
|||
/**
|
||||
* 角色对象 sys_menu
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Data
|
||||
public class Menu
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import com.ruoyi.project.system.menu.domain.Menu;
|
|||
/**
|
||||
* 菜单 业务层
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public interface IMenuService
|
||||
{
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ import com.ruoyi.project.system.menu.domain.Menu;
|
|||
/**
|
||||
* 菜单 业务层处理
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Service("menuService")
|
||||
public class MenuServiceImpl implements IMenuService
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import java.util.List;
|
|||
/**
|
||||
* 角色表 数据层
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public interface IRoleDao
|
||||
{
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import com.ruoyi.framework.web.dao.DynamicObjectBaseDao;
|
|||
/**
|
||||
* 角色 数据层处理
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Repository("roleDao")
|
||||
public class RoleDaoImpl extends DynamicObjectBaseDao implements IRoleDao
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import lombok.Data;
|
|||
/**
|
||||
* 角色对象 sys_role
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Data
|
||||
public class Role
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import java.util.Set;
|
|||
/**
|
||||
* 角色业务层
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public interface IRoleService
|
||||
{
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import com.ruoyi.project.system.role.dao.IRoleDao;
|
|||
/**
|
||||
* 角色 业务层处理
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Service("roleService")
|
||||
public class RoleServiceImpl implements IRoleService
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import com.ruoyi.project.system.user.domain.User;
|
|||
/**
|
||||
* 首页 业务处理
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Controller
|
||||
public class IndexController extends BaseController
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ import com.ruoyi.framework.web.domain.JSON;
|
|||
/**
|
||||
* 登录验证
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
// @RestController
|
||||
@Controller
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ import com.ruoyi.project.system.user.service.IUserService;
|
|||
/**
|
||||
* 用户信息
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Controller
|
||||
@RequestMapping("/system/user")
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import com.ruoyi.project.system.user.domain.User;
|
|||
/**
|
||||
* 用户表 数据层
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public interface IUserDao
|
||||
{
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import com.ruoyi.project.system.user.domain.User;
|
|||
/**
|
||||
* 用户 数据层处理
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Repository("userDao")
|
||||
public class UserDaoImpl extends DynamicObjectBaseDao implements IUserDao
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import lombok.Data;
|
|||
/**
|
||||
* 用户对象 sys_user
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Data
|
||||
public class User
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import com.ruoyi.project.system.user.domain.User;
|
|||
/**
|
||||
* 用户 业务层
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
public interface IUserService
|
||||
{
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import com.ruoyi.project.system.user.domain.User;
|
|||
/**
|
||||
* 用户 业务层处理
|
||||
*
|
||||
* @author yangzz
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Service("userService")
|
||||
public class UserServiceImpl implements IUserService
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@ spring:
|
|||
datasource:
|
||||
type: com.alibaba.druid.pool.DruidDataSource
|
||||
driverClassName: com.mysql.jdbc.Driver
|
||||
#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://10.213.24.45:3306/ry?useUnicode=true&characterEncoding=utf8
|
||||
#url: jdbc:mysql://localhost:3306/ry?useUnicode=true&characterEncoding=utf8
|
||||
username: root
|
||||
password: password
|
||||
# 初始化大小,最小,最大
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<result property="browser" column="browser" />
|
||||
<result property="os" column="os" />
|
||||
<result property="msg" column="msg" />
|
||||
<result property="logondate" column="logondate" />
|
||||
<result property="loginTime" column="login_time" />
|
||||
</resultMap>
|
||||
|
||||
<insert id="insertLogininfor" parameterType="Logininfor">
|
||||
|
|
@ -20,4 +20,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
values (#{loginName}, #{status}, #{ipaddr}, #{browser}, #{os}, #{msg})
|
||||
</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>
|
||||
|
|
@ -14,7 +14,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<result property="status" column="status" />
|
||||
<result property="startTimestamp" column="start_timestsamp" />
|
||||
<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" />
|
||||
</resultMap>
|
||||
|
||||
|
|
@ -32,7 +32,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
</select>
|
||||
|
||||
<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})
|
||||
</insert>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,8 @@
|
|||
// 自定义分页处理 ruoyi
|
||||
/**
|
||||
* 自定义分页处理
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
|
||||
// 初始化表格
|
||||
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">
|
||||
<ol>
|
||||
<li>支持在线用户管理</li>
|
||||
<li>支持系统访问记录</li>
|
||||
</ol>
|
||||
</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