From 1e66da2dd7b632b5105c017a02a9c171cd26bd78 Mon Sep 17 00:00:00 2001 From: yangzhengze <1403014932@qq.com> Date: Tue, 29 May 2018 01:37:23 +0800 Subject: [PATCH 1/2] =?UTF-8?q?1.=E5=A2=9E=E5=8A=A0=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=93=8D=E4=BD=9C=E5=9C=B0=E7=82=B9=E3=80=81?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E6=97=A5=E5=BF=97=E7=9A=84=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E5=9C=B0=E7=82=B9=E3=80=81=E5=9C=A8=E7=BA=BF=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E5=9C=B0=E7=82=B9=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/ry_20180526.sql | 3 +++ .../java/com/ruoyi/common/utils/IpUtils.java | 3 ++- .../com/ruoyi/common/utils/SystemLogUtils.java | 2 ++ .../com/ruoyi/framework/aspectj/LogAspect.java | 6 +++++- .../monitor/logininfor/domain/Logininfor.java | 15 +++++++++++++-- .../monitor/online/domain/UserOnline.java | 16 +++++++++++++++- .../project/monitor/operlog/domain/OperLog.java | 15 +++++++++++++-- .../mybatis/monitor/LogininforMapper.xml | 5 +++-- .../resources/mybatis/monitor/OnlineMapper.xml | 5 +++-- .../resources/mybatis/monitor/OperLogMapper.xml | 5 +++-- .../ruoyi/monitor/logininfor/logininfor.js | 4 ++++ .../static/ruoyi/monitor/online/online.js | 4 ++++ .../static/ruoyi/monitor/operlog/operlog.js | 4 ++++ .../templates/monitor/operlog/detail.html | 2 +- 14 files changed, 75 insertions(+), 14 deletions(-) diff --git a/sql/ry_20180526.sql b/sql/ry_20180526.sql index f40bca2eb..cd9713708 100644 --- a/sql/ry_20180526.sql +++ b/sql/ry_20180526.sql @@ -372,6 +372,7 @@ create table sys_oper_log ( dept_name varchar(50) default '' comment '部门名称', oper_url varchar(255) default '' comment '请求URL', oper_ip varchar(30) default '' comment '主机地址', + oper_location varchar(255) default '' comment '操作地点', oper_param varchar(255) default '' comment '请求参数', status int(1) default 0 comment '操作状态 0正常 1异常', error_msg varchar(2000) default '' comment '错误消息', @@ -475,6 +476,7 @@ create table sys_logininfor ( info_id int(11) not null auto_increment comment '访问ID', login_name varchar(50) default '' comment '登录账号', ipaddr varchar(50) default '' comment '登录IP地址', + login_location varchar(255) default '' comment '登录地点', browser varchar(50) default '' comment '浏览器类型', os varchar(50) default '' comment '操作系统', status int(1) default 0 comment '登录状态 0成功 1失败', @@ -493,6 +495,7 @@ create table sys_user_online ( login_name varchar(50) default '' comment '登录账号', dept_name varchar(50) default '' comment '部门名称', ipaddr varchar(50) default '' comment '登录IP地址', + login_location varchar(255) default '' comment '登录地点', browser varchar(50) default '' comment '浏览器类型', os varchar(50) default '' comment '操作系统', status varchar(10) default '' comment '在线状态on_line在线off_line离线', diff --git a/src/main/java/com/ruoyi/common/utils/IpUtils.java b/src/main/java/com/ruoyi/common/utils/IpUtils.java index e28b6f63f..6127b24cf 100644 --- a/src/main/java/com/ruoyi/common/utils/IpUtils.java +++ b/src/main/java/com/ruoyi/common/utils/IpUtils.java @@ -37,6 +37,7 @@ public class IpUtils { ip = request.getRemoteAddr(); } - return ip; + + return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : ip; } } diff --git a/src/main/java/com/ruoyi/common/utils/SystemLogUtils.java b/src/main/java/com/ruoyi/common/utils/SystemLogUtils.java index 20dc51b5c..ab8803c60 100644 --- a/src/main/java/com/ruoyi/common/utils/SystemLogUtils.java +++ b/src/main/java/com/ruoyi/common/utils/SystemLogUtils.java @@ -33,6 +33,7 @@ public class SystemLogUtils { StringBuilder s = new StringBuilder(); s.append(LogUtils.getBlock(ShiroUtils.getIp())); + s.append(AddressUtils.getRealAddressByIP(ShiroUtils.getIp())); s.append(LogUtils.getBlock(username)); s.append(LogUtils.getBlock(status)); s.append(LogUtils.getBlock(msg)); @@ -61,6 +62,7 @@ public class SystemLogUtils logininfor.setLoginName(username); logininfor.setStatus(status); logininfor.setIpaddr(ShiroUtils.getIp()); + logininfor.setLoginLocation(AddressUtils.getRealAddressByIP(ShiroUtils.getIp())); logininfor.setBrowser(browser); logininfor.setOs(os); logininfor.setMsg(message); diff --git a/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java b/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java index 8fe404266..89072c112 100644 --- a/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java +++ b/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java @@ -3,6 +3,7 @@ package com.ruoyi.framework.aspectj; import java.lang.reflect.Method; import java.util.Map; +import com.ruoyi.common.utils.AddressUtils; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.Signature; import org.aspectj.lang.annotation.AfterReturning; @@ -72,7 +73,7 @@ public class LogAspect } @Async - private void handleLog(final JoinPoint joinPoint, final Exception e) + protected void handleLog(final JoinPoint joinPoint, final Exception e) { try { @@ -92,6 +93,9 @@ public class LogAspect // 请求的地址 String ip = ShiroUtils.getIp(); operLog.setOperIp(ip); + //操作地点 + operLog.setOperLocation(AddressUtils.getRealAddressByIP(ip)); + operLog.setOperUrl(ServletUtils.getRequest().getRequestURI()); if (currentUser != null) { diff --git a/src/main/java/com/ruoyi/project/monitor/logininfor/domain/Logininfor.java b/src/main/java/com/ruoyi/project/monitor/logininfor/domain/Logininfor.java index dcc71a4f3..c10533ccd 100644 --- a/src/main/java/com/ruoyi/project/monitor/logininfor/domain/Logininfor.java +++ b/src/main/java/com/ruoyi/project/monitor/logininfor/domain/Logininfor.java @@ -1,8 +1,9 @@ package com.ruoyi.project.monitor.logininfor.domain; -import java.util.Date; import com.ruoyi.framework.web.domain.BaseEntity; +import java.util.Date; + /** * 系统访问日志情况信息 sys_logininfor * @@ -19,6 +20,8 @@ public class Logininfor extends BaseEntity private String status; /** 登录IP地址 */ private String ipaddr; + /**登录地点*/ + private String loginLocation; /** 浏览器类型 */ private String browser; /** 操作系统 */ @@ -68,6 +71,14 @@ public class Logininfor extends BaseEntity this.ipaddr = ipaddr; } + public String getLoginLocation() { + return loginLocation; + } + + public void setLoginLocation(String loginLocation) { + this.loginLocation = loginLocation; + } + public String getBrowser() { return browser; @@ -112,7 +123,7 @@ public class Logininfor extends BaseEntity public String toString() { return "Logininfor [infoId=" + infoId + ", loginName=" + loginName + ", status=" + status + ", ipaddr=" + ipaddr - + ", browser=" + browser + ", os=" + os + ", msg=" + msg + ", loginTime=" + loginTime + "]"; + + ",loginLocation="+loginLocation+", browser=" + browser + ", os=" + os + ", msg=" + msg + ", loginTime=" + loginTime + "]"; } } \ No newline at end of file diff --git a/src/main/java/com/ruoyi/project/monitor/online/domain/UserOnline.java b/src/main/java/com/ruoyi/project/monitor/online/domain/UserOnline.java index c432c4d6b..7ace787ef 100644 --- a/src/main/java/com/ruoyi/project/monitor/online/domain/UserOnline.java +++ b/src/main/java/com/ruoyi/project/monitor/online/domain/UserOnline.java @@ -1,9 +1,11 @@ package com.ruoyi.project.monitor.online.domain; -import java.util.Date; +import com.ruoyi.common.utils.AddressUtils; import com.ruoyi.framework.web.domain.BaseEntity; import com.ruoyi.project.monitor.online.domain.OnlineSession.OnlineStatus; +import java.util.Date; + /** * 当前在线会话 sys_user_online * @@ -24,6 +26,9 @@ public class UserOnline extends BaseEntity /** 登录IP地址 */ private String ipaddr; + /**登录地址*/ + private String longinLocation; + /** 浏览器类型 */ private String browser; @@ -58,6 +63,7 @@ public class UserOnline extends BaseEntity online.setLastAccessTime(session.getLastAccessTime()); online.setExpireTime(session.getTimeout()); online.setIpaddr(session.getHost()); + online.setLonginLocation(AddressUtils.getRealAddressByIP(session.getHost())); online.setBrowser(session.getBrowser()); online.setOs(session.getOs()); online.setStatus(session.getStatus()); @@ -105,6 +111,14 @@ public class UserOnline extends BaseEntity this.ipaddr = ipaddr; } + public String getLonginLocation() { + return longinLocation; + } + + public void setLonginLocation(String longinLocation) { + this.longinLocation = longinLocation; + } + public String getBrowser() { return browser; diff --git a/src/main/java/com/ruoyi/project/monitor/operlog/domain/OperLog.java b/src/main/java/com/ruoyi/project/monitor/operlog/domain/OperLog.java index c555e1ac6..762581d8c 100644 --- a/src/main/java/com/ruoyi/project/monitor/operlog/domain/OperLog.java +++ b/src/main/java/com/ruoyi/project/monitor/operlog/domain/OperLog.java @@ -1,8 +1,9 @@ package com.ruoyi.project.monitor.operlog.domain; -import java.util.Date; import com.ruoyi.framework.web.domain.BaseEntity; +import java.util.Date; + /** * 操作日志记录 oper_log * @@ -29,6 +30,8 @@ public class OperLog extends BaseEntity private String operUrl; /** 操作地址 */ private String operIp; + /** 操作地点*/ + private String operLocation; /** 请求参数 */ private String operParam; /** 状态0正常 1异常 */ @@ -128,6 +131,14 @@ public class OperLog extends BaseEntity this.operIp = operIp; } + public String getOperLocation() { + return operLocation; + } + + public void setOperLocation(String operLocation) { + this.operLocation = operLocation; + } + public String getOperParam() { return operParam; @@ -173,7 +184,7 @@ public class OperLog extends BaseEntity { return "OperLog [operId=" + operId + ", title=" + title + ", action=" + action + ", method=" + method + ", channel=" + channel + ", loginName=" + loginName + ", deptName=" + deptName + ", operUrl=" - + operUrl + ", operIp=" + operIp + ", operParam=" + operParam + ", status=" + status + ", errorMsg=" + + operUrl + ", operIp=" + operIp + ", operLocation=" + operLocation + ", operParam=" + operParam + ", status=" + status + ", errorMsg=" + errorMsg + ", operTime=" + operTime + "]"; } diff --git a/src/main/resources/mybatis/monitor/LogininforMapper.xml b/src/main/resources/mybatis/monitor/LogininforMapper.xml index 1069f54ec..2b0e41f5e 100644 --- a/src/main/resources/mybatis/monitor/LogininforMapper.xml +++ b/src/main/resources/mybatis/monitor/LogininforMapper.xml @@ -9,6 +9,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -16,8 +17,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - insert into sys_logininfor (login_name, status, ipaddr, browser, os, msg, login_time) - values (#{loginName}, #{status}, #{ipaddr}, #{browser}, #{os}, #{msg}, sysdate()) + insert into sys_logininfor (login_name, status, ipaddr, login_location, browser, os, msg, login_time) + values (#{loginName}, #{status}, #{ipaddr}, #{loginLocation}, #{browser}, #{os}, #{msg}, sysdate()) - 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}) + replace into sys_user_online(sessionId, login_name, dept_name, ipaddr, login_location, browser, os, status, start_timestsamp, last_access_time, expire_time) + values (#{sessionId}, #{loginName}, #{deptName}, #{ipaddr}, #{longinLocation}, #{browser}, #{os}, #{status}, #{startTimestamp}, #{lastAccessTime}, #{expireTime}) diff --git a/src/main/resources/mybatis/monitor/OperLogMapper.xml b/src/main/resources/mybatis/monitor/OperLogMapper.xml index ea56ee851..835c58eda 100644 --- a/src/main/resources/mybatis/monitor/OperLogMapper.xml +++ b/src/main/resources/mybatis/monitor/OperLogMapper.xml @@ -14,6 +14,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -21,8 +22,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - insert into sys_oper_log(title, action, method, channel, login_name, dept_name, oper_url, oper_ip, oper_param, status, error_msg, oper_time) - values (#{title}, #{action}, #{method}, #{channel}, #{loginName}, #{deptName}, #{operUrl}, #{operIp}, #{operParam}, #{status}, #{errorMsg}, sysdate()) + insert into sys_oper_log(title, action, method, channel, login_name, dept_name, oper_url, oper_ip, oper_location, oper_param, status, error_msg, oper_time) + values (#{title}, #{action}, #{method}, #{channel}, #{loginName}, #{deptName}, #{operUrl}, #{operIp}, #{operLocation}, #{operParam}, #{status}, #{errorMsg}, sysdate())