diff --git a/modules/core/db/core.erm b/modules/core/db/core.erm index 3e50c377..bb333442 100644 --- a/modules/core/db/core.erm +++ b/modules/core/db/core.erm @@ -10,9 +10,9 @@ 30 0 - 0.5 - 717 - 685 + 0.8 + 0 + 1406 128 128 @@ -887,6 +887,22 @@ exception_info clob + + 510f647b2d9d95b636aa517b9826966d98962277 + 19 + null + false + null + false + false + false + + false + + 执行时间 + execute_time + decimal(p) + f01926071736b56b898949cc0720149c71504324 null @@ -5202,728 +5218,6 @@ - - f28f824baf21270b29ed2ce3406dc72ea0993578 - 359 - 361 - Segoe UI - 9 - 761 - 564 - - 128 - 128 - 192 - - - - 5d4e8745b2660e2a5494cd668f6573a85d938f4d - fbddb203edfde98403ee9e60374f71e993a8f879 - f28f824baf21270b29ed2ce3406dc72ea0993578 - -1 - -1 - -1 - -1 - - 0 - 0 - 0 - - 1..n - 0..1 - true - - RESTRICT - RESTRICT - null - null - - - 5f7b730666b316238ee57aef6dde62da05a3f657 - d8b7ee2b5b212db5d77eaf3da4c408bba6fbc4c4 - f28f824baf21270b29ed2ce3406dc72ea0993578 - -1 - -1 - -1 - -1 - - 0 - 0 - 0 - - 1..n - 1 - true - - RESTRICT - RESTRICT - null - null - - - js_sys_employee - 员工表 - - - - - - - 0eb719cd3d6524bc3778d73c3634c1b976baa3c7 - ab8b402ea35a78cdadd5ed446d571c9a80b532ee - - - - - varchar(n) - - - false - false - true - true - false - - - - - - - - - - - false - false - false - - - 0 - - - - 125f4be73b069fa39d11d391ebc30169bb835827 - e0ee6264e4415cc7d534335a38f6dbec62822900 - - - - - nvarchar(n) - - - false - false - true - false - false - - - - - - - - - - - false - false - false - - - 0 - - - - 8e6503837a4993eab7dd018391909b3a9185f0bd - 28440c39441334f1eacbfa49440ebfc746edbada - - - - - varchar(n) - - - false - false - false - false - false - - - - - - - - - - - false - false - false - - - 0 - - - - b0ac1bfb9a465a46257d8e043e8d0370feb0ee7c - 512f24dbe486a211117dfb58e689ef3e0e5009a0 - 5f7b730666b316238ee57aef6dde62da05a3f657 - - - - - varchar(n) - - - false - true - true - false - false - - - - - - - - - - - false - false - false - - - 0 - - - - 2b8439b512c0d6df70ca5f7c65bfd30a32def655 - 2f53aa3a1613598e128ad9cab02374b32d9bf70b - - - - - nvarchar(n) - - - false - false - true - false - false - - - - - - - - - - - false - false - false - - - 0 - - - - 76ab6ac096fb9c9be7bf61df683ce21a3da0c33d - 5ac7f3a7a755a58e6119c8d4922df644559e632f - 5d4e8745b2660e2a5494cd668f6573a85d938f4d - - - - - varchar(n) - - - false - true - false - false - false - - - - - - - - - - - false - false - false - - - 0 - - - - f0f47249781a8c1e655ae11236426b788f099fce - 653e75ecac41402f2d2bcea19230b9cb17536776 - - - - - nvarchar(n) - - - false - false - false - false - false - - - - - - - - - - - false - false - false - - - 0 - - - - cf949a5f8d12902f0a8384fa68c72f55e6136812 - ebe0900f7c091a4c0c47ec7fb29f4a9d586cf74b - - - - - character(n) - - - false - false - true - false - false - - - - - - - - - - - false - false - false - - - 0 - - - 85024a2953cf3e3c9c1cce49b2351853ab0d125b - ea920cba2fe0eaee64a2310ece7cda4b198b37ec - - - - false - true - idx_sys_employee_cco - - - - - 76ab6ac096fb9c9be7bf61df683ce21a3da0c33d - false - - - - - false - true - idx_sys_employee_cc - - - - - b8ea4b73d6d32a222e5abfd453287575ae518480 - false - - - - - false - true - idx_sys_employee_ud - - - - - ee78b079f7d319bf8119fd01439cd97424ff49fa - false - - - - - false - true - idx_sys_employee_oc - - - - - b0ac1bfb9a465a46257d8e043e8d0370feb0ee7c - false - - - - - false - true - idx_sys_employee_status - - - - - ebe0900f7c091a4c0c47ec7fb29f4a9d586cf74b - false - - - - - - - - - - - - fbddb203edfde98403ee9e60374f71e993a8f879 - 863 - 338 - Segoe UI - 9 - 790 - 1037 - - 128 - 128 - 192 - - - - 1b0ca6438eaa1bbc9b5d9d3a57bcaea05f3c517e - 946125b4f4f238f3cca2cc7e1450150e8358e30e - fbddb203edfde98403ee9e60374f71e993a8f879 - -1 - -1 - -1 - -1 - - 0 - 0 - 0 - - 1..n - 0..1 - true - - RESTRICT - RESTRICT - null - null - - - js_sys_company - 公司表 - - - - - - - 8b9e1b544f371e8c2350ab8926707418a6ea8fdf - 5ac7f3a7a755a58e6119c8d4922df644559e632f - - - - - varchar(n) - - - false - false - true - true - false - - - - - - - - - - - false - false - false - - - 0 - - - a535b6c506004a7fdf4d48984c9ff2cfa59c157a - - 5574844cb0d58e6bdfa1ca122c6cca8c5b27602a - 7c46717b372c8596c8138ff412b0363bea79262f - - - - - varchar(n) - - - false - false - true - false - false - - - - - - - - - - - false - false - false - - - 0 - - - - f0f47249781a8c1e655ae11236426b788f099fce - bb54ac3b2667504dc519cb88904db1337b64704e - - - - - nvarchar(n) - - - false - false - true - false - false - - - - - - - - - - - false - false - false - - - 0 - - - - cc2d46a644ef882366305e786927e310dc7945cb - 0bc7917672103a43ef4220fe999083a392356666 - - - - - nvarchar(n) - - - false - false - true - false - false - - - - - - - - - - - false - false - false - - - 0 - - - - bdc9f61f5a7bd4a53e05d939ea82f9885c78eb01 - 84fb98359c82f62d61719d8ce1d1f850d69d972f - 1b0ca6438eaa1bbc9b5d9d3a57bcaea05f3c517e - - - - - varchar(n) - - - false - true - false - false - false - - - - - - - - - - - false - false - false - - - 0 - - - 35ae805d1da92afdb99b2fe8c536d1649356fccd - ea920cba2fe0eaee64a2310ece7cda4b198b37ec - 118dab95fc1f792cd468b9f66af2d4fabd98c39b - - - - false - true - idx_sys_company_cc - - - - - b8ea4b73d6d32a222e5abfd453287575ae518480 - false - - - - - false - true - idx_sys_company_pc - - - - - 394369b90c0a5b6efeed3cf823c642605d7a1653 - false - - - - - false - true - idx_sys_company_ts - - - - - 23f973124aedd0244533f4e7b3b103c548b966be - false - - - - - false - true - idx_sys_company_status - - - - - f0036584bd8711715579d21994a0105935605a7e - false - - - - - false - true - idx_sys_company_vc - - - - - 7c46717b372c8596c8138ff412b0363bea79262f - false - - - - - false - true - idx_sys_company_pcs - - - - - e8d877396943acfec73023dba2c1c6e3d7802d62 - false - - - - - false - true - idx_sys_company_tss - - - - - 984d5eac2b3221118a61655e4a5a49c78e0f0151 - false - - - - - - - - - - d3c8f931c968489a14e2fb958b6a376a6a5dd685 108 @@ -14338,6 +13632,39 @@ 0 + + 510f647b2d9d95b636aa517b9826966d98962277 + a066f670f69ee4fff51f21f262236b223733fea7 + + + + + decimal(p) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + ea920cba2fe0eaee64a2310ece7cda4b198b37ec @@ -14439,6 +13766,728 @@ + + fbddb203edfde98403ee9e60374f71e993a8f879 + 863 + 338 + Segoe UI + 9 + 790 + 1037 + + 128 + 128 + 192 + + + + 1b0ca6438eaa1bbc9b5d9d3a57bcaea05f3c517e + 946125b4f4f238f3cca2cc7e1450150e8358e30e + fbddb203edfde98403ee9e60374f71e993a8f879 + -1 + -1 + -1 + -1 + + 0 + 0 + 0 + + 1..n + 0..1 + true + + RESTRICT + RESTRICT + null + null + + + js_sys_company + 公司表 + + + + + + + 8b9e1b544f371e8c2350ab8926707418a6ea8fdf + 5ac7f3a7a755a58e6119c8d4922df644559e632f + + + + + varchar(n) + + + false + false + true + true + false + + + + + + + + + + + false + false + false + + + 0 + + + a535b6c506004a7fdf4d48984c9ff2cfa59c157a + + 5574844cb0d58e6bdfa1ca122c6cca8c5b27602a + 7c46717b372c8596c8138ff412b0363bea79262f + + + + + varchar(n) + + + false + false + true + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + f0f47249781a8c1e655ae11236426b788f099fce + bb54ac3b2667504dc519cb88904db1337b64704e + + + + + nvarchar(n) + + + false + false + true + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + cc2d46a644ef882366305e786927e310dc7945cb + 0bc7917672103a43ef4220fe999083a392356666 + + + + + nvarchar(n) + + + false + false + true + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + bdc9f61f5a7bd4a53e05d939ea82f9885c78eb01 + 84fb98359c82f62d61719d8ce1d1f850d69d972f + 1b0ca6438eaa1bbc9b5d9d3a57bcaea05f3c517e + + + + + varchar(n) + + + false + true + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + 35ae805d1da92afdb99b2fe8c536d1649356fccd + ea920cba2fe0eaee64a2310ece7cda4b198b37ec + 118dab95fc1f792cd468b9f66af2d4fabd98c39b + + + + false + true + idx_sys_company_cc + + + + + b8ea4b73d6d32a222e5abfd453287575ae518480 + false + + + + + false + true + idx_sys_company_pc + + + + + 394369b90c0a5b6efeed3cf823c642605d7a1653 + false + + + + + false + true + idx_sys_company_ts + + + + + 23f973124aedd0244533f4e7b3b103c548b966be + false + + + + + false + true + idx_sys_company_status + + + + + f0036584bd8711715579d21994a0105935605a7e + false + + + + + false + true + idx_sys_company_vc + + + + + 7c46717b372c8596c8138ff412b0363bea79262f + false + + + + + false + true + idx_sys_company_pcs + + + + + e8d877396943acfec73023dba2c1c6e3d7802d62 + false + + + + + false + true + idx_sys_company_tss + + + + + 984d5eac2b3221118a61655e4a5a49c78e0f0151 + false + + + + + + + + + + + + f28f824baf21270b29ed2ce3406dc72ea0993578 + 359 + 361 + Segoe UI + 9 + 761 + 564 + + 128 + 128 + 192 + + + + 5d4e8745b2660e2a5494cd668f6573a85d938f4d + fbddb203edfde98403ee9e60374f71e993a8f879 + f28f824baf21270b29ed2ce3406dc72ea0993578 + -1 + -1 + -1 + -1 + + 0 + 0 + 0 + + 1..n + 0..1 + true + + RESTRICT + RESTRICT + null + null + + + 5f7b730666b316238ee57aef6dde62da05a3f657 + d8b7ee2b5b212db5d77eaf3da4c408bba6fbc4c4 + f28f824baf21270b29ed2ce3406dc72ea0993578 + -1 + -1 + -1 + -1 + + 0 + 0 + 0 + + 1..n + 1 + true + + RESTRICT + RESTRICT + null + null + + + js_sys_employee + 员工表 + + + + + + + 0eb719cd3d6524bc3778d73c3634c1b976baa3c7 + ab8b402ea35a78cdadd5ed446d571c9a80b532ee + + + + + varchar(n) + + + false + false + true + true + false + + + + + + + + + + + false + false + false + + + 0 + + + + 125f4be73b069fa39d11d391ebc30169bb835827 + e0ee6264e4415cc7d534335a38f6dbec62822900 + + + + + nvarchar(n) + + + false + false + true + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 8e6503837a4993eab7dd018391909b3a9185f0bd + 28440c39441334f1eacbfa49440ebfc746edbada + + + + + varchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + b0ac1bfb9a465a46257d8e043e8d0370feb0ee7c + 512f24dbe486a211117dfb58e689ef3e0e5009a0 + 5f7b730666b316238ee57aef6dde62da05a3f657 + + + + + varchar(n) + + + false + true + true + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 2b8439b512c0d6df70ca5f7c65bfd30a32def655 + 2f53aa3a1613598e128ad9cab02374b32d9bf70b + + + + + nvarchar(n) + + + false + false + true + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 76ab6ac096fb9c9be7bf61df683ce21a3da0c33d + 5ac7f3a7a755a58e6119c8d4922df644559e632f + 5d4e8745b2660e2a5494cd668f6573a85d938f4d + + + + + varchar(n) + + + false + true + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + f0f47249781a8c1e655ae11236426b788f099fce + 653e75ecac41402f2d2bcea19230b9cb17536776 + + + + + nvarchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + cf949a5f8d12902f0a8384fa68c72f55e6136812 + ebe0900f7c091a4c0c47ec7fb29f4a9d586cf74b + + + + + character(n) + + + false + false + true + false + false + + + + + + + + + + + false + false + false + + + 0 + + + 85024a2953cf3e3c9c1cce49b2351853ab0d125b + ea920cba2fe0eaee64a2310ece7cda4b198b37ec + + + + false + true + idx_sys_employee_cco + + + + + 76ab6ac096fb9c9be7bf61df683ce21a3da0c33d + false + + + + + false + true + idx_sys_employee_cc + + + + + b8ea4b73d6d32a222e5abfd453287575ae518480 + false + + + + + false + true + idx_sys_employee_ud + + + + + ee78b079f7d319bf8119fd01439cd97424ff49fa + false + + + + + false + true + idx_sys_employee_oc + + + + + b0ac1bfb9a465a46257d8e043e8d0370feb0ee7c + false + + + + + false + true + idx_sys_employee_status + + + + + ebe0900f7c091a4c0c47ec7fb29f4a9d586cf74b + false + + + + + + + + + + diff --git a/modules/core/db/mssql/core.sql b/modules/core/db/mssql/core.sql index d0828fe0..e2a9d53c 100644 --- a/modules/core/db/mssql/core.sql +++ b/modules/core/db/mssql/core.sql @@ -337,6 +337,7 @@ CREATE TABLE [js_sys_log] [user_agent] nvarchar(500), [device_name] varchar(100), [browser_name] varchar(100), + [execute_time] decimal(19), [corp_code] varchar(64) DEFAULT '0' NOT NULL, [corp_name] nvarchar(100) DEFAULT 'JeeSite' NOT NULL, PRIMARY KEY ([id]) diff --git a/modules/core/db/mysql/core.sql b/modules/core/db/mysql/core.sql index 722c0be1..a9bec3c0 100644 --- a/modules/core/db/mysql/core.sql +++ b/modules/core/db/mysql/core.sql @@ -340,6 +340,7 @@ CREATE TABLE js_sys_log user_agent varchar(500) COMMENT '用户代理', device_name varchar(100) COMMENT '设备名称/操作系统', browser_name varchar(100) COMMENT '浏览器名称', + execute_time decimal(19) COMMENT '执行时间', corp_code varchar(64) DEFAULT '0' NOT NULL COMMENT '归属集团Code', corp_name varchar(100) DEFAULT 'JeeSite' NOT NULL COMMENT '归属集团Name', PRIMARY KEY (id) diff --git a/modules/core/db/oracle/core.sql b/modules/core/db/oracle/core.sql index 740371f1..e32d5a78 100644 --- a/modules/core/db/oracle/core.sql +++ b/modules/core/db/oracle/core.sql @@ -337,6 +337,7 @@ CREATE TABLE js_sys_log user_agent nvarchar2(500), device_name varchar2(100), browser_name varchar2(100), + execute_time number(19), corp_code varchar2(64) DEFAULT '0' NOT NULL, corp_name nvarchar2(100) DEFAULT 'JeeSite' NOT NULL, PRIMARY KEY (id) @@ -1081,6 +1082,7 @@ COMMENT ON COLUMN js_sys_log.exception_info IS '异常信息'; COMMENT ON COLUMN js_sys_log.user_agent IS '用户代理'; COMMENT ON COLUMN js_sys_log.device_name IS '设备名称/操作系统'; COMMENT ON COLUMN js_sys_log.browser_name IS '浏览器名称'; +COMMENT ON COLUMN js_sys_log.execute_time IS '执行时间'; COMMENT ON COLUMN js_sys_log.corp_code IS '归属集团Code'; COMMENT ON COLUMN js_sys_log.corp_name IS '归属集团Name'; COMMENT ON TABLE js_sys_menu IS '菜单表'; diff --git a/modules/core/db/postgresql/core.sql b/modules/core/db/postgresql/core.sql index 1b43885f..99e97fd7 100644 --- a/modules/core/db/postgresql/core.sql +++ b/modules/core/db/postgresql/core.sql @@ -337,6 +337,7 @@ CREATE TABLE js_sys_log user_agent varchar(500), device_name varchar(100), browser_name varchar(100), + execute_time decimal(19), corp_code varchar(64) DEFAULT '0' NOT NULL, corp_name varchar(100) DEFAULT 'JeeSite' NOT NULL, PRIMARY KEY (id) @@ -1081,6 +1082,7 @@ COMMENT ON COLUMN js_sys_log.exception_info IS '异常信息'; COMMENT ON COLUMN js_sys_log.user_agent IS '用户代理'; COMMENT ON COLUMN js_sys_log.device_name IS '设备名称/操作系统'; COMMENT ON COLUMN js_sys_log.browser_name IS '浏览器名称'; +COMMENT ON COLUMN js_sys_log.execute_time IS '执行时间'; COMMENT ON COLUMN js_sys_log.corp_code IS '归属集团Code'; COMMENT ON COLUMN js_sys_log.corp_name IS '归属集团Name'; COMMENT ON TABLE js_sys_menu IS '菜单表'; diff --git a/modules/core/src/main/java/com/jeesite/common/shiro/filter/LogoutFilter.java b/modules/core/src/main/java/com/jeesite/common/shiro/filter/LogoutFilter.java index e17c567d..4fd9c932 100644 --- a/modules/core/src/main/java/com/jeesite/common/shiro/filter/LogoutFilter.java +++ b/modules/core/src/main/java/com/jeesite/common/shiro/filter/LogoutFilter.java @@ -18,6 +18,7 @@ import com.jeesite.common.config.Global; import com.jeesite.common.web.http.ServletUtils; import com.jeesite.modules.sys.entity.Log; import com.jeesite.modules.sys.utils.LogUtils; +import com.jeesite.modules.sys.utils.UserUtils; /** * 登出过滤器 @@ -36,7 +37,7 @@ public class LogoutFilter extends org.apache.shiro.web.filter.authc.LogoutFilter //try/catch added for SHIRO-298: try { // 记录用户退出日志 - LogUtils.saveLog(ServletUtils.getRequest(), "系统退出", Log.TYPE_LOGIN_LOGOUT); + LogUtils.saveLog(UserUtils.getUser(), ServletUtils.getRequest(), "系统退出", Log.TYPE_LOGIN_LOGOUT); // 退出登录 subject.logout(); } catch (SessionException ise) { diff --git a/modules/core/src/main/java/com/jeesite/common/shiro/realm/AuthorizingRealm.java b/modules/core/src/main/java/com/jeesite/common/shiro/realm/AuthorizingRealm.java index ddf756b3..14f99948 100644 --- a/modules/core/src/main/java/com/jeesite/common/shiro/realm/AuthorizingRealm.java +++ b/modules/core/src/main/java/com/jeesite/common/shiro/realm/AuthorizingRealm.java @@ -58,13 +58,13 @@ public class AuthorizingRealm extends com.jeesite.common.shiro.realm.BaseAuthori userService.updateUserLoginInfo(user); // 记录用户登录日志 - LogUtils.saveLog(ServletUtils.getRequest(), "系统登录", Log.TYPE_LOGIN_LOGOUT); + LogUtils.saveLog(user, ServletUtils.getRequest(), "系统登录", Log.TYPE_LOGIN_LOGOUT); } @Override public void onLogoutSuccess(User logoutUser, HttpServletRequest request) { // 记录用户退出日志 - LogUtils.saveLog(logoutUser, request, null, null, "系统退出", Log.TYPE_LOGIN_LOGOUT); + LogUtils.saveLog(logoutUser, request, "系统退出", Log.TYPE_LOGIN_LOGOUT); } public void setUserService(UserService userService) { diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/db/InitCoreData.xlsx b/modules/core/src/main/java/com/jeesite/modules/sys/db/InitCoreData.xlsx index dc5b0530..70b1a9db 100644 Binary files a/modules/core/src/main/java/com/jeesite/modules/sys/db/InitCoreData.xlsx and b/modules/core/src/main/java/com/jeesite/modules/sys/db/InitCoreData.xlsx differ diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/entity/Log.java b/modules/core/src/main/java/com/jeesite/modules/sys/entity/Log.java index b8c61916..0c5a2354 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/entity/Log.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/entity/Log.java @@ -13,6 +13,7 @@ import com.jeesite.common.collect.MapUtils; import com.jeesite.common.entity.BaseEntity; import com.jeesite.common.entity.DataEntity; import com.jeesite.common.lang.StringUtils; +import com.jeesite.common.lang.TimeUtils; import com.jeesite.common.mybatis.annotation.Column; import com.jeesite.common.mybatis.annotation.Table; import com.jeesite.common.mybatis.mapper.query.QueryType; @@ -42,6 +43,7 @@ import com.jeesite.common.mybatis.mapper.query.QueryType; @Column(name="user_agent", attrName="userAgent", label="用户代理"), @Column(name="device_name", attrName="deviceName", label="设备名称/操作系统", queryType=QueryType.LIKE), @Column(name="browser_name", attrName="browserName", label="浏览器名称", queryType=QueryType.LIKE), + @Column(name="execute_time", attrName="executeTime", label="执行时间"), }, orderBy="a.create_date DESC" ) public class Log extends DataEntity { @@ -68,6 +70,7 @@ public class Log extends DataEntity { private String userAgent; // 用户代理 private String deviceName; // 设备名称/操作系统 private String browserName; // 浏览器名称 + private Long executeTime; // 执行时间 private Map paramsMap; // 操作提交的数据,临时存储用 @@ -206,6 +209,18 @@ public class Log extends DataEntity { this.browserName = browserName; } + public Long getExecuteTime() { + return executeTime; + } + + public void setExecuteTime(Long executeTime) { + this.executeTime = executeTime; + } + + public String getExecuteTimeFormat(){ + return TimeUtils.formatDateAgo(executeTime); + } + /** * 设置请求参数 * @param paramMap diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/interceptor/LogInterceptor.java b/modules/core/src/main/java/com/jeesite/modules/sys/interceptor/LogInterceptor.java index e66c8cd1..477aad97 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/interceptor/LogInterceptor.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/interceptor/LogInterceptor.java @@ -12,6 +12,7 @@ import org.springframework.core.NamedThreadLocal; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; +import com.jeesite.common.datasource.DataSourceHolder; import com.jeesite.common.lang.DateUtils; import com.jeesite.common.lang.TimeUtils; import com.jeesite.common.service.BaseService; @@ -31,9 +32,9 @@ public class LogInterceptor extends BaseService implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + long beginTime = System.currentTimeMillis();// 1、开始时间 + startTimeThreadLocal.set(beginTime); // 线程绑定变量(该数据只有当前请求的线程可见) if (logger.isDebugEnabled()){ - long beginTime = System.currentTimeMillis();//1、开始时间 - startTimeThreadLocal.set(beginTime); //线程绑定变量(该数据只有当前请求的线程可见) logger.debug("开始计时: {} URI: {}", new SimpleDateFormat("hh:mm:ss.SSS") .format(beginTime), request.getRequestURI()); } @@ -51,19 +52,23 @@ public class LogInterceptor extends BaseService implements HandlerInterceptor { @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { + long beginTime = startTimeThreadLocal.get();// 得到线程绑定的局部变量(开始时间) + long endTime = System.currentTimeMillis(); // 2、结束时间 + long executeTime = endTime - beginTime; // 3、获取执行时间 + startTimeThreadLocal.remove(); // 用完之后销毁线程变量数据 + + // 恢复多数据源参数,使用默认数据源 + DataSourceHolder.clearDataSourceName(); // 保存日志 - LogUtils.saveLog(UserUtils.getUser(), request, handler, ex, null, null); + LogUtils.saveLog(UserUtils.getUser(), request, handler, ex, null, null, executeTime); // 打印JVM信息。 if (logger.isDebugEnabled()){ - long beginTime = startTimeThreadLocal.get();//得到线程绑定的局部变量(开始时间) - long endTime = System.currentTimeMillis(); //2、结束时间 logger.debug("计时结束: {} 用时: {} URI: {} 最大内存: {}m 已分配内存: {}m 已分配内存中的剩余空间: {}m 最大可用内存: {}m", - DateUtils.formatDate(endTime, "hh:mm:ss.SSS"), TimeUtils.formatDateAgo(endTime - beginTime), + DateUtils.formatDate(endTime, "hh:mm:ss.SSS"), TimeUtils.formatDateAgo(executeTime), request.getRequestURI(), Runtime.getRuntime().maxMemory()/1024/1024, Runtime.getRuntime().totalMemory()/1024/1024, Runtime.getRuntime().freeMemory()/1024/1024, (Runtime.getRuntime().maxMemory()-Runtime.getRuntime().totalMemory()+Runtime.getRuntime().freeMemory())/1024/1024); - startTimeThreadLocal.remove(); //用完之后销毁线程变量数据 } } diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/utils/LogUtils.java b/modules/core/src/main/java/com/jeesite/modules/sys/utils/LogUtils.java index 8a4ac4b2..08817498 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/utils/LogUtils.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/utils/LogUtils.java @@ -54,14 +54,15 @@ public class LogUtils { /** * 保存日志 */ - public static void saveLog(HttpServletRequest request, String logTitle, String logType){ - saveLog(UserUtils.getUser(), request, null, null, logTitle, logType); + public static void saveLog(User user, HttpServletRequest request, String logTitle, String logType){ + saveLog(user, request, null, null, logTitle, logType, 0); } /** * 保存日志 + * @param executeTime */ - public static void saveLog(User user, HttpServletRequest request, Object handler, Exception ex, String logTitle, String logType){ + public static void saveLog(User user, HttpServletRequest request, Object handler, Exception ex, String logTitle, String logType, long executeTime){ if (user == null || StringUtils.isBlank(user.getUserCode()) || request == null){ return; } @@ -91,6 +92,7 @@ public class LogUtils { log.setCorpCode(user.getCorpCode()); log.setCorpName(user.getCorpName()); } + log.setExecuteTime(executeTime); log.setCurrentUser(user); log.preInsert(); diff --git a/modules/core/src/main/resources/db/upgrade/core/mssql/mssql_4.0.1.sql b/modules/core/src/main/resources/db/upgrade/core/mssql/mssql_4.0.1.sql new file mode 100644 index 00000000..e3c1f931 --- /dev/null +++ b/modules/core/src/main/resources/db/upgrade/core/mssql/mssql_4.0.1.sql @@ -0,0 +1,7 @@ + +-- 日志表新增执行时间字段 +ALTER TABLE [dbo].[${_prefix}sys_log] ADD [execute_time] decimal(19) NULL; + +-- 更新模块数据库版本 +update ${_prefix}sys_module set current_version = '4.0.1' where module_code = 'core'; +commit; \ No newline at end of file diff --git a/modules/core/src/main/resources/db/upgrade/core/mysql/mysql_4.0.1.sql b/modules/core/src/main/resources/db/upgrade/core/mysql/mysql_4.0.1.sql new file mode 100644 index 00000000..1e763f4e --- /dev/null +++ b/modules/core/src/main/resources/db/upgrade/core/mysql/mysql_4.0.1.sql @@ -0,0 +1,8 @@ + +-- 日志表新增执行时间字段 +ALTER TABLE ${_prefix}sys_log +ADD COLUMN `execute_time` decimal(19,0) NULL COMMENT '执行时间' AFTER `browser_name`; + +-- 更新模块数据库版本 +update ${_prefix}sys_module set current_version = '4.0.1' where module_code = 'core'; +commit; \ No newline at end of file diff --git a/modules/core/src/main/resources/db/upgrade/core/oracle/oracle_4.0.1.sql b/modules/core/src/main/resources/db/upgrade/core/oracle/oracle_4.0.1.sql new file mode 100644 index 00000000..f24845f4 --- /dev/null +++ b/modules/core/src/main/resources/db/upgrade/core/oracle/oracle_4.0.1.sql @@ -0,0 +1,8 @@ + +-- 日志表新增执行时间字段 +ALTER TABLE ${_prefix}sys_log ADD execute_time NUMBER(19) NULL; +COMMENT ON COLUMN ${_prefix}sys_log.execute_time IS '执行时间'; + +-- 更新模块数据库版本 +update ${_prefix}sys_module set current_version = '4.0.1' where module_code = 'core'; +commit; \ No newline at end of file diff --git a/modules/core/src/main/resources/db/upgrade/core/oracle/oracle_4.0.xx.sql b/modules/core/src/main/resources/db/upgrade/core/oracle/oracle_4.0.xx.sql deleted file mode 100644 index f7f51626..00000000 --- a/modules/core/src/main/resources/db/upgrade/core/oracle/oracle_4.0.xx.sql +++ /dev/null @@ -1,7 +0,0 @@ - - - - --- 更新模块数据库版本 -update ${_prefix}sys_module set current_version = '4.0.xx' where module_code = 'core'; -commit; \ No newline at end of file diff --git a/modules/core/src/main/resources/db/upgrade/core/postgresql/postgresql_4.0.1.sql b/modules/core/src/main/resources/db/upgrade/core/postgresql/postgresql_4.0.1.sql new file mode 100644 index 00000000..a9b24e37 --- /dev/null +++ b/modules/core/src/main/resources/db/upgrade/core/postgresql/postgresql_4.0.1.sql @@ -0,0 +1,8 @@ + +-- 日志表新增执行时间字段 +ALTER TABLE ${_prefix}sys_log ADD COLUMN execute_time decimal(19); +COMMENT ON COLUMN ${_prefix}sys_log.execute_time IS '执行时间'; + +-- 更新模块数据库版本 +update ${_prefix}sys_module set current_version = '4.0.1' where module_code = 'core'; +commit; \ No newline at end of file diff --git a/modules/core/src/main/resources/views/modules/sys/logForm.html b/modules/core/src/main/resources/views/modules/sys/logForm.html index 407a99e1..4e9b228b 100644 --- a/modules/core/src/main/resources/views/modules/sys/logForm.html +++ b/modules/core/src/main/resources/views/modules/sys/logForm.html @@ -162,6 +162,17 @@ + + + + + * 响应时间: + + <#form:input path="executeTimeFormat" maxlength="100" class="form-control "/> + + + +