Commit 72422ad2848bde164fd40996ee3b9e968bd879a9

Authored by budliang
2 parents adac2e63 eb3ad700

Merge branch 'rouyi/master' into feature/notice_test

Showing 18 changed files with 377 additions and 223 deletions
README.md
1 ## 平台简介 1 ## 平台简介
2 2
3 -**芋道** 是基于 [RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue) **重构**,一套**全部开源**的**企业级**的快速开发平台,毫无保留给个人及企业免费使用。 3 +**芋道**,一套**全部开源**的**企业级**的快速开发平台,毫无保留给个人及企业免费使用。
4 4
5 > 有任何问题,或者想要的功能,可以在 _Issues_ 中提给艿艿。 5 > 有任何问题,或者想要的功能,可以在 _Issues_ 中提给艿艿。
6 6
@@ -17,40 +17,63 @@ @@ -17,40 +17,63 @@
17 * 基础设施 17 * 基础设施
18 * 研发工具 18 * 研发工具
19 19
  20 +> 友情提示:本项目基于 RuoYi-Vue 修改,**重构优化**后端的代码,**美化**前端的界面。
  21 +>
  22 +> 额外新增的功能,我们使用 🚀 标记。
  23 +
  24 +🙂 所有功能,都通过 **单元测试** 保证高质量。
  25 +
20 ### 系统功能 26 ### 系统功能
21 27
22 -1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置  
23 -1. 在线用户:当前系统中活跃用户状态监控  
24 -1. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分  
25 -1. 菜单管理:配置系统菜单,操作权限,按钮权限标识等  
26 -1. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限  
27 -1. 岗位管理:配置系统用户所属担任职务  
28 -1. 字典管理:对系统中经常使用的一些较为固定的数据进行维护  
29 -1. 通知公告:系统通知公告信息发布维护  
30 -1. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询  
31 -1. 登录日志:系统登录日志记录查询包含登录异常 28 +
  29 +| | 功能 | 描述 |
  30 +| --- | --- | --- |
  31 +| | 用户管理 | 用户是系统操作者,该功能主要完成系统用户配置 |
  32 +| | 在线用户 | 当前系统中活跃用户状态监控,支持手动踢下线 |
  33 +| | 角色管理 | 角色菜单权限分配、设置角色按机构进行数据范围权限划分 |
  34 +| | 菜单管理 | 配置系统菜单,操作权限,按钮权限标识等 |
  35 +| | 部门管理 | 配置系统组织机构(公司、部门、小组),树结构展现支持数据权限 |
  36 +| | 岗位管理 | 配置系统用户所属担任职务 |
  37 +| | 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护 |
  38 +| | 通知公告 | 系统通知公告信息发布维护 |
  39 +| 🚀 | 操作日志 | 系统正常操作日志记录和查询,集成 Swagger 生成日志内容 |
  40 +| | 登录日志 | 系统登录日志记录查询包含登录异常 |
  41 +
  42 +计划新增功能:
  43 +* 短信
  44 +* 邮件
  45 +* 钉钉、飞书等通知
32 46
33 ### 基础设施 47 ### 基础设施
34 48
35 -1. 配置管理:对系统动态配置常用参数  
36 -1. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志  
37 -1. API 日志:包括 RESTful API 访问日志、异常日志两部分,方便排查 API 相关的问题  
38 -1. MySQL 监控:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈  
39 -1. Redis 监控:监控 Redis 数据库的使用情况,使用的 Redis Key 管理  
40 -1. Java 监控:基于 Spring Boot Admin 实现 Java 应用的监控  
41 -1. 链路追踪:基于 SkyWalking 实现性能监控,特别是链路的追踪  
42 -1. 分布式锁:基于 Redis 实现分布式锁,满足并发场景  
43 -1. 幂等组件:基于 Redis 实现幂等组件,解决重复请求问题  
44 -1. 服务保障:基于 Resilience4j 实现服务的稳定性,包括限流、熔断等功能  
45 -1. 日志服务:轻量级日志中心,查看远程服务器的日志  
46 -1. 单元测试:基于 JUnit + Mockito 实现单元测试,保证功能的正确性、代码的质量等 49 +| | 功能 | 描述 |
  50 +| --- | --- | --- |
  51 +| 🚀 | 配置管理 | 对系统动态配置常用参数,支持 SpringBoot 加载 |
  52 +| | 定时任务 | 在线(添加、修改、删除)任务调度包含执行结果日志 |
  53 +| 🚀 | API 日志 | 包括 RESTful API 访问日志、异常日志两部分,方便排查 API 相关的问题 |
  54 +| | MySQL 监控 | 监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈 |
  55 +| | Redis 监控 |监控 Redis 数据库的使用情况,使用的 Redis Key 管理 |
  56 +| 🚀 |Java 监控 | 基于 Spring Boot Admin 实现 Java 应用的监控 |
  57 +| 🚀 | 链路追踪 | 基于 SkyWalking 实现性能监控,特别是链路的追踪 |
  58 +| 🚀 | 分布式锁 | 基于 Redis 实现分布式锁,满足并发场景 |
  59 +| 🚀 | 幂等组件 | 基于 Redis 实现幂等组件,解决重复请求问题 |
  60 +| 🚀 | 服务保障 | 基于 Resilience4j 实现服务的稳定性,包括限流、熔断等功能 |
  61 +| 🚀 | 日志服务 | 轻量级日志中心,查看远程服务器的日志 |
  62 +| 🚀 | 单元测试 |基于 JUnit + Mockito 实现单元测试,保证功能的正确性、代码的质量等 |
  63 +
  64 +计划新增:
  65 +* 工作流
  66 +* 错误码
  67 +* 文件服务
47 68
48 ### 研发工具 69 ### 研发工具
49 70
50 -1. 表单构建:拖动表单元素生成相应的 HTML 代码  
51 -1. 代码生成:前后端代码的生成(Java、Vue、SQL、单元测试),支持 CRUD 下载  
52 -1. 系统接口:基于 Swagger 自动生成相关的 RESTful API 接口文档  
53 -1. 数据库文档:基于 Screw 自动生成数据库文档 71 +| | 功能 | 描述 |
  72 +| --- | --- | --- |
  73 +| 🚀 | 代码生成 |前后端代码的生成(Java、Vue、SQL、单元测试),支持 CRUD 下载 |
  74 +| 🚀 | 系统接口 | 基于 Swagger 自动生成相关的 RESTful API 接口文档 |
  75 +| 🚀 | 数据库文档 | 基于 Screw 自动生成数据库文档,支持导出 Word、HTML、MD 格式 |
  76 +| | 表单构建 | 拖动表单元素生成相应的 HTML 代码 |
