From 2cb7302d30b22419aa2bd0c1e83dc220b2f99c76 Mon Sep 17 00:00:00 2001 From: Lyon <18423215834@163.com> Date: Sun, 7 Mar 2021 15:41:28 +0800 Subject: [PATCH 01/13] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E8=B6=85=E6=97=B6?= =?UTF-8?q?=E7=9A=84=E5=9C=A8=E7=BA=BF=E7=94=A8=E6=88=B7-=E5=AE=8C?= =?UTF-8?q?=E6=88=90=20=E4=BF=AE=E6=94=B9ruoyi-vue-pro.sql=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E8=A1=A8=E5=AD=97=E6=AE=B5SysUserSessionDO.java#sessi?= =?UTF-8?q?onTimeout?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/ruoyi-vue-pro.sql | 141 +++++++++--------- .../dal/dataobject/auth/SysUserSessionDO.java | 6 + .../dal/mysql/auth/SysUserSessionMapper.java | 5 + .../job/auth/SysUserSessionTimeoutJob.java | 11 +- .../service/auth/SysUserSessionService.java | 8 + .../auth/impl/SysUserSessionServiceImpl.java | 22 ++- 6 files changed, 119 insertions(+), 74 deletions(-) diff --git a/sql/ruoyi-vue-pro.sql b/sql/ruoyi-vue-pro.sql index 56a3a98bf..972be5f97 100644 --- a/sql/ruoyi-vue-pro.sql +++ b/sql/ruoyi-vue-pro.sql @@ -900,6 +900,7 @@ CREATE TABLE `sys_user_session` ( `user_id` bigint(20) NOT NULL COMMENT '用户编号', `user_ip` varchar(50) NOT NULL COMMENT '用户 IP', `user_agent` varchar(512) NOT NULL COMMENT '浏览器 UA', + `session_timeout` datetime NOT NULL COMMENT '会话超时时间', `create_by` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT '' COMMENT '更新者', @@ -912,77 +913,77 @@ CREATE TABLE `sys_user_session` ( -- Records of sys_user_session -- ---------------------------- BEGIN; -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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-06 06:27:27', b'0'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); -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'); +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', '', '2021-03-07 14:58:55', b'0'); +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-14 20:04:33', '', '2021-02-07 08:36:48', '', '2021-03-07 14:58:55', b'0'); +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', '', '2021-03-07 14:58:55', b'0'); +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-11 00:58:19', '', '2021-02-05 17:46:10', '', '2021-03-07 14:58:55', b'0'); +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-05 01:25:51', '', '2021-03-04 16:54:24', '', '2021-03-07 14:58:55', b'0'); +INSERT INTO `sys_user_session` VALUES ('05965209307f4e7a945aadc6842af77e', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36', '2021-03-07 15:09:55', '', '2021-03-07 14:39:54', '', '2021-03-07 14:39:54', b'0'); +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-27 12:04:09', '', '2021-02-26 02:17:35', '', '2021-03-07 14:58:55', b'0'); +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-14 22:57:44', '', '2021-02-07 13:05:42', '', '2021-03-07 14:58:55', b'0'); +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-10 11:10:31', '', '2021-02-05 06:49:00', '', '2021-03-07 14:58:55', b'0'); +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', '', '2021-03-07 14:58:55', b'0'); +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', '', '2021-03-07 14:58:55', b'0'); +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', '', '2021-03-07 14:58:55', b'0'); +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', '', '2021-03-07 14:58:55', b'0'); +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', '', '2021-03-07 14:58:55', b'0'); +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', '', '2021-03-07 14:58:55', b'0'); +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-20 16:11:21', '', '2021-02-08 18:27:13', '', '2021-03-07 14:58:55', b'0'); +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-14 10:57:34', '', '2021-02-07 06:38:34', '', '2021-03-07 14:58:55', b'0'); +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 19:10:23', '', '2021-03-06 00:51:14', '', '2021-03-07 14:58:55', b'0'); +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-18 20:23:05', '', '2021-02-08 04:17:09', '', '2021-03-07 14:58:55', b'0'); +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-12 20:56:44', '', '2021-02-06 11:48:57', '', '2021-03-07 14:58:55', b'0'); +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', '', '2021-03-07 14:58:55', b'0'); +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', '', '2021-03-07 14:58:55', b'0'); +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-17 22:01:24', '', '2021-02-08 01:33:07', '', '2021-03-07 14:58:55', b'0'); +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 21:59:07', '', '2021-03-06 03:41:56', '', '2021-03-07 14:58:55', b'0'); +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', '', '2021-03-07 14:58:55', b'0'); +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-09 18:40:06', '', '2021-02-05 04:24:59', '', '2021-03-07 14:58:55', b'0'); +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 20:55:38', '', '2021-03-06 01:55:18', '', '2021-03-07 14:58:55', b'0'); +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-12 20:36:16', '', '2021-02-06 13:47:15', '', '2021-03-07 14:58:55', b'0'); +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-27 21:25:52', '', '2021-02-26 06:40:37', '', '2021-03-07 14:58:55', b'0'); +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-10 16:52:48', '', '2021-02-05 10:57:52', '', '2021-03-07 14:58:55', b'0'); +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-27 10:34:25', '', '2021-02-26 01:28:32', '', '2021-03-07 14:58:55', b'0'); +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-20 14:49:27', '', '2021-02-08 17:25:20', '', '2021-03-07 14:58:55', b'0'); +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', '', '2021-03-07 14:58:55', b'0'); +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-19 09:55:44', '', '2021-02-08 09:34:50', '', '2021-03-07 14:58:55', b'0'); +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-09 16:05:22', '', '2021-02-05 01:36:09', '', '2021-03-07 14:58:55', b'0'); +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-13 12:02:29', '', '2021-02-06 19:46:45', '', '2021-03-07 14:58:55', b'0'); +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-14 22:37:22', '', '2021-02-07 12:16:36', '', '2021-03-07 14:58:55', b'0'); +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-23 01:54:44', '', '2021-02-09 21:29:20', '', '2021-03-07 14:58:55', b'0'); +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', '', '2021-03-07 14:58:55', b'0'); +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:50', '', '2021-01-26 08:29:27', '', '2021-03-07 14:58:55', b'1'); +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', '', '2021-03-07 14:58:55', b'0'); +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', '', '2021-03-07 14:58:55', b'0'); +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', '', '2021-03-07 14:58:55', b'0'); +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-10 19:06:26', '', '2021-02-05 13:29:04', '', '2021-03-07 14:58:55', b'0'); +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-06 06:27:27', '', '2021-03-07 14:58:55', b'0'); +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-19 19:17:42', '', '2021-02-08 09:56:09', '', '2021-03-07 14:58:55', b'0'); +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-27 01:27:20', '', '2021-02-26 00:09:49', '', '2021-03-07 14:58:55', b'0'); +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', '', '2021-03-07 14:58:55', b'0'); +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-23 01:54:51', '', '2021-02-09 20:25:02', '', '2021-03-07 14:58:55', b'0'); +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-27 23:12:38', '', '2021-02-26 07:47:21', '', '2021-03-07 14:58:55', b'0'); +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-14 12:13:56', '', '2021-02-07 07:36:14', '', '2021-03-07 14:58:55', b'0'); +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', '', '2021-03-07 14:58:55', b'0'); +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-27 12:50:23', '', '2021-02-26 03:44:46', '', '2021-03-07 14:58:55', b'0'); +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', '', '2021-03-07 14:58:55', b'0'); +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', '', '2021-03-07 14:58:55', b'0'); +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', '', '2021-03-07 14:58:55', b'0'); +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', '', '2021-03-07 14:58:55', b'0'); +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', '', '2021-03-07 14:58:55', b'0'); +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-22 20:33:03', '', '2021-02-09 17:06:03', '', '2021-03-07 14:58:55', b'0'); +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-23 00:25:16', '', '2021-02-09 20:05:45', '', '2021-03-07 14:58:55', b'0'); +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', '', '2021-03-07 14:58:55', b'0'); +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', '', '2021-03-07 14:58:55', b'0'); +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', '', '2021-03-07 14:58:55', b'0'); COMMIT; - --- ---------------------------- --- Table structure for tool_codegen_column --- ---------------------------- -DROP TABLE IF EXISTS `tool_codegen_column`; -CREATE TABLE `tool_codegen_column` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号', - `table_id` bigint(20) NOT NULL COMMENT '表编号', +-- ----------------------------null, +-- Table structure for tool_codegen_columnnull, +-- ----------------------------null, +DROP TABLE IF EXISTS `tool_codegen_column`;null, +CREATE TABLE `tool_codegen_column` (null, + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',null, + `table_id` bigint(20) NOT NULL COMMENT '表编号',null, `column_name` varchar(200) NOT NULL COMMENT '字段名', `column_type` varchar(100) NOT NULL COMMENT '字段类型', `column_comment` varchar(500) NOT NULL COMMENT '字段描述', diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/auth/SysUserSessionDO.java b/src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/auth/SysUserSessionDO.java index 1fc5aa439..a10699416 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/auth/SysUserSessionDO.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/auth/SysUserSessionDO.java @@ -10,6 +10,8 @@ import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.Date; + /** * 在线用户表 * @@ -44,5 +46,9 @@ public class SysUserSessionDO extends BaseDO { * 浏览器 UA */ private String userAgent; + /** + * 会话超时时间 + */ + private Date sessionTimeout; } diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/auth/SysUserSessionMapper.java b/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/auth/SysUserSessionMapper.java index a43c0cbe4..6739d9252 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/auth/SysUserSessionMapper.java +++ b/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; import org.apache.ibatis.annotations.Mapper; import java.util.Collection; +import java.util.Date; +import java.util.List; @Mapper public interface SysUserSessionMapper extends BaseMapperX { @@ -18,4 +20,7 @@ public interface SysUserSessionMapper extends BaseMapperX { .likeIfPresent("user_ip", reqVO.getUserIp())); } + default List selectSessionTimeout() { + return selectList(new QueryWrapperX().lt("session_timeout",new Date())); + } } diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/job/auth/SysUserSessionTimeoutJob.java b/src/main/java/cn/iocoder/dashboard/modules/system/job/auth/SysUserSessionTimeoutJob.java index ceb697afa..ff5fa2f2d 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/job/auth/SysUserSessionTimeoutJob.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/job/auth/SysUserSessionTimeoutJob.java @@ -1,9 +1,12 @@ package cn.iocoder.dashboard.modules.system.job.auth; import cn.iocoder.dashboard.framework.quartz.core.handler.JobHandler; +import cn.iocoder.dashboard.modules.system.service.auth.SysUserSessionService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; +import javax.annotation.Resource; + /** * 用户 Session 超时 Job * @@ -13,10 +16,14 @@ import org.springframework.stereotype.Component; @Slf4j public class SysUserSessionTimeoutJob implements JobHandler { + @Resource + SysUserSessionService sysUserSessionService; + @Override public String execute(String param) throws Exception { -// System.out.println("执行了一次任务"); - log.info("[execute][执行任务:{}]", param); + log.info("[execute][执行任务:{}]", "清除过期用户信息"); + long timeoutCount = sysUserSessionService.clearSessionTimeout(); + log.info("[execute][执行任务:{}]", "清楚过期用户信息完成" + timeoutCount); return null; } diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/service/auth/SysUserSessionService.java b/src/main/java/cn/iocoder/dashboard/modules/system/service/auth/SysUserSessionService.java index 7f15bd473..588c9f956 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/service/auth/SysUserSessionService.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/service/auth/SysUserSessionService.java @@ -60,4 +60,12 @@ public interface SysUserSessionService { */ PageResult getUserSessionPage(SysUserSessionPageReqVO reqVO); + /** + * 移除超时的在线用户 + * @param + * @return {@link Long} + * @author Lyon + * @date 2021/3/7 + **/ + long clearSessionTimeout(); } diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/service/auth/impl/SysUserSessionServiceImpl.java b/src/main/java/cn/iocoder/dashboard/modules/system/service/auth/impl/SysUserSessionServiceImpl.java index b94a58ff4..0c192a404 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/service/auth/impl/SysUserSessionServiceImpl.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/service/auth/impl/SysUserSessionServiceImpl.java @@ -7,18 +7,21 @@ import cn.iocoder.dashboard.common.pojo.PageResult; import cn.iocoder.dashboard.framework.security.config.SecurityProperties; import cn.iocoder.dashboard.framework.security.core.LoginUser; import cn.iocoder.dashboard.modules.system.controller.auth.vo.session.SysUserSessionPageReqVO; -import cn.iocoder.dashboard.modules.system.dal.mysql.auth.SysUserSessionMapper; import cn.iocoder.dashboard.modules.system.dal.dataobject.auth.SysUserSessionDO; import cn.iocoder.dashboard.modules.system.dal.dataobject.user.SysUserDO; +import cn.iocoder.dashboard.modules.system.dal.mysql.auth.SysUserSessionMapper; import cn.iocoder.dashboard.modules.system.dal.redis.auth.SysLoginUserRedisDAO; import cn.iocoder.dashboard.modules.system.service.auth.SysUserSessionService; import cn.iocoder.dashboard.modules.system.service.user.SysUserService; +import cn.iocoder.dashboard.util.date.DateUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Collection; import java.util.Date; +import java.util.List; +import static cn.iocoder.dashboard.modules.system.dal.redis.SysRedisKeyConstants.LOGIN_USER; import static cn.iocoder.dashboard.util.collection.CollectionUtils.convertSet; /** @@ -49,7 +52,9 @@ public class SysUserSessionServiceImpl implements SysUserSessionService { loginUserRedisDAO.set(sessionId, loginUser); // 写入 DB 中 SysUserSessionDO userSession = SysUserSessionDO.builder().id(sessionId) - .userId(loginUser.getId()).userIp(userIp).userAgent(userAgent).build(); + .userId(loginUser.getId()).userIp(userIp).userAgent(userAgent) + .sessionTimeout(DateUtils.addTime(LOGIN_USER.getTimeout())) + .build(); userSessionMapper.insert(userSession); // 返回 Session 编号 return sessionId; @@ -63,6 +68,7 @@ public class SysUserSessionServiceImpl implements SysUserSessionService { // 更新 DB 中 SysUserSessionDO updateObj = SysUserSessionDO.builder().id(sessionId).build(); updateObj.setUpdateTime(new Date()); + updateObj.setSessionTimeout(DateUtils.addTime(LOGIN_USER.getTimeout())); userSessionMapper.updateById(updateObj); } @@ -97,6 +103,18 @@ public class SysUserSessionServiceImpl implements SysUserSessionService { return userSessionMapper.selectPage(reqVO, userIds); } + @Override + public long clearSessionTimeout() { + Long timeoutCount = 0L; + List sessionDOS = userSessionMapper.selectSessionTimeout(); + for (SysUserSessionDO sessionDO : sessionDOS) { + if (loginUserRedisDAO.get(sessionDO.getId()) == null) { + timeoutCount += userSessionMapper.deleteById(sessionDO.getId()); + } + } + return timeoutCount; + } + /** * 生成 Session 编号,目前采用 UUID 算法 * From 5803258ed7c0b8c4c092557695f29709cc05e195 Mon Sep 17 00:00:00 2001 From: Lyon <18423215834@163.com> Date: Sun, 7 Mar 2021 15:49:47 +0800 Subject: [PATCH 02/13] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E8=B6=85=E6=97=B6?= =?UTF-8?q?=E7=9A=84=E5=9C=A8=E7=BA=BF=E7=94=A8=E6=88=B7-=E5=AE=8C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/system/job/auth/SysUserSessionTimeoutJob.java | 4 ++-- .../system/service/auth/impl/SysUserSessionServiceImpl.java | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/job/auth/SysUserSessionTimeoutJob.java b/src/main/java/cn/iocoder/dashboard/modules/system/job/auth/SysUserSessionTimeoutJob.java index ff5fa2f2d..799fe115f 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/job/auth/SysUserSessionTimeoutJob.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/job/auth/SysUserSessionTimeoutJob.java @@ -21,9 +21,9 @@ public class SysUserSessionTimeoutJob implements JobHandler { @Override public String execute(String param) throws Exception { - log.info("[execute][执行任务:{}]", "清除过期用户信息"); + log.info("[execute][执行任务:{}]", "移除超时的在线用户"); long timeoutCount = sysUserSessionService.clearSessionTimeout(); - log.info("[execute][执行任务:{}]", "清楚过期用户信息完成" + timeoutCount); + log.info("[execute][执行任务:{}]", "移除超时的在线用户完成" + timeoutCount); return null; } diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/service/auth/impl/SysUserSessionServiceImpl.java b/src/main/java/cn/iocoder/dashboard/modules/system/service/auth/impl/SysUserSessionServiceImpl.java index 0c192a404..e1fb1fa2f 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/service/auth/impl/SysUserSessionServiceImpl.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/service/auth/impl/SysUserSessionServiceImpl.java @@ -105,9 +105,11 @@ public class SysUserSessionServiceImpl implements SysUserSessionService { @Override public long clearSessionTimeout() { + // 获取db里已经超时的用户列表 Long timeoutCount = 0L; - List sessionDOS = userSessionMapper.selectSessionTimeout(); - for (SysUserSessionDO sessionDO : sessionDOS) { + List sessionTimeoutDOS = userSessionMapper.selectSessionTimeout(); + for (SysUserSessionDO sessionDO : sessionTimeoutDOS) { + // 确认已经超时,移出在线用户列表 if (loginUserRedisDAO.get(sessionDO.getId()) == null) { timeoutCount += userSessionMapper.deleteById(sessionDO.getId()); } From 6163cfb4c25a2a7a19f532200b4b271fe39cd2e8 Mon Sep 17 00:00:00 2001 From: Lyon <18423215834@163.com> Date: Mon, 8 Mar 2021 15:57:05 +0800 Subject: [PATCH 03/13] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E8=B6=85=E6=97=B6?= =?UTF-8?q?=E7=9A=84=E5=9C=A8=E7=BA=BF=E7=94=A8=E6=88=B7&=E5=8D=95?= =?UTF-8?q?=E5=85=83=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dal/mysql/auth/SysUserSessionMapper.java | 2 +- .../dal/redis/SysRedisKeyConstants.java | 2 +- .../dal/redis/auth/SysLoginUserRedisDAO.java | 7 ++- .../job/auth/SysUserSessionTimeoutJob.java | 2 +- .../service/auth/SysUserSessionService.java | 4 +- .../auth/impl/SysUserSessionServiceImpl.java | 28 +++++----- .../auth/SysUserSessionServiceImplTest.java | 54 +++++++++++++++++++ src/test/resources/sql/clean.sql | 1 + src/test/resources/sql/create_tables.sql | 14 +++++ 9 files changed, 96 insertions(+), 18 deletions(-) create mode 100644 src/test/java/cn/iocoder/dashboard/modules/system/service/auth/SysUserSessionServiceImplTest.java diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/auth/SysUserSessionMapper.java b/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/auth/SysUserSessionMapper.java index 6739d9252..bb311312d 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/auth/SysUserSessionMapper.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/auth/SysUserSessionMapper.java @@ -20,7 +20,7 @@ public interface SysUserSessionMapper extends BaseMapperX { .likeIfPresent("user_ip", reqVO.getUserIp())); } - default List selectSessionTimeout() { + default List selectListBySessionTimoutLt() { return selectList(new QueryWrapperX().lt("session_timeout",new Date())); } } diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/dal/redis/SysRedisKeyConstants.java b/src/main/java/cn/iocoder/dashboard/modules/system/dal/redis/SysRedisKeyConstants.java index 5c6be6b33..070f65c90 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/dal/redis/SysRedisKeyConstants.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/dal/redis/SysRedisKeyConstants.java @@ -16,7 +16,7 @@ public interface SysRedisKeyConstants { RedisKeyDefine LOGIN_USER = new RedisKeyDefine("登陆用户的缓存", "login_user:%s", // 参数为 sessionId - STRING, LoginUser.class, Duration.ofMinutes(30)); + STRING, LoginUser.class, RedisKeyDefine.TimeoutTypeEnum.DYNAMIC); RedisKeyDefine CAPTCHA_CODE = new RedisKeyDefine("验证码的缓存", "captcha_code:%s", // 参数为 uuid diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/dal/redis/auth/SysLoginUserRedisDAO.java b/src/main/java/cn/iocoder/dashboard/modules/system/dal/redis/auth/SysLoginUserRedisDAO.java index c2d7bfd6b..02489e81a 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/dal/redis/auth/SysLoginUserRedisDAO.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/dal/redis/auth/SysLoginUserRedisDAO.java @@ -1,11 +1,13 @@ package cn.iocoder.dashboard.modules.system.dal.redis.auth; import cn.iocoder.dashboard.framework.security.core.LoginUser; +import cn.iocoder.dashboard.modules.system.service.auth.SysUserSessionService; import cn.iocoder.dashboard.util.json.JsonUtils; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Repository; import javax.annotation.Resource; +import java.time.Duration; import static cn.iocoder.dashboard.modules.system.dal.redis.SysRedisKeyConstants.LOGIN_USER; @@ -19,6 +21,8 @@ public class SysLoginUserRedisDAO { @Resource private StringRedisTemplate stringRedisTemplate; + @Resource + private SysUserSessionService sysUserSessionService; public LoginUser get(String sessionId) { String redisKey = formatKey(sessionId); @@ -27,7 +31,8 @@ public class SysLoginUserRedisDAO { public void set(String sessionId, LoginUser loginUser) { String redisKey = formatKey(sessionId); - stringRedisTemplate.opsForValue().set(redisKey, JsonUtils.toJsonString(loginUser), LOGIN_USER.getTimeout()); + stringRedisTemplate.opsForValue().set(redisKey, JsonUtils.toJsonString(loginUser), + Duration.ofMillis(sysUserSessionService.getSessionTimeoutMillis())); } public void delete(String sessionId) { diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/job/auth/SysUserSessionTimeoutJob.java b/src/main/java/cn/iocoder/dashboard/modules/system/job/auth/SysUserSessionTimeoutJob.java index 799fe115f..5c1aae405 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/job/auth/SysUserSessionTimeoutJob.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/job/auth/SysUserSessionTimeoutJob.java @@ -23,7 +23,7 @@ public class SysUserSessionTimeoutJob implements JobHandler { public String execute(String param) throws Exception { log.info("[execute][执行任务:{}]", "移除超时的在线用户"); long timeoutCount = sysUserSessionService.clearSessionTimeout(); - log.info("[execute][执行任务:{}]", "移除超时的在线用户完成" + timeoutCount); + log.info("[execute][执行任务:{}:{}]", "移除超时的在线用户完成", timeoutCount); return null; } diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/service/auth/SysUserSessionService.java b/src/main/java/cn/iocoder/dashboard/modules/system/service/auth/SysUserSessionService.java index 588c9f956..3f8869a0f 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/service/auth/SysUserSessionService.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/service/auth/SysUserSessionService.java @@ -62,8 +62,8 @@ public interface SysUserSessionService { /** * 移除超时的在线用户 - * @param - * @return {@link Long} + * + * @return {@link Long } 移出的超时用户数量 * @author Lyon * @date 2021/3/7 **/ diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/service/auth/impl/SysUserSessionServiceImpl.java b/src/main/java/cn/iocoder/dashboard/modules/system/service/auth/impl/SysUserSessionServiceImpl.java index e1fb1fa2f..cc3e0aa06 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/service/auth/impl/SysUserSessionServiceImpl.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/service/auth/impl/SysUserSessionServiceImpl.java @@ -13,16 +13,18 @@ import cn.iocoder.dashboard.modules.system.dal.mysql.auth.SysUserSessionMapper; import cn.iocoder.dashboard.modules.system.dal.redis.auth.SysLoginUserRedisDAO; import cn.iocoder.dashboard.modules.system.service.auth.SysUserSessionService; import cn.iocoder.dashboard.modules.system.service.user.SysUserService; -import cn.iocoder.dashboard.util.date.DateUtils; +import com.google.common.collect.Lists; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.time.Duration; import java.util.Collection; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; -import static cn.iocoder.dashboard.modules.system.dal.redis.SysRedisKeyConstants.LOGIN_USER; import static cn.iocoder.dashboard.util.collection.CollectionUtils.convertSet; +import static cn.iocoder.dashboard.util.date.DateUtils.addTime; /** * 在线用户 Session Service 实现类 @@ -53,7 +55,7 @@ public class SysUserSessionServiceImpl implements SysUserSessionService { // 写入 DB 中 SysUserSessionDO userSession = SysUserSessionDO.builder().id(sessionId) .userId(loginUser.getId()).userIp(userIp).userAgent(userAgent) - .sessionTimeout(DateUtils.addTime(LOGIN_USER.getTimeout())) + .sessionTimeout(addTime(Duration.ofMillis(getSessionTimeoutMillis()))) .build(); userSessionMapper.insert(userSession); // 返回 Session 编号 @@ -68,7 +70,7 @@ public class SysUserSessionServiceImpl implements SysUserSessionService { // 更新 DB 中 SysUserSessionDO updateObj = SysUserSessionDO.builder().id(sessionId).build(); updateObj.setUpdateTime(new Date()); - updateObj.setSessionTimeout(DateUtils.addTime(LOGIN_USER.getTimeout())); + updateObj.setSessionTimeout(addTime(Duration.ofMillis(getSessionTimeoutMillis()))); userSessionMapper.updateById(updateObj); } @@ -106,15 +108,17 @@ public class SysUserSessionServiceImpl implements SysUserSessionService { @Override public long clearSessionTimeout() { // 获取db里已经超时的用户列表 - Long timeoutCount = 0L; - List sessionTimeoutDOS = userSessionMapper.selectSessionTimeout(); - for (SysUserSessionDO sessionDO : sessionTimeoutDOS) { - // 确认已经超时,移出在线用户列表 - if (loginUserRedisDAO.get(sessionDO.getId()) == null) { - timeoutCount += userSessionMapper.deleteById(sessionDO.getId()); - } + List sessionTimeoutDOS = userSessionMapper.selectListBySessionTimoutLt(); + List timeoutIdList = sessionTimeoutDOS + .stream() + .filter(sessionDO -> loginUserRedisDAO.get(sessionDO.getId()) == null) + .map(SysUserSessionDO::getId) + .collect(Collectors.toList()); + // 确认已经超时,按批次移出在线用户列表 + if (CollUtil.isNotEmpty(timeoutIdList)) { + Lists.partition(timeoutIdList, 100).forEach(userSessionMapper::deleteBatchIds); } - return timeoutCount; + return timeoutIdList.size(); } /** diff --git a/src/test/java/cn/iocoder/dashboard/modules/system/service/auth/SysUserSessionServiceImplTest.java b/src/test/java/cn/iocoder/dashboard/modules/system/service/auth/SysUserSessionServiceImplTest.java new file mode 100644 index 000000000..45561da0b --- /dev/null +++ b/src/test/java/cn/iocoder/dashboard/modules/system/service/auth/SysUserSessionServiceImplTest.java @@ -0,0 +1,54 @@ +package cn.iocoder.dashboard.modules.system.service.auth; + +import cn.hutool.core.date.DateUtil; +import cn.iocoder.dashboard.BaseSpringBootUnitTest; +import cn.iocoder.dashboard.framework.mybatis.core.query.QueryWrapperX; +import cn.iocoder.dashboard.modules.system.dal.dataobject.auth.SysUserSessionDO; +import cn.iocoder.dashboard.modules.system.dal.mysql.auth.SysUserSessionMapper; +import cn.iocoder.dashboard.util.RandomUtils; +import org.junit.jupiter.api.Test; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +/** + * SysUserSessionServiceImpl Tester. + * + * @author Lyon + * @version 1.0 + * @since
3月 8, 2021
+ */ +public class SysUserSessionServiceImplTest extends BaseSpringBootUnitTest { + + @Resource + SysUserSessionService sysUserSessionService; + @Resource + SysUserSessionMapper sysUserSessionMapper; + + @Test + public void testClearSessionTimeout_success() throws Exception { + // 准备超时数据 120 条, 在线用户 1 条 + int expectedTimeoutCount = 120, expectedTotal = 1; + + // 准备数据 + List prepareData = Stream + .iterate(0, i -> i) + .limit(expectedTimeoutCount) + .map(i -> RandomUtils.randomPojo(SysUserSessionDO.class, o -> o.setSessionTimeout(DateUtil.offsetSecond(new Date(), -1)))) + .collect(Collectors.toList()); + prepareData.add(RandomUtils.randomPojo(SysUserSessionDO.class, o -> o.setSessionTimeout(DateUtil.offsetMinute(new Date(), 30)))); + prepareData.forEach(sysUserSessionMapper::insert); + + //清空超时数据 + long actualTimeoutCount = sysUserSessionService.clearSessionTimeout(); + assertEquals(expectedTimeoutCount, actualTimeoutCount); + Integer actualTotal = sysUserSessionMapper.selectCount(new QueryWrapperX<>()); + assertEquals(expectedTotal, actualTotal); + } + +} diff --git a/src/test/resources/sql/clean.sql b/src/test/resources/sql/clean.sql index ccc6cbb44..110625b54 100644 --- a/src/test/resources/sql/clean.sql +++ b/src/test/resources/sql/clean.sql @@ -8,3 +8,4 @@ DELETE FROM "sys_role"; DELETE FROM "sys_role_menu"; DELETE FROM "sys_menu"; DELETE FROM "sys_dict_type"; +DELETE FROM "sys_user_session"; diff --git a/src/test/resources/sql/create_tables.sql b/src/test/resources/sql/create_tables.sql index 29078224e..827d4923d 100644 --- a/src/test/resources/sql/create_tables.sql +++ b/src/test/resources/sql/create_tables.sql @@ -114,3 +114,17 @@ CREATE TABLE "sys_dict_type" ( "deleted" bit NOT NULL DEFAULT FALSE, PRIMARY KEY ("id") ) COMMENT '字典类型表'; + +CREATE TABLE `sys_user_session` ( + `id` varchar(32) NOT NULL, + `user_id` bigint DEFAULT NULL, + `user_ip` varchar(50) DEFAULT NULL, + `user_agent` varchar(512) DEFAULT NULL, + `session_timeout` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "create_by" varchar(64) DEFAULT '', + "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `update_by` varchar(64) DEFAULT '' , + "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + PRIMARY KEY (`id`) +) COMMENT '用户在线 Session'; From 75678ff2d57ac44ccc77cd68801807915ba7bcee Mon Sep 17 00:00:00 2001 From: hexiaowu Date: Tue, 9 Mar 2021 00:51:11 +0800 Subject: [PATCH 04/13] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8D=95=E5=85=83?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E6=97=A0=E6=B3=95=E8=8E=B7=E5=8F=96=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=A1=AB=E5=85=85=E5=8F=82=E6=95=B0=20DefaultDBFieldH?= =?UTF-8?q?andler=20=E7=B1=BB=20BaseDO=E6=96=B0=E5=A2=9ETableField?= =?UTF-8?q?=E6=B3=A8=E8=A7=A3=EF=BC=8C=E7=94=A8=E4=BA=8E=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=A1=AB=E5=85=85=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../framework/mybatis/config/MybatisConfiguration.java | 7 +++++++ .../framework/mybatis/core/dataobject/BaseDO.java | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/src/main/java/cn/iocoder/dashboard/framework/mybatis/config/MybatisConfiguration.java b/src/main/java/cn/iocoder/dashboard/framework/mybatis/config/MybatisConfiguration.java index a955c402e..4d4f0d681 100644 --- a/src/main/java/cn/iocoder/dashboard/framework/mybatis/config/MybatisConfiguration.java +++ b/src/main/java/cn/iocoder/dashboard/framework/mybatis/config/MybatisConfiguration.java @@ -1,5 +1,7 @@ package cn.iocoder.dashboard.framework.mybatis.config; +import cn.iocoder.dashboard.framework.mybatis.core.handle.DefaultDBFieldHandler; +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.apache.ibatis.annotations.Mapper; @@ -23,4 +25,9 @@ public class MybatisConfiguration { return mybatisPlusInterceptor; } + @Bean + public MetaObjectHandler defaultMetaObjectHandler(){ + return new DefaultDBFieldHandler(); // 自动填充参数类 + } + } diff --git a/src/main/java/cn/iocoder/dashboard/framework/mybatis/core/dataobject/BaseDO.java b/src/main/java/cn/iocoder/dashboard/framework/mybatis/core/dataobject/BaseDO.java index df9ddb22e..ca359dc83 100644 --- a/src/main/java/cn/iocoder/dashboard/framework/mybatis/core/dataobject/BaseDO.java +++ b/src/main/java/cn/iocoder/dashboard/framework/mybatis/core/dataobject/BaseDO.java @@ -1,5 +1,7 @@ package cn.iocoder.dashboard.framework.mybatis.core.dataobject; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableLogic; import lombok.Data; @@ -15,18 +17,22 @@ public class BaseDO implements Serializable { /** * 创建时间 */ + @TableField(fill = FieldFill.INSERT) private Date createTime; /** * 最后更新时间 */ + @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime; /** * 创建者 */ + @TableField(fill = FieldFill.INSERT) private String creator; /** * 更新者 */ + @TableField(fill = FieldFill.INSERT_UPDATE) private String updater; /** * 是否删除 From 7d26c1d00a2a041008b21dea1b3a140af170ebd7 Mon Sep 17 00:00:00 2001 From: hexiaowu Date: Mon, 8 Mar 2021 11:16:46 +0800 Subject: [PATCH 05/13] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=A1=AB=E5=85=85=EF=BC=8C=E5=A6=82=E6=9E=9C?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E6=98=BE=E5=BC=8F=E7=9A=84=E5=AF=B9=E9=80=9A?= =?UTF-8?q?=E7=94=A8=E5=AD=97=E6=AE=B5=E8=BF=9B=E8=A1=8C=E8=B5=8B=E5=80=BC?= =?UTF-8?q?=EF=BC=8C=E5=88=99=E4=BC=9A=E8=87=AA=E5=8A=A8=E5=A1=AB=E5=85=85?= =?UTF-8?q?=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mybatis/config/DefaultParamHandler.java | 65 +++++++++++++++++++ .../mybatis/core/dataobject/BaseDO.java | 8 +-- 2 files changed, 69 insertions(+), 4 deletions(-) create mode 100644 src/main/java/cn/iocoder/dashboard/framework/mybatis/config/DefaultParamHandler.java diff --git a/src/main/java/cn/iocoder/dashboard/framework/mybatis/config/DefaultParamHandler.java b/src/main/java/cn/iocoder/dashboard/framework/mybatis/config/DefaultParamHandler.java new file mode 100644 index 000000000..f94100fbc --- /dev/null +++ b/src/main/java/cn/iocoder/dashboard/framework/mybatis/config/DefaultParamHandler.java @@ -0,0 +1,65 @@ +package cn.iocoder.dashboard.framework.mybatis.config; + +import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.dashboard.framework.security.core.LoginUser; +import cn.iocoder.dashboard.framework.security.core.util.SecurityFrameworkUtils; +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import org.apache.ibatis.reflection.MetaObject; +import org.springframework.stereotype.Component; + +import java.util.Date; +import java.util.Objects; + +/** + * 通用参数填充实现类 + * + * 如果没有显式的对通用参数进行赋值,这里会对通用参数进行填充、赋值 + * + * @author hexiaowu + */ +@Component +public class DefaultParamHandler implements MetaObjectHandler { + + @Override + public void insertFill(MetaObject metaObject) { + if (Objects.nonNull(metaObject) && metaObject.getOriginalObject() instanceof BaseDO) { + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + BaseDO baseDO = (BaseDO) metaObject.getOriginalObject(); + Date current = new Date(); + + // 创建时间为空,则以当前时间为插入时间 + if (Objects.isNull(baseDO.getCreateTime())) { + baseDO.setCreateTime(current); + } + // 更新时间为空,则以当前时间为更新时间 + if (Objects.isNull(baseDO.getUpdateTime())) { + baseDO.setUpdateTime(current); + } + // 当前登录用户不为空,创建人为空,则当前登录用户为创建人 + if (Objects.nonNull(loginUser) && Objects.isNull(baseDO.getCreator())) { + baseDO.setCreator(loginUser.getId().toString()); + } + // 当前登录用户不为空,更新人为空,则当前登录用户为更新人 + if (Objects.nonNull(loginUser) && Objects.isNull(baseDO.getUpdater())) { + baseDO.setUpdater(loginUser.getId().toString()); + } + } + } + + @Override + public void updateFill(MetaObject metaObject) { + Object modifyTime = getFieldValByName("updateTime", metaObject); + Object modifier = getFieldValByName("updater", metaObject); + // 获取登录用户信息 + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + + // 更新时间为空,则以当前时间为更新时间 + if (Objects.isNull(modifyTime)) { + setFieldValByName("updateTime", new Date(), metaObject); + } + // 当前登录用户不为空,更新人为空,则当前登录用户为更新人 + if (Objects.nonNull(loginUser) && Objects.isNull(modifier)) { + setFieldValByName("updater", loginUser.getId(), metaObject); + } + } +} diff --git a/src/main/java/cn/iocoder/dashboard/framework/mybatis/core/dataobject/BaseDO.java b/src/main/java/cn/iocoder/dashboard/framework/mybatis/core/dataobject/BaseDO.java index 7f6c76150..df9ddb22e 100644 --- a/src/main/java/cn/iocoder/dashboard/framework/mybatis/core/dataobject/BaseDO.java +++ b/src/main/java/cn/iocoder/dashboard/framework/mybatis/core/dataobject/BaseDO.java @@ -21,13 +21,13 @@ public class BaseDO implements Serializable { */ private Date updateTime; /** - * 创建者 TODO 芋艿:迁移成编号 + * 创建者 */ - private String createBy; + private String creator; /** - * 更新者 TODO 芋艿:迁移成编号 + * 更新者 */ - private String updateBy; + private String updater; /** * 是否删除 */ From 8b3d0e89fb3772f786694becda204d9fd98d891b Mon Sep 17 00:00:00 2001 From: hexiaowu Date: Mon, 8 Mar 2021 19:11:38 +0800 Subject: [PATCH 06/13] =?UTF-8?q?=E5=B0=86=20DefaultParamHandler=20?= =?UTF-8?q?=E4=BB=8E=20config=20=E5=8C=85=E7=A7=BB=E5=8A=A8=E5=88=B0=20cor?= =?UTF-8?q?e/handle=20=E5=8C=85=E4=B8=8B=20=E5=B0=86=20DefaultParamHandler?= =?UTF-8?q?=20=E6=94=B9=E5=90=8D=E4=B8=BA=20DefaultDBFieldHandler?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handle/DefaultDBFieldHandler.java} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename src/main/java/cn/iocoder/dashboard/framework/mybatis/{config/DefaultParamHandler.java => core/handle/DefaultDBFieldHandler.java} (95%) diff --git a/src/main/java/cn/iocoder/dashboard/framework/mybatis/config/DefaultParamHandler.java b/src/main/java/cn/iocoder/dashboard/framework/mybatis/core/handle/DefaultDBFieldHandler.java similarity index 95% rename from src/main/java/cn/iocoder/dashboard/framework/mybatis/config/DefaultParamHandler.java rename to src/main/java/cn/iocoder/dashboard/framework/mybatis/core/handle/DefaultDBFieldHandler.java index f94100fbc..1651ecc47 100644 --- a/src/main/java/cn/iocoder/dashboard/framework/mybatis/config/DefaultParamHandler.java +++ b/src/main/java/cn/iocoder/dashboard/framework/mybatis/core/handle/DefaultDBFieldHandler.java @@ -1,4 +1,4 @@ -package cn.iocoder.dashboard.framework.mybatis.config; +package cn.iocoder.dashboard.framework.mybatis.core.handle; import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.dashboard.framework.security.core.LoginUser; @@ -18,7 +18,7 @@ import java.util.Objects; * @author hexiaowu */ @Component -public class DefaultParamHandler implements MetaObjectHandler { +public class DefaultDBFieldHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { From 56b5f12b8642d8a9349ca06dc72e63189bac84be Mon Sep 17 00:00:00 2001 From: hexiaowu Date: Tue, 9 Mar 2021 00:51:11 +0800 Subject: [PATCH 07/13] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8D=95=E5=85=83?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E6=97=A0=E6=B3=95=E8=8E=B7=E5=8F=96=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=A1=AB=E5=85=85=E5=8F=82=E6=95=B0=20DefaultDBFieldH?= =?UTF-8?q?andler=20=E7=B1=BB=20BaseDO=E6=96=B0=E5=A2=9ETableField?= =?UTF-8?q?=E6=B3=A8=E8=A7=A3=EF=BC=8C=E7=94=A8=E4=BA=8E=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=A1=AB=E5=85=85=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../framework/mybatis/config/MybatisConfiguration.java | 7 +++++++ .../framework/mybatis/core/dataobject/BaseDO.java | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/src/main/java/cn/iocoder/dashboard/framework/mybatis/config/MybatisConfiguration.java b/src/main/java/cn/iocoder/dashboard/framework/mybatis/config/MybatisConfiguration.java index a955c402e..4d4f0d681 100644 --- a/src/main/java/cn/iocoder/dashboard/framework/mybatis/config/MybatisConfiguration.java +++ b/src/main/java/cn/iocoder/dashboard/framework/mybatis/config/MybatisConfiguration.java @@ -1,5 +1,7 @@ package cn.iocoder.dashboard.framework.mybatis.config; +import cn.iocoder.dashboard.framework.mybatis.core.handle.DefaultDBFieldHandler; +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.apache.ibatis.annotations.Mapper; @@ -23,4 +25,9 @@ public class MybatisConfiguration { return mybatisPlusInterceptor; } + @Bean + public MetaObjectHandler defaultMetaObjectHandler(){ + return new DefaultDBFieldHandler(); // 自动填充参数类 + } + } diff --git a/src/main/java/cn/iocoder/dashboard/framework/mybatis/core/dataobject/BaseDO.java b/src/main/java/cn/iocoder/dashboard/framework/mybatis/core/dataobject/BaseDO.java index df9ddb22e..ca359dc83 100644 --- a/src/main/java/cn/iocoder/dashboard/framework/mybatis/core/dataobject/BaseDO.java +++ b/src/main/java/cn/iocoder/dashboard/framework/mybatis/core/dataobject/BaseDO.java @@ -1,5 +1,7 @@ package cn.iocoder.dashboard.framework.mybatis.core.dataobject; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableLogic; import lombok.Data; @@ -15,18 +17,22 @@ public class BaseDO implements Serializable { /** * 创建时间 */ + @TableField(fill = FieldFill.INSERT) private Date createTime; /** * 最后更新时间 */ + @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime; /** * 创建者 */ + @TableField(fill = FieldFill.INSERT) private String creator; /** * 更新者 */ + @TableField(fill = FieldFill.INSERT_UPDATE) private String updater; /** * 是否删除 From ea34197dd730ce3acb23182edc12c3a2bbd2aa13 Mon Sep 17 00:00:00 2001 From: Lyon <18423215834@163.com> Date: Tue, 9 Mar 2021 17:54:53 +0800 Subject: [PATCH 08/13] =?UTF-8?q?SysUserSessionServiceImplTest=20=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E7=88=B6=E7=B1=BB=E6=9B=BF=E6=8D=A2=20SysUserSessionD?= =?UTF-8?q?O.java=20=E8=A1=A8=E7=BB=93=E6=9E=84=E6=96=B0=E5=A2=9E=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=20username;=20create=5Ftables.sql=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=20ruoyi-vue-pro.sql=20=E4=BF=AE=E6=94=B9=20=E7=A7=BB?= =?UTF-8?q?=E9=99=A4=E8=B6=85=E6=97=B6=E7=9A=84=E5=9C=A8=E7=BA=BF=E7=94=A8?= =?UTF-8?q?=E6=88=B7-?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/ruoyi-vue-pro.sql | 215 +++++++++--------- .../dal/dataobject/auth/SysUserSessionDO.java | 8 + .../auth/impl/SysUserSessionServiceImpl.java | 42 +++- .../auth/SysUserSessionServiceImplTest.java | 27 ++- src/test/resources/sql/create_tables.sql | 5 +- 5 files changed, 173 insertions(+), 124 deletions(-) diff --git a/sql/ruoyi-vue-pro.sql b/sql/ruoyi-vue-pro.sql index 93c15370d..932b0f73c 100644 --- a/sql/ruoyi-vue-pro.sql +++ b/sql/ruoyi-vue-pro.sql @@ -37,9 +37,9 @@ CREATE TABLE `inf_api_access_log` ( `duration` int(11) NOT NULL COMMENT '执行时长', `result_code` int(11) NOT NULL DEFAULT '0' COMMENT '结果码', `result_msg` varchar(512) DEFAULT '' COMMENT '结果提示', - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE @@ -78,9 +78,9 @@ CREATE TABLE `inf_api_error_log` ( `process_status` tinyint(4) NOT NULL COMMENT '处理状态', `process_time` datetime DEFAULT NULL COMMENT '处理时间', `process_user_id` int(11) DEFAULT '0' COMMENT '处理用户编号', - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE @@ -105,9 +105,9 @@ CREATE TABLE `inf_config` ( `value` varchar(500) NOT NULL DEFAULT '' COMMENT '参数键值', `sensitive` bit(1) NOT NULL COMMENT '是否敏感', `remark` varchar(500) DEFAULT NULL COMMENT '备注', - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE @@ -138,9 +138,9 @@ CREATE TABLE `inf_job` ( `retry_count` int(11) NOT NULL DEFAULT '0' COMMENT '重试次数', `retry_interval` int(11) NOT NULL DEFAULT '0' COMMENT '重试间隔', `monitor_timeout` int(11) NOT NULL DEFAULT '0' COMMENT '监控超时时间', - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE @@ -169,9 +169,9 @@ CREATE TABLE `inf_job_log` ( `duration` int(11) DEFAULT NULL COMMENT '执行时长', `status` tinyint(4) NOT NULL COMMENT '任务状态', `result` varchar(4000) DEFAULT '' COMMENT '结果数据', - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE @@ -196,9 +196,9 @@ CREATE TABLE `sys_dept` ( `phone` varchar(11) DEFAULT NULL COMMENT '联系电话', `email` varchar(50) DEFAULT NULL COMMENT '邮箱', `status` tinyint(4) NOT NULL COMMENT '部门状态(0正常 1停用)', - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE @@ -232,9 +232,9 @@ CREATE TABLE `sys_dict_data` ( `dict_type` varchar(100) NOT NULL DEFAULT '' COMMENT '字典类型', `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态(0正常 1停用)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE @@ -310,9 +310,9 @@ CREATE TABLE `sys_dict_type` ( `type` varchar(100) NOT NULL DEFAULT '' COMMENT '字典类型', `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '状态(0正常 1停用)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE, @@ -349,9 +349,9 @@ DROP TABLE IF EXISTS `sys_file`; CREATE TABLE `sys_file` ( `id` varchar(188) NOT NULL COMMENT '文件路径', `content` blob NOT NULL COMMENT '文件内容', - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE @@ -376,9 +376,9 @@ CREATE TABLE `sys_login_log` ( `result` tinyint(4) NOT NULL COMMENT '登陆结果', `user_ip` varchar(50) NOT NULL COMMENT '用户 IP', `user_agent` varchar(512) NOT NULL COMMENT '浏览器 UA', - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE @@ -405,9 +405,9 @@ CREATE TABLE `sys_menu` ( `icon` varchar(100) DEFAULT '#' COMMENT '菜单图标', `component` varchar(255) DEFAULT NULL COMMENT '组件路径', `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '菜单状态(0正常 1停用)', - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE @@ -532,9 +532,9 @@ CREATE TABLE `sys_notice` ( `content` text NOT NULL COMMENT '公告内容', `notice_type` tinyint(4) NOT NULL COMMENT '公告类型(1通知 2公告)', `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '公告状态(0正常 1关闭)', - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE @@ -573,9 +573,9 @@ CREATE TABLE `sys_operate_log` ( `result_code` int(11) NOT NULL DEFAULT '0' COMMENT '结果码', `result_msg` varchar(512) DEFAULT '' COMMENT '结果提示', `result_data` varchar(4000) DEFAULT '' COMMENT '结果数据', - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE @@ -598,9 +598,9 @@ CREATE TABLE `sys_post` ( `sort` int(4) NOT NULL COMMENT '显示顺序', `status` tinyint(4) NOT NULL COMMENT '状态(0正常 1停用)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE @@ -631,9 +631,9 @@ CREATE TABLE `sys_role` ( `status` tinyint(4) NOT NULL COMMENT '角色状态(0正常 1停用)', `type` tinyint(4) NOT NULL COMMENT '角色类型', `remark` varchar(500) DEFAULT NULL COMMENT '备注', - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE @@ -656,9 +656,9 @@ CREATE TABLE `sys_role_menu` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增编号', `role_id` bigint(20) NOT NULL COMMENT '角色ID', `menu_id` bigint(20) NOT NULL COMMENT '菜单ID', - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE @@ -843,9 +843,9 @@ CREATE TABLE `sys_user` ( `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '帐号状态(0正常 1停用)', `login_ip` varchar(50) DEFAULT '' COMMENT '最后登录IP', `login_date` datetime DEFAULT NULL COMMENT '最后登录时间', - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE @@ -870,9 +870,9 @@ CREATE TABLE `sys_user_role` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增编号', `user_id` bigint(20) NOT NULL COMMENT '用户ID', `role_id` bigint(20) NOT NULL COMMENT '角色ID', - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `deleted` bit(1) DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE @@ -898,12 +898,13 @@ DROP TABLE IF EXISTS `sys_user_session`; CREATE TABLE `sys_user_session` ( `id` varchar(32) NOT NULL COMMENT '会话编号', `user_id` bigint(20) NOT NULL COMMENT '用户编号', + `username` varchar(50) NOT NULL DEFAULT '' COMMENT '用户账号', `user_ip` varchar(50) NOT NULL COMMENT '用户 IP', `user_agent` varchar(512) NOT NULL COMMENT '浏览器 UA', `session_timeout` datetime NOT NULL COMMENT '会话超时时间', - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE @@ -913,69 +914,69 @@ CREATE TABLE `sys_user_session` ( -- Records of sys_user_session -- ---------------------------- BEGIN; -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', '', '2021-03-07 14:58:55', b'0'); -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-14 20:04:33', '', '2021-02-07 08:36:48', '', '2021-03-07 14:58:55', b'0'); -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', '', '2021-03-07 14:58:55', b'0'); -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-11 00:58:19', '', '2021-02-05 17:46:10', '', '2021-03-07 14:58:55', b'0'); -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-05 01:25:51', '', '2021-03-04 16:54:24', '', '2021-03-07 14:58:55', b'0'); -INSERT INTO `sys_user_session` VALUES ('05965209307f4e7a945aadc6842af77e', 1, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36', '2021-03-07 15:09:55', '', '2021-03-07 14:39:54', '', '2021-03-07 14:39:54', b'0'); -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-27 12:04:09', '', '2021-02-26 02:17:35', '', '2021-03-07 14:58:55', b'0'); -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-14 22:57:44', '', '2021-02-07 13:05:42', '', '2021-03-07 14:58:55', b'0'); -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-10 11:10:31', '', '2021-02-05 06:49:00', '', '2021-03-07 14:58:55', b'0'); -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', '', '2021-03-07 14:58:55', b'0'); -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', '', '2021-03-07 14:58:55', b'0'); -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', '', '2021-03-07 14:58:55', b'0'); -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', '', '2021-03-07 14:58:55', b'0'); -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', '', '2021-03-07 14:58:55', b'0'); -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', '', '2021-03-07 14:58:55', b'0'); -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-20 16:11:21', '', '2021-02-08 18:27:13', '', '2021-03-07 14:58:55', b'0'); -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-14 10:57:34', '', '2021-02-07 06:38:34', '', '2021-03-07 14:58:55', b'0'); -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 19:10:23', '', '2021-03-06 00:51:14', '', '2021-03-07 14:58:55', b'0'); -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-18 20:23:05', '', '2021-02-08 04:17:09', '', '2021-03-07 14:58:55', b'0'); -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-12 20:56:44', '', '2021-02-06 11:48:57', '', '2021-03-07 14:58:55', b'0'); -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', '', '2021-03-07 14:58:55', b'0'); -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', '', '2021-03-07 14:58:55', b'0'); -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-17 22:01:24', '', '2021-02-08 01:33:07', '', '2021-03-07 14:58:55', b'0'); -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 21:59:07', '', '2021-03-06 03:41:56', '', '2021-03-07 14:58:55', b'0'); -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', '', '2021-03-07 14:58:55', b'0'); -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-09 18:40:06', '', '2021-02-05 04:24:59', '', '2021-03-07 14:58:55', b'0'); -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 20:55:38', '', '2021-03-06 01:55:18', '', '2021-03-07 14:58:55', b'0'); -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-12 20:36:16', '', '2021-02-06 13:47:15', '', '2021-03-07 14:58:55', b'0'); -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-27 21:25:52', '', '2021-02-26 06:40:37', '', '2021-03-07 14:58:55', b'0'); -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-10 16:52:48', '', '2021-02-05 10:57:52', '', '2021-03-07 14:58:55', b'0'); -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-27 10:34:25', '', '2021-02-26 01:28:32', '', '2021-03-07 14:58:55', b'0'); -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-20 14:49:27', '', '2021-02-08 17:25:20', '', '2021-03-07 14:58:55', b'0'); -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', '', '2021-03-07 14:58:55', b'0'); -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-19 09:55:44', '', '2021-02-08 09:34:50', '', '2021-03-07 14:58:55', b'0'); -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-09 16:05:22', '', '2021-02-05 01:36:09', '', '2021-03-07 14:58:55', b'0'); -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-13 12:02:29', '', '2021-02-06 19:46:45', '', '2021-03-07 14:58:55', b'0'); -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-14 22:37:22', '', '2021-02-07 12:16:36', '', '2021-03-07 14:58:55', b'0'); -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-23 01:54:44', '', '2021-02-09 21:29:20', '', '2021-03-07 14:58:55', b'0'); -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', '', '2021-03-07 14:58:55', b'0'); -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:50', '', '2021-01-26 08:29:27', '', '2021-03-07 14:58:55', b'1'); -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', '', '2021-03-07 14:58:55', b'0'); -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', '', '2021-03-07 14:58:55', b'0'); -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', '', '2021-03-07 14:58:55', b'0'); -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-10 19:06:26', '', '2021-02-05 13:29:04', '', '2021-03-07 14:58:55', b'0'); -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-06 06:27:27', '', '2021-03-07 14:58:55', b'0'); -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-19 19:17:42', '', '2021-02-08 09:56:09', '', '2021-03-07 14:58:55', b'0'); -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-27 01:27:20', '', '2021-02-26 00:09:49', '', '2021-03-07 14:58:55', b'0'); -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', '', '2021-03-07 14:58:55', b'0'); -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-23 01:54:51', '', '2021-02-09 20:25:02', '', '2021-03-07 14:58:55', b'0'); -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-27 23:12:38', '', '2021-02-26 07:47:21', '', '2021-03-07 14:58:55', b'0'); -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-14 12:13:56', '', '2021-02-07 07:36:14', '', '2021-03-07 14:58:55', b'0'); -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', '', '2021-03-07 14:58:55', b'0'); -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-27 12:50:23', '', '2021-02-26 03:44:46', '', '2021-03-07 14:58:55', b'0'); -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', '', '2021-03-07 14:58:55', b'0'); -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', '', '2021-03-07 14:58:55', b'0'); -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', '', '2021-03-07 14:58:55', b'0'); -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', '', '2021-03-07 14:58:55', b'0'); -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', '', '2021-03-07 14:58:55', b'0'); -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-22 20:33:03', '', '2021-02-09 17:06:03', '', '2021-03-07 14:58:55', b'0'); -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-23 00:25:16', '', '2021-02-09 20:05:45', '', '2021-03-07 14:58:55', b'0'); -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', '', '2021-03-07 14:58:55', b'0'); -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', '', '2021-03-07 14:58:55', b'0'); -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', '', '2021-03-07 14:58:55', b'0'); +INSERT INTO `sys_user_session` VALUES ('015797486c564c01b128cb2662bfa1f9', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-08 03:20:22', '', '2021-02-08 03:20:22', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('019f009268e24cc1957c46763eef1fd4', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-14 20:04:33', '', '2021-02-07 08:36:48', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('037f130370a744a4b1db19aef205b8ae', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-08 20:38:37', '', '2021-02-08 20:38:37', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('04d51ff81ad54d05ab2f29e66b2a02f2', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-11 00:58:19', '', '2021-02-05 17:46:10', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('055057e3356b4c249d56a6627ca057a7', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-03-05 01:25:51', '', '2021-03-04 16:54:24', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('05965209307f4e7a945aadc6842af77e', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36', '2021-03-07 15:09:55', '', '2021-03-07 14:39:54', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('064ba2d647704f57bdf36a1803a724d7', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-27 12:04:09', '', '2021-02-26 02:17:35', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('0df60899301d4080bd4164f24bccf18b', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-14 22:57:44', '', '2021-02-07 13:05:42', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('1127b5eb9b0c4f9fa382d4d98a8a4a38', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-10 11:10:31', '', '2021-02-05 06:49:00', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('11aa2d7861d445349790804fa8676754', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Linux; Android 10; PCT-AL10 Build/HUAWEIPCT-AL10; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045513 Mobile Safari/537.36 MMWEBID/2883 MicroMessenger/8.0.1.1841(0x28000159) Process/tools WeChat/arm64 Weixin NetType/4G Language/zh_CN ABI/arm64', '2021-02-09 00:06:03', '', '2021-02-09 00:06:03', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('135db2c6d88a4f41aaf4df46f3a3e0ea', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-03-06 01:44:25', '', '2021-03-06 01:44:25', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('1bcac32d34b94422893f10718f643320', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-09 12:14:10', '', '2021-02-09 12:14:10', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('20109910c52e4b02bbc0531212bff8cb', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-06 02:39:48', '', '2021-02-06 02:39:48', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('2024509755b3444690c2a1dddaebd812', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-05 06:22:30', '', '2021-02-05 06:22:30', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('260facb728964db7a3df8461b4eebe86', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-08 23:10:08', '', '2021-02-08 23:10:08', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('27858c1f13c64a2a8889063932419885', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-20 16:11:21', '', '2021-02-08 18:27:13', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('27d6db8abb3b4ed88d446ad489b9db23', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-14 10:57:34', '', '2021-02-07 06:38:34', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('27dbe0b1051b41eb9efe6558af7cd681', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-03-06 19:10:23', '', '2021-03-06 00:51:14', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('285af833677642448bbd19c40a279825', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-18 20:23:05', '', '2021-02-08 04:17:09', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('31e5ff8584794ca58460ecf68a177c3f', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-12 20:56:44', '', '2021-02-06 11:48:57', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('39cdef31685d4e93931a053d88ff0279', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-05 08:09:33', '', '2021-02-05 08:09:33', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('3e111c66356d47da8ffc2755bfa3db52', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-09 14:00:25', '', '2021-02-09 14:00:25', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('3f308ac8ff26481e829261dd14babbbb', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-17 22:01:24', '', '2021-02-08 01:33:07', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('452d44e0616c4dca93485ce67ac946df', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-03-06 21:59:07', '', '2021-03-06 03:41:56', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('50274d6c400f42f7bd5391a12858e262', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-26 11:45:04', '', '2021-02-26 11:45:04', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('5636ae58b9644ea1b4ed934b025b76ea', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-09 18:40:06', '', '2021-02-05 04:24:59', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('5891c4873bf746989a132929449d5f2b', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-03-06 20:55:38', '', '2021-03-06 01:55:18', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('597956fbc5b34363981530b24e1b5327', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-12 20:36:16', '', '2021-02-06 13:47:15', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('599102a1e8414ab59eddaf5492f98dad', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-27 21:25:52', '', '2021-02-26 06:40:37', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('5a9b736ccaa8452394c57ac82bd0815e', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-10 16:52:48', '', '2021-02-05 10:57:52', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('5aaeaa5c89434c6bbfa6c5af55097093', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-27 10:34:25', '', '2021-02-26 01:28:32', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('5b6787e6cbfa4c7faba0dc825fc02816', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-20 14:49:27', '', '2021-02-08 17:25:20', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('604ac07123a445ee8a81e58db1d6d695', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-05 16:33:53', '', '2021-02-05 16:33:53', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('648563ff4a7f454dac0385cca0581fb3', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-19 09:55:44', '', '2021-02-08 09:34:50', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('64fd3d0a54754b8fa13b62d2f261b1e2', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-09 16:05:22', '', '2021-02-05 01:36:09', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('661be9d3983e4e2eb8b346c1329015f5', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-13 12:02:29', '', '2021-02-06 19:46:45', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('6acbf1f210ff4c6594acb3505f0c3738', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-14 22:37:22', '', '2021-02-07 12:16:36', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('6e7e89c4948f45658eb74878457ac611', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-23 01:54:44', '', '2021-02-09 21:29:20', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('73c66b705ed94e18bc53df61abc2d102', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-06 15:00:55', '', '2021-02-06 15:00:55', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('73cc914671034f3190f09f520d1b39e9', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-01-26 08:29:50', '', '2021-01-26 08:29:27', '', '2021-03-09 15:12:47', b'1'); +INSERT INTO `sys_user_session` VALUES ('7b008d71139f48a4903aeaab0bbbef2e', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-03-06 04:38:15', '', '2021-03-06 04:38:15', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('7cbd0fdfb9304f298abb9ee2f58f7230', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-08 20:02:24', '', '2021-02-08 20:02:24', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('830a1687977b44969025177ad3b6d051', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-10 01:56:00', '', '2021-02-10 01:56:00', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('8331dbbca7be4348a3d2d02bf559b65e', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-10 19:06:26', '', '2021-02-05 13:29:04', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('897714de63634dba9ac235247f9860c2', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-03-06 06:27:27', '', '2021-03-06 06:27:27', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('8d7668c1276344ecbffaf7e4420595d7', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-19 19:17:42', '', '2021-02-08 09:56:09', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('9a3a5b8dee1841b69d70454ce23a53a3', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-27 01:27:20', '', '2021-02-26 00:09:49', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('9cc71dc2d7a24b978db1bfe0e4bae349', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-01-26 08:30:01', '', '2021-01-26 08:30:01', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('9e47f4bfee5e444194530de88900e259', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-23 01:54:51', '', '2021-02-09 20:25:02', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('a07756b7a4b24117b0bd14ec2c68b516', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-27 23:12:38', '', '2021-02-26 07:47:21', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('a1d01dbed7ff4b6392c3f27c18ce8778', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-14 12:13:56', '', '2021-02-07 07:36:14', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('a63c2208dd824440999bee9abc22ea7a', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-25 20:45:24', '', '2021-02-25 20:45:24', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('a7c495d00e2e4543ba943b4edb8c8176', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-27 12:50:23', '', '2021-02-26 03:44:46', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('a93edff183c447719ecb627d40ca22a6', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-05 20:28:51', '', '2021-02-05 20:28:51', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('aa22b7a5754b440e957ec47b832c9fd6', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-06 21:22:31', '', '2021-02-06 21:22:31', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('b3881aa0b09b4bcdaf9e5ce5f2bbf15a', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-09 20:18:33', '', '2021-02-09 20:18:33', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('bafb6445d05a4ee1bd9cdcf2ee83aea9', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-09 13:57:15', '', '2021-02-09 13:57:15', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('c1ede4001ac945f8844b3c7abdc86119', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-08 03:05:18', '', '2021-02-08 03:05:18', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('c527dcd973454664a75bbf5dbeae834a', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-22 20:33:03', '', '2021-02-09 17:06:03', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('df87c2afa8de4559a091292434df9fd8', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-23 00:25:16', '', '2021-02-09 20:05:45', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('e3ad1ef8b9aa4b329855b29c7b372e8f', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-05 06:21:44', '', '2021-02-05 06:21:44', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('ea0d48776db84da4ac0f4c2adf62c366', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-08 07:02:03', '', '2021-02-08 07:02:03', '', '2021-03-09 15:12:47', b'0'); +INSERT INTO `sys_user_session` VALUES ('f881f7dc67d04cd29574657fdde32a62', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-05 08:53:20', '', '2021-02-05 08:53:20', '', '2021-03-09 15:12:47', b'0'); COMMIT; -- ---------------------------- @@ -1002,9 +1003,9 @@ CREATE TABLE `tool_codegen_column` ( `list_operation_condition` varchar(32) NOT NULL DEFAULT '=' COMMENT 'List 查询操作的条件类型', `list_operation_result` bit(1) NOT NULL COMMENT '是否为 List 查询操作的返回字段', `html_type` varchar(32) NOT NULL COMMENT '显示类型', - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE @@ -1181,9 +1182,9 @@ CREATE TABLE `tool_codegen_table` ( `author` varchar(50) NOT NULL COMMENT '作者', `template_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '模板类型', `parent_menu_id` bigint(20) DEFAULT NULL COMMENT '父菜单编号', - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE @@ -1217,9 +1218,9 @@ CREATE TABLE `tool_test_demo` ( `type` tinyint(4) NOT NULL COMMENT '类型', `category` tinyint(4) NOT NULL COMMENT '分类', `remark` varchar(500) DEFAULT NULL COMMENT '备注', - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/auth/SysUserSessionDO.java b/src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/auth/SysUserSessionDO.java index a10699416..13b718030 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/auth/SysUserSessionDO.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/dal/dataobject/auth/SysUserSessionDO.java @@ -38,6 +38,14 @@ public class SysUserSessionDO extends BaseDO { * 关联 {@link SysUserDO#getId()} */ private Long userId; + + /** + * 用户账号 + * + * 冗余,因为账号可以变更 + */ + private String username; + /** * 用户 IP */ diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/service/auth/impl/SysUserSessionServiceImpl.java b/src/main/java/cn/iocoder/dashboard/modules/system/service/auth/impl/SysUserSessionServiceImpl.java index cc3e0aa06..5b91f764c 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/service/auth/impl/SysUserSessionServiceImpl.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/service/auth/impl/SysUserSessionServiceImpl.java @@ -6,21 +6,24 @@ import cn.hutool.core.util.StrUtil; import cn.iocoder.dashboard.common.pojo.PageResult; import cn.iocoder.dashboard.framework.security.config.SecurityProperties; import cn.iocoder.dashboard.framework.security.core.LoginUser; +import cn.iocoder.dashboard.framework.tracer.core.util.TracerUtils; import cn.iocoder.dashboard.modules.system.controller.auth.vo.session.SysUserSessionPageReqVO; +import cn.iocoder.dashboard.modules.system.controller.logger.vo.loginlog.SysLoginLogCreateReqVO; import cn.iocoder.dashboard.modules.system.dal.dataobject.auth.SysUserSessionDO; import cn.iocoder.dashboard.modules.system.dal.dataobject.user.SysUserDO; import cn.iocoder.dashboard.modules.system.dal.mysql.auth.SysUserSessionMapper; import cn.iocoder.dashboard.modules.system.dal.redis.auth.SysLoginUserRedisDAO; +import cn.iocoder.dashboard.modules.system.enums.logger.SysLoginLogTypeEnum; +import cn.iocoder.dashboard.modules.system.enums.logger.SysLoginResultEnum; import cn.iocoder.dashboard.modules.system.service.auth.SysUserSessionService; +import cn.iocoder.dashboard.modules.system.service.logger.SysLoginLogService; import cn.iocoder.dashboard.modules.system.service.user.SysUserService; import com.google.common.collect.Lists; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.time.Duration; -import java.util.Collection; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; import static cn.iocoder.dashboard.util.collection.CollectionUtils.convertSet; @@ -36,14 +39,14 @@ public class SysUserSessionServiceImpl implements SysUserSessionService { @Resource private SecurityProperties securityProperties; - @Resource private SysLoginUserRedisDAO loginUserRedisDAO; @Resource private SysUserSessionMapper userSessionMapper; - @Resource private SysUserService userService; + @Resource + private SysLoginLogService loginLogService; @Override public String createUserSession(LoginUser loginUser, String userIp, String userAgent) { @@ -54,7 +57,7 @@ public class SysUserSessionServiceImpl implements SysUserSessionService { loginUserRedisDAO.set(sessionId, loginUser); // 写入 DB 中 SysUserSessionDO userSession = SysUserSessionDO.builder().id(sessionId) - .userId(loginUser.getId()).userIp(userIp).userAgent(userAgent) + .userId(loginUser.getId()).userIp(userIp).userAgent(userAgent).username(loginUser.getUsername()) .sessionTimeout(addTime(Duration.ofMillis(getSessionTimeoutMillis()))) .build(); userSessionMapper.insert(userSession); @@ -69,6 +72,7 @@ public class SysUserSessionServiceImpl implements SysUserSessionService { loginUserRedisDAO.set(sessionId, loginUser); // 更新 DB 中 SysUserSessionDO updateObj = SysUserSessionDO.builder().id(sessionId).build(); + updateObj.setUsername(loginUser.getUsername()); updateObj.setUpdateTime(new Date()); updateObj.setSessionTimeout(addTime(Duration.ofMillis(getSessionTimeoutMillis()))); userSessionMapper.updateById(updateObj); @@ -109,16 +113,30 @@ public class SysUserSessionServiceImpl implements SysUserSessionService { public long clearSessionTimeout() { // 获取db里已经超时的用户列表 List sessionTimeoutDOS = userSessionMapper.selectListBySessionTimoutLt(); - List timeoutIdList = sessionTimeoutDOS + Map timeoutSessionDOMap = sessionTimeoutDOS .stream() .filter(sessionDO -> loginUserRedisDAO.get(sessionDO.getId()) == null) - .map(SysUserSessionDO::getId) - .collect(Collectors.toList()); + .collect(Collectors.toMap(SysUserSessionDO::getId, o -> o)); // 确认已经超时,按批次移出在线用户列表 - if (CollUtil.isNotEmpty(timeoutIdList)) { - Lists.partition(timeoutIdList, 100).forEach(userSessionMapper::deleteBatchIds); + if (CollUtil.isNotEmpty(timeoutSessionDOMap)) { + Lists.partition(new ArrayList<>(timeoutSessionDOMap.keySet()), 100).forEach(userSessionMapper::deleteBatchIds); + //记录用户超时退出日志 + createTimeoutLogoutLog(timeoutSessionDOMap.values()); + } + return timeoutSessionDOMap.size(); + } + + private void createTimeoutLogoutLog(Collection timeoutSessionDOS) { + for (SysUserSessionDO timeoutSessionDO : timeoutSessionDOS) { + SysLoginLogCreateReqVO reqVO = new SysLoginLogCreateReqVO(); + reqVO.setLogType(SysLoginLogTypeEnum.LOGOUT_TIMEOUT.getType()); + reqVO.setTraceId(TracerUtils.getTraceId()); + reqVO.setUsername(timeoutSessionDO.getUsername()); + reqVO.setUserAgent(timeoutSessionDO.getUserAgent()); + reqVO.setUserIp(timeoutSessionDO.getUserIp()); + reqVO.setResult(SysLoginResultEnum.SUCCESS.getResult()); + loginLogService.createLoginLog(reqVO); } - return timeoutIdList.size(); } /** diff --git a/src/test/java/cn/iocoder/dashboard/modules/system/service/auth/SysUserSessionServiceImplTest.java b/src/test/java/cn/iocoder/dashboard/modules/system/service/auth/SysUserSessionServiceImplTest.java index 45561da0b..5e76b3665 100644 --- a/src/test/java/cn/iocoder/dashboard/modules/system/service/auth/SysUserSessionServiceImplTest.java +++ b/src/test/java/cn/iocoder/dashboard/modules/system/service/auth/SysUserSessionServiceImplTest.java @@ -1,12 +1,20 @@ package cn.iocoder.dashboard.modules.system.service.auth; import cn.hutool.core.date.DateUtil; -import cn.iocoder.dashboard.BaseSpringBootUnitTest; +import cn.iocoder.dashboard.BaseDbAndRedisUnitTest; import cn.iocoder.dashboard.framework.mybatis.core.query.QueryWrapperX; +import cn.iocoder.dashboard.framework.security.config.SecurityProperties; import cn.iocoder.dashboard.modules.system.dal.dataobject.auth.SysUserSessionDO; import cn.iocoder.dashboard.modules.system.dal.mysql.auth.SysUserSessionMapper; +import cn.iocoder.dashboard.modules.system.dal.redis.auth.SysLoginUserRedisDAO; +import cn.iocoder.dashboard.modules.system.service.auth.impl.SysUserSessionServiceImpl; +import cn.iocoder.dashboard.modules.system.service.dept.impl.SysDeptServiceImpl; +import cn.iocoder.dashboard.modules.system.service.logger.impl.SysLoginLogServiceImpl; +import cn.iocoder.dashboard.modules.system.service.user.SysUserServiceImpl; import cn.iocoder.dashboard.util.RandomUtils; import org.junit.jupiter.api.Test; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.context.annotation.Import; import javax.annotation.Resource; import java.util.Date; @@ -23,12 +31,25 @@ import static org.junit.jupiter.api.Assertions.assertEquals; * @version 1.0 * @since
3月 8, 2021
*/ -public class SysUserSessionServiceImplTest extends BaseSpringBootUnitTest { +@Import({ + SysUserSessionServiceImpl.class +}) +public class SysUserSessionServiceImplTest extends BaseDbAndRedisUnitTest { @Resource - SysUserSessionService sysUserSessionService; + SysUserSessionServiceImpl sysUserSessionService; @Resource SysUserSessionMapper sysUserSessionMapper; + @MockBean + SecurityProperties securityProperties; + @MockBean + SysDeptServiceImpl sysDeptService; + @MockBean + SysUserServiceImpl sysUserService; + @MockBean + SysLoginLogServiceImpl sysLoginLogService; + @MockBean + SysLoginUserRedisDAO sysLoginUserRedisDAO; @Test public void testClearSessionTimeout_success() throws Exception { diff --git a/src/test/resources/sql/create_tables.sql b/src/test/resources/sql/create_tables.sql index 51bd2209e..8675ef978 100644 --- a/src/test/resources/sql/create_tables.sql +++ b/src/test/resources/sql/create_tables.sql @@ -118,12 +118,13 @@ CREATE TABLE "sys_dict_type" ( CREATE TABLE `sys_user_session` ( `id` varchar(32) NOT NULL, `user_id` bigint DEFAULT NULL, + `username` varchar(50) NOT NULL DEFAULT '', `user_ip` varchar(50) DEFAULT NULL, `user_agent` varchar(512) DEFAULT NULL, `session_timeout` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - "create_by" varchar(64) DEFAULT '', + "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - `update_by` varchar(64) DEFAULT '' , + `updater` varchar(64) DEFAULT '' , "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, PRIMARY KEY (`id`) From 4749090fc09849ee7a71cea850e23e28349613ac Mon Sep 17 00:00:00 2001 From: niudehua <657563945@qq.com> Date: Tue, 9 Mar 2021 20:08:44 +0800 Subject: [PATCH 09/13] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20=E5=8C=BF=E5=90=8D?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=BC=9A=E8=A2=AB=E9=89=B4=E5=AE=9A=E4=B8=BA?= =?UTF-8?q?anonymousUser?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../security/core/util/SecurityFrameworkUtils.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/java/cn/iocoder/dashboard/framework/security/core/util/SecurityFrameworkUtils.java b/src/main/java/cn/iocoder/dashboard/framework/security/core/util/SecurityFrameworkUtils.java index b6c509b93..82405fff5 100644 --- a/src/main/java/cn/iocoder/dashboard/framework/security/core/util/SecurityFrameworkUtils.java +++ b/src/main/java/cn/iocoder/dashboard/framework/security/core/util/SecurityFrameworkUtils.java @@ -20,13 +20,14 @@ import java.util.Set; */ public class SecurityFrameworkUtils { - private SecurityFrameworkUtils() {} + private SecurityFrameworkUtils() { + } /** * 从请求中,获得认证 Token * * @param request 请求 - * @param header 认证 Token 对应的 Header 名字 + * @param header 认证 Token 对应的 Header 名字 * @return 认证 Token */ public static String obtainAuthorization(HttpServletRequest request, String header) { @@ -56,7 +57,7 @@ public class SecurityFrameworkUtils { if (authentication == null) { return null; } - return (LoginUser) authentication.getPrincipal(); + return authentication.getPrincipal() instanceof LoginUser ? (LoginUser) authentication.getPrincipal() : null; } /** @@ -85,12 +86,12 @@ public class SecurityFrameworkUtils { * 设置当前用户 * * @param loginUser 登陆用户 - * @param request 请求 + * @param request 请求 */ public static void setLoginUser(LoginUser loginUser, HttpServletRequest request) { // 创建 UsernamePasswordAuthenticationToken 对象 UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken( - loginUser, null, null); + loginUser, null, null); authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request)); // 设置到上下文 SecurityContextHolder.getContext().setAuthentication(authenticationToken); From be250ca56d6d89161683db7f2b01cb6e7265c105 Mon Sep 17 00:00:00 2001 From: niudehua <657563945@qq.com> Date: Tue, 9 Mar 2021 20:09:49 +0800 Subject: [PATCH 10/13] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20=E5=8C=BF=E5=90=8D?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=BC=9A=E8=A2=AB=E9=89=B4=E5=AE=9A=E4=B8=BA?= =?UTF-8?q?anonymousUser?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../security/core/util/SecurityFrameworkUtils.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main/java/cn/iocoder/dashboard/framework/security/core/util/SecurityFrameworkUtils.java b/src/main/java/cn/iocoder/dashboard/framework/security/core/util/SecurityFrameworkUtils.java index 82405fff5..da0032ef1 100644 --- a/src/main/java/cn/iocoder/dashboard/framework/security/core/util/SecurityFrameworkUtils.java +++ b/src/main/java/cn/iocoder/dashboard/framework/security/core/util/SecurityFrameworkUtils.java @@ -20,14 +20,13 @@ import java.util.Set; */ public class SecurityFrameworkUtils { - private SecurityFrameworkUtils() { - } + private SecurityFrameworkUtils() {} /** * 从请求中,获得认证 Token * * @param request 请求 - * @param header 认证 Token 对应的 Header 名字 + * @param header 认证 Token 对应的 Header 名字 * @return 认证 Token */ public static String obtainAuthorization(HttpServletRequest request, String header) { @@ -86,12 +85,12 @@ public class SecurityFrameworkUtils { * 设置当前用户 * * @param loginUser 登陆用户 - * @param request 请求 + * @param request 请求 */ public static void setLoginUser(LoginUser loginUser, HttpServletRequest request) { // 创建 UsernamePasswordAuthenticationToken 对象 UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken( - loginUser, null, null); + loginUser, null, null); authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request)); // 设置到上下文 SecurityContextHolder.getContext().setAuthentication(authenticationToken); From a9436d29317b484615dad9ce0901a31e7bc94a01 Mon Sep 17 00:00:00 2001 From: Lyon <18423215834@163.com> Date: Tue, 9 Mar 2021 20:23:36 +0800 Subject: [PATCH 11/13] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E8=B6=85=E6=97=B6?= =?UTF-8?q?=E7=9A=84=E5=9C=A8=E7=BA=BF=E7=94=A8=E6=88=B7=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E4=B8=80=E4=BA=9B=E4=BB=A3=E7=A0=81=E9=A3=8E=E6=A0=BC?= =?UTF-8?q?,=E5=A2=9E=E5=8A=A0test=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/job/auth/SysUserSessionTimeoutJob.java | 5 +---- .../service/auth/SysUserSessionService.java | 2 -- .../auth/SysUserSessionServiceImplTest.java | 15 +++++++++------ 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/job/auth/SysUserSessionTimeoutJob.java b/src/main/java/cn/iocoder/dashboard/modules/system/job/auth/SysUserSessionTimeoutJob.java index 5c1aae405..f6182dd86 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/job/auth/SysUserSessionTimeoutJob.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/job/auth/SysUserSessionTimeoutJob.java @@ -21,10 +21,7 @@ public class SysUserSessionTimeoutJob implements JobHandler { @Override public String execute(String param) throws Exception { - log.info("[execute][执行任务:{}]", "移除超时的在线用户"); - long timeoutCount = sysUserSessionService.clearSessionTimeout(); - log.info("[execute][执行任务:{}:{}]", "移除超时的在线用户完成", timeoutCount); - return null; + return String.valueOf(sysUserSessionService.clearSessionTimeout()); } } diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/service/auth/SysUserSessionService.java b/src/main/java/cn/iocoder/dashboard/modules/system/service/auth/SysUserSessionService.java index 3f8869a0f..9e946d901 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/service/auth/SysUserSessionService.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/service/auth/SysUserSessionService.java @@ -64,8 +64,6 @@ public interface SysUserSessionService { * 移除超时的在线用户 * * @return {@link Long } 移出的超时用户数量 - * @author Lyon - * @date 2021/3/7 **/ long clearSessionTimeout(); } diff --git a/src/test/java/cn/iocoder/dashboard/modules/system/service/auth/SysUserSessionServiceImplTest.java b/src/test/java/cn/iocoder/dashboard/modules/system/service/auth/SysUserSessionServiceImplTest.java index 5e76b3665..fdce6cc6d 100644 --- a/src/test/java/cn/iocoder/dashboard/modules/system/service/auth/SysUserSessionServiceImplTest.java +++ b/src/test/java/cn/iocoder/dashboard/modules/system/service/auth/SysUserSessionServiceImplTest.java @@ -11,6 +11,7 @@ import cn.iocoder.dashboard.modules.system.service.auth.impl.SysUserSessionServi import cn.iocoder.dashboard.modules.system.service.dept.impl.SysDeptServiceImpl; import cn.iocoder.dashboard.modules.system.service.logger.impl.SysLoginLogServiceImpl; import cn.iocoder.dashboard.modules.system.service.user.SysUserServiceImpl; +import cn.iocoder.dashboard.util.AssertUtils; import cn.iocoder.dashboard.util.RandomUtils; import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; @@ -31,9 +32,8 @@ import static org.junit.jupiter.api.Assertions.assertEquals; * @version 1.0 * @since
3月 8, 2021
*/ -@Import({ - SysUserSessionServiceImpl.class -}) +@Import( + SysUserSessionServiceImpl.class) public class SysUserSessionServiceImplTest extends BaseDbAndRedisUnitTest { @Resource @@ -62,14 +62,17 @@ public class SysUserSessionServiceImplTest extends BaseDbAndRedisUnitTest { .limit(expectedTimeoutCount) .map(i -> RandomUtils.randomPojo(SysUserSessionDO.class, o -> o.setSessionTimeout(DateUtil.offsetSecond(new Date(), -1)))) .collect(Collectors.toList()); - prepareData.add(RandomUtils.randomPojo(SysUserSessionDO.class, o -> o.setSessionTimeout(DateUtil.offsetMinute(new Date(), 30)))); + SysUserSessionDO sessionDO = RandomUtils.randomPojo(SysUserSessionDO.class, o -> o.setSessionTimeout(DateUtil.offsetMinute(new Date(), 30))); + prepareData.add(sessionDO); prepareData.forEach(sysUserSessionMapper::insert); //清空超时数据 long actualTimeoutCount = sysUserSessionService.clearSessionTimeout(); + //校验 assertEquals(expectedTimeoutCount, actualTimeoutCount); - Integer actualTotal = sysUserSessionMapper.selectCount(new QueryWrapperX<>()); - assertEquals(expectedTotal, actualTotal); + List userSessionDOS = sysUserSessionMapper.selectList(); + assertEquals(expectedTotal, userSessionDOS.size()); + AssertUtils.assertPojoEquals(sessionDO, userSessionDOS.get(0), "updateTime"); } } From 0b34694a64f0d27f85894a8fd1bab8188e61068a Mon Sep 17 00:00:00 2001 From: YunaiV Date: Tue, 9 Mar 2021 20:41:29 +0800 Subject: [PATCH 12/13] =?UTF-8?q?1.=20=E4=B8=8A=E4=BC=A0=E6=9C=80=E6=96=B0?= =?UTF-8?q?=20sql=20=E8=84=9A=E6=9C=AC=202.=20=E4=BF=AE=E6=94=B9=20readme?= =?UTF-8?q?=203.=20=E4=BC=98=E5=8C=96=20config=20=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E7=9A=84=E6=8E=92=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 77 +++++++++------ sql/ruoyi-vue-pro.sql | 89 +++-------------- .../mybatis/config/MybatisConfiguration.java | 2 +- .../mybatis/core/dataobject/BaseDO.java | 8 +- .../DefaultDBFieldHandler.java | 4 +- .../config/InfConfigController.java | 95 ++++++++++--------- .../service/config/InfConfigService.java | 2 + .../job/auth/SysUserSessionTimeoutJob.java | 9 +- 8 files changed, 127 insertions(+), 159 deletions(-) rename src/main/java/cn/iocoder/dashboard/framework/mybatis/core/{handle => handler}/DefaultDBFieldHandler.java (95%) diff --git a/README.md b/README.md index 6af0a5447..3bd450bf6 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ## 平台简介 -**芋道** 是基于 [RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue) **重构**,一套**全部开源**的**企业级**的快速开发平台,毫无保留给个人及企业免费使用。 +**芋道**,一套**全部开源**的**企业级**的快速开发平台,毫无保留给个人及企业免费使用。 > 有任何问题,或者想要的功能,可以在 _Issues_ 中提给艿艿。 @@ -17,40 +17,63 @@ * 基础设施 * 研发工具 +> 友情提示:本项目基于 RuoYi-Vue 修改,**重构优化**后端的代码,**美化**前端的界面。 +> +> 额外新增的功能,我们使用 🚀 标记。 + +🙂 所有功能,都通过 **单元测试** 保证高质量。 + ### 系统功能 -1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置 -1. 在线用户:当前系统中活跃用户状态监控 -1. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分 -1. 菜单管理:配置系统菜单,操作权限,按钮权限标识等 -1. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限 -1. 岗位管理:配置系统用户所属担任职务 -1. 字典管理:对系统中经常使用的一些较为固定的数据进行维护 -1. 通知公告:系统通知公告信息发布维护 -1. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询 -1. 登录日志:系统登录日志记录查询包含登录异常 + +| | 功能 | 描述 | +| --- | --- | --- | +| | 用户管理 | 用户是系统操作者,该功能主要完成系统用户配置 | +| | 在线用户 | 当前系统中活跃用户状态监控,支持手动踢下线 | +| | 角色管理 | 角色菜单权限分配、设置角色按机构进行数据范围权限划分 | +| | 菜单管理 | 配置系统菜单,操作权限,按钮权限标识等 | +| | 部门管理 | 配置系统组织机构(公司、部门、小组),树结构展现支持数据权限 | +| | 岗位管理 | 配置系统用户所属担任职务 | +| | 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护 | +| | 通知公告 | 系统通知公告信息发布维护 | +| 🚀 | 操作日志 | 系统正常操作日志记录和查询,集成 Swagger 生成日志内容 | +| | 登录日志 | 系统登录日志记录查询包含登录异常 | + +计划新增功能: +* 短信 +* 邮件 +* 钉钉、飞书等通知 ### 基础设施 -1. 配置管理:对系统动态配置常用参数 -1. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志 -1. API 日志:包括 RESTful API 访问日志、异常日志两部分,方便排查 API 相关的问题 -1. MySQL 监控:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈 -1. Redis 监控:监控 Redis 数据库的使用情况,使用的 Redis Key 管理 -1. Java 监控:基于 Spring Boot Admin 实现 Java 应用的监控 -1. 链路追踪:基于 SkyWalking 实现性能监控,特别是链路的追踪 -1. 分布式锁:基于 Redis 实现分布式锁,满足并发场景 -1. 幂等组件:基于 Redis 实现幂等组件,解决重复请求问题 -1. 服务保障:基于 Resilience4j 实现服务的稳定性,包括限流、熔断等功能 -1. 日志服务:轻量级日志中心,查看远程服务器的日志 -1. 单元测试:基于 JUnit + Mockito 实现单元测试,保证功能的正确性、代码的质量等 +| | 功能 | 描述 | +| --- | --- | --- | +| 🚀 | 配置管理 | 对系统动态配置常用参数,支持 SpringBoot 加载 | +| | 定时任务 | 在线(添加、修改、删除)任务调度包含执行结果日志 | +| 🚀 | API 日志 | 包括 RESTful API 访问日志、异常日志两部分,方便排查 API 相关的问题 | +| | MySQL 监控 | 监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈 | +| | Redis 监控 |监控 Redis 数据库的使用情况,使用的 Redis Key 管理 | +| 🚀 |Java 监控 | 基于 Spring Boot Admin 实现 Java 应用的监控 | +| 🚀 | 链路追踪 | 基于 SkyWalking 实现性能监控,特别是链路的追踪 | +| 🚀 | 分布式锁 | 基于 Redis 实现分布式锁,满足并发场景 | +| 🚀 | 幂等组件 | 基于 Redis 实现幂等组件,解决重复请求问题 | +| 🚀 | 服务保障 | 基于 Resilience4j 实现服务的稳定性,包括限流、熔断等功能 | +| 🚀 | 日志服务 | 轻量级日志中心,查看远程服务器的日志 | +| 🚀 | 单元测试 |基于 JUnit + Mockito 实现单元测试,保证功能的正确性、代码的质量等 | + +计划新增: +* 工作流 +* 错误码 +* 文件服务 ### 研发工具 -1. 表单构建:拖动表单元素生成相应的 HTML 代码 -1. 代码生成:前后端代码的生成(Java、Vue、SQL、单元测试),支持 CRUD 下载 -1. 系统接口:基于 Swagger 自动生成相关的 RESTful API 接口文档 -1. 数据库文档:基于 Screw 自动生成数据库文档 +| | 功能 | 描述 | +| --- | --- | --- | +| 🚀 | 代码生成 |前后端代码的生成(Java、Vue、SQL、单元测试),支持 CRUD 下载 | +| 🚀 | 系统接口 | 基于 Swagger 自动生成相关的 RESTful API 接口文档 | +| 🚀 | 数据库文档 | 基于 Screw 自动生成数据库文档,支持导出 Word、HTML、MD 格式 | +| | 表单构建 | 拖动表单元素生成相应的 HTML 代码 | ## 在线体验 diff --git a/sql/ruoyi-vue-pro.sql b/sql/ruoyi-vue-pro.sql index 932b0f73c..b5988e67f 100644 --- a/sql/ruoyi-vue-pro.sql +++ b/sql/ruoyi-vue-pro.sql @@ -11,7 +11,7 @@ Target Server Version : 50718 File Encoding : 65001 - Date: 08/03/2021 00:50:29 + Date: 09/03/2021 20:39:41 */ SET NAMES utf8mb4; @@ -37,13 +37,13 @@ CREATE TABLE `inf_api_access_log` ( `duration` int(11) NOT NULL COMMENT '执行时长', `result_code` int(11) NOT NULL DEFAULT '0' COMMENT '结果码', `result_msg` varchar(512) DEFAULT '' COMMENT '结果提示', - `creator` varchar(64) DEFAULT '' COMMENT '创建者', + `crerator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=1850 DEFAULT CHARSET=utf8mb4 COMMENT='API 访问日志表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='API 访问日志表'; -- ---------------------------- -- Records of inf_api_access_log @@ -84,7 +84,7 @@ CREATE TABLE `inf_api_error_log` ( `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COMMENT='系统异常日志'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统异常日志'; -- ---------------------------- -- Records of inf_api_error_log @@ -175,7 +175,7 @@ CREATE TABLE `inf_job_log` ( `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=4477 DEFAULT CHARSET=utf8mb4 COMMENT='定时任务日志表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='定时任务日志表'; -- ---------------------------- -- Records of inf_job_log @@ -382,7 +382,7 @@ CREATE TABLE `sys_login_log` ( `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=127 DEFAULT CHARSET=utf8mb4 COMMENT='系统访问记录'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统访问记录'; -- ---------------------------- -- Records of sys_login_log @@ -579,7 +579,7 @@ CREATE TABLE `sys_operate_log` ( `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4 COMMENT='操作日志记录'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='操作日志记录'; -- ---------------------------- -- Records of sys_operate_log @@ -843,9 +843,9 @@ CREATE TABLE `sys_user` ( `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '帐号状态(0正常 1停用)', `login_ip` varchar(50) DEFAULT '' COMMENT '最后登录IP', `login_date` datetime DEFAULT NULL COMMENT '最后登录时间', - `creator` varchar(64) DEFAULT '' COMMENT '创建者', + `create_by` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `updater` varchar(64) DEFAULT '' COMMENT '更新者', + `update_by` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE @@ -898,10 +898,10 @@ DROP TABLE IF EXISTS `sys_user_session`; CREATE TABLE `sys_user_session` ( `id` varchar(32) NOT NULL COMMENT '会话编号', `user_id` bigint(20) NOT NULL COMMENT '用户编号', - `username` varchar(50) NOT NULL DEFAULT '' COMMENT '用户账号', + `session_timeout` datetime NOT NULL COMMENT '会话超时时间', + `username` varchar(30) NOT NULL COMMENT '用户账号', `user_ip` varchar(50) NOT NULL COMMENT '用户 IP', `user_agent` varchar(512) NOT NULL COMMENT '浏览器 UA', - `session_timeout` datetime NOT NULL COMMENT '会话超时时间', `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` varchar(64) DEFAULT '' COMMENT '更新者', @@ -914,69 +914,6 @@ CREATE TABLE `sys_user_session` ( -- Records of sys_user_session -- ---------------------------- BEGIN; -INSERT INTO `sys_user_session` VALUES ('015797486c564c01b128cb2662bfa1f9', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-08 03:20:22', '', '2021-02-08 03:20:22', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('019f009268e24cc1957c46763eef1fd4', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-14 20:04:33', '', '2021-02-07 08:36:48', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('037f130370a744a4b1db19aef205b8ae', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-08 20:38:37', '', '2021-02-08 20:38:37', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('04d51ff81ad54d05ab2f29e66b2a02f2', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-11 00:58:19', '', '2021-02-05 17:46:10', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('055057e3356b4c249d56a6627ca057a7', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-03-05 01:25:51', '', '2021-03-04 16:54:24', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('05965209307f4e7a945aadc6842af77e', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36', '2021-03-07 15:09:55', '', '2021-03-07 14:39:54', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('064ba2d647704f57bdf36a1803a724d7', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-27 12:04:09', '', '2021-02-26 02:17:35', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('0df60899301d4080bd4164f24bccf18b', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-14 22:57:44', '', '2021-02-07 13:05:42', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('1127b5eb9b0c4f9fa382d4d98a8a4a38', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-10 11:10:31', '', '2021-02-05 06:49:00', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('11aa2d7861d445349790804fa8676754', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Linux; Android 10; PCT-AL10 Build/HUAWEIPCT-AL10; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045513 Mobile Safari/537.36 MMWEBID/2883 MicroMessenger/8.0.1.1841(0x28000159) Process/tools WeChat/arm64 Weixin NetType/4G Language/zh_CN ABI/arm64', '2021-02-09 00:06:03', '', '2021-02-09 00:06:03', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('135db2c6d88a4f41aaf4df46f3a3e0ea', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-03-06 01:44:25', '', '2021-03-06 01:44:25', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('1bcac32d34b94422893f10718f643320', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-09 12:14:10', '', '2021-02-09 12:14:10', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('20109910c52e4b02bbc0531212bff8cb', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-06 02:39:48', '', '2021-02-06 02:39:48', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('2024509755b3444690c2a1dddaebd812', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-05 06:22:30', '', '2021-02-05 06:22:30', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('260facb728964db7a3df8461b4eebe86', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-08 23:10:08', '', '2021-02-08 23:10:08', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('27858c1f13c64a2a8889063932419885', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-20 16:11:21', '', '2021-02-08 18:27:13', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('27d6db8abb3b4ed88d446ad489b9db23', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-14 10:57:34', '', '2021-02-07 06:38:34', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('27dbe0b1051b41eb9efe6558af7cd681', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-03-06 19:10:23', '', '2021-03-06 00:51:14', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('285af833677642448bbd19c40a279825', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-18 20:23:05', '', '2021-02-08 04:17:09', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('31e5ff8584794ca58460ecf68a177c3f', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-12 20:56:44', '', '2021-02-06 11:48:57', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('39cdef31685d4e93931a053d88ff0279', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-05 08:09:33', '', '2021-02-05 08:09:33', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('3e111c66356d47da8ffc2755bfa3db52', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-09 14:00:25', '', '2021-02-09 14:00:25', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('3f308ac8ff26481e829261dd14babbbb', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-17 22:01:24', '', '2021-02-08 01:33:07', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('452d44e0616c4dca93485ce67ac946df', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-03-06 21:59:07', '', '2021-03-06 03:41:56', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('50274d6c400f42f7bd5391a12858e262', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-26 11:45:04', '', '2021-02-26 11:45:04', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('5636ae58b9644ea1b4ed934b025b76ea', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-09 18:40:06', '', '2021-02-05 04:24:59', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('5891c4873bf746989a132929449d5f2b', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-03-06 20:55:38', '', '2021-03-06 01:55:18', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('597956fbc5b34363981530b24e1b5327', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-12 20:36:16', '', '2021-02-06 13:47:15', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('599102a1e8414ab59eddaf5492f98dad', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-27 21:25:52', '', '2021-02-26 06:40:37', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('5a9b736ccaa8452394c57ac82bd0815e', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-10 16:52:48', '', '2021-02-05 10:57:52', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('5aaeaa5c89434c6bbfa6c5af55097093', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-27 10:34:25', '', '2021-02-26 01:28:32', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('5b6787e6cbfa4c7faba0dc825fc02816', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-20 14:49:27', '', '2021-02-08 17:25:20', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('604ac07123a445ee8a81e58db1d6d695', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-05 16:33:53', '', '2021-02-05 16:33:53', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('648563ff4a7f454dac0385cca0581fb3', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-19 09:55:44', '', '2021-02-08 09:34:50', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('64fd3d0a54754b8fa13b62d2f261b1e2', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-09 16:05:22', '', '2021-02-05 01:36:09', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('661be9d3983e4e2eb8b346c1329015f5', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-13 12:02:29', '', '2021-02-06 19:46:45', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('6acbf1f210ff4c6594acb3505f0c3738', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-14 22:37:22', '', '2021-02-07 12:16:36', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('6e7e89c4948f45658eb74878457ac611', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-23 01:54:44', '', '2021-02-09 21:29:20', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('73c66b705ed94e18bc53df61abc2d102', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-06 15:00:55', '', '2021-02-06 15:00:55', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('73cc914671034f3190f09f520d1b39e9', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-01-26 08:29:50', '', '2021-01-26 08:29:27', '', '2021-03-09 15:12:47', b'1'); -INSERT INTO `sys_user_session` VALUES ('7b008d71139f48a4903aeaab0bbbef2e', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-03-06 04:38:15', '', '2021-03-06 04:38:15', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('7cbd0fdfb9304f298abb9ee2f58f7230', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-08 20:02:24', '', '2021-02-08 20:02:24', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('830a1687977b44969025177ad3b6d051', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-10 01:56:00', '', '2021-02-10 01:56:00', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('8331dbbca7be4348a3d2d02bf559b65e', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-10 19:06:26', '', '2021-02-05 13:29:04', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('897714de63634dba9ac235247f9860c2', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-03-06 06:27:27', '', '2021-03-06 06:27:27', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('8d7668c1276344ecbffaf7e4420595d7', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-19 19:17:42', '', '2021-02-08 09:56:09', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('9a3a5b8dee1841b69d70454ce23a53a3', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-27 01:27:20', '', '2021-02-26 00:09:49', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('9cc71dc2d7a24b978db1bfe0e4bae349', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-01-26 08:30:01', '', '2021-01-26 08:30:01', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('9e47f4bfee5e444194530de88900e259', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-23 01:54:51', '', '2021-02-09 20:25:02', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('a07756b7a4b24117b0bd14ec2c68b516', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-27 23:12:38', '', '2021-02-26 07:47:21', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('a1d01dbed7ff4b6392c3f27c18ce8778', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-14 12:13:56', '', '2021-02-07 07:36:14', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('a63c2208dd824440999bee9abc22ea7a', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-25 20:45:24', '', '2021-02-25 20:45:24', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('a7c495d00e2e4543ba943b4edb8c8176', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-27 12:50:23', '', '2021-02-26 03:44:46', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('a93edff183c447719ecb627d40ca22a6', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-05 20:28:51', '', '2021-02-05 20:28:51', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('aa22b7a5754b440e957ec47b832c9fd6', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-06 21:22:31', '', '2021-02-06 21:22:31', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('b3881aa0b09b4bcdaf9e5ce5f2bbf15a', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-09 20:18:33', '', '2021-02-09 20:18:33', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('bafb6445d05a4ee1bd9cdcf2ee83aea9', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-09 13:57:15', '', '2021-02-09 13:57:15', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('c1ede4001ac945f8844b3c7abdc86119', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-08 03:05:18', '', '2021-02-08 03:05:18', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('c527dcd973454664a75bbf5dbeae834a', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-22 20:33:03', '', '2021-02-09 17:06:03', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('df87c2afa8de4559a091292434df9fd8', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-23 00:25:16', '', '2021-02-09 20:05:45', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('e3ad1ef8b9aa4b329855b29c7b372e8f', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-05 06:21:44', '', '2021-02-05 06:21:44', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('ea0d48776db84da4ac0f4c2adf62c366', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-08 07:02:03', '', '2021-02-08 07:02:03', '', '2021-03-09 15:12:47', b'0'); -INSERT INTO `sys_user_session` VALUES ('f881f7dc67d04cd29574657fdde32a62', 1, 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36', '2021-02-05 08:53:20', '', '2021-02-05 08:53:20', '', '2021-03-09 15:12:47', b'0'); COMMIT; -- ---------------------------- @@ -1218,9 +1155,9 @@ CREATE TABLE `tool_test_demo` ( `type` tinyint(4) NOT NULL COMMENT '类型', `category` tinyint(4) NOT NULL COMMENT '分类', `remark` varchar(500) DEFAULT NULL COMMENT '备注', - `creator` varchar(64) DEFAULT '' COMMENT '创建者', + `create_by` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `updater` varchar(64) DEFAULT '' COMMENT '更新者', + `update_by` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE diff --git a/src/main/java/cn/iocoder/dashboard/framework/mybatis/config/MybatisConfiguration.java b/src/main/java/cn/iocoder/dashboard/framework/mybatis/config/MybatisConfiguration.java index cfecdc832..dc63b51fd 100644 --- a/src/main/java/cn/iocoder/dashboard/framework/mybatis/config/MybatisConfiguration.java +++ b/src/main/java/cn/iocoder/dashboard/framework/mybatis/config/MybatisConfiguration.java @@ -1,6 +1,6 @@ package cn.iocoder.dashboard.framework.mybatis.config; -import cn.iocoder.dashboard.framework.mybatis.core.handle.DefaultDBFieldHandler; +import cn.iocoder.dashboard.framework.mybatis.core.handler.DefaultDBFieldHandler; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; diff --git a/src/main/java/cn/iocoder/dashboard/framework/mybatis/core/dataobject/BaseDO.java b/src/main/java/cn/iocoder/dashboard/framework/mybatis/core/dataobject/BaseDO.java index ca359dc83..9939c5f66 100644 --- a/src/main/java/cn/iocoder/dashboard/framework/mybatis/core/dataobject/BaseDO.java +++ b/src/main/java/cn/iocoder/dashboard/framework/mybatis/core/dataobject/BaseDO.java @@ -25,12 +25,16 @@ public class BaseDO implements Serializable { @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime; /** - * 创建者 + * 创建者,目前使用 SysUser 的 id 编号 + * + * 使用 String 类型的原因是,未来可能会存在非数值的情况,留好拓展性。 */ @TableField(fill = FieldFill.INSERT) private String creator; /** - * 更新者 + * 更新者,目前使用 SysUser 的 id 编号 + * + * 使用 String 类型的原因是,未来可能会存在非数值的情况,留好拓展性。 */ @TableField(fill = FieldFill.INSERT_UPDATE) private String updater; diff --git a/src/main/java/cn/iocoder/dashboard/framework/mybatis/core/handle/DefaultDBFieldHandler.java b/src/main/java/cn/iocoder/dashboard/framework/mybatis/core/handler/DefaultDBFieldHandler.java similarity index 95% rename from src/main/java/cn/iocoder/dashboard/framework/mybatis/core/handle/DefaultDBFieldHandler.java rename to src/main/java/cn/iocoder/dashboard/framework/mybatis/core/handler/DefaultDBFieldHandler.java index 1651ecc47..06a7a6b38 100644 --- a/src/main/java/cn/iocoder/dashboard/framework/mybatis/core/handle/DefaultDBFieldHandler.java +++ b/src/main/java/cn/iocoder/dashboard/framework/mybatis/core/handler/DefaultDBFieldHandler.java @@ -1,11 +1,10 @@ -package cn.iocoder.dashboard.framework.mybatis.core.handle; +package cn.iocoder.dashboard.framework.mybatis.core.handler; import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.dashboard.framework.security.core.LoginUser; import cn.iocoder.dashboard.framework.security.core.util.SecurityFrameworkUtils; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import org.apache.ibatis.reflection.MetaObject; -import org.springframework.stereotype.Component; import java.util.Date; import java.util.Objects; @@ -17,7 +16,6 @@ import java.util.Objects; * * @author hexiaowu */ -@Component public class DefaultDBFieldHandler implements MetaObjectHandler { @Override diff --git a/src/main/java/cn/iocoder/dashboard/modules/infra/controller/config/InfConfigController.java b/src/main/java/cn/iocoder/dashboard/modules/infra/controller/config/InfConfigController.java index fc39d9431..7731d3b9a 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/infra/controller/config/InfConfigController.java +++ b/src/main/java/cn/iocoder/dashboard/modules/infra/controller/config/InfConfigController.java @@ -1,11 +1,10 @@ package cn.iocoder.dashboard.modules.infra.controller.config; -import cn.iocoder.dashboard.common.exception.util.ServiceExceptionUtil; import cn.iocoder.dashboard.common.pojo.CommonResult; import cn.iocoder.dashboard.common.pojo.PageResult; import cn.iocoder.dashboard.framework.excel.core.util.ExcelUtils; import cn.iocoder.dashboard.framework.idempotent.core.annotation.Idempotent; -import cn.iocoder.dashboard.framework.idempotent.core.keyresolver.impl.ExpressionIdempotentKeyResolver; +import cn.iocoder.dashboard.framework.logger.operatelog.core.annotations.OperateLog; import cn.iocoder.dashboard.modules.infra.controller.config.vo.*; import cn.iocoder.dashboard.modules.infra.convert.config.InfConfigConvert; import cn.iocoder.dashboard.modules.infra.dal.dataobject.config.InfConfigDO; @@ -13,50 +12,60 @@ import cn.iocoder.dashboard.modules.infra.service.config.InfConfigService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; + import java.io.IOException; import java.util.List; +import static cn.iocoder.dashboard.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.dashboard.common.pojo.CommonResult.success; +import static cn.iocoder.dashboard.framework.logger.operatelog.core.enums.OperateTypeEnum.EXPORT; import static cn.iocoder.dashboard.modules.infra.enums.InfErrorCodeConstants.CONFIG_GET_VALUE_ERROR_IF_SENSITIVE; @Api(tags = "参数配置") @RestController @RequestMapping("/infra/config") +@Validated public class InfConfigController { @Resource private InfConfigService configService; - @ApiOperation("获取参数配置分页") - @GetMapping("/page") -// @PreAuthorize("@ss.hasPermi('infra:config:list')") - public CommonResult> getConfigPage(@Validated InfConfigPageReqVO reqVO) { - PageResult page = configService.getConfigPage(reqVO); - return success(InfConfigConvert.INSTANCE.convertPage(page)); + @PostMapping("/create") + @ApiOperation("创建参数配置") + @PreAuthorize("@ss.hasPermission('infra:config:create')") + public CommonResult createConfig(@Valid @RequestBody InfConfigCreateReqVO reqVO) { + return success(configService.createConfig(reqVO)); } - @ApiOperation("导出参数配置") - @GetMapping("/export") -// @Log(title = "参数管理", businessType = BusinessType.EXPORT) -// @PreAuthorize("@ss.hasPermi('infra:config:export')") - public void exportSysConfig(HttpServletResponse response, @Validated InfConfigExportReqVO reqVO) throws IOException { - List list = configService.getConfigList(reqVO); - // 拼接数据 - List excelDataList = InfConfigConvert.INSTANCE.convertList(list); - // 输出 - ExcelUtils.write(response, "参数配置.xls", "配置列表", - InfConfigExcelVO.class, excelDataList); + @ApiOperation("修改参数配置") + @PutMapping("/update") + @PreAuthorize("@ss.hasPermission('infra:config:update')") + @Idempotent(timeout = 60) + public CommonResult updateConfig(@Valid @RequestBody InfConfigUpdateReqVO reqVO) { + configService.updateConfig(reqVO); + return success(true); } + @ApiOperation("删除参数配置") + @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) + @DeleteMapping("/delete") + @PreAuthorize("@ss.hasPermission('infra:config:delete')") + public CommonResult deleteConfig(@RequestParam("id") Long id) { + configService.deleteConfig(id); + return success(true); + } + + @GetMapping(value = "/get") @ApiOperation("获得参数配置") @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) - @GetMapping(value = "/get") -// @PreAuthorize("@ss.hasPermi('infra:config:query')") + @PreAuthorize("@ss.hasPermission('infra:config:query')") public CommonResult getConfig(@RequestParam("id") Long id) { return success(InfConfigConvert.INSTANCE.convert(configService.getConfig(id))); } @@ -70,38 +79,30 @@ public class InfConfigController { return null; } if (config.getSensitive()) { - throw ServiceExceptionUtil.exception(CONFIG_GET_VALUE_ERROR_IF_SENSITIVE); + throw exception(CONFIG_GET_VALUE_ERROR_IF_SENSITIVE); } return success(config.getValue()); } - @ApiOperation("新增参数配置") - @PostMapping("/create") -// @PreAuthorize("@ss.hasPermi('infra:config:add')") -// @Log(title = "参数管理", businessType = BusinessType.INSERT) - @Idempotent(timeout = 60, keyResolver = ExpressionIdempotentKeyResolver.class, keyArg = "#reqVO.key") - public CommonResult createConfig(@Validated @RequestBody InfConfigCreateReqVO reqVO) { - return success(configService.createConfig(reqVO)); + @GetMapping("/page") + @ApiOperation("获取参数配置分页") + @PreAuthorize("@ss.hasPermission('infra:config:query')") + public CommonResult> getConfigPage(@Valid InfConfigPageReqVO reqVO) { + PageResult page = configService.getConfigPage(reqVO); + return success(InfConfigConvert.INSTANCE.convertPage(page)); } - @ApiOperation("修改参数配置") - @PutMapping("/update") -// @PreAuthorize("@ss.hasPermi('infra:config:edit')") -// @Log(title = "参数管理", businessType = BusinessType.UPDATE) - @Idempotent(timeout = 60) - public CommonResult updateConfig(@Validated @RequestBody InfConfigUpdateReqVO reqVO) { - configService.updateConfig(reqVO); - return success(true); - } - - @ApiOperation("删除参数配置") - @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) - @DeleteMapping("/delete") -// @PreAuthorize("@ss.hasPermi('infra:config:remove')") -// @Log(title = "参数管理", businessType = BusinessType.DELETE) - public CommonResult deleteConfig(@RequestParam("id") Long id) { - configService.deleteConfig(id); - return success(true); + @GetMapping("/export") + @ApiOperation("导出参数配置") + @PreAuthorize("@ss.hasPermission('infra:config:export')") + @OperateLog(type = EXPORT) + public void exportSysConfig(@Valid InfConfigExportReqVO reqVO, + HttpServletResponse response) throws IOException { + List list = configService.getConfigList(reqVO); + // 拼接数据 + List datas = InfConfigConvert.INSTANCE.convertList(list); + // 输出 + ExcelUtils.write(response, "参数配置.xls", "数据", InfConfigExcelVO.class, datas); } } diff --git a/src/main/java/cn/iocoder/dashboard/modules/infra/service/config/InfConfigService.java b/src/main/java/cn/iocoder/dashboard/modules/infra/service/config/InfConfigService.java index 055720732..9f768da4d 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/infra/service/config/InfConfigService.java +++ b/src/main/java/cn/iocoder/dashboard/modules/infra/service/config/InfConfigService.java @@ -11,6 +11,8 @@ import java.util.List; /** * 参数配置 Service 接口 + * + * @author 芋道源码 */ public interface InfConfigService { diff --git a/src/main/java/cn/iocoder/dashboard/modules/system/job/auth/SysUserSessionTimeoutJob.java b/src/main/java/cn/iocoder/dashboard/modules/system/job/auth/SysUserSessionTimeoutJob.java index f6182dd86..96ec74b62 100644 --- a/src/main/java/cn/iocoder/dashboard/modules/system/job/auth/SysUserSessionTimeoutJob.java +++ b/src/main/java/cn/iocoder/dashboard/modules/system/job/auth/SysUserSessionTimeoutJob.java @@ -10,18 +10,21 @@ import javax.annotation.Resource; /** * 用户 Session 超时 Job * - * @author 芋道源码 + * @author 願 */ @Component @Slf4j public class SysUserSessionTimeoutJob implements JobHandler { @Resource - SysUserSessionService sysUserSessionService; + private SysUserSessionService sysUserSessionService; @Override public String execute(String param) throws Exception { - return String.valueOf(sysUserSessionService.clearSessionTimeout()); + // 执行过期 + Long timeoutCount = sysUserSessionService.clearSessionTimeout(); + // 返回结果,记录每次的超时数量 + return String.format("移除在线会话数量为 %s 个", timeoutCount); } } From eb3ad70071426b8b603d72087df436ce737ed0a8 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Tue, 9 Mar 2021 20:45:00 +0800 Subject: [PATCH 13/13] =?UTF-8?q?1.=20=E4=B8=8A=E4=BC=A0=E6=9C=80=E6=96=B0?= =?UTF-8?q?=20sql=20=E8=84=9A=E6=9C=AC=202.=20=E4=BF=AE=E6=94=B9=20readme?= =?UTF-8?q?=203.=20=E4=BC=98=E5=8C=96=20config=20=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E7=9A=84=E6=8E=92=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/ruoyi-vue-pro.sql | 48 +++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/sql/ruoyi-vue-pro.sql b/sql/ruoyi-vue-pro.sql index b5988e67f..58d6d960e 100644 --- a/sql/ruoyi-vue-pro.sql +++ b/sql/ruoyi-vue-pro.sql @@ -37,7 +37,7 @@ CREATE TABLE `inf_api_access_log` ( `duration` int(11) NOT NULL COMMENT '执行时长', `result_code` int(11) NOT NULL DEFAULT '0' COMMENT '结果码', `result_msg` varchar(512) DEFAULT '' COMMENT '结果提示', - `crerator` varchar(64) DEFAULT '' COMMENT '创建者', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', @@ -843,9 +843,9 @@ CREATE TABLE `sys_user` ( `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '帐号状态(0正常 1停用)', `login_ip` varchar(50) DEFAULT '' COMMENT '最后登录IP', `login_date` datetime DEFAULT NULL COMMENT '最后登录时间', - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE @@ -958,9 +958,9 @@ INSERT INTO `tool_codegen_column` VALUES (234, 20, 'status', 'tinyint(4)', '状 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'); 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'); 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'); -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'); +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'); 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'); -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'); +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'); 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'); 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'); 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'); @@ -971,9 +971,9 @@ INSERT INTO `tool_codegen_column` VALUES (247, 21, 'key', 'varchar(100)', '参 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'); 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'); 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'); -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'); +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'); 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'); -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'); +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'); 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'); 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'); 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'); @@ -984,9 +984,9 @@ INSERT INTO `tool_codegen_column` VALUES (260, 23, 'cron_expression', 'varchar(2 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'); 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'); 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'); -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'); +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'); 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'); -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'); +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'); 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'); 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'); 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'); @@ -1000,9 +1000,9 @@ INSERT INTO `tool_codegen_column` VALUES (276, 24, 'execute_end_time', 'datetime 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'); 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'); 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'); -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'); +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'); 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'); -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'); +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'); 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'); 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'); 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'); @@ -1017,9 +1017,9 @@ INSERT INTO `tool_codegen_column` VALUES (293, 25, 'end_time', 'datetime', '结 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'); 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'); 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'); -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'); +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'); 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'); -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'); +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'); 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'); 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'); 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'); @@ -1037,9 +1037,9 @@ INSERT INTO `tool_codegen_column` VALUES (314, 26, 'end_time', 'datetime', '结 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'); 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'); 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'); -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'); +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'); 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'); -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'); +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'); 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'); 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'); 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'); @@ -1062,7 +1062,7 @@ INSERT INTO `tool_codegen_column` VALUES (339, 27, 'exception_file_name', 'varch 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'); 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'); 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'); -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'); +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'); 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'); 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'); 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'); @@ -1073,9 +1073,9 @@ INSERT INTO `tool_codegen_column` VALUES (350, 28, 'name', 'varchar(100)', '字 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'); 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'); 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'); -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'); +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'); 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'); -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'); +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'); 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'); 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'); 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'); @@ -1083,9 +1083,9 @@ INSERT INTO `tool_codegen_column` VALUES (360, 29, 'name', 'varchar(100)', '字 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'); 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'); 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'); -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'); +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'); 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'); -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'); +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'); 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'); 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'); 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'); @@ -1095,9 +1095,9 @@ INSERT INTO `tool_codegen_column` VALUES (372, 30, 'value', 'varchar(100)', '字 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'); 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'); 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'); -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'); +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'); 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'); -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'); +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'); 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'); 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'); COMMIT; @@ -1155,9 +1155,9 @@ CREATE TABLE `tool_test_demo` ( `type` tinyint(4) NOT NULL COMMENT '类型', `category` tinyint(4) NOT NULL COMMENT '分类', `remark` varchar(500) DEFAULT NULL COMMENT '备注', - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', PRIMARY KEY (`id`) USING BTREE