Browse Source

1.增加操作日志操作地点、登录日志的登录地点、在线用户登录地点。

yangzhengze 6 năm trước cách đây
mục cha
commit
1e66da2dd7

+ 3 - 0
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离线',

+ 2 - 1
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;
     }
 }

+ 2 - 0
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);

+ 5 - 1
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)
             {

+ 13 - 2
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 + "]";
     }
 
 }

+ 15 - 1
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;

+ 13 - 2
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 + "]";
     }
 

+ 3 - 2
src/main/resources/mybatis/monitor/LogininforMapper.xml

@@ -9,6 +9,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<result property="loginName"   column="login_name"   />
 		<result property="status"      column="status"       />
 		<result property="ipaddr"      column="ipaddr"       />
+		<result property="loginLocation"      column="login_location"       />
 		<result property="browser"     column="browser"      />
 		<result property="os"          column="os"           />
 		<result property="msg"         column="msg"          />
@@ -16,8 +17,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	</resultMap>
 
 	<insert id="insertLogininfor" parameterType="Logininfor">
-		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())
 	</insert>
 	
 	<select id="selectLogininforList" parameterType="Logininfor" resultMap="LogininforResult">

+ 3 - 2
src/main/resources/mybatis/monitor/OnlineMapper.xml

@@ -9,6 +9,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<result property="loginName"         column="login_name"        />
 		<result property="deptName"          column="dept_name"         />
 		<result property="ipaddr"            column="ipaddr"            />
+		<result property="longinLocation"   column="login_location"     />
 		<result property="browser"           column="browser"           />
 		<result property="os"                column="os"                />
 		<result property="status"            column="status"            />
@@ -32,8 +33,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	</select>
 
 	<insert id="saveOnline" parameterType="UserOnline">
-		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})
 	</insert>
 	
  	<delete id="deleteOnlineById" parameterType="String">

+ 3 - 2
src/main/resources/mybatis/monitor/OperLogMapper.xml

@@ -14,6 +14,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<result property="deptName"       column="dept_name"     />
 		<result property="operUrl"        column="oper_url"     />
 		<result property="operIp"         column="oper_ip"      />
+		<result property="operLocation"   column="oper_location"    />
 		<result property="operParam"      column="oper_param"    />
 		<result property="status"         column="status"        />
 		<result property="errorMsg"       column="error_msg"     />
@@ -21,8 +22,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	</resultMap>
 
 	<insert id="insertOperlog" parameterType="OperLog">
-		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())
 	</insert>
 	
 	<select id="selectOperLogList" parameterType="OperLog" resultMap="OperLogResult">

+ 4 - 0
src/main/resources/static/ruoyi/monitor/logininfor/logininfor.js

@@ -16,6 +16,10 @@ $(function() {
             field: 'ipaddr',
             title: '主机'
         },
+        {
+            field: 'loginLocation',
+            title: '登录地点'
+        },
         {
             field: 'browser',
             title: '浏览器'

+ 4 - 0
src/main/resources/static/ruoyi/monitor/online/online.js

@@ -20,6 +20,10 @@ $(function() {
             field: 'ipaddr',
             title: '主机'
         },
+        {
+            field: 'longinLocation',
+            title: '登录地点'
+        },
         {
             field: 'browser',
             title: '浏览器'

+ 4 - 0
src/main/resources/static/ruoyi/monitor/operlog/operlog.js

@@ -28,6 +28,10 @@ $(function() {
             field: 'operIp',
             title: '主机'
         },
+        {
+            field: 'operLocation',
+            title: '操作地点'
+        },
         {
             field: 'status',
             title: '操作状态',

+ 1 - 1
src/main/resources/templates/monitor/operlog/detail.html

@@ -13,7 +13,7 @@
 		</div>
 		<div class="form-group">
 			<label class="col-sm-2 control-label">登录信息:</label>
-			<div class="form-control-static" th:text="${operLog.loginName} + ' / ' + ${operLog.deptName} + ' / ' + ${operLog.operIp}">
+			<div class="form-control-static" th:text="${operLog.loginName} + ' / ' + ${operLog.deptName} + ' / ' + ${operLog.operIp}+ ' / ' + ${operLog.operLocation}">
 			</div>
 		</div>
 		<div class="form-group">