54 77
55 ## 在线体验 78 ## 在线体验
56 79
sql/ruoyi-vue-pro.sql
@@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@
11 Target Server Version : 50718 11 Target Server Version : 50718
12 File Encoding : 65001 12 File Encoding : 65001
13 13
14 - Date: 08/03/2021 00:50:29 14 + Date: 09/03/2021 20:39:41
15 */ 15 */
16 16
17 SET NAMES utf8mb4; 17 SET NAMES utf8mb4;
@@ -37,13 +37,13 @@ CREATE TABLE `inf_api_access_log` ( @@ -37,13 +37,13 @@ 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
46 -) ENGINE=InnoDB AUTO_INCREMENT=1850 DEFAULT CHARSET=utf8mb4 COMMENT='API 访问日志表'; 46 +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='API 访问日志表';
47 47
48 -- ---------------------------- 48 -- ----------------------------
49 -- Records of inf_api_access_log 49 -- Records of inf_api_access_log
@@ -78,13 +78,13 @@ CREATE TABLE `inf_api_error_log` ( @@ -78,13 +78,13 @@ 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
87 -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COMMENT='系统异常日志'; 87 +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统异常日志';
88 88
89 -- ---------------------------- 89 -- ----------------------------
90 -- Records of inf_api_error_log 90 -- Records of inf_api_error_log
@@ -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,13 +169,13 @@ CREATE TABLE `inf_job_log` ( @@ -169,13 +169,13 @@ 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
178 -) ENGINE=InnoDB AUTO_INCREMENT=4477 DEFAULT CHARSET=utf8mb4 COMMENT='定时任务日志表'; 178 +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='定时任务日志表';
179 179
180 -- ---------------------------- 180 -- ----------------------------
181 -- Records of inf_job_log 181 -- Records of inf_job_log
@@ -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,13 +376,13 @@ CREATE TABLE `sys_login_log` ( @@ -376,13 +376,13 @@ 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
385 -) ENGINE=InnoDB AUTO_INCREMENT=127 DEFAULT CHARSET=utf8mb4 COMMENT='系统访问记录'; 385 +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统访问记录';
386 386
387 -- ---------------------------- 387 -- ----------------------------
388 -- Records of sys_login_log 388 -- Records of sys_login_log
@@ -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,13 +573,13 @@ CREATE TABLE `sys_operate_log` ( @@ -573,13 +573,13 @@ 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
582 -) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4 COMMENT='æ“作日志记录'; 582 +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='æ“作日志记录';
583 583
584 -- ---------------------------- 584 -- ----------------------------
585 -- Records of sys_operate_log 585 -- Records of sys_operate_log
@@ -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 + `session_timeout` datetime NOT NULL COMMENT '会è¯è¶…æ—¶æ—¶é—´',
  902 + `username` varchar(30) NOT NULL COMMENT '用户账å·',
901 `user_ip` varchar(50) NOT NULL COMMENT '用户 IP', 903 `user_ip` varchar(50) NOT NULL COMMENT '用户 IP',
902 `user_agent` varchar(512) NOT NULL COMMENT 'æµè§ˆå™¨ UA', 904 `user_agent` varchar(512) NOT NULL COMMENT 'æµè§ˆå™¨ UA',
903 - `create_by` varchar(64) DEFAULT '' 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,6 @@ CREATE TABLE `sys_user_session` ( @@ -912,68 +914,6 @@ 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');  
977 COMMIT; 917 COMMIT;
978 918
979 -- ---------------------------- 919 -- ----------------------------
@@ -1000,9 +940,9 @@ CREATE TABLE `tool_codegen_column` ( @@ -1000,9 +940,9 @@ CREATE TABLE `tool_codegen_column` (
1000 `list_operation_condition` varchar(32) NOT NULL DEFAULT '=' COMMENT 'List 查询æ“作的æ¡ä»¶ç±»åž‹', 940 `list_operation_condition` varchar(32) NOT NULL DEFAULT '=' COMMENT 'List 查询æ“作的æ¡ä»¶ç±»åž‹',
1001 `list_operation_result` bit(1) NOT NULL COMMENT '是å¦ä¸º List 查询æ“作的返回字段', 941 `list_operation_result` bit(1) NOT NULL COMMENT '是å¦ä¸º List 查询æ“作的返回字段',
1002 `html_type` varchar(32) NOT NULL COMMENT '显示类型', 942 `html_type` varchar(32) NOT NULL COMMENT '显示类型',
1003 - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', 943 + `creator` varchar(64) DEFAULT '' COMMENT '创建者',
1004 `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', 944 `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
1005 - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', 945 + `updater` varchar(64) DEFAULT '' COMMENT '更新者',
1006 `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ›´æ–°æ—¶é—´', 946 `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ›´æ–°æ—¶é—´',
1007 `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ é™¤', 947 `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ é™¤',
1008 PRIMARY KEY (`id`) USING BTREE 948 PRIMARY KEY (`id`) USING BTREE
@@ -1018,9 +958,9 @@ INSERT INTO `tool_codegen_column` VALUES (234, 20, 'status', 'tinyint(4)', '状æ @@ -1018,9 +958,9 @@ INSERT INTO `tool_codegen_column` VALUES (234, 20, 'status', 'tinyint(4)', '状æ
1018 INSERT INTO `tool_codegen_column` VALUES (235, 20, 'type', 'tinyint(4)', '类型', b'0', b'0', '0', 4, 'Integer', 'type', 'sys_operate_type', '2', b'1', b'1', b'1', '=', b'1', 'select', '', '2021-02-06 01:33:25', '', '2021-02-06 03:26:05', b'0'); 958 INSERT INTO `tool_codegen_column` VALUES (235, 20, 'type', 'tinyint(4)', '类型', b'0', b'0', '0', 4, 'Integer', 'type', 'sys_operate_type', '2', b'1', b'1', b'1', '=', b'1', 'select', '', '2021-02-06 01:33:25', '', '2021-02-06 03:26:05', b'0');
1019 INSERT INTO `tool_codegen_column` VALUES (236, 20, 'category', 'tinyint(4)', '分类', b'0', b'0', '0', 5, 'Integer', 'category', 'inf_redis_timeout_type', '3', b'1', b'1', b'1', '=', b'1', 'radio', '', '2021-02-06 01:33:25', '', '2021-02-06 13:17:53', b'0'); 959 INSERT INTO `tool_codegen_column` VALUES (236, 20, 'category', 'tinyint(4)', '分类', b'0', b'0', '0', 5, 'Integer', 'category', 'inf_redis_timeout_type', '3', b'1', b'1', b'1', '=', b'1', 'radio', '', '2021-02-06 01:33:25', '', '2021-02-06 13:17:53', b'0');
1020 INSERT INTO `tool_codegen_column` VALUES (237, 20, 'remark', 'varchar(500)', '备注', b'1', b'0', '0', 6, 'String', 'remark', '', '我是备注', b'1', b'1', b'1', '=', b'1', 'input', '', '2021-02-06 01:33:25', '', '2021-02-06 03:26:08', b'0'); 960 INSERT INTO `tool_codegen_column` VALUES (237, 20, 'remark', 'varchar(500)', '备注', b'1', b'0', '0', 6, 'String', 'remark', '', '我是备注', b'1', b'1', b'1', '=', b'1', 'input', '', '2021-02-06 01:33:25', '', '2021-02-06 03:26:08', b'0');
1021 -INSERT INTO `tool_codegen_column` VALUES (238, 20, 'create_by', 'varchar(64)', '创建者', b'1', b'0', '0', 7, 'String', 'createBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-06 01:33:25', '', '2021-02-06 03:26:09', b'0'); 961 +INSERT INTO `tool_codegen_column` VALUES (238, 20, 'creator', 'varchar(64)', '创建者', b'1', b'0', '0', 7, 'String', 'createBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-06 01:33:25', '', '2021-02-06 03:26:09', b'0');
1022 INSERT INTO `tool_codegen_column` VALUES (239, 20, 'create_time', 'datetime', '创建时间', b'0', b'0', '0', 8, 'Date', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '', '2021-02-06 01:33:25', '', '2021-02-06 07:50:41', b'0'); 962 INSERT INTO `tool_codegen_column` VALUES (239, 20, 'create_time', 'datetime', '创建时间', b'0', b'0', '0', 8, 'Date', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '', '2021-02-06 01:33:25', '', '2021-02-06 07:50:41', b'0');
1023 -INSERT INTO `tool_codegen_column` VALUES (240, 20, 'update_by', 'varchar(64)', '更新者', b'1', b'0', '0', 9, 'String', 'updateBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-06 01:33:25', '', '2021-02-06 03:26:13', b'0'); 963 +INSERT INTO `tool_codegen_column` VALUES (240, 20, 'updater', 'varchar(64)', '更新者', b'1', b'0', '0', 9, 'String', 'updateBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-06 01:33:25', '', '2021-02-06 03:26:13', b'0');
1024 INSERT INTO `tool_codegen_column` VALUES (241, 20, 'update_time', 'datetime', 'æ›´æ–°æ—¶é—´', b'0', b'0', '0', 10, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', '=', b'0', 'datetime', '', '2021-02-06 01:33:25', '', '2021-02-06 08:02:20', b'0'); 964 INSERT INTO `tool_codegen_column` VALUES (241, 20, 'update_time', 'datetime', 'æ›´æ–°æ—¶é—´', b'0', b'0', '0', 10, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', '=', b'0', 'datetime', '', '2021-02-06 01:33:25', '', '2021-02-06 08:02:20', b'0');
1025 INSERT INTO `tool_codegen_column` VALUES (242, 20, 'deleted', 'bit(1)', '是å¦åˆ é™¤', b'0', b'0', '0', 11, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'1', '=', b'0', 'radio', '', '2021-02-06 01:33:25', '', '2021-02-06 07:52:14', b'0'); 965 INSERT INTO `tool_codegen_column` VALUES (242, 20, 'deleted', 'bit(1)', '是å¦åˆ é™¤', b'0', b'0', '0', 11, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'1', '=', b'0', 'radio', '', '2021-02-06 01:33:25', '', '2021-02-06 07:52:14', b'0');
1026 INSERT INTO `tool_codegen_column` VALUES (243, 21, 'id', 'int(5)', '傿•°ä¸»é”®', b'0', b'1', '1', 1, 'Integer', 'id', '', NULL, b'0', b'1', b'0', '=', b'1', 'input', '', '2021-02-06 19:51:35', '', '2021-02-06 19:51:35', b'0'); 966 INSERT INTO `tool_codegen_column` VALUES (243, 21, 'id', 'int(5)', '傿•°ä¸»é”®', b'0', b'1', '1', 1, 'Integer', 'id', '', NULL, b'0', b'1', b'0', '=', b'1', 'input', '', '2021-02-06 19:51:35', '', '2021-02-06 19:51:35', b'0');
@@ -1031,9 +971,9 @@ INSERT INTO `tool_codegen_column` VALUES (247, 21, 'key', 'varchar(100)', '傿• @@ -1031,9 +971,9 @@ INSERT INTO `tool_codegen_column` VALUES (247, 21, 'key', 'varchar(100)', '傿•
1031 INSERT INTO `tool_codegen_column` VALUES (248, 21, 'value', 'varchar(500)', '傿•°é”®å€¼', b'0', b'0', '0', 6, 'String', 'value', '', NULL, b'1', b'1', b'0', '=', b'1', 'input', '', '2021-02-06 19:51:35', '', '2021-03-06 02:20:02', b'0'); 971 INSERT INTO `tool_codegen_column` VALUES (248, 21, 'value', 'varchar(500)', '傿•°é”®å€¼', b'0', b'0', '0', 6, 'String', 'value', '', NULL, b'1', b'1', b'0', '=', b'1', 'input', '', '2021-02-06 19:51:35', '', '2021-03-06 02:20:02', b'0');
1032 INSERT INTO `tool_codegen_column` VALUES (249, 21, 'sensitive', 'bit(1)', 'æ˜¯å¦æ•感', b'0', b'0', '0', 7, 'Boolean', 'sensitive', '', NULL, b'1', b'1', b'0', '=', b'1', 'radio', '', '2021-02-06 19:51:35', '', '2021-03-06 02:20:02', b'0'); 972 INSERT INTO `tool_codegen_column` VALUES (249, 21, 'sensitive', 'bit(1)', 'æ˜¯å¦æ•感', b'0', b'0', '0', 7, 'Boolean', 'sensitive', '', NULL, b'1', b'1', b'0', '=', b'1', 'radio', '', '2021-02-06 19:51:35', '', '2021-03-06 02:20:02', b'0');
1033 INSERT INTO `tool_codegen_column` VALUES (250, 21, 'remark', 'varchar(500)', '备注', b'1', b'0', '0', 8, 'String', 'remark', '', NULL, b'1', b'1', b'0', '=', b'1', 'input', '', '2021-02-06 19:51:35', '', '2021-03-06 02:20:02', b'0'); 973 INSERT INTO `tool_codegen_column` VALUES (250, 21, 'remark', 'varchar(500)', '备注', b'1', b'0', '0', 8, 'String', 'remark', '', NULL, b'1', b'1', b'0', '=', b'1', 'input', '', '2021-02-06 19:51:35', '', '2021-03-06 02:20:02', b'0');
1034 -INSERT INTO `tool_codegen_column` VALUES (251, 21, 'create_by', 'varchar(64)', '创建者', b'1', b'0', '0', 9, 'String', 'createBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-06 19:51:35', '', '2021-02-06 19:51:35', b'0'); 974 +INSERT INTO `tool_codegen_column` VALUES (251, 21, 'creator', 'varchar(64)', '创建者', b'1', b'0', '0', 9, 'String', 'createBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-06 19:51:35', '', '2021-02-06 19:51:35', b'0');
1035 INSERT INTO `tool_codegen_column` VALUES (252, 21, 'create_time', 'datetime', '创建时间', b'0', b'0', '0', 10, 'Date', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '', '2021-02-06 19:51:35', '', '2021-02-06 19:51:35', b'0'); 975 INSERT INTO `tool_codegen_column` VALUES (252, 21, 'create_time', 'datetime', '创建时间', b'0', b'0', '0', 10, 'Date', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '', '2021-02-06 19:51:35', '', '2021-02-06 19:51:35', b'0');
1036 -INSERT INTO `tool_codegen_column` VALUES (253, 21, 'update_by', 'varchar(64)', '更新者', b'1', b'0', '0', 11, 'String', 'updateBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-06 19:51:35', '', '2021-02-06 19:51:35', b'0'); 976 +INSERT INTO `tool_codegen_column` VALUES (253, 21, 'updater', 'varchar(64)', '更新者', b'1', b'0', '0', 11, 'String', 'updateBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-06 19:51:35', '', '2021-02-06 19:51:35', b'0');
1037 INSERT INTO `tool_codegen_column` VALUES (254, 21, 'update_time', 'datetime', 'æ›´æ–°æ—¶é—´', b'0', b'0', '0', 12, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '', '2021-02-06 19:51:35', '', '2021-02-06 19:51:35', b'0'); 977 INSERT INTO `tool_codegen_column` VALUES (254, 21, 'update_time', 'datetime', 'æ›´æ–°æ—¶é—´', b'0', b'0', '0', 12, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '', '2021-02-06 19:51:35', '', '2021-02-06 19:51:35', b'0');
1038 INSERT INTO `tool_codegen_column` VALUES (255, 21, 'deleted', 'bit(1)', '是å¦åˆ é™¤', b'0', b'0', '0', 13, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '', '2021-02-06 19:51:35', '', '2021-02-06 19:51:35', b'0'); 978 INSERT INTO `tool_codegen_column` VALUES (255, 21, 'deleted', 'bit(1)', '是å¦åˆ é™¤', b'0', b'0', '0', 13, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '', '2021-02-06 19:51:35', '', '2021-02-06 19:51:35', b'0');
1039 INSERT INTO `tool_codegen_column` VALUES (256, 23, 'job_id', 'bigint(20)', '任务ID', b'0', b'1', '1', 1, 'Long', 'jobId', '', NULL, b'0', b'1', b'0', '=', b'1', 'input', '', '2021-02-06 20:29:26', '', '2021-02-07 06:38:51', b'1'); 979 INSERT INTO `tool_codegen_column` VALUES (256, 23, 'job_id', 'bigint(20)', '任务ID', b'0', b'1', '1', 1, 'Long', 'jobId', '', NULL, b'0', b'1', b'0', '=', b'1', 'input', '', '2021-02-06 20:29:26', '', '2021-02-07 06:38:51', b'1');
@@ -1044,9 +984,9 @@ INSERT INTO `tool_codegen_column` VALUES (260, 23, 'cron_expression', 'varchar(2 @@ -1044,9 +984,9 @@ INSERT INTO `tool_codegen_column` VALUES (260, 23, 'cron_expression', 'varchar(2
1044 INSERT INTO `tool_codegen_column` VALUES (261, 23, 'misfire_policy', 'varchar(20)', '计划执行错误策略(1ç«‹å³æ‰§è¡Œ 2执行一次 3放弃执行)', b'1', b'0', '0', 6, 'String', 'misfirePolicy', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '', '2021-02-06 20:29:26', '', '2021-02-06 20:47:14', b'1'); 984 INSERT INTO `tool_codegen_column` VALUES (261, 23, 'misfire_policy', 'varchar(20)', '计划执行错误策略(1ç«‹å³æ‰§è¡Œ 2执行一次 3放弃执行)', b'1', b'0', '0', 6, 'String', 'misfirePolicy', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '', '2021-02-06 20:29:26', '', '2021-02-06 20:47:14', b'1');
1045 INSERT INTO `tool_codegen_column` VALUES (262, 23, 'concurrent', 'char(1)', '是å¦å¹¶å‘执行(0å…许 1ç¦æ­¢ï¼‰', b'1', b'0', '0', 7, 'String', 'concurrent', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '', '2021-02-06 20:29:26', '', '2021-02-06 20:47:14', b'1'); 985 INSERT INTO `tool_codegen_column` VALUES (262, 23, 'concurrent', 'char(1)', '是å¦å¹¶å‘执行(0å…许 1ç¦æ­¢ï¼‰', b'1', b'0', '0', 7, 'String', 'concurrent', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '', '2021-02-06 20:29:26', '', '2021-02-06 20:47:14', b'1');
1046 INSERT INTO `tool_codegen_column` VALUES (263, 23, 'status', 'char(1)', '状æ€ï¼ˆ0正常 1æš‚åœï¼‰', b'1', b'0', '0', 8, 'String', 'status', '', NULL, b'1', b'1', b'1', '=', b'1', 'radio', '', '2021-02-06 20:29:26', '', '2021-02-06 20:46:49', b'1'); 986 INSERT INTO `tool_codegen_column` VALUES (263, 23, 'status', 'char(1)', '状æ€ï¼ˆ0正常 1æš‚åœï¼‰', b'1', b'0', '0', 8, 'String', 'status', '', NULL, b'1', b'1', b'1', '=', b'1', 'radio', '', '2021-02-06 20:29:26', '', '2021-02-06 20:46:49', b'1');
1047 -INSERT INTO `tool_codegen_column` VALUES (264, 23, 'create_by', 'varchar(64)', '创建者', b'1', b'0', '0', 9, 'String', 'createBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-06 20:29:26', '', '2021-02-06 20:46:49', b'1'); 987 +INSERT INTO `tool_codegen_column` VALUES (264, 23, 'creator', 'varchar(64)', '创建者', b'1', b'0', '0', 9, 'String', 'createBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-06 20:29:26', '', '2021-02-06 20:46:49', b'1');
1048 INSERT INTO `tool_codegen_column` VALUES (265, 23, 'create_time', 'datetime', '创建时间', b'0', b'0', '0', 10, 'Date', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '', '2021-02-06 20:29:26', '', '2021-02-06 20:46:49', b'1'); 988 INSERT INTO `tool_codegen_column` VALUES (265, 23, 'create_time', 'datetime', '创建时间', b'0', b'0', '0', 10, 'Date', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '', '2021-02-06 20:29:26', '', '2021-02-06 20:46:49', b'1');
1049 -INSERT INTO `tool_codegen_column` VALUES (266, 23, 'update_by', 'varchar(64)', '更新者', b'1', b'0', '0', 11, 'String', 'updateBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-06 20:29:26', '', '2021-02-06 20:46:49', b'1'); 989 +INSERT INTO `tool_codegen_column` VALUES (266, 23, 'updater', 'varchar(64)', '更新者', b'1', b'0', '0', 11, 'String', 'updateBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-06 20:29:26', '', '2021-02-06 20:46:49', b'1');
1050 INSERT INTO `tool_codegen_column` VALUES (267, 23, 'update_time', 'datetime', 'æ›´æ–°æ—¶é—´', b'1', b'0', '0', 12, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '', '2021-02-06 20:29:26', '', '2021-02-06 20:47:14', b'1'); 990 INSERT INTO `tool_codegen_column` VALUES (267, 23, 'update_time', 'datetime', 'æ›´æ–°æ—¶é—´', b'1', b'0', '0', 12, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '', '2021-02-06 20:29:26', '', '2021-02-06 20:47:14', b'1');
1051 INSERT INTO `tool_codegen_column` VALUES (268, 23, 'remark', 'varchar(500)', '备注信æ¯', b'1', b'0', '0', 13, 'String', 'remark', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '', '2021-02-06 20:29:26', '', '2021-02-06 20:47:14', b'1'); 991 INSERT INTO `tool_codegen_column` VALUES (268, 23, 'remark', 'varchar(500)', '备注信æ¯', b'1', b'0', '0', 13, 'String', 'remark', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '', '2021-02-06 20:29:26', '', '2021-02-06 20:47:14', b'1');
1052 INSERT INTO `tool_codegen_column` VALUES (269, 24, 'id', 'bigint(20)', '任务编å·', b'0', b'1', '1', 1, 'Long', 'id', '', '1024', b'0', b'1', b'0', '=', b'1', 'input', '', '2021-02-07 06:39:34', '', '2021-02-07 06:44:19', b'0'); 992 INSERT INTO `tool_codegen_column` VALUES (269, 24, 'id', 'bigint(20)', '任务编å·', b'0', b'1', '1', 1, 'Long', 'id', '', '1024', b'0', b'1', b'0', '=', b'1', 'input', '', '2021-02-07 06:39:34', '', '2021-02-07 06:44:19', b'0');
@@ -1060,9 +1000,9 @@ INSERT INTO `tool_codegen_column` VALUES (276, 24, 'execute_end_time', 'datetime @@ -1060,9 +1000,9 @@ INSERT INTO `tool_codegen_column` VALUES (276, 24, 'execute_end_time', 'datetime
1060 INSERT INTO `tool_codegen_column` VALUES (277, 24, 'fire_prev_time', 'datetime', 'ä¸Šä¸€æ¬¡è§¦å‘æ—¶é—´', b'1', b'0', '0', 9, 'Date', 'firePrevTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'1', 'datetime', '', '2021-02-07 06:39:34', '', '2021-02-07 07:53:27', b'0'); 1000 INSERT INTO `tool_codegen_column` VALUES (277, 24, 'fire_prev_time', 'datetime', 'ä¸Šä¸€æ¬¡è§¦å‘æ—¶é—´', b'1', b'0', '0', 9, 'Date', 'firePrevTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'1', 'datetime', '', '2021-02-07 06:39:34', '', '2021-02-07 07:53:27', b'0');
1061 INSERT INTO `tool_codegen_column` VALUES (278, 24, 'fire_next_time', 'datetime', 'ä¸‹ä¸€æ¬¡è§¦å‘æ—¶é—´', b'1', b'0', '0', 10, 'Date', 'fireNextTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'1', 'datetime', '', '2021-02-07 06:39:34', '', '2021-02-07 07:53:27', b'0'); 1001 INSERT INTO `tool_codegen_column` VALUES (278, 24, 'fire_next_time', 'datetime', 'ä¸‹ä¸€æ¬¡è§¦å‘æ—¶é—´', b'1', b'0', '0', 10, 'Date', 'fireNextTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'1', 'datetime', '', '2021-02-07 06:39:34', '', '2021-02-07 07:53:27', b'0');
1062 INSERT INTO `tool_codegen_column` VALUES (279, 24, 'monitor_timeout', 'int(11)', '监控超时时间', b'1', b'0', '0', 11, 'Integer', 'monitorTimeout', '', '1000', b'1', b'1', b'0', '=', b'1', 'input', '', '2021-02-07 06:39:34', '', '2021-02-07 06:44:19', b'0'); 1002 INSERT INTO `tool_codegen_column` VALUES (279, 24, 'monitor_timeout', 'int(11)', '监控超时时间', b'1', b'0', '0', 11, 'Integer', 'monitorTimeout', '', '1000', b'1', b'1', b'0', '=', b'1', 'input', '', '2021-02-07 06:39:34', '', '2021-02-07 06:44:19', b'0');
1063 -INSERT INTO `tool_codegen_column` VALUES (280, 24, 'create_by', 'varchar(64)', '创建者', b'1', b'0', '0', 12, 'String', 'createBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-07 06:39:34', '', '2021-02-07 06:39:34', b'0'); 1003 +INSERT INTO `tool_codegen_column` VALUES (280, 24, 'creator', 'varchar(64)', '创建者', b'1', b'0', '0', 12, 'String', 'createBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-07 06:39:34', '', '2021-02-07 06:39:34', b'0');
1064 INSERT INTO `tool_codegen_column` VALUES (281, 24, 'create_time', 'datetime', '创建时间', b'0', b'0', '0', 13, 'Date', 'createTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'1', 'datetime', '', '2021-02-07 06:39:34', '', '2021-02-07 06:44:19', b'0'); 1004 INSERT INTO `tool_codegen_column` VALUES (281, 24, 'create_time', 'datetime', '创建时间', b'0', b'0', '0', 13, 'Date', 'createTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'1', 'datetime', '', '2021-02-07 06:39:34', '', '2021-02-07 06:44:19', b'0');
1065 -INSERT INTO `tool_codegen_column` VALUES (282, 24, 'update_by', 'varchar(64)', '更新者', b'1', b'0', '0', 14, 'String', 'updateBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-07 06:39:34', '', '2021-02-07 06:39:34', b'0'); 1005 +INSERT INTO `tool_codegen_column` VALUES (282, 24, 'updater', 'varchar(64)', '更新者', b'1', b'0', '0', 14, 'String', 'updateBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-07 06:39:34', '', '2021-02-07 06:39:34', b'0');
1066 INSERT INTO `tool_codegen_column` VALUES (283, 24, 'update_time', 'datetime', 'æ›´æ–°æ—¶é—´', b'0', b'0', '0', 15, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '', '2021-02-07 06:39:34', '', '2021-02-07 06:39:34', b'0'); 1006 INSERT INTO `tool_codegen_column` VALUES (283, 24, 'update_time', 'datetime', 'æ›´æ–°æ—¶é—´', b'0', b'0', '0', 15, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '', '2021-02-07 06:39:34', '', '2021-02-07 06:39:34', b'0');
1067 INSERT INTO `tool_codegen_column` VALUES (284, 24, 'deleted', 'bit(1)', '是å¦åˆ é™¤', b'0', b'0', '0', 16, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '', '2021-02-07 06:39:34', '', '2021-02-07 06:39:34', b'0'); 1007 INSERT INTO `tool_codegen_column` VALUES (284, 24, 'deleted', 'bit(1)', '是å¦åˆ é™¤', b'0', b'0', '0', 16, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '', '2021-02-07 06:39:34', '', '2021-02-07 06:39:34', b'0');
1068 INSERT INTO `tool_codegen_column` VALUES (285, 24, 'retry_count', 'int(11)', 'é‡è¯•次数', b'0', b'0', '0', 11, 'Integer', 'retryCount', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '', '2021-02-08 04:17:27', '', '2021-02-08 04:17:27', b'0'); 1008 INSERT INTO `tool_codegen_column` VALUES (285, 24, 'retry_count', 'int(11)', 'é‡è¯•次数', b'0', b'0', '0', 11, 'Integer', 'retryCount', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '', '2021-02-08 04:17:27', '', '2021-02-08 04:17:27', b'0');
@@ -1077,9 +1017,9 @@ INSERT INTO `tool_codegen_column` VALUES (293, 25, 'end_time', 'datetime', '结æ @@ -1077,9 +1017,9 @@ INSERT INTO `tool_codegen_column` VALUES (293, 25, 'end_time', 'datetime', '结æ
1077 INSERT INTO `tool_codegen_column` VALUES (294, 25, 'duration', 'int(11)', '执行时长', b'1', b'0', '0', 8, 'Integer', 'duration', '', NULL, b'1', b'1', b'0', '=', b'1', 'input', '', '2021-02-08 04:58:41', '', '2021-02-08 05:06:07', b'0'); 1017 INSERT INTO `tool_codegen_column` VALUES (294, 25, 'duration', 'int(11)', '执行时长', b'1', b'0', '0', 8, 'Integer', 'duration', '', NULL, b'1', b'1', b'0', '=', b'1', 'input', '', '2021-02-08 04:58:41', '', '2021-02-08 05:06:07', b'0');
1078 INSERT INTO `tool_codegen_column` VALUES (295, 25, 'status', 'tinyint(4)', '任务状æ€', b'0', b'0', '0', 9, 'Integer', 'status', 'inf_job_log_status', NULL, b'1', b'1', b'1', '=', b'1', 'radio', '', '2021-02-08 04:58:41', '', '2021-02-08 10:21:07', b'0'); 1018 INSERT INTO `tool_codegen_column` VALUES (295, 25, 'status', 'tinyint(4)', '任务状æ€', b'0', b'0', '0', 9, 'Integer', 'status', 'inf_job_log_status', NULL, b'1', b'1', b'1', '=', b'1', 'radio', '', '2021-02-08 04:58:41', '', '2021-02-08 10:21:07', b'0');
1079 INSERT INTO `tool_codegen_column` VALUES (296, 25, 'result', 'varchar(4000)', '结果数æ®', b'1', b'0', '0', 10, 'String', 'result', '', NULL, b'1', b'1', b'0', '=', b'1', 'input', '', '2021-02-08 04:58:41', '', '2021-02-08 05:06:07', b'0'); 1019 INSERT INTO `tool_codegen_column` VALUES (296, 25, 'result', 'varchar(4000)', '结果数æ®', b'1', b'0', '0', 10, 'String', 'result', '', NULL, b'1', b'1', b'0', '=', b'1', 'input', '', '2021-02-08 04:58:41', '', '2021-02-08 05:06:07', b'0');
1080 -INSERT INTO `tool_codegen_column` VALUES (297, 25, 'create_by', 'varchar(64)', '创建者', b'1', b'0', '0', 11, 'String', 'createBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-08 04:58:41', '', '2021-02-08 04:58:41', b'0'); 1020 +INSERT INTO `tool_codegen_column` VALUES (297, 25, 'creator', 'varchar(64)', '创建者', b'1', b'0', '0', 11, 'String', 'createBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-08 04:58:41', '', '2021-02-08 04:58:41', b'0');
1081 INSERT INTO `tool_codegen_column` VALUES (298, 25, 'create_time', 'datetime', '创建时间', b'0', b'0', '0', 12, 'Date', 'createTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'1', 'datetime', '', '2021-02-08 04:58:41', '', '2021-02-08 05:06:07', b'0'); 1021 INSERT INTO `tool_codegen_column` VALUES (298, 25, 'create_time', 'datetime', '创建时间', b'0', b'0', '0', 12, 'Date', 'createTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'1', 'datetime', '', '2021-02-08 04:58:41', '', '2021-02-08 05:06:07', b'0');
1082 -INSERT INTO `tool_codegen_column` VALUES (299, 25, 'update_by', 'varchar(64)', '更新者', b'1', b'0', '0', 13, 'String', 'updateBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-08 04:58:41', '', '2021-02-08 04:58:41', b'0'); 1022 +INSERT INTO `tool_codegen_column` VALUES (299, 25, 'updater', 'varchar(64)', '更新者', b'1', b'0', '0', 13, 'String', 'updateBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-08 04:58:41', '', '2021-02-08 04:58:41', b'0');
1083 INSERT INTO `tool_codegen_column` VALUES (300, 25, 'update_time', 'datetime', 'æ›´æ–°æ—¶é—´', b'0', b'0', '0', 14, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '', '2021-02-08 04:58:41', '', '2021-02-08 04:58:41', b'0'); 1023 INSERT INTO `tool_codegen_column` VALUES (300, 25, 'update_time', 'datetime', 'æ›´æ–°æ—¶é—´', b'0', b'0', '0', 14, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '', '2021-02-08 04:58:41', '', '2021-02-08 04:58:41', b'0');
1084 INSERT INTO `tool_codegen_column` VALUES (301, 25, 'deleted', 'bit(1)', '是å¦åˆ é™¤', b'0', b'0', '0', 15, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '', '2021-02-08 04:58:41', '', '2021-02-08 04:58:41', b'0'); 1024 INSERT INTO `tool_codegen_column` VALUES (301, 25, 'deleted', 'bit(1)', '是å¦åˆ é™¤', b'0', b'0', '0', 15, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '', '2021-02-08 04:58:41', '', '2021-02-08 04:58:41', b'0');
1085 INSERT INTO `tool_codegen_column` VALUES (302, 26, 'id', 'bigint(20)', '日志主键', b'0', b'1', '1', 1, 'Long', 'id', '', '1024', b'0', b'1', b'0', '=', b'1', 'input', '', '2021-02-26 00:13:35', '', '2021-02-26 00:18:03', b'0'); 1025 INSERT INTO `tool_codegen_column` VALUES (302, 26, 'id', 'bigint(20)', '日志主键', b'0', b'1', '1', 1, 'Long', 'id', '', '1024', b'0', b'1', b'0', '=', b'1', 'input', '', '2021-02-26 00:13:35', '', '2021-02-26 00:18:03', b'0');
@@ -1097,9 +1037,9 @@ INSERT INTO `tool_codegen_column` VALUES (314, 26, 'end_time', 'datetime', '结æ @@ -1097,9 +1037,9 @@ INSERT INTO `tool_codegen_column` VALUES (314, 26, 'end_time', 'datetime', '结æ
1097 INSERT INTO `tool_codegen_column` VALUES (315, 26, 'duration', 'int(11)', '执行时长', b'0', b'0', '0', 14, 'Integer', 'duration', '', '100', b'1', b'1', b'1', '>=', b'1', 'input', '', '2021-02-26 00:13:35', '', '2021-02-26 00:29:12', b'0'); 1037 INSERT INTO `tool_codegen_column` VALUES (315, 26, 'duration', 'int(11)', '执行时长', b'0', b'0', '0', 14, 'Integer', 'duration', '', '100', b'1', b'1', b'1', '>=', b'1', 'input', '', '2021-02-26 00:13:35', '', '2021-02-26 00:29:12', b'0');
1098 INSERT INTO `tool_codegen_column` VALUES (316, 26, 'result_code', 'int(11)', '结果ç ', b'0', b'0', '0', 15, 'Integer', 'resultCode', '', '0', b'1', b'1', b'1', '=', b'1', 'input', '', '2021-02-26 00:13:35', '', '2021-02-26 00:29:12', b'0'); 1038 INSERT INTO `tool_codegen_column` VALUES (316, 26, 'result_code', 'int(11)', '结果ç ', b'0', b'0', '0', 15, 'Integer', 'resultCode', '', '0', b'1', b'1', b'1', '=', b'1', 'input', '', '2021-02-26 00:13:35', '', '2021-02-26 00:29:12', b'0');
1099 INSERT INTO `tool_codegen_column` VALUES (317, 26, 'result_msg', 'varchar(512)', '结果æç¤º', b'1', b'0', '0', 16, 'String', 'resultMsg', '', 'èŠ‹é“æºç ï¼Œç‰›é€¼ï¼', b'1', b'1', b'0', '=', b'1', 'input', '', '2021-02-26 00:13:35', '', '2021-02-26 00:30:58', b'0'); 1039 INSERT INTO `tool_codegen_column` VALUES (317, 26, 'result_msg', 'varchar(512)', '结果æç¤º', b'1', b'0', '0', 16, 'String', 'resultMsg', '', 'èŠ‹é“æºç ï¼Œç‰›é€¼ï¼', b'1', b'1', b'0', '=', b'1', 'input', '', '2021-02-26 00:13:35', '', '2021-02-26 00:30:58', b'0');
1100 -INSERT INTO `tool_codegen_column` VALUES (318, 26, 'create_by', 'varchar(64)', '创建者', b'1', b'0', '0', 17, 'String', 'createBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-26 00:13:35', '', '2021-02-26 00:13:35', b'0'); 1040 +INSERT INTO `tool_codegen_column` VALUES (318, 26, 'creator', 'varchar(64)', '创建者', b'1', b'0', '0', 17, 'String', 'createBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-26 00:13:35', '', '2021-02-26 00:13:35', b'0');
1101 INSERT INTO `tool_codegen_column` VALUES (319, 26, 'create_time', 'datetime', '创建时间', b'0', b'0', '0', 18, 'Date', 'createTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'1', 'datetime', '', '2021-02-26 00:13:35', '', '2021-02-26 00:33:02', b'0'); 1041 INSERT INTO `tool_codegen_column` VALUES (319, 26, 'create_time', 'datetime', '创建时间', b'0', b'0', '0', 18, 'Date', 'createTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'1', 'datetime', '', '2021-02-26 00:13:35', '', '2021-02-26 00:33:02', b'0');
1102 -INSERT INTO `tool_codegen_column` VALUES (320, 26, 'update_by', 'varchar(64)', '更新者', b'1', b'0', '0', 19, 'String', 'updateBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-26 00:13:35', '', '2021-02-26 00:13:35', b'0'); 1042 +INSERT INTO `tool_codegen_column` VALUES (320, 26, 'updater', 'varchar(64)', '更新者', b'1', b'0', '0', 19, 'String', 'updateBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-26 00:13:35', '', '2021-02-26 00:13:35', b'0');
1103 INSERT INTO `tool_codegen_column` VALUES (321, 26, 'update_time', 'datetime', 'æ›´æ–°æ—¶é—´', b'0', b'0', '0', 20, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '', '2021-02-26 00:13:35', '', '2021-02-26 00:13:35', b'0'); 1043 INSERT INTO `tool_codegen_column` VALUES (321, 26, 'update_time', 'datetime', 'æ›´æ–°æ—¶é—´', b'0', b'0', '0', 20, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '', '2021-02-26 00:13:35', '', '2021-02-26 00:13:35', b'0');
1104 INSERT INTO `tool_codegen_column` VALUES (322, 26, 'deleted', 'bit(1)', '是å¦åˆ é™¤', b'0', b'0', '0', 21, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '', '2021-02-26 00:13:35', '', '2021-02-26 00:13:35', b'0'); 1044 INSERT INTO `tool_codegen_column` VALUES (322, 26, 'deleted', 'bit(1)', '是å¦åˆ é™¤', b'0', b'0', '0', 21, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '', '2021-02-26 00:13:35', '', '2021-02-26 00:13:35', b'0');
1105 INSERT INTO `tool_codegen_column` VALUES (323, 27, 'id', 'int(11)', 'ç¼–å·', b'0', b'1', '1', 1, 'Integer', 'id', '', '1024', b'0', b'1', b'0', '=', b'1', 'input', '', '2021-02-26 06:54:49', '', '2021-02-26 06:58:23', b'0'); 1045 INSERT INTO `tool_codegen_column` VALUES (323, 27, 'id', 'int(11)', 'ç¼–å·', b'0', b'1', '1', 1, 'Integer', 'id', '', '1024', b'0', b'1', b'0', '=', b'1', 'input', '', '2021-02-26 06:54:49', '', '2021-02-26 06:58:23', b'0');
@@ -1122,7 +1062,7 @@ INSERT INTO `tool_codegen_column` VALUES (339, 27, 'exception_file_name', 'varch @@ -1122,7 +1062,7 @@ INSERT INTO `tool_codegen_column` VALUES (339, 27, 'exception_file_name', 'varch
1122 INSERT INTO `tool_codegen_column` VALUES (340, 27, 'exception_method_name', 'varchar(512)', '异常å‘生的方法å', b'0', b'0', '0', 18, 'String', 'exceptionMethodName', '', NULL, b'1', b'1', b'0', 'LIKE', b'1', 'input', '', '2021-02-26 06:54:49', '', '2021-02-26 07:10:19', b'0'); 1062 INSERT INTO `tool_codegen_column` VALUES (340, 27, 'exception_method_name', 'varchar(512)', '异常å‘生的方法å', b'0', b'0', '0', 18, 'String', 'exceptionMethodName', '', NULL, b'1', b'1', b'0', 'LIKE', b'1', 'input', '', '2021-02-26 06:54:49', '', '2021-02-26 07:10:19', b'0');
1123 INSERT INTO `tool_codegen_column` VALUES (341, 27, 'exception_line_number', 'int(11)', '异常å‘生的方法所在行', b'0', b'0', '0', 19, 'Integer', 'exceptionLineNumber', '', NULL, b'1', b'1', b'0', '=', b'1', 'input', '', '2021-02-26 06:54:49', '', '2021-02-26 07:10:19', b'0'); 1063 INSERT INTO `tool_codegen_column` VALUES (341, 27, 'exception_line_number', 'int(11)', '异常å‘生的方法所在行', b'0', b'0', '0', 19, 'Integer', 'exceptionLineNumber', '', NULL, b'1', b'1', b'0', '=', b'1', 'input', '', '2021-02-26 06:54:49', '', '2021-02-26 07:10:19', b'0');
1124 INSERT INTO `tool_codegen_column` VALUES (342, 27, 'create_time', 'datetime', '创建时间', b'0', b'0', '0', 20, 'Date', 'createTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'1', 'datetime', '', '2021-02-26 06:54:49', '', '2021-02-26 06:56:14', b'0'); 1064 INSERT INTO `tool_codegen_column` VALUES (342, 27, 'create_time', 'datetime', '创建时间', b'0', b'0', '0', 20, 'Date', 'createTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'1', 'datetime', '', '2021-02-26 06:54:49', '', '2021-02-26 06:56:14', b'0');
1125 -INSERT INTO `tool_codegen_column` VALUES (343, 27, 'update_by', 'varchar(64)', '更新者', b'0', b'0', '0', 21, 'String', 'updateBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-26 06:54:49', '', '2021-02-26 06:56:14', b'0'); 1065 +INSERT INTO `tool_codegen_column` VALUES (343, 27, 'updater', 'varchar(64)', '更新者', b'0', b'0', '0', 21, 'String', 'updateBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-02-26 06:54:49', '', '2021-02-26 06:56:14', b'0');
1126 INSERT INTO `tool_codegen_column` VALUES (344, 27, 'update_time', 'datetime', 'æ›´æ–°æ—¶é—´', b'0', b'0', '0', 22, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '', '2021-02-26 06:54:49', '', '2021-02-26 06:54:49', b'0'); 1066 INSERT INTO `tool_codegen_column` VALUES (344, 27, 'update_time', 'datetime', 'æ›´æ–°æ—¶é—´', b'0', b'0', '0', 22, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '', '2021-02-26 06:54:49', '', '2021-02-26 06:54:49', b'0');
1127 INSERT INTO `tool_codegen_column` VALUES (345, 27, 'deleted', 'bit(1)', '是å¦åˆ é™¤', b'0', b'0', '0', 23, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '', '2021-02-26 06:54:49', '', '2021-02-26 06:54:49', b'0'); 1067 INSERT INTO `tool_codegen_column` VALUES (345, 27, 'deleted', 'bit(1)', '是å¦åˆ é™¤', b'0', b'0', '0', 23, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '', '2021-02-26 06:54:49', '', '2021-02-26 06:54:49', b'0');
1128 INSERT INTO `tool_codegen_column` VALUES (346, 27, 'process_status', 'tinyint(4)', '处ç†çжæ€', b'0', b'0', '0', 20, 'Integer', 'processStatus', 'inf_api_error_log_process_status', '0', b'1', b'1', b'1', '=', b'1', 'radio', '', '2021-02-26 07:01:49', '', '2021-02-26 07:11:29', b'0'); 1068 INSERT INTO `tool_codegen_column` VALUES (346, 27, 'process_status', 'tinyint(4)', '处ç†çжæ€', b'0', b'0', '0', 20, 'Integer', 'processStatus', 'inf_api_error_log_process_status', '0', b'1', b'1', b'1', '=', b'1', 'radio', '', '2021-02-26 07:01:49', '', '2021-02-26 07:11:29', b'0');
@@ -1133,9 +1073,9 @@ INSERT INTO `tool_codegen_column` VALUES (350, 28, 'name', 'varchar(100)', 'å­—å @@ -1133,9 +1073,9 @@ INSERT INTO `tool_codegen_column` VALUES (350, 28, 'name', 'varchar(100)', 'å­—å
1133 INSERT INTO `tool_codegen_column` VALUES (351, 28, 'dict_type', 'varchar(100)', '字典类型', b'0', b'0', '0', 3, 'String', 'dictType', '', NULL, b'1', b'1', b'1', '=', b'1', 'select', '', '2021-03-06 03:45:55', '', '2021-03-06 03:51:02', b'1'); 1073 INSERT INTO `tool_codegen_column` VALUES (351, 28, 'dict_type', 'varchar(100)', '字典类型', b'0', b'0', '0', 3, 'String', 'dictType', '', NULL, b'1', b'1', b'1', '=', b'1', 'select', '', '2021-03-06 03:45:55', '', '2021-03-06 03:51:02', b'1');
1134 INSERT INTO `tool_codegen_column` VALUES (352, 28, 'status', 'tinyint(4)', '状æ€ï¼ˆ0正常 1åœç”¨ï¼‰', b'0', b'0', '0', 4, 'Integer', 'status', '', NULL, b'1', b'1', b'1', '=', b'1', 'radio', '', '2021-03-06 03:45:55', '', '2021-03-06 03:51:02', b'1'); 1074 INSERT INTO `tool_codegen_column` VALUES (352, 28, 'status', 'tinyint(4)', '状æ€ï¼ˆ0正常 1åœç”¨ï¼‰', b'0', b'0', '0', 4, 'Integer', 'status', '', NULL, b'1', b'1', b'1', '=', b'1', 'radio', '', '2021-03-06 03:45:55', '', '2021-03-06 03:51:02', b'1');
1135 INSERT INTO `tool_codegen_column` VALUES (353, 28, 'remark', 'varchar(500)', '备注', b'1', b'0', '0', 5, 'String', 'remark', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '', '2021-03-06 03:45:55', '', '2021-03-06 03:51:02', b'1'); 1075 INSERT INTO `tool_codegen_column` VALUES (353, 28, 'remark', 'varchar(500)', '备注', b'1', b'0', '0', 5, 'String', 'remark', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '', '2021-03-06 03:45:55', '', '2021-03-06 03:51:02', b'1');
1136 -INSERT INTO `tool_codegen_column` VALUES (354, 28, 'create_by', 'varchar(64)', '创建者', b'1', b'0', '0', 6, 'String', 'createBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-03-06 03:45:55', '', '2021-03-06 03:51:02', b'1'); 1076 +INSERT INTO `tool_codegen_column` VALUES (354, 28, 'creator', 'varchar(64)', '创建者', b'1', b'0', '0', 6, 'String', 'createBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-03-06 03:45:55', '', '2021-03-06 03:51:02', b'1');
1137 INSERT INTO `tool_codegen_column` VALUES (355, 28, 'create_time', 'datetime', '创建时间', b'0', b'0', '0', 7, 'Date', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '', '2021-03-06 03:45:55', '', '2021-03-06 03:51:02', b'1'); 1077 INSERT INTO `tool_codegen_column` VALUES (355, 28, 'create_time', 'datetime', '创建时间', b'0', b'0', '0', 7, 'Date', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '', '2021-03-06 03:45:55', '', '2021-03-06 03:51:02', b'1');
1138 -INSERT INTO `tool_codegen_column` VALUES (356, 28, 'update_by', 'varchar(64)', '更新者', b'1', b'0', '0', 8, 'String', 'updateBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-03-06 03:45:55', '', '2021-03-06 03:51:02', b'1'); 1078 +INSERT INTO `tool_codegen_column` VALUES (356, 28, 'updater', 'varchar(64)', '更新者', b'1', b'0', '0', 8, 'String', 'updateBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-03-06 03:45:55', '', '2021-03-06 03:51:02', b'1');
1139 INSERT INTO `tool_codegen_column` VALUES (357, 28, 'update_time', 'datetime', 'æ›´æ–°æ—¶é—´', b'0', b'0', '0', 9, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '', '2021-03-06 03:45:55', '', '2021-03-06 03:51:02', b'1'); 1079 INSERT INTO `tool_codegen_column` VALUES (357, 28, 'update_time', 'datetime', 'æ›´æ–°æ—¶é—´', b'0', b'0', '0', 9, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '', '2021-03-06 03:45:55', '', '2021-03-06 03:51:02', b'1');
1140 INSERT INTO `tool_codegen_column` VALUES (358, 28, 'deleted', 'bit(1)', '是å¦åˆ é™¤', b'0', b'0', '0', 10, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '', '2021-03-06 03:45:55', '', '2021-03-06 03:51:02', b'1'); 1080 INSERT INTO `tool_codegen_column` VALUES (358, 28, 'deleted', 'bit(1)', '是å¦åˆ é™¤', b'0', b'0', '0', 10, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '', '2021-03-06 03:45:55', '', '2021-03-06 03:51:02', b'1');
1141 INSERT INTO `tool_codegen_column` VALUES (359, 29, 'id', 'bigint(20)', '字典主键', b'0', b'1', '1', 1, 'Long', 'id', '', NULL, b'0', b'1', b'0', '=', b'1', 'input', '', '2021-03-06 03:52:57', '', '2021-03-06 03:52:57', b'0'); 1081 INSERT INTO `tool_codegen_column` VALUES (359, 29, 'id', 'bigint(20)', '字典主键', b'0', b'1', '1', 1, 'Long', 'id', '', NULL, b'0', b'1', b'0', '=', b'1', 'input', '', '2021-03-06 03:52:57', '', '2021-03-06 03:52:57', b'0');
@@ -1143,9 +1083,9 @@ INSERT INTO `tool_codegen_column` VALUES (360, 29, 'name', 'varchar(100)', 'å­—å @@ -1143,9 +1083,9 @@ INSERT INTO `tool_codegen_column` VALUES (360, 29, 'name', 'varchar(100)', 'å­—å
1143 INSERT INTO `tool_codegen_column` VALUES (361, 29, 'type', 'varchar(100)', '字典类型', b'0', b'0', '0', 3, 'String', 'type', '', NULL, b'1', b'1', b'1', 'LIKE', b'1', 'select', '', '2021-03-06 03:52:57', '', '2021-03-06 03:54:48', b'0'); 1083 INSERT INTO `tool_codegen_column` VALUES (361, 29, 'type', 'varchar(100)', '字典类型', b'0', b'0', '0', 3, 'String', 'type', '', NULL, b'1', b'1', b'1', 'LIKE', b'1', 'select', '', '2021-03-06 03:52:57', '', '2021-03-06 03:54:48', b'0');
1144 INSERT INTO `tool_codegen_column` VALUES (362, 29, 'status', 'tinyint(4)', '状æ€ï¼ˆ0正常 1åœç”¨ï¼‰', b'0', b'0', '0', 4, 'Integer', 'status', '', NULL, b'1', b'1', b'1', '=', b'1', 'radio', '', '2021-03-06 03:52:57', '', '2021-03-06 03:52:57', b'0'); 1084 INSERT INTO `tool_codegen_column` VALUES (362, 29, 'status', 'tinyint(4)', '状æ€ï¼ˆ0正常 1åœç”¨ï¼‰', b'0', b'0', '0', 4, 'Integer', 'status', '', NULL, b'1', b'1', b'1', '=', b'1', 'radio', '', '2021-03-06 03:52:57', '', '2021-03-06 03:52:57', b'0');
1145 INSERT INTO `tool_codegen_column` VALUES (363, 29, 'remark', 'varchar(500)', '备注', b'1', b'0', '0', 5, 'String', 'remark', '', NULL, b'1', b'1', b'0', '=', b'1', 'input', '', '2021-03-06 03:52:57', '', '2021-03-06 03:54:48', b'0'); 1085 INSERT INTO `tool_codegen_column` VALUES (363, 29, 'remark', 'varchar(500)', '备注', b'1', b'0', '0', 5, 'String', 'remark', '', NULL, b'1', b'1', b'0', '=', b'1', 'input', '', '2021-03-06 03:52:57', '', '2021-03-06 03:54:48', b'0');
1146 -INSERT INTO `tool_codegen_column` VALUES (364, 29, 'create_by', 'varchar(64)', '创建者', b'1', b'0', '0', 6, 'String', 'createBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-03-06 03:52:57', '', '2021-03-06 03:52:57', b'0'); 1086 +INSERT INTO `tool_codegen_column` VALUES (364, 29, 'creator', 'varchar(64)', '创建者', b'1', b'0', '0', 6, 'String', 'createBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-03-06 03:52:57', '', '2021-03-06 03:52:57', b'0');
1147 INSERT INTO `tool_codegen_column` VALUES (365, 29, 'create_time', 'datetime', '创建时间', b'0', b'0', '0', 7, 'Date', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '', '2021-03-06 03:52:57', '', '2021-03-06 03:52:57', b'0'); 1087 INSERT INTO `tool_codegen_column` VALUES (365, 29, 'create_time', 'datetime', '创建时间', b'0', b'0', '0', 7, 'Date', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '', '2021-03-06 03:52:57', '', '2021-03-06 03:52:57', b'0');
1148 -INSERT INTO `tool_codegen_column` VALUES (366, 29, 'update_by', 'varchar(64)', '更新者', b'1', b'0', '0', 8, 'String', 'updateBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-03-06 03:52:57', '', '2021-03-06 03:52:57', b'0'); 1088 +INSERT INTO `tool_codegen_column` VALUES (366, 29, 'updater', 'varchar(64)', '更新者', b'1', b'0', '0', 8, 'String', 'updateBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-03-06 03:52:57', '', '2021-03-06 03:52:57', b'0');
1149 INSERT INTO `tool_codegen_column` VALUES (367, 29, 'update_time', 'datetime', 'æ›´æ–°æ—¶é—´', b'0', b'0', '0', 9, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '', '2021-03-06 03:52:57', '', '2021-03-06 03:52:57', b'0'); 1089 INSERT INTO `tool_codegen_column` VALUES (367, 29, 'update_time', 'datetime', 'æ›´æ–°æ—¶é—´', b'0', b'0', '0', 9, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '', '2021-03-06 03:52:57', '', '2021-03-06 03:52:57', b'0');
1150 INSERT INTO `tool_codegen_column` VALUES (368, 29, 'deleted', 'bit(1)', '是å¦åˆ é™¤', b'0', b'0', '0', 10, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '', '2021-03-06 03:52:57', '', '2021-03-06 03:52:57', b'0'); 1090 INSERT INTO `tool_codegen_column` VALUES (368, 29, 'deleted', 'bit(1)', '是å¦åˆ é™¤', b'0', b'0', '0', 10, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '', '2021-03-06 03:52:57', '', '2021-03-06 03:52:57', b'0');
1151 INSERT INTO `tool_codegen_column` VALUES (369, 30, 'id', 'bigint(20)', '字典编ç ', b'0', b'1', '1', 1, 'Long', 'id', '', NULL, b'0', b'1', b'0', '=', b'1', 'input', '', '2021-03-06 06:48:28', '', '2021-03-06 06:48:28', b'0'); 1091 INSERT INTO `tool_codegen_column` VALUES (369, 30, 'id', 'bigint(20)', '字典编ç ', b'0', b'1', '1', 1, 'Long', 'id', '', NULL, b'0', b'1', b'0', '=', b'1', 'input', '', '2021-03-06 06:48:28', '', '2021-03-06 06:48:28', b'0');
@@ -1155,9 +1095,9 @@ INSERT INTO `tool_codegen_column` VALUES (372, 30, 'value', 'varchar(100)', 'å­— @@ -1155,9 +1095,9 @@ INSERT INTO `tool_codegen_column` VALUES (372, 30, 'value', 'varchar(100)', 'å­—
1155 INSERT INTO `tool_codegen_column` VALUES (373, 30, 'dict_type', 'varchar(100)', '字典类型', b'0', b'0', '0', 5, 'String', 'dictType', '', NULL, b'1', b'1', b'1', 'LIKE', b'1', 'select', '', '2021-03-06 06:48:28', '', '2021-03-06 06:50:38', b'0'); 1095 INSERT INTO `tool_codegen_column` VALUES (373, 30, 'dict_type', 'varchar(100)', '字典类型', b'0', b'0', '0', 5, 'String', 'dictType', '', NULL, b'1', b'1', b'1', 'LIKE', b'1', 'select', '', '2021-03-06 06:48:28', '', '2021-03-06 06:50:38', b'0');
1156 INSERT INTO `tool_codegen_column` VALUES (374, 30, 'status', 'tinyint(4)', '状æ€ï¼ˆ0正常 1åœç”¨ï¼‰', b'0', b'0', '0', 6, 'Integer', 'status', '', NULL, b'1', b'1', b'1', 'LIKE', b'1', 'radio', '', '2021-03-06 06:48:28', '', '2021-03-06 06:50:38', b'0'); 1096 INSERT INTO `tool_codegen_column` VALUES (374, 30, 'status', 'tinyint(4)', '状æ€ï¼ˆ0正常 1åœç”¨ï¼‰', b'0', b'0', '0', 6, 'Integer', 'status', '', NULL, b'1', b'1', b'1', 'LIKE', b'1', 'radio', '', '2021-03-06 06:48:28', '', '2021-03-06 06:50:38', b'0');
1157 INSERT INTO `tool_codegen_column` VALUES (375, 30, 'remark', 'varchar(500)', '备注', b'1', b'0', '0', 7, 'String', 'remark', '', NULL, b'1', b'1', b'0', '=', b'1', 'input', '', '2021-03-06 06:48:28', '', '2021-03-06 06:50:38', b'0'); 1097 INSERT INTO `tool_codegen_column` VALUES (375, 30, 'remark', 'varchar(500)', '备注', b'1', b'0', '0', 7, 'String', 'remark', '', NULL, b'1', b'1', b'0', '=', b'1', 'input', '', '2021-03-06 06:48:28', '', '2021-03-06 06:50:38', b'0');
1158 -INSERT INTO `tool_codegen_column` VALUES (376, 30, 'create_by', 'varchar(64)', '创建者', b'1', b'0', '0', 8, 'String', 'createBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-03-06 06:48:28', '', '2021-03-06 06:48:28', b'0'); 1098 +INSERT INTO `tool_codegen_column` VALUES (376, 30, 'creator', 'varchar(64)', '创建者', b'1', b'0', '0', 8, 'String', 'createBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-03-06 06:48:28', '', '2021-03-06 06:48:28', b'0');
1159 INSERT INTO `tool_codegen_column` VALUES (377, 30, 'create_time', 'datetime', '创建时间', b'0', b'0', '0', 9, 'Date', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '', '2021-03-06 06:48:28', '', '2021-03-06 06:48:28', b'0'); 1099 INSERT INTO `tool_codegen_column` VALUES (377, 30, 'create_time', 'datetime', '创建时间', b'0', b'0', '0', 9, 'Date', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '', '2021-03-06 06:48:28', '', '2021-03-06 06:48:28', b'0');
1160 -INSERT INTO `tool_codegen_column` VALUES (378, 30, 'update_by', 'varchar(64)', '更新者', b'1', b'0', '0', 10, 'String', 'updateBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-03-06 06:48:28', '', '2021-03-06 06:48:28', b'0'); 1100 +INSERT INTO `tool_codegen_column` VALUES (378, 30, 'updater', 'varchar(64)', '更新者', b'1', b'0', '0', 10, 'String', 'updateBy', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '', '2021-03-06 06:48:28', '', '2021-03-06 06:48:28', b'0');
1161 INSERT INTO `tool_codegen_column` VALUES (379, 30, 'update_time', 'datetime', 'æ›´æ–°æ—¶é—´', b'0', b'0', '0', 11, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '', '2021-03-06 06:48:28', '', '2021-03-06 06:48:28', b'0'); 1101 INSERT INTO `tool_codegen_column` VALUES (379, 30, 'update_time', 'datetime', 'æ›´æ–°æ—¶é—´', b'0', b'0', '0', 11, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '', '2021-03-06 06:48:28', '', '2021-03-06 06:48:28', b'0');
1162 INSERT INTO `tool_codegen_column` VALUES (380, 30, 'deleted', 'bit(1)', '是å¦åˆ é™¤', b'0', b'0', '0', 12, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '', '2021-03-06 06:48:28', '', '2021-03-06 06:48:28', b'0'); 1102 INSERT INTO `tool_codegen_column` VALUES (380, 30, 'deleted', 'bit(1)', '是å¦åˆ é™¤', b'0', b'0', '0', 12, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '', '2021-03-06 06:48:28', '', '2021-03-06 06:48:28', b'0');
1163 COMMIT; 1103 COMMIT;
@@ -1179,9 +1119,9 @@ CREATE TABLE `tool_codegen_table` ( @@ -1179,9 +1119,9 @@ CREATE TABLE `tool_codegen_table` (
1179 `author` varchar(50) NOT NULL COMMENT '作者', 1119 `author` varchar(50) NOT NULL COMMENT '作者',
1180 `template_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '模æ¿ç±»åž‹', 1120 `template_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '模æ¿ç±»åž‹',
1181 `parent_menu_id` bigint(20) DEFAULT NULL COMMENT '父èœå•ç¼–å·', 1121 `parent_menu_id` bigint(20) DEFAULT NULL COMMENT '父èœå•ç¼–å·',
1182 - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', 1122 + `creator` varchar(64) DEFAULT '' COMMENT '创建者',
1183 `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', 1123 `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
1184 - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', 1124 + `updater` varchar(64) DEFAULT '' COMMENT '更新者',
1185 `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ›´æ–°æ—¶é—´', 1125 `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ›´æ–°æ—¶é—´',
1186 `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ é™¤', 1126 `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ é™¤',
1187 PRIMARY KEY (`id`) USING BTREE 1127 PRIMARY KEY (`id`) USING BTREE
@@ -1215,9 +1155,9 @@ CREATE TABLE `tool_test_demo` ( @@ -1215,9 +1155,9 @@ CREATE TABLE `tool_test_demo` (
1215 `type` tinyint(4) NOT NULL COMMENT '类型', 1155 `type` tinyint(4) NOT NULL COMMENT '类型',
1216 `category` tinyint(4) NOT NULL COMMENT '分类', 1156 `category` tinyint(4) NOT NULL COMMENT '分类',
1217 `remark` varchar(500) DEFAULT NULL COMMENT '备注', 1157 `remark` varchar(500) DEFAULT NULL COMMENT '备注',
1218 - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', 1158 + `creator` varchar(64) DEFAULT '' COMMENT '创建者',
1219 `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', 1159 `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
1220 - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', 1160 + `updater` varchar(64) DEFAULT '' COMMENT '更新者',
1221 `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ›´æ–°æ—¶é—´', 1161 `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ›´æ–°æ—¶é—´',
1222 `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ é™¤', 1162 `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是å¦åˆ é™¤',
1223 PRIMARY KEY (`id`) USING BTREE 1163 PRIMARY KEY (`id`) USING BTREE
src/main/java/cn/iocoder/dashboard/framework/mybatis/config/MybatisConfiguration.java
1 package cn.iocoder.dashboard.framework.mybatis.config; 1 package cn.iocoder.dashboard.framework.mybatis.config;
2 2
  3 +import cn.iocoder.dashboard.framework.mybatis.core.handler.DefaultDBFieldHandler;
  4 +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
3 import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; 5 import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
4 import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; 6 import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
5 import org.apache.ibatis.annotations.Mapper; 7 import org.apache.ibatis.annotations.Mapper;
@@ -24,4 +26,9 @@ public class MybatisConfiguration { @@ -24,4 +26,9 @@ public class MybatisConfiguration {
24 return mybatisPlusInterceptor; 26 return mybatisPlusInterceptor;
25 } 27 }
26 28
  29 + @Bean
  30 + public MetaObjectHandler defaultMetaObjectHandler(){
  31 + return new DefaultDBFieldHandler(); // 自动填充参数类
  32 + }
  33 +
27 } 34 }
src/main/java/cn/iocoder/dashboard/framework/mybatis/core/dataobject/BaseDO.java
1 package cn.iocoder.dashboard.framework.mybatis.core.dataobject; 1 package cn.iocoder.dashboard.framework.mybatis.core.dataobject;
2 2
  3 +import com.baomidou.mybatisplus.annotation.FieldFill;
  4 +import com.baomidou.mybatisplus.annotation.TableField;
3 import com.baomidou.mybatisplus.annotation.TableLogic; 5 import com.baomidou.mybatisplus.annotation.TableLogic;
4 import lombok.Data; 6 import lombok.Data;
5 7
@@ -15,18 +17,26 @@ public class BaseDO implements Serializable { @@ -15,18 +17,26 @@ public class BaseDO implements Serializable {
15 /** 17 /**
16 * 创建时间 18 * 创建时间
17 */ 19 */
  20 + @TableField(fill = FieldFill.INSERT)
18 private Date createTime; 21 private Date createTime;
19 /** 22 /**
20 * 最后更新时间 23 * 最后更新时间
21 */ 24 */
  25 + @TableField(fill = FieldFill.INSERT_UPDATE)
22 private Date updateTime; 26 private Date updateTime;
23 /** 27 /**
24 - * 创建者 28 + * 创建者,目前使用 SysUser 的 id 编号
  29 + *
  30 + * 使用 String 类型的原因是,未来可能会存在非数值的情况,留好拓展性。
25 */ 31 */
  32 + @TableField(fill = FieldFill.INSERT)
26 private String creator; 33 private String creator;
27 /** 34 /**
28 - * 更新者 35 + * 更新者,目前使用 SysUser 的 id 编号
  36 + *
  37 + * 使用 String 类型的原因是,未来可能会存在非数值的情况,留好拓展性。
29 */ 38 */
  39 + @TableField(fill = FieldFill.INSERT_UPDATE)
30 private String updater; 40 private String updater;
31 /** 41 /**
32 * 是否删除 42 * 是否删除
src/main/java/cn/iocoder/dashboard/framework/mybatis/core/handle/DefaultDBFieldHandler.java renamed to src/main/java/cn/iocoder/dashboard/framework/mybatis/core/handler/DefaultDBFieldHandler.java
1 -package cn.iocoder.dashboard.framework.mybatis.core.handle; 1 +package cn.iocoder.dashboard.framework.mybatis.core.handler;
2 2
3 import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO; 3 import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO;
4 import cn.iocoder.dashboard.framework.security.core.LoginUser; 4 import cn.iocoder.dashboard.framework.security.core.LoginUser;
5 import cn.iocoder.dashboard.framework.security.core.util.SecurityFrameworkUtils; 5 import cn.iocoder.dashboard.framework.security.core.util.SecurityFrameworkUtils;
6 import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; 6 import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
7 import org.apache.ibatis.reflection.MetaObject; 7 import org.apache.ibatis.reflection.MetaObject;
8 -import org.springframework.stereotype.Component;  
9 8
10 import java.util.Date; 9 import java.util.Date;
11 import java.util.Objects; 10 import java.util.Objects;
@@ -17,7 +16,6 @@ import java.util.Objects; @@ -17,7 +16,6 @@ import java.util.Objects;
17 * 16 *
18 * @author hexiaowu 17 * @author hexiaowu
19 */ 18 */
20 -@Component  
21 public class DefaultDBFieldHandler implements MetaObjectHandler { 19 public class DefaultDBFieldHandler implements MetaObjectHandler {
22 20
23 @Override 21 @Override
src/main/java/cn/iocoder/dashboard/framework/security/core/util/SecurityFrameworkUtils.java
@@ -56,7 +56,7 @@ public class SecurityFrameworkUtils { @@ -56,7 +56,7 @@ public class SecurityFrameworkUtils {
56 if (authentication == null) { 56 if (authentication == null) {
57 return null; 57 return null;
58 } 58 }
59 - return (LoginUser) authentication.getPrincipal(); 59 + return authentication.getPrincipal() instanceof LoginUser ? (LoginUser) authentication.getPrincipal() : null;
60 } 60 }
61 61
62 /** 62 /**
src/main/java/cn/iocoder/dashboard/modules/infra/controller/config/InfConfigController.java
1 package cn.iocoder.dashboard.modules.infra.controller.config; 1 package cn.iocoder.dashboard.modules.infra.controller.config;
2 2
3 -import cn.iocoder.dashboard.common.exception.util.ServiceExceptionUtil;  
4 import cn.iocoder.dashboard.common.pojo.CommonResult; 3 import cn.iocoder.dashboard.common.pojo.CommonResult;
5 import cn.iocoder.dashboard.common.pojo.PageResult; 4 import cn.iocoder.dashboard.common.pojo.PageResult;
6 import cn.iocoder.dashboard.framework.excel.core.util.ExcelUtils; 5 import cn.iocoder.dashboard.framework.excel.core.util.ExcelUtils;
7 import cn.iocoder.dashboard.framework.idempotent.core.annotation.Idempotent; 6 import cn.iocoder.dashboard.framework.idempotent.core.annotation.Idempotent;
8 -import cn.iocoder.dashboard.framework.idempotent.core.keyresolver.impl.ExpressionIdempotentKeyResolver; 7 +import cn.iocoder.dashboard.framework.logger.operatelog.core.annotations.OperateLog;
9 import cn.iocoder.dashboard.modules.infra.controller.config.vo.*; 8 import cn.iocoder.dashboard.modules.infra.controller.config.vo.*;
10 import cn.iocoder.dashboard.modules.infra.convert.config.InfConfigConvert; 9 import cn.iocoder.dashboard.modules.infra.convert.config.InfConfigConvert;
11 import cn.iocoder.dashboard.modules.infra.dal.dataobject.config.InfConfigDO; 10 import cn.iocoder.dashboard.modules.infra.dal.dataobject.config.InfConfigDO;
@@ -13,50 +12,60 @@ import cn.iocoder.dashboard.modules.infra.service.config.InfConfigService; @@ -13,50 +12,60 @@ import cn.iocoder.dashboard.modules.infra.service.config.InfConfigService;
13 import io.swagger.annotations.Api; 12 import io.swagger.annotations.Api;
14 import io.swagger.annotations.ApiImplicitParam; 13 import io.swagger.annotations.ApiImplicitParam;
15 import io.swagger.annotations.ApiOperation; 14 import io.swagger.annotations.ApiOperation;
  15 +import org.springframework.security.access.prepost.PreAuthorize;
16 import org.springframework.validation.annotation.Validated; 16 import org.springframework.validation.annotation.Validated;
17 import org.springframework.web.bind.annotation.*; 17 import org.springframework.web.bind.annotation.*;
18 18
19 import javax.annotation.Resource; 19 import javax.annotation.Resource;
20 import javax.servlet.http.HttpServletResponse; 20 import javax.servlet.http.HttpServletResponse;
  21 +import javax.validation.Valid;
  22 +
21 import java.io.IOException; 23 import java.io.IOException;
22 import java.util.List; 24 import java.util.List;
23 25
  26 +import static cn.iocoder.dashboard.common.exception.util.ServiceExceptionUtil.exception;
24 import static cn.iocoder.dashboard.common.pojo.CommonResult.success; 27 import static cn.iocoder.dashboard.common.pojo.CommonResult.success;
  28 +import static cn.iocoder.dashboard.framework.logger.operatelog.core.enums.OperateTypeEnum.EXPORT;
25 import static cn.iocoder.dashboard.modules.infra.enums.InfErrorCodeConstants.CONFIG_GET_VALUE_ERROR_IF_SENSITIVE; 29 import static cn.iocoder.dashboard.modules.infra.enums.InfErrorCodeConstants.CONFIG_GET_VALUE_ERROR_IF_SENSITIVE;
26 30
27 @Api(tags = "参数配置") 31 @Api(tags = "参数配置")
28 @RestController 32 @RestController
29 @RequestMapping("/infra/config") 33 @RequestMapping("/infra/config")
  34 +@Validated
30 public class InfConfigController { 35 public class InfConfigController {
31 36
32 @Resource 37 @Resource
33 private InfConfigService configService; 38 private InfConfigService configService;
34 39
35 - @ApiOperation("获取参数配置分页")  
36 - @GetMapping("/page")  
37 -// @PreAuthorize("@ss.hasPermi('infra:config:list')")  
38 - public CommonResult<PageResult<InfConfigRespVO>> getConfigPage(@Validated InfConfigPageReqVO reqVO) {  
39 - PageResult<InfConfigDO> page = configService.getConfigPage(reqVO);  
40 - return success(InfConfigConvert.INSTANCE.convertPage(page)); 40 + @PostMapping("/create")
  41 + @ApiOperation("创建参数配置")
  42 + @PreAuthorize("@ss.hasPermission('infra:config:create')")
  43 + public CommonResult<Long> createConfig(@Valid @RequestBody InfConfigCreateReqVO reqVO) {
  44 + return success(configService.createConfig(reqVO));
41 } 45 }
42 46
43 - @ApiOperation("导出参数配置")  
44 - @GetMapping("/export")  
45 -// @Log(title = "参数管理", businessType = BusinessType.EXPORT)  
46 -// @PreAuthorize("@ss.hasPermi('infra:config:export')")  
47 - public void exportSysConfig(HttpServletResponse response, @Validated InfConfigExportReqVO reqVO) throws IOException {  
48 - List<InfConfigDO> list = configService.getConfigList(reqVO);  
49 - // 拼接数据  
50 - List<InfConfigExcelVO> excelDataList = InfConfigConvert.INSTANCE.convertList(list);  
51 - // 输出  
52 - ExcelUtils.write(response, "参数配置.xls", "配置列表",  
53 - InfConfigExcelVO.class, excelDataList); 47 + @ApiOperation("修改参数配置")
  48 + @PutMapping("/update")
  49 + @PreAuthorize("@ss.hasPermission('infra:config:update')")
  50 + @Idempotent(timeout = 60)
  51 + public CommonResult<Boolean> updateConfig(@Valid @RequestBody InfConfigUpdateReqVO reqVO) {
  52 + configService.updateConfig(reqVO);
  53 + return success(true);
54 } 54 }
55 55
56 - @ApiOperation("获得参数配置") 56 + @ApiOperation("删除参数配置")
57 @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) 57 @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
  58 + @DeleteMapping("/delete")
  59 + @PreAuthorize("@ss.hasPermission('infra:config:delete')")
  60 + public CommonResult<Boolean> deleteConfig(@RequestParam("id") Long id) {
  61 + configService.deleteConfig(id);
  62 + return success(true);
  63 + }
  64 +
58 @GetMapping(value = "/get") 65 @GetMapping(value = "/get")
59 -// @PreAuthorize("@ss.hasPermi('infra:config:query')") 66 + @ApiOperation("获得参数配置")
  67 + @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
  68 + @PreAuthorize("@ss.hasPermission('infra:config:query')")
60 public CommonResult<InfConfigRespVO> getConfig(@RequestParam("id") Long id) { 69 public CommonResult<InfConfigRespVO> getConfig(@RequestParam("id") Long id) {
61 return success(InfConfigConvert.INSTANCE.convert(configService.getConfig(id))); 70 return success(InfConfigConvert.INSTANCE.convert(configService.getConfig(id)));
62 } 71 }
@@ -70,38 +79,30 @@ public class InfConfigController { @@ -70,38 +79,30 @@ public class InfConfigController {
70 return null; 79 return null;
71 } 80 }
72 if (config.getSensitive()) { 81 if (config.getSensitive()) {
73 - throw ServiceExceptionUtil.exception(CONFIG_GET_VALUE_ERROR_IF_SENSITIVE); 82 + throw exception(CONFIG_GET_VALUE_ERROR_IF_SENSITIVE);
74 } 83 }
75 return success(config.getValue()); 84 return success(config.getValue());
76 } 85 }
77 86
78 - @ApiOperation("新增参数配置")  
79 - @PostMapping("/create")  
80 -// @PreAuthorize("@ss.hasPermi('infra:config:add')")  
81 -// @Log(title = "参数管理", businessType = BusinessType.INSERT)  
82 - @Idempotent(timeout = 60, keyResolver = ExpressionIdempotentKeyResolver.class, keyArg = "#reqVO.key")  
83 - public CommonResult<Long> createConfig(@Validated @RequestBody InfConfigCreateReqVO reqVO) {  
84 - return success(configService.createConfig(reqVO));  
85 - }  
86 -  
87 - @ApiOperation("修改参数配置")  
88 - @PutMapping("/update")  
89 -// @PreAuthorize("@ss.hasPermi('infra:config:edit')")  
90 -// @Log(title = "参数管理", businessType = BusinessType.UPDATE)  
91 - @Idempotent(timeout = 60)  
92 - public CommonResult<Boolean> updateConfig(@Validated @RequestBody InfConfigUpdateReqVO reqVO) {  
93 - configService.updateConfig(reqVO);  
94 - return success(true); 87 + @GetMapping("/page")
  88 + @ApiOperation("获取参数配置分页")
  89 + @PreAuthorize("@ss.hasPermission('infra:config:query')")
  90 + public CommonResult<PageResult<InfConfigRespVO>> getConfigPage(@Valid InfConfigPageReqVO reqVO) {
  91 + PageResult<InfConfigDO> page = configService.getConfigPage(reqVO);
  92 + return success(InfConfigConvert.INSTANCE.convertPage(page));
95 } 93 }
96 94
97 - @ApiOperation("删除参数配置")  
98 - @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)  
99 - @DeleteMapping("/delete")  
100 -// @PreAuthorize("@ss.hasPermi('infra:config:remove')")  
101 -// @Log(title = "参数管理", businessType = BusinessType.DELETE)  
102 - public CommonResult<Boolean> deleteConfig(@RequestParam("id") Long id) {  
103 - configService.deleteConfig(id);  
104 - return success(true); 95 + @GetMapping("/export")
  96 + @ApiOperation("导出参数配置")
  97 + @PreAuthorize("@ss.hasPermission('infra:config:export')")
  98 + @OperateLog(type = EXPORT)
  99 + public void exportSysConfig(@Valid InfConfigExportReqVO reqVO,
  100 + HttpServletResponse response) throws IOException {
  101 + List<InfConfigDO> list = configService.getConfigList(reqVO);
  102 + // 拼接数据
  103 + List<InfConfigExcelVO> datas = InfConfigConvert.INSTANCE.convertList(list);
  104 + // 输出
  105 + ExcelUtils.write(response, "参数配置.xls", "数据", InfConfigExcelVO.class, datas);
105 } 106 }
106 107
107 } 108 }
src/main/java/cn/iocoder/dashboard/modules/infra/service/config/InfConfigService.java
@@ -11,6 +11,8 @@ import java.util.List; @@ -11,6 +11,8 @@ import java.util.List;
11 11
12 /** 12 /**
13 * 参数配置 Service 接口 13 * 参数配置 Service 接口
  14 + *
  15 + * @author 芋道源码
14 */ 16 */
15 public interface InfConfigService { 17 public interface InfConfigService {
16 18
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&lt;SysUserSessionDO&gt; { @@ -18,4 +20,7 @@ public interface SysUserSessionMapper extends BaseMapperX&lt;SysUserSessionDO&gt; {
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 *
10 - * @author 芋道源码 13 + * @author 願
11 */ 14 */
12 @Component 15 @Component
13 @Slf4j 16 @Slf4j
14 public class SysUserSessionTimeoutJob implements JobHandler { 17 public class SysUserSessionTimeoutJob implements JobHandler {
15 18
  19 + @Resource
  20 + private 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 + // 执行过期
  25 + Long timeoutCount = sysUserSessionService.clearSessionTimeout();
  26 + // 返回结果,记录每次的超时数量
  27 + return String.format("移除在线会话数量为 %s 个", timeoutCount);
21 } 28 }
22 29
23 } 30 }
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 &quot;sys_role&quot;; @@ -8,3 +8,4 @@ DELETE FROM &quot;sys_role&quot;;
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 &quot;sys_dict_type&quot; ( @@ -114,3 +114,18 @@ CREATE TABLE &quot;sys_dict_type&quot; (
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';