Commit 570794a99ca84724271dccaab96ffb65b6afb187
Committed by
Gitee
!2 移除超时的在线用户-完成
Merge pull request !2 from LeeYan9/feature_user-session-timeout
Showing
11 changed files
with
290 additions
and
117 deletions
sql/ruoyi-vue-pro.sql
| @@ -37,9 +37,9 @@ CREATE TABLE `inf_api_access_log` ( | @@ -37,9 +37,9 @@ CREATE TABLE `inf_api_access_log` ( | ||
| 37 | `duration` int(11) NOT NULL COMMENT '执行时长', | 37 | `duration` int(11) NOT NULL COMMENT '执行时长', |
| 38 | `result_code` int(11) NOT NULL DEFAULT '0' COMMENT '结果码', | 38 | `result_code` int(11) NOT NULL DEFAULT '0' COMMENT '结果码', |
| 39 | `result_msg` varchar(512) DEFAULT '' COMMENT '结果提示', | 39 | `result_msg` varchar(512) DEFAULT '' COMMENT '结果提示', |
| 40 | - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', | 40 | + `creator` varchar(64) DEFAULT '' COMMENT '创建者', |
| 41 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | 41 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', |
| 42 | - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', | 42 | + `updater` varchar(64) DEFAULT '' COMMENT '更新者', |
| 43 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 43 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 44 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 44 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 45 | PRIMARY KEY (`id`) USING BTREE | 45 | PRIMARY KEY (`id`) USING BTREE |
| @@ -78,9 +78,9 @@ CREATE TABLE `inf_api_error_log` ( | @@ -78,9 +78,9 @@ CREATE TABLE `inf_api_error_log` ( | ||
| 78 | `process_status` tinyint(4) NOT NULL COMMENT '处理状态', | 78 | `process_status` tinyint(4) NOT NULL COMMENT '处理状态', |
| 79 | `process_time` datetime DEFAULT NULL COMMENT '处理时间', | 79 | `process_time` datetime DEFAULT NULL COMMENT '处理时间', |
| 80 | `process_user_id` int(11) DEFAULT '0' COMMENT '处理用户编号', | 80 | `process_user_id` int(11) DEFAULT '0' COMMENT '处理用户编号', |
| 81 | - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', | 81 | + `creator` varchar(64) DEFAULT '' COMMENT '创建者', |
| 82 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | 82 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', |
| 83 | - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', | 83 | + `updater` varchar(64) DEFAULT '' COMMENT '更新者', |
| 84 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 84 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 85 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 85 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 86 | PRIMARY KEY (`id`) USING BTREE | 86 | PRIMARY KEY (`id`) USING BTREE |
| @@ -105,9 +105,9 @@ CREATE TABLE `inf_config` ( | @@ -105,9 +105,9 @@ CREATE TABLE `inf_config` ( | ||
| 105 | `value` varchar(500) NOT NULL DEFAULT '' COMMENT '参数键值', | 105 | `value` varchar(500) NOT NULL DEFAULT '' COMMENT '参数键值', |
| 106 | `sensitive` bit(1) NOT NULL COMMENT '是否敏感', | 106 | `sensitive` bit(1) NOT NULL COMMENT '是否敏感', |
| 107 | `remark` varchar(500) DEFAULT NULL COMMENT '备注', | 107 | `remark` varchar(500) DEFAULT NULL COMMENT '备注', |
| 108 | - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', | 108 | + `creator` varchar(64) DEFAULT '' COMMENT '创建者', |
| 109 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | 109 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', |
| 110 | - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', | 110 | + `updater` varchar(64) DEFAULT '' COMMENT '更新者', |
| 111 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 111 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 112 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 112 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 113 | PRIMARY KEY (`id`) USING BTREE | 113 | PRIMARY KEY (`id`) USING BTREE |
| @@ -138,9 +138,9 @@ CREATE TABLE `inf_job` ( | @@ -138,9 +138,9 @@ CREATE TABLE `inf_job` ( | ||
| 138 | `retry_count` int(11) NOT NULL DEFAULT '0' COMMENT '重试次数', | 138 | `retry_count` int(11) NOT NULL DEFAULT '0' COMMENT '重试次数', |
| 139 | `retry_interval` int(11) NOT NULL DEFAULT '0' COMMENT '重试间隔', | 139 | `retry_interval` int(11) NOT NULL DEFAULT '0' COMMENT '重试间隔', |
| 140 | `monitor_timeout` int(11) NOT NULL DEFAULT '0' COMMENT '监控超时时间', | 140 | `monitor_timeout` int(11) NOT NULL DEFAULT '0' COMMENT '监控超时时间', |
| 141 | - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', | 141 | + `creator` varchar(64) DEFAULT '' COMMENT '创建者', |
| 142 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | 142 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', |
| 143 | - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', | 143 | + `updater` varchar(64) DEFAULT '' COMMENT '更新者', |
| 144 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 144 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 145 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 145 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 146 | PRIMARY KEY (`id`) USING BTREE | 146 | PRIMARY KEY (`id`) USING BTREE |
| @@ -169,9 +169,9 @@ CREATE TABLE `inf_job_log` ( | @@ -169,9 +169,9 @@ CREATE TABLE `inf_job_log` ( | ||
| 169 | `duration` int(11) DEFAULT NULL COMMENT '执行时长', | 169 | `duration` int(11) DEFAULT NULL COMMENT '执行时长', |
| 170 | `status` tinyint(4) NOT NULL COMMENT '任务状态', | 170 | `status` tinyint(4) NOT NULL COMMENT '任务状态', |
| 171 | `result` varchar(4000) DEFAULT '' COMMENT '结果数据', | 171 | `result` varchar(4000) DEFAULT '' COMMENT '结果数据', |
| 172 | - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', | 172 | + `creator` varchar(64) DEFAULT '' COMMENT '创建者', |
| 173 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | 173 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', |
| 174 | - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', | 174 | + `updater` varchar(64) DEFAULT '' COMMENT '更新者', |
| 175 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 175 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 176 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 176 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 177 | PRIMARY KEY (`id`) USING BTREE | 177 | PRIMARY KEY (`id`) USING BTREE |
| @@ -196,9 +196,9 @@ CREATE TABLE `sys_dept` ( | @@ -196,9 +196,9 @@ CREATE TABLE `sys_dept` ( | ||
| 196 | `phone` varchar(11) DEFAULT NULL COMMENT '联系电话', | 196 | `phone` varchar(11) DEFAULT NULL COMMENT '联系电话', |
| 197 | `email` varchar(50) DEFAULT NULL COMMENT '邮箱', | 197 | `email` varchar(50) DEFAULT NULL COMMENT '邮箱', |
| 198 | `status` tinyint(4) NOT NULL COMMENT '部门状态(0正常 1停用)', | 198 | `status` tinyint(4) NOT NULL COMMENT '部门状态(0正常 1停用)', |
| 199 | - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', | 199 | + `creator` varchar(64) DEFAULT '' COMMENT '创建者', |
| 200 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | 200 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', |
| 201 | - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', | 201 | + `updater` varchar(64) DEFAULT '' COMMENT '更新者', |
| 202 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 202 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 203 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 203 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 204 | PRIMARY KEY (`id`) USING BTREE | 204 | PRIMARY KEY (`id`) USING BTREE |
| @@ -232,9 +232,9 @@ CREATE TABLE `sys_dict_data` ( | @@ -232,9 +232,9 @@ CREATE TABLE `sys_dict_data` ( | ||
| 232 | `dict_type` varchar(100) NOT NULL DEFAULT '' COMMENT '字典类型', | 232 | `dict_type` varchar(100) NOT NULL DEFAULT '' COMMENT '字典类型', |
| 233 | `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态(0正常 1停用)', | 233 | `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态(0正常 1停用)', |
| 234 | `remark` varchar(500) DEFAULT NULL COMMENT '备注', | 234 | `remark` varchar(500) DEFAULT NULL COMMENT '备注', |
| 235 | - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', | 235 | + `creator` varchar(64) DEFAULT '' COMMENT '创建者', |
| 236 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | 236 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', |
| 237 | - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', | 237 | + `updater` varchar(64) DEFAULT '' COMMENT '更新者', |
| 238 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 238 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 239 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 239 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 240 | PRIMARY KEY (`id`) USING BTREE | 240 | PRIMARY KEY (`id`) USING BTREE |
| @@ -310,9 +310,9 @@ CREATE TABLE `sys_dict_type` ( | @@ -310,9 +310,9 @@ CREATE TABLE `sys_dict_type` ( | ||
| 310 | `type` varchar(100) NOT NULL DEFAULT '' COMMENT '字典类型', | 310 | `type` varchar(100) NOT NULL DEFAULT '' COMMENT '字典类型', |
| 311 | `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态(0正常 1停用)', | 311 | `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态(0正常 1停用)', |
| 312 | `remark` varchar(500) DEFAULT NULL COMMENT '备注', | 312 | `remark` varchar(500) DEFAULT NULL COMMENT '备注', |
| 313 | - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', | 313 | + `creator` varchar(64) DEFAULT '' COMMENT '创建者', |
| 314 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | 314 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', |
| 315 | - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', | 315 | + `updater` varchar(64) DEFAULT '' COMMENT '更新者', |
| 316 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 316 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 317 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 317 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 318 | PRIMARY KEY (`id`) USING BTREE, | 318 | PRIMARY KEY (`id`) USING BTREE, |
| @@ -349,9 +349,9 @@ DROP TABLE IF EXISTS `sys_file`; | @@ -349,9 +349,9 @@ DROP TABLE IF EXISTS `sys_file`; | ||
| 349 | CREATE TABLE `sys_file` ( | 349 | CREATE TABLE `sys_file` ( |
| 350 | `id` varchar(188) NOT NULL COMMENT '文件路径', | 350 | `id` varchar(188) NOT NULL COMMENT '文件路径', |
| 351 | `content` blob NOT NULL COMMENT '文件内容', | 351 | `content` blob NOT NULL COMMENT '文件内容', |
| 352 | - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', | 352 | + `creator` varchar(64) DEFAULT '' COMMENT '创建者', |
| 353 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | 353 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', |
| 354 | - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', | 354 | + `updater` varchar(64) DEFAULT '' COMMENT '更新者', |
| 355 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 355 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 356 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 356 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 357 | PRIMARY KEY (`id`) USING BTREE | 357 | PRIMARY KEY (`id`) USING BTREE |
| @@ -376,9 +376,9 @@ CREATE TABLE `sys_login_log` ( | @@ -376,9 +376,9 @@ CREATE TABLE `sys_login_log` ( | ||
| 376 | `result` tinyint(4) NOT NULL COMMENT '登陆结果', | 376 | `result` tinyint(4) NOT NULL COMMENT '登陆结果', |
| 377 | `user_ip` varchar(50) NOT NULL COMMENT '用户 IP', | 377 | `user_ip` varchar(50) NOT NULL COMMENT '用户 IP', |
| 378 | `user_agent` varchar(512) NOT NULL COMMENT '浏览器 UA', | 378 | `user_agent` varchar(512) NOT NULL COMMENT '浏览器 UA', |
| 379 | - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', | 379 | + `creator` varchar(64) DEFAULT '' COMMENT '创建者', |
| 380 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | 380 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', |
| 381 | - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', | 381 | + `updater` varchar(64) DEFAULT '' COMMENT '更新者', |
| 382 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 382 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 383 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 383 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 384 | PRIMARY KEY (`id`) USING BTREE | 384 | PRIMARY KEY (`id`) USING BTREE |
| @@ -405,9 +405,9 @@ CREATE TABLE `sys_menu` ( | @@ -405,9 +405,9 @@ CREATE TABLE `sys_menu` ( | ||
| 405 | `icon` varchar(100) DEFAULT '#' COMMENT '菜单图标', | 405 | `icon` varchar(100) DEFAULT '#' COMMENT '菜单图标', |
| 406 | `component` varchar(255) DEFAULT NULL COMMENT '组件路径', | 406 | `component` varchar(255) DEFAULT NULL COMMENT '组件路径', |
| 407 | `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '菜单状态(0正常 1停用)', | 407 | `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '菜单状态(0正常 1停用)', |
| 408 | - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', | 408 | + `creator` varchar(64) DEFAULT '' COMMENT '创建者', |
| 409 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | 409 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', |
| 410 | - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', | 410 | + `updater` varchar(64) DEFAULT '' COMMENT '更新者', |
| 411 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 411 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 412 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 412 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 413 | PRIMARY KEY (`id`) USING BTREE | 413 | PRIMARY KEY (`id`) USING BTREE |
| @@ -532,9 +532,9 @@ CREATE TABLE `sys_notice` ( | @@ -532,9 +532,9 @@ CREATE TABLE `sys_notice` ( | ||
| 532 | `content` text NOT NULL COMMENT '公告内容', | 532 | `content` text NOT NULL COMMENT '公告内容', |
| 533 | `notice_type` tinyint(4) NOT NULL COMMENT '公告类型(1通知 2公告)', | 533 | `notice_type` tinyint(4) NOT NULL COMMENT '公告类型(1通知 2公告)', |
| 534 | `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '公告状态(0正常 1关闭)', | 534 | `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '公告状态(0正常 1关闭)', |
| 535 | - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', | 535 | + `creator` varchar(64) DEFAULT '' COMMENT '创建者', |
| 536 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | 536 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', |
| 537 | - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', | 537 | + `updater` varchar(64) DEFAULT '' COMMENT '更新者', |
| 538 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 538 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 539 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 539 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 540 | PRIMARY KEY (`id`) USING BTREE | 540 | PRIMARY KEY (`id`) USING BTREE |
| @@ -573,9 +573,9 @@ CREATE TABLE `sys_operate_log` ( | @@ -573,9 +573,9 @@ CREATE TABLE `sys_operate_log` ( | ||
| 573 | `result_code` int(11) NOT NULL DEFAULT '0' COMMENT '结果码', | 573 | `result_code` int(11) NOT NULL DEFAULT '0' COMMENT '结果码', |
| 574 | `result_msg` varchar(512) DEFAULT '' COMMENT '结果提示', | 574 | `result_msg` varchar(512) DEFAULT '' COMMENT '结果提示', |
| 575 | `result_data` varchar(4000) DEFAULT '' COMMENT '结果数据', | 575 | `result_data` varchar(4000) DEFAULT '' COMMENT '结果数据', |
| 576 | - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', | 576 | + `creator` varchar(64) DEFAULT '' COMMENT '创建者', |
| 577 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | 577 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', |
| 578 | - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', | 578 | + `updater` varchar(64) DEFAULT '' COMMENT '更新者', |
| 579 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 579 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 580 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 580 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 581 | PRIMARY KEY (`id`) USING BTREE | 581 | PRIMARY KEY (`id`) USING BTREE |
| @@ -598,9 +598,9 @@ CREATE TABLE `sys_post` ( | @@ -598,9 +598,9 @@ CREATE TABLE `sys_post` ( | ||
| 598 | `sort` int(4) NOT NULL COMMENT '显示顺序', | 598 | `sort` int(4) NOT NULL COMMENT '显示顺序', |
| 599 | `status` tinyint(4) NOT NULL COMMENT '状态(0正常 1停用)', | 599 | `status` tinyint(4) NOT NULL COMMENT '状态(0正常 1停用)', |
| 600 | `remark` varchar(500) DEFAULT NULL COMMENT '备注', | 600 | `remark` varchar(500) DEFAULT NULL COMMENT '备注', |
| 601 | - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', | 601 | + `creator` varchar(64) DEFAULT '' COMMENT '创建者', |
| 602 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | 602 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', |
| 603 | - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', | 603 | + `updater` varchar(64) DEFAULT '' COMMENT '更新者', |
| 604 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 604 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 605 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 605 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 606 | PRIMARY KEY (`id`) USING BTREE | 606 | PRIMARY KEY (`id`) USING BTREE |
| @@ -631,9 +631,9 @@ CREATE TABLE `sys_role` ( | @@ -631,9 +631,9 @@ CREATE TABLE `sys_role` ( | ||
| 631 | `status` tinyint(4) NOT NULL COMMENT '角色状态(0正常 1停用)', | 631 | `status` tinyint(4) NOT NULL COMMENT '角色状态(0正常 1停用)', |
| 632 | `type` tinyint(4) NOT NULL COMMENT '角色类型', | 632 | `type` tinyint(4) NOT NULL COMMENT '角色类型', |
| 633 | `remark` varchar(500) DEFAULT NULL COMMENT '备注', | 633 | `remark` varchar(500) DEFAULT NULL COMMENT '备注', |
| 634 | - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', | 634 | + `creator` varchar(64) DEFAULT '' COMMENT '创建者', |
| 635 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | 635 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', |
| 636 | - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', | 636 | + `updater` varchar(64) DEFAULT '' COMMENT '更新者', |
| 637 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 637 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 638 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 638 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 639 | PRIMARY KEY (`id`) USING BTREE | 639 | PRIMARY KEY (`id`) USING BTREE |
| @@ -656,9 +656,9 @@ CREATE TABLE `sys_role_menu` ( | @@ -656,9 +656,9 @@ CREATE TABLE `sys_role_menu` ( | ||
| 656 | `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增编号', | 656 | `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增编号', |
| 657 | `role_id` bigint(20) NOT NULL COMMENT '角色ID', | 657 | `role_id` bigint(20) NOT NULL COMMENT '角色ID', |
| 658 | `menu_id` bigint(20) NOT NULL COMMENT '菜单ID', | 658 | `menu_id` bigint(20) NOT NULL COMMENT '菜单ID', |
| 659 | - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', | 659 | + `creator` varchar(64) DEFAULT '' COMMENT '创建者', |
| 660 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | 660 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', |
| 661 | - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', | 661 | + `updater` varchar(64) DEFAULT '' COMMENT '更新者', |
| 662 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 662 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 663 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 663 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 664 | PRIMARY KEY (`id`) USING BTREE | 664 | PRIMARY KEY (`id`) USING BTREE |
| @@ -843,9 +843,9 @@ CREATE TABLE `sys_user` ( | @@ -843,9 +843,9 @@ CREATE TABLE `sys_user` ( | ||
| 843 | `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '帐号状态(0正常 1停用)', | 843 | `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '帐号状态(0正常 1停用)', |
| 844 | `login_ip` varchar(50) DEFAULT '' COMMENT '最后登录IP', | 844 | `login_ip` varchar(50) DEFAULT '' COMMENT '最后登录IP', |
| 845 | `login_date` datetime DEFAULT NULL COMMENT '最后登录时间', | 845 | `login_date` datetime DEFAULT NULL COMMENT '最后登录时间', |
| 846 | - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', | 846 | + `creator` varchar(64) DEFAULT '' COMMENT '创建者', |
| 847 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | 847 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', |
| 848 | - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', | 848 | + `updater` varchar(64) DEFAULT '' COMMENT '更新者', |
| 849 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 849 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 850 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 850 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 851 | PRIMARY KEY (`id`) USING BTREE | 851 | PRIMARY KEY (`id`) USING BTREE |
| @@ -870,9 +870,9 @@ CREATE TABLE `sys_user_role` ( | @@ -870,9 +870,9 @@ CREATE TABLE `sys_user_role` ( | ||
| 870 | `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增编号', | 870 | `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增编号', |
| 871 | `user_id` bigint(20) NOT NULL COMMENT '用户ID', | 871 | `user_id` bigint(20) NOT NULL COMMENT '用户ID', |
| 872 | `role_id` bigint(20) NOT NULL COMMENT '角色ID', | 872 | `role_id` bigint(20) NOT NULL COMMENT '角色ID', |
| 873 | - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', | 873 | + `creator` varchar(64) DEFAULT '' COMMENT '创建者', |
| 874 | `create_time` datetime DEFAULT NULL COMMENT '创建时间', | 874 | `create_time` datetime DEFAULT NULL COMMENT '创建时间', |
| 875 | - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', | 875 | + `updater` varchar(64) DEFAULT '' COMMENT '更新者', |
| 876 | `update_time` datetime DEFAULT NULL COMMENT '更新时间', | 876 | `update_time` datetime DEFAULT NULL COMMENT '更新时间', |
| 877 | `deleted` bit(1) DEFAULT b'0' COMMENT '是否删除', | 877 | `deleted` bit(1) DEFAULT b'0' COMMENT '是否删除', |
| 878 | PRIMARY KEY (`id`) USING BTREE | 878 | PRIMARY KEY (`id`) USING BTREE |
| @@ -898,11 +898,13 @@ DROP TABLE IF EXISTS `sys_user_session`; | @@ -898,11 +898,13 @@ DROP TABLE IF EXISTS `sys_user_session`; | ||
| 898 | CREATE TABLE `sys_user_session` ( | 898 | CREATE TABLE `sys_user_session` ( |
| 899 | `id` varchar(32) NOT NULL COMMENT '会话编号', | 899 | `id` varchar(32) NOT NULL COMMENT '会话编号', |
| 900 | `user_id` bigint(20) NOT NULL COMMENT '用户编号', | 900 | `user_id` bigint(20) NOT NULL COMMENT '用户编号', |
| 901 | + `username` varchar(50) NOT NULL DEFAULT '' COMMENT '用户账号', | ||
| 901 | `user_ip` varchar(50) NOT NULL COMMENT '用户 IP', | 902 | `user_ip` varchar(50) NOT NULL COMMENT '用户 IP', |
| 902 | `user_agent` varchar(512) NOT NULL COMMENT '浏览器 UA', | 903 | `user_agent` varchar(512) NOT NULL COMMENT '浏览器 UA', |
| 903 | - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', | 904 | + `session_timeout` datetime NOT NULL COMMENT '会话超时时间', |
| 905 | + `creator` varchar(64) DEFAULT '' COMMENT '创建者', | ||
| 904 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | 906 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', |
| 905 | - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', | 907 | + `updater` varchar(64) DEFAULT '' COMMENT '更新者', |
| 906 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 908 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 907 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 909 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 908 | PRIMARY KEY (`id`) USING BTREE | 910 | PRIMARY KEY (`id`) USING BTREE |
| @@ -912,68 +914,69 @@ CREATE TABLE `sys_user_session` ( | @@ -912,68 +914,69 @@ CREATE TABLE `sys_user_session` ( | ||
| 912 | -- Records of sys_user_session | 914 | -- Records of sys_user_session |
| 913 | -- ---------------------------- | 915 | -- ---------------------------- |
| 914 | BEGIN; | 916 | BEGIN; |
| 915 | -INSERT INTO `sys_user_session` VALUES ('015797486c564c01b128cb2662bfa1f9', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-08 03:20:22', '', '2021-02-08 03:20:22', b'0'); | ||
| 916 | -INSERT INTO `sys_user_session` VALUES ('019f009268e24cc1957c46763eef1fd4', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-07 08:36:48', '', '2021-02-14 20:04:33', b'0'); | ||
| 917 | -INSERT INTO `sys_user_session` VALUES ('037f130370a744a4b1db19aef205b8ae', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-08 20:38:37', '', '2021-02-08 20:38:37', b'0'); | ||
| 918 | -INSERT INTO `sys_user_session` VALUES ('04d51ff81ad54d05ab2f29e66b2a02f2', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 17:46:10', '', '2021-02-11 00:58:19', b'0'); | ||
| 919 | -INSERT INTO `sys_user_session` VALUES ('055057e3356b4c249d56a6627ca057a7', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-03-04 16:54:24', '', '2021-03-05 01:25:51', b'0'); | ||
| 920 | -INSERT INTO `sys_user_session` VALUES ('064ba2d647704f57bdf36a1803a724d7', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-26 02:17:35', '', '2021-02-27 12:04:09', b'0'); | ||
| 921 | -INSERT INTO `sys_user_session` VALUES ('0df60899301d4080bd4164f24bccf18b', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-07 13:05:42', '', '2021-02-14 22:57:44', b'0'); | ||
| 922 | -INSERT INTO `sys_user_session` VALUES ('1127b5eb9b0c4f9fa382d4d98a8a4a38', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 06:49:00', '', '2021-02-10 11:10:31', b'0'); | ||
| 923 | -INSERT INTO `sys_user_session` VALUES ('11aa2d7861d445349790804fa8676754', 1, '127.0.0.1', 'Mozilla/5.0 (Linux; Android 10; PCT-AL10 Build/HUAWEIPCT-AL10; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045513 Mobile Safari/537.36 MMWEBID/2883 MicroMessenger/8.0.1.1841(0x28000159) Process/tools WeChat/arm64 Weixin NetType/4G Language/zh_CN ABI/arm64', '', '2021-02-09 00:06:03', '', '2021-02-09 00:06:03', b'0'); | ||
| 924 | -INSERT INTO `sys_user_session` VALUES ('135db2c6d88a4f41aaf4df46f3a3e0ea', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-03-06 01:44:25', '', '2021-03-06 01:44:25', b'0'); | ||
| 925 | -INSERT INTO `sys_user_session` VALUES ('1bcac32d34b94422893f10718f643320', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-09 12:14:10', '', '2021-02-09 12:14:10', b'0'); | ||
| 926 | -INSERT INTO `sys_user_session` VALUES ('20109910c52e4b02bbc0531212bff8cb', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-06 02:39:48', '', '2021-02-06 02:39:48', b'0'); | ||
| 927 | -INSERT INTO `sys_user_session` VALUES ('2024509755b3444690c2a1dddaebd812', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 06:22:30', '', '2021-02-05 06:22:30', b'0'); | ||
| 928 | -INSERT INTO `sys_user_session` VALUES ('260facb728964db7a3df8461b4eebe86', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-08 23:10:08', '', '2021-02-08 23:10:08', b'0'); | ||
| 929 | -INSERT INTO `sys_user_session` VALUES ('27858c1f13c64a2a8889063932419885', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-08 18:27:13', '', '2021-02-20 16:11:21', b'0'); | ||
| 930 | -INSERT INTO `sys_user_session` VALUES ('27d6db8abb3b4ed88d446ad489b9db23', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-07 06:38:34', '', '2021-02-14 10:57:34', b'0'); | ||
| 931 | -INSERT INTO `sys_user_session` VALUES ('27dbe0b1051b41eb9efe6558af7cd681', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-03-06 00:51:14', '', '2021-03-06 19:10:23', b'0'); | ||
| 932 | -INSERT INTO `sys_user_session` VALUES ('285af833677642448bbd19c40a279825', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-08 04:17:09', '', '2021-02-18 20:23:05', b'0'); | ||
| 933 | -INSERT INTO `sys_user_session` VALUES ('31e5ff8584794ca58460ecf68a177c3f', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-06 11:48:57', '', '2021-02-12 20:56:44', b'0'); | ||
| 934 | -INSERT INTO `sys_user_session` VALUES ('39cdef31685d4e93931a053d88ff0279', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 08:09:33', '', '2021-02-05 08:09:33', b'0'); | ||
| 935 | -INSERT INTO `sys_user_session` VALUES ('3e111c66356d47da8ffc2755bfa3db52', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-09 14:00:25', '', '2021-02-09 14:00:25', b'0'); | ||
| 936 | -INSERT INTO `sys_user_session` VALUES ('3f308ac8ff26481e829261dd14babbbb', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-08 01:33:07', '', '2021-02-17 22:01:24', b'0'); | ||
| 937 | -INSERT INTO `sys_user_session` VALUES ('452d44e0616c4dca93485ce67ac946df', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-03-06 03:41:56', '', '2021-03-06 21:59:07', b'0'); | ||
| 938 | -INSERT INTO `sys_user_session` VALUES ('50274d6c400f42f7bd5391a12858e262', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-26 11:45:04', '', '2021-02-26 11:45:04', b'0'); | ||
| 939 | -INSERT INTO `sys_user_session` VALUES ('5636ae58b9644ea1b4ed934b025b76ea', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 04:24:59', '', '2021-02-09 18:40:06', b'0'); | ||
| 940 | -INSERT INTO `sys_user_session` VALUES ('5891c4873bf746989a132929449d5f2b', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-03-06 01:55:18', '', '2021-03-06 20:55:38', b'0'); | ||
| 941 | -INSERT INTO `sys_user_session` VALUES ('597956fbc5b34363981530b24e1b5327', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-06 13:47:15', '', '2021-02-12 20:36:16', b'0'); | ||
| 942 | -INSERT INTO `sys_user_session` VALUES ('599102a1e8414ab59eddaf5492f98dad', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-26 06:40:37', '', '2021-02-27 21:25:52', b'0'); | ||
| 943 | -INSERT INTO `sys_user_session` VALUES ('5a9b736ccaa8452394c57ac82bd0815e', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 10:57:52', '', '2021-02-10 16:52:48', b'0'); | ||
| 944 | -INSERT INTO `sys_user_session` VALUES ('5aaeaa5c89434c6bbfa6c5af55097093', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-26 01:28:32', '', '2021-02-27 10:34:25', b'0'); | ||
| 945 | -INSERT INTO `sys_user_session` VALUES ('5b6787e6cbfa4c7faba0dc825fc02816', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-08 17:25:20', '', '2021-02-20 14:49:27', b'0'); | ||
| 946 | -INSERT INTO `sys_user_session` VALUES ('604ac07123a445ee8a81e58db1d6d695', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 16:33:53', '', '2021-02-05 16:33:53', b'0'); | ||
| 947 | -INSERT INTO `sys_user_session` VALUES ('648563ff4a7f454dac0385cca0581fb3', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-08 09:34:50', '', '2021-02-19 09:55:44', b'0'); | ||
| 948 | -INSERT INTO `sys_user_session` VALUES ('64fd3d0a54754b8fa13b62d2f261b1e2', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 01:36:09', '', '2021-02-09 16:05:22', b'0'); | ||
| 949 | -INSERT INTO `sys_user_session` VALUES ('661be9d3983e4e2eb8b346c1329015f5', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-06 19:46:45', '', '2021-02-13 12:02:29', b'0'); | ||
| 950 | -INSERT INTO `sys_user_session` VALUES ('6acbf1f210ff4c6594acb3505f0c3738', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-07 12:16:36', '', '2021-02-14 22:37:22', b'0'); | ||
| 951 | -INSERT INTO `sys_user_session` VALUES ('6e7e89c4948f45658eb74878457ac611', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-09 21:29:20', '', '2021-02-23 01:54:44', b'0'); | ||
| 952 | -INSERT INTO `sys_user_session` VALUES ('73c66b705ed94e18bc53df61abc2d102', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-06 15:00:55', '', '2021-02-06 15:00:55', b'0'); | ||
| 953 | -INSERT INTO `sys_user_session` VALUES ('73cc914671034f3190f09f520d1b39e9', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-01-26 08:29:27', '', '2021-01-26 08:29:50', b'1'); | ||
| 954 | -INSERT INTO `sys_user_session` VALUES ('7b008d71139f48a4903aeaab0bbbef2e', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-03-06 04:38:15', '', '2021-03-06 04:38:15', b'0'); | ||
| 955 | -INSERT INTO `sys_user_session` VALUES ('7cbd0fdfb9304f298abb9ee2f58f7230', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-08 20:02:24', '', '2021-02-08 20:02:24', b'0'); | ||
| 956 | -INSERT INTO `sys_user_session` VALUES ('830a1687977b44969025177ad3b6d051', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-10 01:56:00', '', '2021-02-10 01:56:00', b'0'); | ||
| 957 | -INSERT INTO `sys_user_session` VALUES ('8331dbbca7be4348a3d2d02bf559b65e', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 13:29:04', '', '2021-02-10 19:06:26', b'0'); | ||
| 958 | -INSERT INTO `sys_user_session` VALUES ('897714de63634dba9ac235247f9860c2', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-03-06 06:27:27', '', '2021-03-07 00:50:21', b'0'); | ||
| 959 | -INSERT INTO `sys_user_session` VALUES ('8d7668c1276344ecbffaf7e4420595d7', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-08 09:56:09', '', '2021-02-19 19:17:42', b'0'); | ||
| 960 | -INSERT INTO `sys_user_session` VALUES ('9a3a5b8dee1841b69d70454ce23a53a3', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-26 00:09:49', '', '2021-02-27 01:27:20', b'0'); | ||
| 961 | -INSERT INTO `sys_user_session` VALUES ('9cc71dc2d7a24b978db1bfe0e4bae349', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-01-26 08:30:01', '', '2021-01-26 08:30:01', b'0'); | ||
| 962 | -INSERT INTO `sys_user_session` VALUES ('9e47f4bfee5e444194530de88900e259', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-09 20:25:02', '', '2021-02-23 01:54:51', b'0'); | ||
| 963 | -INSERT INTO `sys_user_session` VALUES ('a07756b7a4b24117b0bd14ec2c68b516', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-26 07:47:21', '', '2021-02-27 23:12:38', b'0'); | ||
| 964 | -INSERT INTO `sys_user_session` VALUES ('a1d01dbed7ff4b6392c3f27c18ce8778', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-07 07:36:14', '', '2021-02-14 12:13:56', b'0'); | ||
| 965 | -INSERT INTO `sys_user_session` VALUES ('a63c2208dd824440999bee9abc22ea7a', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-25 20:45:24', '', '2021-02-25 20:45:24', b'0'); | ||
| 966 | -INSERT INTO `sys_user_session` VALUES ('a7c495d00e2e4543ba943b4edb8c8176', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-26 03:44:46', '', '2021-02-27 12:50:23', b'0'); | ||
| 967 | -INSERT INTO `sys_user_session` VALUES ('a93edff183c447719ecb627d40ca22a6', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 20:28:51', '', '2021-02-05 20:28:51', b'0'); | ||
| 968 | -INSERT INTO `sys_user_session` VALUES ('aa22b7a5754b440e957ec47b832c9fd6', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-06 21:22:31', '', '2021-02-06 21:22:31', b'0'); | ||
| 969 | -INSERT INTO `sys_user_session` VALUES ('b3881aa0b09b4bcdaf9e5ce5f2bbf15a', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-09 20:18:33', '', '2021-02-09 20:18:33', b'0'); | ||
| 970 | -INSERT INTO `sys_user_session` VALUES ('bafb6445d05a4ee1bd9cdcf2ee83aea9', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-09 13:57:15', '', '2021-02-09 13:57:15', b'0'); | ||
| 971 | -INSERT INTO `sys_user_session` VALUES ('c1ede4001ac945f8844b3c7abdc86119', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-08 03:05:18', '', '2021-02-08 03:05:18', b'0'); | ||
| 972 | -INSERT INTO `sys_user_session` VALUES ('c527dcd973454664a75bbf5dbeae834a', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-09 17:06:03', '', '2021-02-22 20:33:03', b'0'); | ||
| 973 | -INSERT INTO `sys_user_session` VALUES ('df87c2afa8de4559a091292434df9fd8', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-09 20:05:45', '', '2021-02-23 00:25:16', b'0'); | ||
| 974 | -INSERT INTO `sys_user_session` VALUES ('e3ad1ef8b9aa4b329855b29c7b372e8f', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 06:21:44', '', '2021-02-05 06:21:44', b'0'); | ||
| 975 | -INSERT INTO `sys_user_session` VALUES ('ea0d48776db84da4ac0f4c2adf62c366', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-08 07:02:03', '', '2021-02-08 07:02:03', b'0'); | ||
| 976 | -INSERT INTO `sys_user_session` VALUES ('f881f7dc67d04cd29574657fdde32a62', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '', '2021-02-05 08:53:20', '', '2021-02-05 08:53:20', b'0'); | 917 | +INSERT INTO `sys_user_session` VALUES ('015797486c564c01b128cb2662bfa1f9', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-08 03:20:22', '', '2021-02-08 03:20:22', '', '2021-03-09 15:12:47', b'0'); |
| 918 | +INSERT INTO `sys_user_session` VALUES ('019f009268e24cc1957c46763eef1fd4', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-14 20:04:33', '', '2021-02-07 08:36:48', '', '2021-03-09 15:12:47', b'0'); | ||
| 919 | +INSERT INTO `sys_user_session` VALUES ('037f130370a744a4b1db19aef205b8ae', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-08 20:38:37', '', '2021-02-08 20:38:37', '', '2021-03-09 15:12:47', b'0'); | ||
| 920 | +INSERT INTO `sys_user_session` VALUES ('04d51ff81ad54d05ab2f29e66b2a02f2', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-11 00:58:19', '', '2021-02-05 17:46:10', '', '2021-03-09 15:12:47', b'0'); | ||
| 921 | +INSERT INTO `sys_user_session` VALUES ('055057e3356b4c249d56a6627ca057a7', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-03-05 01:25:51', '', '2021-03-04 16:54:24', '', '2021-03-09 15:12:47', b'0'); | ||
| 922 | +INSERT INTO `sys_user_session` VALUES ('05965209307f4e7a945aadc6842af77e', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36', '2021-03-07 15:09:55', '', '2021-03-07 14:39:54', '', '2021-03-09 15:12:47', b'0'); | ||
| 923 | +INSERT INTO `sys_user_session` VALUES ('064ba2d647704f57bdf36a1803a724d7', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-27 12:04:09', '', '2021-02-26 02:17:35', '', '2021-03-09 15:12:47', b'0'); | ||
| 924 | +INSERT INTO `sys_user_session` VALUES ('0df60899301d4080bd4164f24bccf18b', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-14 22:57:44', '', '2021-02-07 13:05:42', '', '2021-03-09 15:12:47', b'0'); | ||
| 925 | +INSERT INTO `sys_user_session` VALUES ('1127b5eb9b0c4f9fa382d4d98a8a4a38', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-10 11:10:31', '', '2021-02-05 06:49:00', '', '2021-03-09 15:12:47', b'0'); | ||
| 926 | +INSERT INTO `sys_user_session` VALUES ('11aa2d7861d445349790804fa8676754', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Linux; Android 10; PCT-AL10 Build/HUAWEIPCT-AL10; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045513 Mobile Safari/537.36 MMWEBID/2883 MicroMessenger/8.0.1.1841(0x28000159) Process/tools WeChat/arm64 Weixin NetType/4G Language/zh_CN ABI/arm64', '2021-02-09 00:06:03', '', '2021-02-09 00:06:03', '', '2021-03-09 15:12:47', b'0'); | ||
| 927 | +INSERT INTO `sys_user_session` VALUES ('135db2c6d88a4f41aaf4df46f3a3e0ea', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-03-06 01:44:25', '', '2021-03-06 01:44:25', '', '2021-03-09 15:12:47', b'0'); | ||
| 928 | +INSERT INTO `sys_user_session` VALUES ('1bcac32d34b94422893f10718f643320', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-09 12:14:10', '', '2021-02-09 12:14:10', '', '2021-03-09 15:12:47', b'0'); | ||
| 929 | +INSERT INTO `sys_user_session` VALUES ('20109910c52e4b02bbc0531212bff8cb', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-06 02:39:48', '', '2021-02-06 02:39:48', '', '2021-03-09 15:12:47', b'0'); | ||
| 930 | +INSERT INTO `sys_user_session` VALUES ('2024509755b3444690c2a1dddaebd812', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-05 06:22:30', '', '2021-02-05 06:22:30', '', '2021-03-09 15:12:47', b'0'); | ||
| 931 | +INSERT INTO `sys_user_session` VALUES ('260facb728964db7a3df8461b4eebe86', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-08 23:10:08', '', '2021-02-08 23:10:08', '', '2021-03-09 15:12:47', b'0'); | ||
| 932 | +INSERT INTO `sys_user_session` VALUES ('27858c1f13c64a2a8889063932419885', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-20 16:11:21', '', '2021-02-08 18:27:13', '', '2021-03-09 15:12:47', b'0'); | ||
| 933 | +INSERT INTO `sys_user_session` VALUES ('27d6db8abb3b4ed88d446ad489b9db23', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-14 10:57:34', '', '2021-02-07 06:38:34', '', '2021-03-09 15:12:47', b'0'); | ||
| 934 | +INSERT INTO `sys_user_session` VALUES ('27dbe0b1051b41eb9efe6558af7cd681', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-03-06 19:10:23', '', '2021-03-06 00:51:14', '', '2021-03-09 15:12:47', b'0'); | ||
| 935 | +INSERT INTO `sys_user_session` VALUES ('285af833677642448bbd19c40a279825', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-18 20:23:05', '', '2021-02-08 04:17:09', '', '2021-03-09 15:12:47', b'0'); | ||
| 936 | +INSERT INTO `sys_user_session` VALUES ('31e5ff8584794ca58460ecf68a177c3f', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-12 20:56:44', '', '2021-02-06 11:48:57', '', '2021-03-09 15:12:47', b'0'); | ||
| 937 | +INSERT INTO `sys_user_session` VALUES ('39cdef31685d4e93931a053d88ff0279', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-05 08:09:33', '', '2021-02-05 08:09:33', '', '2021-03-09 15:12:47', b'0'); | ||
| 938 | +INSERT INTO `sys_user_session` VALUES ('3e111c66356d47da8ffc2755bfa3db52', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-09 14:00:25', '', '2021-02-09 14:00:25', '', '2021-03-09 15:12:47', b'0'); | ||
| 939 | +INSERT INTO `sys_user_session` VALUES ('3f308ac8ff26481e829261dd14babbbb', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-17 22:01:24', '', '2021-02-08 01:33:07', '', '2021-03-09 15:12:47', b'0'); | ||
| 940 | +INSERT INTO `sys_user_session` VALUES ('452d44e0616c4dca93485ce67ac946df', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-03-06 21:59:07', '', '2021-03-06 03:41:56', '', '2021-03-09 15:12:47', b'0'); | ||
| 941 | +INSERT INTO `sys_user_session` VALUES ('50274d6c400f42f7bd5391a12858e262', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-26 11:45:04', '', '2021-02-26 11:45:04', '', '2021-03-09 15:12:47', b'0'); | ||
| 942 | +INSERT INTO `sys_user_session` VALUES ('5636ae58b9644ea1b4ed934b025b76ea', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-09 18:40:06', '', '2021-02-05 04:24:59', '', '2021-03-09 15:12:47', b'0'); | ||
| 943 | +INSERT INTO `sys_user_session` VALUES ('5891c4873bf746989a132929449d5f2b', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-03-06 20:55:38', '', '2021-03-06 01:55:18', '', '2021-03-09 15:12:47', b'0'); | ||
| 944 | +INSERT INTO `sys_user_session` VALUES ('597956fbc5b34363981530b24e1b5327', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-12 20:36:16', '', '2021-02-06 13:47:15', '', '2021-03-09 15:12:47', b'0'); | ||
| 945 | +INSERT INTO `sys_user_session` VALUES ('599102a1e8414ab59eddaf5492f98dad', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-27 21:25:52', '', '2021-02-26 06:40:37', '', '2021-03-09 15:12:47', b'0'); | ||
| 946 | +INSERT INTO `sys_user_session` VALUES ('5a9b736ccaa8452394c57ac82bd0815e', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-10 16:52:48', '', '2021-02-05 10:57:52', '', '2021-03-09 15:12:47', b'0'); | ||
| 947 | +INSERT INTO `sys_user_session` VALUES ('5aaeaa5c89434c6bbfa6c5af55097093', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-27 10:34:25', '', '2021-02-26 01:28:32', '', '2021-03-09 15:12:47', b'0'); | ||
| 948 | +INSERT INTO `sys_user_session` VALUES ('5b6787e6cbfa4c7faba0dc825fc02816', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-20 14:49:27', '', '2021-02-08 17:25:20', '', '2021-03-09 15:12:47', b'0'); | ||
| 949 | +INSERT INTO `sys_user_session` VALUES ('604ac07123a445ee8a81e58db1d6d695', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-05 16:33:53', '', '2021-02-05 16:33:53', '', '2021-03-09 15:12:47', b'0'); | ||
| 950 | +INSERT INTO `sys_user_session` VALUES ('648563ff4a7f454dac0385cca0581fb3', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-19 09:55:44', '', '2021-02-08 09:34:50', '', '2021-03-09 15:12:47', b'0'); | ||
| 951 | +INSERT INTO `sys_user_session` VALUES ('64fd3d0a54754b8fa13b62d2f261b1e2', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-09 16:05:22', '', '2021-02-05 01:36:09', '', '2021-03-09 15:12:47', b'0'); | ||
| 952 | +INSERT INTO `sys_user_session` VALUES ('661be9d3983e4e2eb8b346c1329015f5', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-13 12:02:29', '', '2021-02-06 19:46:45', '', '2021-03-09 15:12:47', b'0'); | ||
| 953 | +INSERT INTO `sys_user_session` VALUES ('6acbf1f210ff4c6594acb3505f0c3738', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-14 22:37:22', '', '2021-02-07 12:16:36', '', '2021-03-09 15:12:47', b'0'); | ||
| 954 | +INSERT INTO `sys_user_session` VALUES ('6e7e89c4948f45658eb74878457ac611', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-23 01:54:44', '', '2021-02-09 21:29:20', '', '2021-03-09 15:12:47', b'0'); | ||
| 955 | +INSERT INTO `sys_user_session` VALUES ('73c66b705ed94e18bc53df61abc2d102', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-06 15:00:55', '', '2021-02-06 15:00:55', '', '2021-03-09 15:12:47', b'0'); | ||
| 956 | +INSERT INTO `sys_user_session` VALUES ('73cc914671034f3190f09f520d1b39e9', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-01-26 08:29:50', '', '2021-01-26 08:29:27', '', '2021-03-09 15:12:47', b'1'); | ||
| 957 | +INSERT INTO `sys_user_session` VALUES ('7b008d71139f48a4903aeaab0bbbef2e', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-03-06 04:38:15', '', '2021-03-06 04:38:15', '', '2021-03-09 15:12:47', b'0'); | ||
| 958 | +INSERT INTO `sys_user_session` VALUES ('7cbd0fdfb9304f298abb9ee2f58f7230', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-08 20:02:24', '', '2021-02-08 20:02:24', '', '2021-03-09 15:12:47', b'0'); | ||
| 959 | +INSERT INTO `sys_user_session` VALUES ('830a1687977b44969025177ad3b6d051', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-10 01:56:00', '', '2021-02-10 01:56:00', '', '2021-03-09 15:12:47', b'0'); | ||
| 960 | +INSERT INTO `sys_user_session` VALUES ('8331dbbca7be4348a3d2d02bf559b65e', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-10 19:06:26', '', '2021-02-05 13:29:04', '', '2021-03-09 15:12:47', b'0'); | ||
| 961 | +INSERT INTO `sys_user_session` VALUES ('897714de63634dba9ac235247f9860c2', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-03-06 06:27:27', '', '2021-03-06 06:27:27', '', '2021-03-09 15:12:47', b'0'); | ||
| 962 | +INSERT INTO `sys_user_session` VALUES ('8d7668c1276344ecbffaf7e4420595d7', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-19 19:17:42', '', '2021-02-08 09:56:09', '', '2021-03-09 15:12:47', b'0'); | ||
| 963 | +INSERT INTO `sys_user_session` VALUES ('9a3a5b8dee1841b69d70454ce23a53a3', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-27 01:27:20', '', '2021-02-26 00:09:49', '', '2021-03-09 15:12:47', b'0'); | ||
| 964 | +INSERT INTO `sys_user_session` VALUES ('9cc71dc2d7a24b978db1bfe0e4bae349', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-01-26 08:30:01', '', '2021-01-26 08:30:01', '', '2021-03-09 15:12:47', b'0'); | ||
| 965 | +INSERT INTO `sys_user_session` VALUES ('9e47f4bfee5e444194530de88900e259', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-23 01:54:51', '', '2021-02-09 20:25:02', '', '2021-03-09 15:12:47', b'0'); | ||
| 966 | +INSERT INTO `sys_user_session` VALUES ('a07756b7a4b24117b0bd14ec2c68b516', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-27 23:12:38', '', '2021-02-26 07:47:21', '', '2021-03-09 15:12:47', b'0'); | ||
| 967 | +INSERT INTO `sys_user_session` VALUES ('a1d01dbed7ff4b6392c3f27c18ce8778', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-14 12:13:56', '', '2021-02-07 07:36:14', '', '2021-03-09 15:12:47', b'0'); | ||
| 968 | +INSERT INTO `sys_user_session` VALUES ('a63c2208dd824440999bee9abc22ea7a', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-25 20:45:24', '', '2021-02-25 20:45:24', '', '2021-03-09 15:12:47', b'0'); | ||
| 969 | +INSERT INTO `sys_user_session` VALUES ('a7c495d00e2e4543ba943b4edb8c8176', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-27 12:50:23', '', '2021-02-26 03:44:46', '', '2021-03-09 15:12:47', b'0'); | ||
| 970 | +INSERT INTO `sys_user_session` VALUES ('a93edff183c447719ecb627d40ca22a6', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-05 20:28:51', '', '2021-02-05 20:28:51', '', '2021-03-09 15:12:47', b'0'); | ||
| 971 | +INSERT INTO `sys_user_session` VALUES ('aa22b7a5754b440e957ec47b832c9fd6', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-06 21:22:31', '', '2021-02-06 21:22:31', '', '2021-03-09 15:12:47', b'0'); | ||
| 972 | +INSERT INTO `sys_user_session` VALUES ('b3881aa0b09b4bcdaf9e5ce5f2bbf15a', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-09 20:18:33', '', '2021-02-09 20:18:33', '', '2021-03-09 15:12:47', b'0'); | ||
| 973 | +INSERT INTO `sys_user_session` VALUES ('bafb6445d05a4ee1bd9cdcf2ee83aea9', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-09 13:57:15', '', '2021-02-09 13:57:15', '', '2021-03-09 15:12:47', b'0'); | ||
| 974 | +INSERT INTO `sys_user_session` VALUES ('c1ede4001ac945f8844b3c7abdc86119', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-08 03:05:18', '', '2021-02-08 03:05:18', '', '2021-03-09 15:12:47', b'0'); | ||
| 975 | +INSERT INTO `sys_user_session` VALUES ('c527dcd973454664a75bbf5dbeae834a', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-22 20:33:03', '', '2021-02-09 17:06:03', '', '2021-03-09 15:12:47', b'0'); | ||
| 976 | +INSERT INTO `sys_user_session` VALUES ('df87c2afa8de4559a091292434df9fd8', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-23 00:25:16', '', '2021-02-09 20:05:45', '', '2021-03-09 15:12:47', b'0'); | ||
| 977 | +INSERT INTO `sys_user_session` VALUES ('e3ad1ef8b9aa4b329855b29c7b372e8f', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-05 06:21:44', '', '2021-02-05 06:21:44', '', '2021-03-09 15:12:47', b'0'); | ||
| 978 | +INSERT INTO `sys_user_session` VALUES ('ea0d48776db84da4ac0f4c2adf62c366', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-08 07:02:03', '', '2021-02-08 07:02:03', '', '2021-03-09 15:12:47', b'0'); | ||
| 979 | +INSERT INTO `sys_user_session` VALUES ('f881f7dc67d04cd29574657fdde32a62', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-05 08:53:20', '', '2021-02-05 08:53:20', '', '2021-03-09 15:12:47', b'0'); | ||
| 977 | COMMIT; | 980 | COMMIT; |
| 978 | 981 | ||
| 979 | -- ---------------------------- | 982 | -- ---------------------------- |
| @@ -1000,9 +1003,9 @@ CREATE TABLE `tool_codegen_column` ( | @@ -1000,9 +1003,9 @@ CREATE TABLE `tool_codegen_column` ( | ||
| 1000 | `list_operation_condition` varchar(32) NOT NULL DEFAULT '=' COMMENT 'List 查询操作的条件类型', | 1003 | `list_operation_condition` varchar(32) NOT NULL DEFAULT '=' COMMENT 'List 查询操作的条件类型', |
| 1001 | `list_operation_result` bit(1) NOT NULL COMMENT '是否为 List 查询操作的返回字段', | 1004 | `list_operation_result` bit(1) NOT NULL COMMENT '是否为 List 查询操作的返回字段', |
| 1002 | `html_type` varchar(32) NOT NULL COMMENT '显示类型', | 1005 | `html_type` varchar(32) NOT NULL COMMENT '显示类型', |
| 1003 | - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', | 1006 | + `creator` varchar(64) DEFAULT '' COMMENT '创建者', |
| 1004 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | 1007 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', |
| 1005 | - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', | 1008 | + `updater` varchar(64) DEFAULT '' COMMENT '更新者', |
| 1006 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 1009 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 1007 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 1010 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 1008 | PRIMARY KEY (`id`) USING BTREE | 1011 | PRIMARY KEY (`id`) USING BTREE |
| @@ -1179,9 +1182,9 @@ CREATE TABLE `tool_codegen_table` ( | @@ -1179,9 +1182,9 @@ CREATE TABLE `tool_codegen_table` ( | ||
| 1179 | `author` varchar(50) NOT NULL COMMENT '作者', | 1182 | `author` varchar(50) NOT NULL COMMENT '作者', |
| 1180 | `template_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '模板类型', | 1183 | `template_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '模板类型', |
| 1181 | `parent_menu_id` bigint(20) DEFAULT NULL COMMENT '父菜单编号', | 1184 | `parent_menu_id` bigint(20) DEFAULT NULL COMMENT '父菜单编号', |
| 1182 | - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', | 1185 | + `creator` varchar(64) DEFAULT '' COMMENT '创建者', |
| 1183 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | 1186 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', |
| 1184 | - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', | 1187 | + `updater` varchar(64) DEFAULT '' COMMENT '更新者', |
| 1185 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 1188 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 1186 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 1189 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 1187 | PRIMARY KEY (`id`) USING BTREE | 1190 | PRIMARY KEY (`id`) USING BTREE |
| @@ -1215,9 +1218,9 @@ CREATE TABLE `tool_test_demo` ( | @@ -1215,9 +1218,9 @@ CREATE TABLE `tool_test_demo` ( | ||
| 1215 | `type` tinyint(4) NOT NULL COMMENT '类型', | 1218 | `type` tinyint(4) NOT NULL COMMENT '类型', |
| 1216 | `category` tinyint(4) NOT NULL COMMENT '分类', | 1219 | `category` tinyint(4) NOT NULL COMMENT '分类', |
| 1217 | `remark` varchar(500) DEFAULT NULL COMMENT '备注', | 1220 | `remark` varchar(500) DEFAULT NULL COMMENT '备注', |
| 1218 | - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', | 1221 | + `creator` varchar(64) DEFAULT '' COMMENT '创建者', |
| 1219 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | 1222 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', |
| 1220 | - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', | 1223 | + `updater` varchar(64) DEFAULT '' COMMENT '更新者', |
| 1221 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | 1224 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 1222 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', | 1225 | `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', |
| 1223 | PRIMARY KEY (`id`) USING BTREE | 1226 | PRIMARY KEY (`id`) USING BTREE |
src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/auth/SysUserSessionDO.java
| @@ -10,6 +10,8 @@ import lombok.Builder; | @@ -10,6 +10,8 @@ import lombok.Builder; | ||
| 10 | import lombok.Data; | 10 | import lombok.Data; |
| 11 | import lombok.EqualsAndHashCode; | 11 | import lombok.EqualsAndHashCode; |
| 12 | 12 | ||
| 13 | +import java.util.Date; | ||
| 14 | + | ||
| 13 | /** | 15 | /** |
| 14 | * 在线用户表 | 16 | * 在线用户表 |
| 15 | * | 17 | * |
| @@ -36,6 +38,14 @@ public class SysUserSessionDO extends BaseDO { | @@ -36,6 +38,14 @@ public class SysUserSessionDO extends BaseDO { | ||
| 36 | * 关联 {@link SysUserDO#getId()} | 38 | * 关联 {@link SysUserDO#getId()} |
| 37 | */ | 39 | */ |
| 38 | private Long userId; | 40 | private Long userId; |
| 41 | + | ||
| 42 | + /** | ||
| 43 | + * 用户账号 | ||
| 44 | + * | ||
| 45 | + * 冗余,因为账号可以变更 | ||
| 46 | + */ | ||
| 47 | + private String username; | ||
| 48 | + | ||
| 39 | /** | 49 | /** |
| 40 | * 用户 IP | 50 | * 用户 IP |
| 41 | */ | 51 | */ |
| @@ -44,5 +54,9 @@ public class SysUserSessionDO extends BaseDO { | @@ -44,5 +54,9 @@ public class SysUserSessionDO extends BaseDO { | ||
| 44 | * 浏览器 UA | 54 | * 浏览器 UA |
| 45 | */ | 55 | */ |
| 46 | private String userAgent; | 56 | private String userAgent; |
| 57 | + /** | ||
| 58 | + * 会话超时时间 | ||
| 59 | + */ | ||
| 60 | + private Date sessionTimeout; | ||
| 47 | 61 | ||
| 48 | } | 62 | } |
src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/auth/SysUserSessionMapper.java
| @@ -8,6 +8,8 @@ import cn.iocoder.dashboard.modules.system.dal.dataobject.auth.SysUserSessionDO; | @@ -8,6 +8,8 @@ import cn.iocoder.dashboard.modules.system.dal.dataobject.auth.SysUserSessionDO; | ||
| 8 | import org.apache.ibatis.annotations.Mapper; | 8 | import org.apache.ibatis.annotations.Mapper; |
| 9 | 9 | ||
| 10 | import java.util.Collection; | 10 | import java.util.Collection; |
| 11 | +import java.util.Date; | ||
| 12 | +import java.util.List; | ||
| 11 | 13 | ||
| 12 | @Mapper | 14 | @Mapper |
| 13 | public interface SysUserSessionMapper extends BaseMapperX<SysUserSessionDO> { | 15 | public interface SysUserSessionMapper extends BaseMapperX<SysUserSessionDO> { |
| @@ -18,4 +20,7 @@ public interface SysUserSessionMapper extends BaseMapperX<SysUserSessionDO> { | @@ -18,4 +20,7 @@ public interface SysUserSessionMapper extends BaseMapperX<SysUserSessionDO> { | ||
| 18 | .likeIfPresent("user_ip", reqVO.getUserIp())); | 20 | .likeIfPresent("user_ip", reqVO.getUserIp())); |
| 19 | } | 21 | } |
| 20 | 22 | ||
| 23 | + default List<SysUserSessionDO> selectListBySessionTimoutLt() { | ||
| 24 | + return selectList(new QueryWrapperX<SysUserSessionDO>().lt("session_timeout",new Date())); | ||
| 25 | + } | ||
| 21 | } | 26 | } |
src/main/java/cn/iocoder/dashboard/modules/system/dal/redis/SysRedisKeyConstants.java
| @@ -16,7 +16,7 @@ public interface SysRedisKeyConstants { | @@ -16,7 +16,7 @@ public interface SysRedisKeyConstants { | ||
| 16 | 16 | ||
| 17 | RedisKeyDefine LOGIN_USER = new RedisKeyDefine("登陆用户的缓存", | 17 | RedisKeyDefine LOGIN_USER = new RedisKeyDefine("登陆用户的缓存", |
| 18 | "login_user:%s", // 参数为 sessionId | 18 | "login_user:%s", // 参数为 sessionId |
| 19 | - STRING, LoginUser.class, Duration.ofMinutes(30)); | 19 | + STRING, LoginUser.class, RedisKeyDefine.TimeoutTypeEnum.DYNAMIC); |
| 20 | 20 | ||
| 21 | RedisKeyDefine CAPTCHA_CODE = new RedisKeyDefine("验证码的缓存", | 21 | RedisKeyDefine CAPTCHA_CODE = new RedisKeyDefine("验证码的缓存", |
| 22 | "captcha_code:%s", // 参数为 uuid | 22 | "captcha_code:%s", // 参数为 uuid |
src/main/java/cn/iocoder/dashboard/modules/system/dal/redis/auth/SysLoginUserRedisDAO.java
| 1 | package cn.iocoder.dashboard.modules.system.dal.redis.auth; | 1 | package cn.iocoder.dashboard.modules.system.dal.redis.auth; |
| 2 | 2 | ||
| 3 | import cn.iocoder.dashboard.framework.security.core.LoginUser; | 3 | import cn.iocoder.dashboard.framework.security.core.LoginUser; |
| 4 | +import cn.iocoder.dashboard.modules.system.service.auth.SysUserSessionService; | ||
| 4 | import cn.iocoder.dashboard.util.json.JsonUtils; | 5 | import cn.iocoder.dashboard.util.json.JsonUtils; |
| 5 | import org.springframework.data.redis.core.StringRedisTemplate; | 6 | import org.springframework.data.redis.core.StringRedisTemplate; |
| 6 | import org.springframework.stereotype.Repository; | 7 | import org.springframework.stereotype.Repository; |
| 7 | 8 | ||
| 8 | import javax.annotation.Resource; | 9 | import javax.annotation.Resource; |
| 10 | +import java.time.Duration; | ||
| 9 | 11 | ||
| 10 | import static cn.iocoder.dashboard.modules.system.dal.redis.SysRedisKeyConstants.LOGIN_USER; | 12 | import static cn.iocoder.dashboard.modules.system.dal.redis.SysRedisKeyConstants.LOGIN_USER; |
| 11 | 13 | ||
| @@ -19,6 +21,8 @@ public class SysLoginUserRedisDAO { | @@ -19,6 +21,8 @@ public class SysLoginUserRedisDAO { | ||
| 19 | 21 | ||
| 20 | @Resource | 22 | @Resource |
| 21 | private StringRedisTemplate stringRedisTemplate; | 23 | private StringRedisTemplate stringRedisTemplate; |
| 24 | + @Resource | ||
| 25 | + private SysUserSessionService sysUserSessionService; | ||
| 22 | 26 | ||
| 23 | public LoginUser get(String sessionId) { | 27 | public LoginUser get(String sessionId) { |
| 24 | String redisKey = formatKey(sessionId); | 28 | String redisKey = formatKey(sessionId); |
| @@ -27,7 +31,8 @@ public class SysLoginUserRedisDAO { | @@ -27,7 +31,8 @@ public class SysLoginUserRedisDAO { | ||
| 27 | 31 | ||
| 28 | public void set(String sessionId, LoginUser loginUser) { | 32 | public void set(String sessionId, LoginUser loginUser) { |
| 29 | String redisKey = formatKey(sessionId); | 33 | String redisKey = formatKey(sessionId); |
| 30 | - stringRedisTemplate.opsForValue().set(redisKey, JsonUtils.toJsonString(loginUser), LOGIN_USER.getTimeout()); | 34 | + stringRedisTemplate.opsForValue().set(redisKey, JsonUtils.toJsonString(loginUser), |
| 35 | + Duration.ofMillis(sysUserSessionService.getSessionTimeoutMillis())); | ||
| 31 | } | 36 | } |
| 32 | 37 | ||
| 33 | public void delete(String sessionId) { | 38 | public void delete(String sessionId) { |
src/main/java/cn/iocoder/dashboard/modules/system/job/auth/SysUserSessionTimeoutJob.java
| 1 | package cn.iocoder.dashboard.modules.system.job.auth; | 1 | package cn.iocoder.dashboard.modules.system.job.auth; |
| 2 | 2 | ||
| 3 | import cn.iocoder.dashboard.framework.quartz.core.handler.JobHandler; | 3 | import cn.iocoder.dashboard.framework.quartz.core.handler.JobHandler; |
| 4 | +import cn.iocoder.dashboard.modules.system.service.auth.SysUserSessionService; | ||
| 4 | import lombok.extern.slf4j.Slf4j; | 5 | import lombok.extern.slf4j.Slf4j; |
| 5 | import org.springframework.stereotype.Component; | 6 | import org.springframework.stereotype.Component; |
| 6 | 7 | ||
| 8 | +import javax.annotation.Resource; | ||
| 9 | + | ||
| 7 | /** | 10 | /** |
| 8 | * 用户 Session 超时 Job | 11 | * 用户 Session 超时 Job |
| 9 | * | 12 | * |
| @@ -13,11 +16,12 @@ import org.springframework.stereotype.Component; | @@ -13,11 +16,12 @@ import org.springframework.stereotype.Component; | ||
| 13 | @Slf4j | 16 | @Slf4j |
| 14 | public class SysUserSessionTimeoutJob implements JobHandler { | 17 | public class SysUserSessionTimeoutJob implements JobHandler { |
| 15 | 18 | ||
| 19 | + @Resource | ||
| 20 | + SysUserSessionService sysUserSessionService; | ||
| 21 | + | ||
| 16 | @Override | 22 | @Override |
| 17 | public String execute(String param) throws Exception { | 23 | public String execute(String param) throws Exception { |
| 18 | -// System.out.println("执行了一次任务"); | ||
| 19 | - log.info("[execute][执行任务:{}]", param); | ||
| 20 | - return null; | 24 | + return String.valueOf(sysUserSessionService.clearSessionTimeout()); |
| 21 | } | 25 | } |
| 22 | 26 | ||
| 23 | } | 27 | } |
src/main/java/cn/iocoder/dashboard/modules/system/service/auth/SysUserSessionService.java
| @@ -60,4 +60,10 @@ public interface SysUserSessionService { | @@ -60,4 +60,10 @@ public interface SysUserSessionService { | ||
| 60 | */ | 60 | */ |
| 61 | PageResult<SysUserSessionDO> getUserSessionPage(SysUserSessionPageReqVO reqVO); | 61 | PageResult<SysUserSessionDO> getUserSessionPage(SysUserSessionPageReqVO reqVO); |
| 62 | 62 | ||
| 63 | + /** | ||
| 64 | + * 移除超时的在线用户 | ||
| 65 | + * | ||
| 66 | + * @return {@link Long } 移出的超时用户数量 | ||
| 67 | + **/ | ||
| 68 | + long clearSessionTimeout(); | ||
| 63 | } | 69 | } |
src/main/java/cn/iocoder/dashboard/modules/system/service/auth/impl/SysUserSessionServiceImpl.java
| @@ -6,20 +6,28 @@ import cn.hutool.core.util.StrUtil; | @@ -6,20 +6,28 @@ import cn.hutool.core.util.StrUtil; | ||
| 6 | import cn.iocoder.dashboard.common.pojo.PageResult; | 6 | import cn.iocoder.dashboard.common.pojo.PageResult; |
| 7 | import cn.iocoder.dashboard.framework.security.config.SecurityProperties; | 7 | import cn.iocoder.dashboard.framework.security.config.SecurityProperties; |
| 8 | import cn.iocoder.dashboard.framework.security.core.LoginUser; | 8 | import cn.iocoder.dashboard.framework.security.core.LoginUser; |
| 9 | +import cn.iocoder.dashboard.framework.tracer.core.util.TracerUtils; | ||
| 9 | import cn.iocoder.dashboard.modules.system.controller.auth.vo.session.SysUserSessionPageReqVO; | 10 | import cn.iocoder.dashboard.modules.system.controller.auth.vo.session.SysUserSessionPageReqVO; |
| 10 | -import cn.iocoder.dashboard.modules.system.dal.mysql.auth.SysUserSessionMapper; | 11 | +import cn.iocoder.dashboard.modules.system.controller.logger.vo.loginlog.SysLoginLogCreateReqVO; |
| 11 | import cn.iocoder.dashboard.modules.system.dal.dataobject.auth.SysUserSessionDO; | 12 | import cn.iocoder.dashboard.modules.system.dal.dataobject.auth.SysUserSessionDO; |
| 12 | import cn.iocoder.dashboard.modules.system.dal.dataobject.user.SysUserDO; | 13 | import cn.iocoder.dashboard.modules.system.dal.dataobject.user.SysUserDO; |
| 14 | +import cn.iocoder.dashboard.modules.system.dal.mysql.auth.SysUserSessionMapper; | ||
| 13 | import cn.iocoder.dashboard.modules.system.dal.redis.auth.SysLoginUserRedisDAO; | 15 | import cn.iocoder.dashboard.modules.system.dal.redis.auth.SysLoginUserRedisDAO; |
| 16 | +import cn.iocoder.dashboard.modules.system.enums.logger.SysLoginLogTypeEnum; | ||
| 17 | +import cn.iocoder.dashboard.modules.system.enums.logger.SysLoginResultEnum; | ||
| 14 | import cn.iocoder.dashboard.modules.system.service.auth.SysUserSessionService; | 18 | import cn.iocoder.dashboard.modules.system.service.auth.SysUserSessionService; |
| 19 | +import cn.iocoder.dashboard.modules.system.service.logger.SysLoginLogService; | ||
| 15 | import cn.iocoder.dashboard.modules.system.service.user.SysUserService; | 20 | import cn.iocoder.dashboard.modules.system.service.user.SysUserService; |
| 21 | +import com.google.common.collect.Lists; | ||
| 16 | import org.springframework.stereotype.Service; | 22 | import org.springframework.stereotype.Service; |
| 17 | 23 | ||
| 18 | import javax.annotation.Resource; | 24 | import javax.annotation.Resource; |
| 19 | -import java.util.Collection; | ||
| 20 | -import java.util.Date; | 25 | +import java.time.Duration; |
| 26 | +import java.util.*; | ||
| 27 | +import java.util.stream.Collectors; | ||
| 21 | 28 | ||
| 22 | import static cn.iocoder.dashboard.util.collection.CollectionUtils.convertSet; | 29 | import static cn.iocoder.dashboard.util.collection.CollectionUtils.convertSet; |
| 30 | +import static cn.iocoder.dashboard.util.date.DateUtils.addTime; | ||
| 23 | 31 | ||
| 24 | /** | 32 | /** |
| 25 | * 在线用户 Session Service 实现类 | 33 | * 在线用户 Session Service 实现类 |
| @@ -31,14 +39,14 @@ public class SysUserSessionServiceImpl implements SysUserSessionService { | @@ -31,14 +39,14 @@ public class SysUserSessionServiceImpl implements SysUserSessionService { | ||
| 31 | 39 | ||
| 32 | @Resource | 40 | @Resource |
| 33 | private SecurityProperties securityProperties; | 41 | private SecurityProperties securityProperties; |
| 34 | - | ||
| 35 | @Resource | 42 | @Resource |
| 36 | private SysLoginUserRedisDAO loginUserRedisDAO; | 43 | private SysLoginUserRedisDAO loginUserRedisDAO; |
| 37 | @Resource | 44 | @Resource |
| 38 | private SysUserSessionMapper userSessionMapper; | 45 | private SysUserSessionMapper userSessionMapper; |
| 39 | - | ||
| 40 | @Resource | 46 | @Resource |
| 41 | private SysUserService userService; | 47 | private SysUserService userService; |
| 48 | + @Resource | ||
| 49 | + private SysLoginLogService loginLogService; | ||
| 42 | 50 | ||
| 43 | @Override | 51 | @Override |
| 44 | public String createUserSession(LoginUser loginUser, String userIp, String userAgent) { | 52 | public String createUserSession(LoginUser loginUser, String userIp, String userAgent) { |
| @@ -49,7 +57,9 @@ public class SysUserSessionServiceImpl implements SysUserSessionService { | @@ -49,7 +57,9 @@ public class SysUserSessionServiceImpl implements SysUserSessionService { | ||
| 49 | loginUserRedisDAO.set(sessionId, loginUser); | 57 | loginUserRedisDAO.set(sessionId, loginUser); |
| 50 | // 写入 DB 中 | 58 | // 写入 DB 中 |
| 51 | SysUserSessionDO userSession = SysUserSessionDO.builder().id(sessionId) | 59 | SysUserSessionDO userSession = SysUserSessionDO.builder().id(sessionId) |
| 52 | - .userId(loginUser.getId()).userIp(userIp).userAgent(userAgent).build(); | 60 | + .userId(loginUser.getId()).userIp(userIp).userAgent(userAgent).username(loginUser.getUsername()) |
| 61 | + .sessionTimeout(addTime(Duration.ofMillis(getSessionTimeoutMillis()))) | ||
| 62 | + .build(); | ||
| 53 | userSessionMapper.insert(userSession); | 63 | userSessionMapper.insert(userSession); |
| 54 | // 返回 Session 编号 | 64 | // 返回 Session 编号 |
| 55 | return sessionId; | 65 | return sessionId; |
| @@ -62,7 +72,9 @@ public class SysUserSessionServiceImpl implements SysUserSessionService { | @@ -62,7 +72,9 @@ public class SysUserSessionServiceImpl implements SysUserSessionService { | ||
| 62 | loginUserRedisDAO.set(sessionId, loginUser); | 72 | loginUserRedisDAO.set(sessionId, loginUser); |
| 63 | // 更新 DB 中 | 73 | // 更新 DB 中 |
| 64 | SysUserSessionDO updateObj = SysUserSessionDO.builder().id(sessionId).build(); | 74 | SysUserSessionDO updateObj = SysUserSessionDO.builder().id(sessionId).build(); |
| 75 | + updateObj.setUsername(loginUser.getUsername()); | ||
| 65 | updateObj.setUpdateTime(new Date()); | 76 | updateObj.setUpdateTime(new Date()); |
| 77 | + updateObj.setSessionTimeout(addTime(Duration.ofMillis(getSessionTimeoutMillis()))); | ||
| 66 | userSessionMapper.updateById(updateObj); | 78 | userSessionMapper.updateById(updateObj); |
| 67 | } | 79 | } |
| 68 | 80 | ||
| @@ -97,6 +109,36 @@ public class SysUserSessionServiceImpl implements SysUserSessionService { | @@ -97,6 +109,36 @@ public class SysUserSessionServiceImpl implements SysUserSessionService { | ||
| 97 | return userSessionMapper.selectPage(reqVO, userIds); | 109 | return userSessionMapper.selectPage(reqVO, userIds); |
| 98 | } | 110 | } |
| 99 | 111 | ||
| 112 | + @Override | ||
| 113 | + public long clearSessionTimeout() { | ||
| 114 | + // 获取db里已经超时的用户列表 | ||
| 115 | + List<SysUserSessionDO> sessionTimeoutDOS = userSessionMapper.selectListBySessionTimoutLt(); | ||
| 116 | + Map<String, SysUserSessionDO> timeoutSessionDOMap = sessionTimeoutDOS | ||
| 117 | + .stream() | ||
| 118 | + .filter(sessionDO -> loginUserRedisDAO.get(sessionDO.getId()) == null) | ||
| 119 | + .collect(Collectors.toMap(SysUserSessionDO::getId, o -> o)); | ||
| 120 | + // 确认已经超时,按批次移出在线用户列表 | ||
| 121 | + if (CollUtil.isNotEmpty(timeoutSessionDOMap)) { | ||
| 122 | + Lists.partition(new ArrayList<>(timeoutSessionDOMap.keySet()), 100).forEach(userSessionMapper::deleteBatchIds); | ||
| 123 | + //记录用户超时退出日志 | ||
| 124 | + createTimeoutLogoutLog(timeoutSessionDOMap.values()); | ||
| 125 | + } | ||
| 126 | + return timeoutSessionDOMap.size(); | ||
| 127 | + } | ||
| 128 | + | ||
| 129 | + private void createTimeoutLogoutLog(Collection<SysUserSessionDO> timeoutSessionDOS) { | ||
| 130 | + for (SysUserSessionDO timeoutSessionDO : timeoutSessionDOS) { | ||
| 131 | + SysLoginLogCreateReqVO reqVO = new SysLoginLogCreateReqVO(); | ||
| 132 | + reqVO.setLogType(SysLoginLogTypeEnum.LOGOUT_TIMEOUT.getType()); | ||
| 133 | + reqVO.setTraceId(TracerUtils.getTraceId()); | ||
| 134 | + reqVO.setUsername(timeoutSessionDO.getUsername()); | ||
| 135 | + reqVO.setUserAgent(timeoutSessionDO.getUserAgent()); | ||
| 136 | + reqVO.setUserIp(timeoutSessionDO.getUserIp()); | ||
| 137 | + reqVO.setResult(SysLoginResultEnum.SUCCESS.getResult()); | ||
| 138 | + loginLogService.createLoginLog(reqVO); | ||
| 139 | + } | ||
| 140 | + } | ||
| 141 | + | ||
| 100 | /** | 142 | /** |
| 101 | * 生成 Session 编号,目前采用 UUID 算法 | 143 | * 生成 Session 编号,目前采用 UUID 算法 |
| 102 | * | 144 | * |
src/test/java/cn/iocoder/dashboard/modules/system/service/auth/SysUserSessionServiceImplTest.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.system.service.auth; | ||
| 2 | + | ||
| 3 | +import cn.hutool.core.date.DateUtil; | ||
| 4 | +import cn.iocoder.dashboard.BaseDbAndRedisUnitTest; | ||
| 5 | +import cn.iocoder.dashboard.framework.mybatis.core.query.QueryWrapperX; | ||
| 6 | +import cn.iocoder.dashboard.framework.security.config.SecurityProperties; | ||
| 7 | +import cn.iocoder.dashboard.modules.system.dal.dataobject.auth.SysUserSessionDO; | ||
| 8 | +import cn.iocoder.dashboard.modules.system.dal.mysql.auth.SysUserSessionMapper; | ||
| 9 | +import cn.iocoder.dashboard.modules.system.dal.redis.auth.SysLoginUserRedisDAO; | ||
| 10 | +import cn.iocoder.dashboard.modules.system.service.auth.impl.SysUserSessionServiceImpl; | ||
| 11 | +import cn.iocoder.dashboard.modules.system.service.dept.impl.SysDeptServiceImpl; | ||
| 12 | +import cn.iocoder.dashboard.modules.system.service.logger.impl.SysLoginLogServiceImpl; | ||
| 13 | +import cn.iocoder.dashboard.modules.system.service.user.SysUserServiceImpl; | ||
| 14 | +import cn.iocoder.dashboard.util.AssertUtils; | ||
| 15 | +import cn.iocoder.dashboard.util.RandomUtils; | ||
| 16 | +import org.junit.jupiter.api.Test; | ||
| 17 | +import org.springframework.boot.test.mock.mockito.MockBean; | ||
| 18 | +import org.springframework.context.annotation.Import; | ||
| 19 | + | ||
| 20 | +import javax.annotation.Resource; | ||
| 21 | +import java.util.Date; | ||
| 22 | +import java.util.List; | ||
| 23 | +import java.util.stream.Collectors; | ||
| 24 | +import java.util.stream.Stream; | ||
| 25 | + | ||
| 26 | +import static org.junit.jupiter.api.Assertions.assertEquals; | ||
| 27 | + | ||
| 28 | +/** | ||
| 29 | + * SysUserSessionServiceImpl Tester. | ||
| 30 | + * | ||
| 31 | + * @author Lyon | ||
| 32 | + * @version 1.0 | ||
| 33 | + * @since <pre>3月 8, 2021</pre> | ||
| 34 | + */ | ||
| 35 | +@Import( | ||
| 36 | + SysUserSessionServiceImpl.class) | ||
| 37 | +public class SysUserSessionServiceImplTest extends BaseDbAndRedisUnitTest { | ||
| 38 | + | ||
| 39 | + @Resource | ||
| 40 | + SysUserSessionServiceImpl sysUserSessionService; | ||
| 41 | + @Resource | ||
| 42 | + SysUserSessionMapper sysUserSessionMapper; | ||
| 43 | + @MockBean | ||
| 44 | + SecurityProperties securityProperties; | ||
| 45 | + @MockBean | ||
| 46 | + SysDeptServiceImpl sysDeptService; | ||
| 47 | + @MockBean | ||
| 48 | + SysUserServiceImpl sysUserService; | ||
| 49 | + @MockBean | ||
| 50 | + SysLoginLogServiceImpl sysLoginLogService; | ||
| 51 | + @MockBean | ||
| 52 | + SysLoginUserRedisDAO sysLoginUserRedisDAO; | ||
| 53 | + | ||
| 54 | + @Test | ||
| 55 | + public void testClearSessionTimeout_success() throws Exception { | ||
| 56 | + // 准备超时数据 120 条, 在线用户 1 条 | ||
| 57 | + int expectedTimeoutCount = 120, expectedTotal = 1; | ||
| 58 | + | ||
| 59 | + // 准备数据 | ||
| 60 | + List<SysUserSessionDO> prepareData = Stream | ||
| 61 | + .iterate(0, i -> i) | ||
| 62 | + .limit(expectedTimeoutCount) | ||
| 63 | + .map(i -> RandomUtils.randomPojo(SysUserSessionDO.class, o -> o.setSessionTimeout(DateUtil.offsetSecond(new Date(), -1)))) | ||
| 64 | + .collect(Collectors.toList()); | ||
| 65 | + SysUserSessionDO sessionDO = RandomUtils.randomPojo(SysUserSessionDO.class, o -> o.setSessionTimeout(DateUtil.offsetMinute(new Date(), 30))); | ||
| 66 | + prepareData.add(sessionDO); | ||
| 67 | + prepareData.forEach(sysUserSessionMapper::insert); | ||
| 68 | + | ||
| 69 | + //清空超时数据 | ||
| 70 | + long actualTimeoutCount = sysUserSessionService.clearSessionTimeout(); | ||
| 71 | + //校验 | ||
| 72 | + assertEquals(expectedTimeoutCount, actualTimeoutCount); | ||
| 73 | + List<SysUserSessionDO> userSessionDOS = sysUserSessionMapper.selectList(); | ||
| 74 | + assertEquals(expectedTotal, userSessionDOS.size()); | ||
| 75 | + AssertUtils.assertPojoEquals(sessionDO, userSessionDOS.get(0), "updateTime"); | ||
| 76 | + } | ||
| 77 | + | ||
| 78 | +} |
src/test/resources/sql/clean.sql
| @@ -8,3 +8,4 @@ DELETE FROM "sys_role"; | @@ -8,3 +8,4 @@ DELETE FROM "sys_role"; | ||
| 8 | DELETE FROM "sys_role_menu"; | 8 | DELETE FROM "sys_role_menu"; |
| 9 | DELETE FROM "sys_menu"; | 9 | DELETE FROM "sys_menu"; |
| 10 | DELETE FROM "sys_dict_type"; | 10 | DELETE FROM "sys_dict_type"; |
| 11 | +DELETE FROM "sys_user_session"; |
src/test/resources/sql/create_tables.sql
| @@ -114,3 +114,18 @@ CREATE TABLE "sys_dict_type" ( | @@ -114,3 +114,18 @@ CREATE TABLE "sys_dict_type" ( | ||
| 114 | "deleted" bit NOT NULL DEFAULT FALSE, | 114 | "deleted" bit NOT NULL DEFAULT FALSE, |
| 115 | PRIMARY KEY ("id") | 115 | PRIMARY KEY ("id") |
| 116 | ) COMMENT '字典类型表'; | 116 | ) COMMENT '字典类型表'; |
| 117 | + | ||
| 118 | +CREATE TABLE `sys_user_session` ( | ||
| 119 | + `id` varchar(32) NOT NULL, | ||
| 120 | + `user_id` bigint DEFAULT NULL, | ||
| 121 | + `username` varchar(50) NOT NULL DEFAULT '', | ||
| 122 | + `user_ip` varchar(50) DEFAULT NULL, | ||
| 123 | + `user_agent` varchar(512) DEFAULT NULL, | ||
| 124 | + `session_timeout` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 125 | + "creator" varchar(64) DEFAULT '', | ||
| 126 | + "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 127 | + `updater` varchar(64) DEFAULT '' , | ||
| 128 | + "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
| 129 | + "deleted" bit NOT NULL DEFAULT FALSE, | ||
| 130 | + PRIMARY KEY (`id`) | ||
| 131 | +) COMMENT '用户在线 Session'; |