diff --git a/sql/ruoyi-vue-pro.sql b/sql/ruoyi-vue-pro.sql index 1fd11ec14..cc2bb302f 100644 --- a/sql/ruoyi-vue-pro.sql +++ b/sql/ruoyi-vue-pro.sql @@ -11,7 +11,7 @@ Target Server Version : 80026 File Encoding : 65001 - Date: 20/03/2022 02:30:52 + Date: 09/04/2022 11:17:45 */ SET NAMES utf8mb4; @@ -749,7 +749,7 @@ CREATE TABLE `infra_api_access_log` ( `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', PRIMARY KEY (`id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=23220 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='API 访问日志表'; +) ENGINE=InnoDB AUTO_INCREMENT=23522 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='API 访问日志表'; -- ---------------------------- -- Records of infra_api_access_log @@ -1148,6 +1148,308 @@ INSERT INTO `infra_api_access_log` VALUES (23216, '', 0, 0, 'yudao-admin-server' INSERT INTO `infra_api_access_log` VALUES (23217, '', 0, 0, 'yudao-admin-server', 'POST', '/app-api/member/send-sms-code', '{\"query\":{},\"body\":\"{\\n \\\"mobile\\\": \\\"15601691399\\\",\\n \\\"scene\\\": 1\\n}\"}', '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.13)', '2022-02-05 21:19:56', '2022-02-05 21:20:16', 20146, 500, '系统异常', NULL, '2022-02-05 21:20:16', NULL, '2022-02-05 21:20:16', b'0', 1); INSERT INTO `infra_api_access_log` VALUES (23218, '', 0, 0, 'yudao-admin-server', 'POST', '/app-api/member/send-sms-code', '{\"query\":{},\"body\":\"{\\n \\\"mobile\\\": \\\"15601691399\\\",\\n \\\"scene\\\": 1\\n}\"}', '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.13)', '2022-02-05 21:20:26', '2022-02-05 21:20:29', 2514, 0, '', NULL, '2022-02-05 21:20:29', NULL, '2022-02-05 21:20:29', b'0', 1); INSERT INTO `infra_api_access_log` VALUES (23219, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/demo/test/get', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', '2022-03-06 01:06:39', '2022-03-06 01:06:39', 7, 0, '', NULL, '2022-03-06 01:06:39', NULL, '2022-03-06 01:06:39', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23220, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/social-auth-redirect', '{\"query\":{},\"body\":null}', '127.0.0.1', 'PostmanRuntime/6.4.1', '2022-03-21 22:24:32', '2022-03-21 22:24:32', 10, 0, '', NULL, '2022-03-21 22:24:32', NULL, '2022-03-21 22:24:32', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23221, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/social-auth-redirect', '{\"query\":{},\"body\":null}', '127.0.0.1', 'PostmanRuntime/6.4.1', '2022-03-21 22:26:23', '2022-03-21 22:26:23', 23, 0, '', NULL, '2022-03-21 22:26:23', NULL, '2022-03-21 22:26:23', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23222, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-user/social-auth-redirect', '{\"query\":{\"redirectUri\":\"http%3A%2F%2F127.0.0.1%3A8080%3Ftype%3D10%26redirect%3Dhttp%3A%2F%2F127.0.0.1%3A8080%2Fintro%2F\",\"type\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 10:54:17', '2022-03-22 10:54:17', 61, 0, '', NULL, '2022-03-22 10:54:17', NULL, '2022-03-22 10:54:17', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23223, '', 0, 0, 'yudao-admin-server', 'POST', '/app-api/monster/git-user/social-login2', '{\"query\":{\"redirectUri\":\"http%3A%2F%2F127.0.0.1%3A8080%3Ftype%3D10%26redirect%3Dhttp%3A%2F%2F127.0.0.1%3A8080%2Fintro%2F\",\"code\":\"9183661ec1047fd6b484910f1d1a5f5775494108894efb527bc29505924e7b95\",\"type\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 10:54:18', '2022-03-22 10:54:24', 5818, 500, '系统异常', NULL, '2022-03-22 10:54:24', NULL, '2022-03-22 10:54:24', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23224, '', 0, 0, 'yudao-admin-server', 'POST', '/app-api/monster/git-user/social-login2', '{\"query\":{\"redirectUri\":\"http%3A%2F%2F127.0.0.1%3A8080%3Ftype%3D10%26redirect%3Dhttp%3A%2F%2F127.0.0.1%3A8080%2Fintro%2F\",\"code\":\"9183661ec1047fd6b484910f1d1a5f5775494108894efb527bc29505924e7b95\",\"type\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 10:55:56', '2022-03-22 10:55:57', 743, 0, '', NULL, '2022-03-22 10:55:57', NULL, '2022-03-22 10:55:57', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23225, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-user/social-auth-redirect', '{\"query\":{\"redirectUri\":\"http%3A%2F%2F127.0.0.1%3A8080%3Ftype%3D10%26redirect%3Dhttp%3A%2F%2F127.0.0.1%3A8080%2Fintro%2F\",\"type\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 10:55:59', '2022-03-22 10:55:59', 15, 0, '', NULL, '2022-03-22 10:55:59', NULL, '2022-03-22 10:55:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23226, '', 0, 0, 'yudao-admin-server', 'POST', '/app-api/monster/git-user/social-login2', '{\"query\":{\"redirectUri\":\"http%3A%2F%2F127.0.0.1%3A8080%3Ftype%3D10%26redirect%3Dhttp%3A%2F%2F127.0.0.1%3A8080%2Fintro%2F\",\"code\":\"a6591fb30f2dacb55fd0c45ab456fd682d716fcd2a850debe5d03f88211f1684\",\"type\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 10:56:00', '2022-03-22 10:56:08', 7965, 500, '系统异常', NULL, '2022-03-22 10:56:08', NULL, '2022-03-22 10:56:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23227, '', 0, 0, 'yudao-admin-server', 'POST', '/app-api/monster/git-user/social-login2', '{\"query\":{\"redirectUri\":\"http%3A%2F%2F127.0.0.1%3A8080%3Ftype%3D10%26redirect%3Dhttp%3A%2F%2F127.0.0.1%3A8080%2Fintro%2F\",\"code\":\"a6591fb30f2dacb55fd0c45ab456fd682d716fcd2a850debe5d03f88211f1684\",\"type\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 10:57:17', '2022-03-22 10:57:18', 585, 0, '', NULL, '2022-03-22 10:57:18', NULL, '2022-03-22 10:57:18', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23228, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-user/social-auth-redirect', '{\"query\":{\"redirectUri\":\"http%3A%2F%2F127.0.0.1%3A8080%3Ftype%3D10%26redirect%3Dhttp%3A%2F%2F127.0.0.1%3A8080%2Fintro%2F\",\"type\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 10:57:20', '2022-03-22 10:57:20', 12, 0, '', NULL, '2022-03-22 10:57:20', NULL, '2022-03-22 10:57:20', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23229, '', 0, 0, 'yudao-admin-server', 'POST', '/app-api/monster/git-user/social-login2', '{\"query\":{\"redirectUri\":\"http%3A%2F%2F127.0.0.1%3A8080%3Ftype%3D10%26redirect%3Dhttp%3A%2F%2F127.0.0.1%3A8080%2Fintro%2F\",\"code\":\"ec81c210485cbabf05f65a0eef28b536444283fee5053056ef7a0ea1c285a7a5\",\"type\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 10:57:21', '2022-03-22 10:57:22', 405, 0, '', NULL, '2022-03-22 10:57:22', NULL, '2022-03-22 10:57:22', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23230, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-user/social-auth-redirect', '{\"query\":{\"redirectUri\":\"http%3A%2F%2F127.0.0.1%3A8080%3Ftype%3D10%26redirect%3Dhttp%3A%2F%2F127.0.0.1%3A8080%2Fintro%2F\",\"type\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 10:57:45', '2022-03-22 10:57:45', 6, 0, '', NULL, '2022-03-22 10:57:45', NULL, '2022-03-22 10:57:45', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23231, '', 0, 0, 'yudao-admin-server', 'POST', '/app-api/monster/git-user/social-login2', '{\"query\":{\"redirectUri\":\"http%3A%2F%2F127.0.0.1%3A8080%3Ftype%3D10%26redirect%3Dhttp%3A%2F%2F127.0.0.1%3A8080%2Fintro%2F\",\"code\":\"3e80ef4586a421e188d361b617208225fbf58d684be3c3c024009047e849ec9b\",\"type\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 10:57:46', '2022-03-22 10:57:47', 414, 0, '', NULL, '2022-03-22 10:57:47', NULL, '2022-03-22 10:57:47', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23232, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/test', '{\"query\":{},\"body\":null}', '127.0.0.1', 'PostmanRuntime/6.4.1', '2022-03-22 20:05:37', '2022-03-22 20:06:25', 47711, 0, '', NULL, '2022-03-22 20:06:25', NULL, '2022-03-22 20:06:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23233, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/test', '{\"query\":{},\"body\":null}', '127.0.0.1', 'PostmanRuntime/6.4.1', '2022-03-22 20:07:27', '2022-03-22 20:10:16', 169720, 500, '系统异常', NULL, '2022-03-22 20:10:16', NULL, '2022-03-22 20:10:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23234, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/test', '{\"query\":{},\"body\":null}', '127.0.0.1', 'PostmanRuntime/6.4.1', '2022-03-22 20:11:02', '2022-03-22 20:14:05', 182893, 0, '', NULL, '2022-03-22 20:14:05', NULL, '2022-03-22 20:14:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23235, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/test', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"zhijiantianya\"},\"body\":null}', '127.0.0.1', 'PostmanRuntime/6.4.1', '2022-03-22 22:03:21', '2022-03-22 22:03:21', 595, 0, '', NULL, '2022-03-22 22:03:21', NULL, '2022-03-22 22:03:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23236, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/test', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro1\",\"username\":\"zhijiantianya\"},\"body\":null}', '127.0.0.1', 'PostmanRuntime/6.4.1', '2022-03-22 22:03:25', '2022-03-22 22:03:26', 529, 0, '', NULL, '2022-03-22 22:03:26', NULL, '2022-03-22 22:03:26', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23237, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/test', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro12222\",\"username\":\"zhijiantianya\"},\"body\":null}', '127.0.0.1', 'PostmanRuntime/6.4.1', '2022-03-22 22:03:37', '2022-03-22 22:03:38', 582, 0, '', NULL, '2022-03-22 22:03:38', NULL, '2022-03-22 22:03:38', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23238, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/test', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"zhijiantianya\"},\"body\":null}', '127.0.0.1', 'PostmanRuntime/6.4.1', '2022-03-22 22:03:52', '2022-03-22 22:03:53', 542, 0, '', NULL, '2022-03-22 22:03:53', NULL, '2022-03-22 22:03:53', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23239, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"zhijiantianya\"},\"body\":null}', '127.0.0.1', 'PostmanRuntime/6.4.1', '2022-03-22 22:04:07', '2022-03-22 22:04:10', 2791, 0, '', NULL, '2022-03-22 22:04:10', NULL, '2022-03-22 22:04:10', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23240, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro1\",\"username\":\"zhijiantianya\"},\"body\":null}', '127.0.0.1', 'PostmanRuntime/6.4.1', '2022-03-22 22:04:13', '2022-03-22 22:04:13', 12, 0, '', NULL, '2022-03-22 22:04:13', NULL, '2022-03-22 22:04:13', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23241, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"\",\"username\":\"admin\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 22:15:57', '2022-03-22 22:15:57', 19, 0, '', NULL, '2022-03-22 22:15:57', NULL, '2022-03-22 22:15:57', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23242, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"\",\"username\":\"zhijiantianya\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 22:15:59', '2022-03-22 22:15:59', 13, 0, '', NULL, '2022-03-22 22:15:59', NULL, '2022-03-22 22:15:59', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23243, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"\",\"username\":\"zhijiantianya\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 22:16:16', '2022-03-22 22:16:16', 18, 0, '', NULL, '2022-03-22 22:16:16', NULL, '2022-03-22 22:16:16', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23244, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"admin\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 22:16:36', '2022-03-22 22:16:37', 17, 0, '', NULL, '2022-03-22 22:16:37', NULL, '2022-03-22 22:16:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23245, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"zhijiantianya\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 22:16:37', '2022-03-22 22:16:37', 16, 0, '', NULL, '2022-03-22 22:16:37', NULL, '2022-03-22 22:16:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23246, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"zhijiantianya\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 22:17:01', '2022-03-22 22:17:10', 9652, 0, '', NULL, '2022-03-22 22:17:10', NULL, '2022-03-22 22:17:10', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23247, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"zhijiantianya\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 22:17:40', '2022-03-22 22:17:40', 55, 0, '', NULL, '2022-03-22 22:17:40', NULL, '2022-03-22 22:17:40', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23248, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"admin\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 22:17:38', '2022-03-22 22:17:40', 2518, 0, '', NULL, '2022-03-22 22:17:40', NULL, '2022-03-22 22:17:40', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23249, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"zhijiantianya\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 22:17:43', '2022-03-22 22:17:43', 18, 0, '', NULL, '2022-03-22 22:17:43', NULL, '2022-03-22 22:17:43', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23250, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"zhijiantianya\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 22:18:09', '2022-03-22 22:18:09', 31, 0, '', NULL, '2022-03-22 22:18:09', NULL, '2022-03-22 22:18:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23251, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/test', '{\"query\":{},\"body\":null}', '127.0.0.1', 'PostmanRuntime/6.4.1', '2022-03-22 22:22:44', '2022-03-22 22:23:29', 45731, 0, '', NULL, '2022-03-22 22:23:29', NULL, '2022-03-22 22:23:29', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23252, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"zhijiantianya\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 22:23:37', '2022-03-22 22:23:37', 49, 0, '', NULL, '2022-03-22 22:23:37', NULL, '2022-03-22 22:23:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23253, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"zhijiantianya\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 22:23:44', '2022-03-22 22:23:44', 33, 0, '', NULL, '2022-03-22 22:23:44', NULL, '2022-03-22 22:23:44', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23254, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"zhijiantianya\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 22:23:49', '2022-03-22 22:23:49', 23, 0, '', NULL, '2022-03-22 22:23:49', NULL, '2022-03-22 22:23:49', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23255, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"admin\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 22:30:36', '2022-03-22 22:30:36', 23, 0, '', NULL, '2022-03-22 22:30:36', NULL, '2022-03-22 22:30:36', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23256, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"zhijiantianya\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 22:30:37', '2022-03-22 22:30:37', 19, 0, '', NULL, '2022-03-22 22:30:37', NULL, '2022-03-22 22:30:37', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23257, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"admin\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 22:30:52', '2022-03-22 22:30:52', 23, 0, '', NULL, '2022-03-22 22:30:52', NULL, '2022-03-22 22:30:52', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23258, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"zhijiantianya\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 22:30:52', '2022-03-22 22:30:52', 27, 0, '', NULL, '2022-03-22 22:30:52', NULL, '2022-03-22 22:30:52', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23259, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"admin\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 22:32:05', '2022-03-22 22:32:05', 22, 0, '', NULL, '2022-03-22 22:32:05', NULL, '2022-03-22 22:32:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23260, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"zhijiantianya\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 22:32:05', '2022-03-22 22:32:05', 22, 0, '', NULL, '2022-03-22 22:32:05', NULL, '2022-03-22 22:32:05', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23261, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"zhijiantianya\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 22:36:48', '2022-03-22 22:36:48', 20, 0, '', NULL, '2022-03-22 22:36:48', NULL, '2022-03-22 22:36:48', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23262, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"zhijiantianya\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 22:36:51', '2022-03-22 22:36:51', 42, 0, '', NULL, '2022-03-22 22:36:51', NULL, '2022-03-22 22:36:51', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23263, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"zhijiantianya\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 22:37:04', '2022-03-22 22:37:04', 23, 0, '', NULL, '2022-03-22 22:37:04', NULL, '2022-03-22 22:37:04', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23264, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"zhijiantianya\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 22:37:33', '2022-03-22 22:37:33', 25, 0, '', NULL, '2022-03-22 22:37:33', NULL, '2022-03-22 22:37:33', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23265, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"zhijiantianya\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 22:38:13', '2022-03-22 22:38:13', 22, 0, '', NULL, '2022-03-22 22:38:13', NULL, '2022-03-22 22:38:13', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23266, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"zhijiantianya1\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 22:38:29', '2022-03-22 22:38:29', 36, 0, '', NULL, '2022-03-22 22:38:29', NULL, '2022-03-22 22:38:29', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23267, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"zhijiantianya1\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 22:38:52', '2022-03-22 22:38:52', 19, 0, '', NULL, '2022-03-22 22:38:52', NULL, '2022-03-22 22:38:52', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23268, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"zhijiantianya1\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 22:39:03', '2022-03-22 22:39:03', 13, 0, '', NULL, '2022-03-22 22:39:03', NULL, '2022-03-22 22:39:03', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23269, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-user/social-login2', '{\"query\":{\"redirectUri\":\"https://doc.iocoder.cn?type=10&redirect=https://doc.iocoder.cn/intro/\",\"code\":\"757cb81c8be201163c0bfbc36fdaa6f6e0be6b6ceef00d111534bbb137e14a9f\",\"type\":\"10\"},\"body\":null}', '127.0.0.1', 'PostmanRuntime/6.4.1', '2022-03-22 23:31:06', '2022-03-22 23:31:06', 23, 405, '请求方法不正确:Request method \'GET\' not supported', NULL, '2022-03-22 23:31:06', NULL, '2022-03-22 23:31:06', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23270, '', 0, 0, 'yudao-admin-server', 'POST', '/app-api/monster/git-user/social-login2', '{\"query\":{\"redirectUri\":\"https://doc.iocoder.cn?type=10&redirect=https://doc.iocoder.cn/intro/\",\"code\":\"757cb81c8be201163c0bfbc36fdaa6f6e0be6b6ceef00d111534bbb137e14a9f\",\"type\":\"10\"},\"body\":null}', '127.0.0.1', 'PostmanRuntime/6.4.1', '2022-03-22 23:31:24', '2022-03-22 23:31:25', 395, 0, '', NULL, '2022-03-22 23:31:25', NULL, '2022-03-22 23:31:25', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23271, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-user/social-auth-redirect', '{\"query\":{\"redirectUri\":\"http%3A%2F%2F127.0.0.1%3A8080%3Ftype%3D10%26redirect%3Dhttp%3A%2F%2F127.0.0.1%3A8080%2Fintro%2F\",\"type\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 23:43:29', '2022-03-22 23:43:29', 18, 0, '', NULL, '2022-03-22 23:43:29', NULL, '2022-03-22 23:43:29', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23272, '', 0, 0, 'yudao-admin-server', 'POST', '/app-api/monster/git-user/social-login2', '{\"query\":{\"redirectUri\":\"http%3A%2F%2F127.0.0.1%3A8080%3Ftype%3D10%26redirect%3Dhttp%3A%2F%2F127.0.0.1%3A8080%2Fintro%2F\",\"code\":\"dcbe58f874ec59b81ef4d05db767d03a9d463aadddfd0095fcfc43e3301d837d\",\"type\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 23:43:30', '2022-03-22 23:43:30', 387, 0, '', NULL, '2022-03-22 23:43:30', NULL, '2022-03-22 23:43:30', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23273, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"zhijiantianya\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 23:43:31', '2022-03-22 23:43:31', 16, 0, '', NULL, '2022-03-22 23:43:31', NULL, '2022-03-22 23:43:31', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23274, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"zhijiantianya\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 23:59:08', '2022-03-22 23:59:08', 36, 0, '', NULL, '2022-03-22 23:59:08', NULL, '2022-03-22 23:59:08', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23275, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"zhijiantianya\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 23:59:09', '2022-03-22 23:59:09', 23, 0, '', NULL, '2022-03-22 23:59:09', NULL, '2022-03-22 23:59:09', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23276, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-user/social-auth-redirect', '{\"query\":{\"redirectUri\":\"http%3A%2F%2F127.0.0.1%3A8080%3Ftype%3D10%26redirect%3Dhttp%3A%2F%2F127.0.0.1%3A8080%2Fintro%2F\",\"type\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 23:59:21', '2022-03-22 23:59:21', 53, 0, '', NULL, '2022-03-22 23:59:21', NULL, '2022-03-22 23:59:21', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23277, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-user/social-auth-redirect', '{\"query\":{\"redirectUri\":\"http%3A%2F%2F127.0.0.1%3A8080%3Ftype%3D10%26redirect%3Dhttp%3A%2F%2F127.0.0.1%3A8080%2Fintro%2F\",\"type\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-23 00:02:19', '2022-03-23 00:02:19', 251, 0, '', NULL, '2022-03-23 00:02:19', NULL, '2022-03-23 00:02:19', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23278, '', 0, 0, 'yudao-admin-server', 'POST', '/app-api/monster/git-user/social-login2', '{\"query\":{\"redirectUri\":\"http%3A%2F%2F127.0.0.1%3A8080%3Ftype%3D10%26redirect%3Dhttp%3A%2F%2F127.0.0.1%3A8080%2Fintro%2F\",\"code\":\"82d2ba240513438c688776c2bbfa2d8f092e4f88e33af6d95ba3b59a6c0bcbca\",\"type\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-23 00:02:39', '2022-03-23 00:02:39', 27, 500, '系统异常', NULL, '2022-03-23 00:02:39', NULL, '2022-03-23 00:02:39', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23279, '', 0, 0, 'yudao-admin-server', 'POST', '/app-api/monster/git-user/social-login2', '{\"query\":{\"redirectUri\":\"http%3A%2F%2F127.0.0.1%3A8080%3Ftype%3D10%26redirect%3Dhttp%3A%2F%2F127.0.0.1%3A8080%2Fintro%2F\",\"code\":\"82d2ba240513438c688776c2bbfa2d8f092e4f88e33af6d95ba3b59a6c0bcbca\",\"type\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-23 00:02:20', '2022-03-23 00:02:40', 19757, 500, '系统异常', NULL, '2022-03-23 00:02:40', NULL, '2022-03-23 00:02:40', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23280, '', 0, 0, 'yudao-admin-server', 'POST', '/app-api/monster/git-user/social-login2', '{\"query\":{\"redirectUri\":\"http%3A%2F%2F127.0.0.1%3A8080%3Ftype%3D10%26redirect%3Dhttp%3A%2F%2F127.0.0.1%3A8080%2Fintro%2F\",\"code\":\"82d2ba240513438c688776c2bbfa2d8f092e4f88e33af6d95ba3b59a6c0bcbca\",\"type\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-23 00:09:44', '2022-03-23 00:09:45', 899, 0, '', NULL, '2022-03-23 00:09:45', NULL, '2022-03-23 00:09:45', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23281, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/get', '{\"query\":{\"repository\":\"https://gitee.com/zhijiantianya/ruoyi-vue-pro\",\"username\":\"zhijiantianya\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-23 00:09:46', '2022-03-23 00:09:46', 40, 0, '', NULL, '2022-03-23 00:09:46', NULL, '2022-03-23 00:09:46', b'0', 0); +INSERT INTO `infra_api_access_log` VALUES (23282, '', 0, 0, 'yudao-admin-server', 'POST', '/admin-api/system/logout', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 00:07:07', '2022-04-04 00:07:11', 3266, 0, '', NULL, '2022-04-04 00:07:11', NULL, '2022-04-04 00:07:11', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23283, '', 0, 0, 'yudao-admin-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 00:07:07', '2022-04-04 00:07:07', 64, 0, '', NULL, '2022-04-04 00:07:11', NULL, '2022-04-04 00:07:11', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23284, '', 0, 0, 'yudao-admin-server', 'GET', '/admin-api/system/get-permission-info', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 00:07:07', '2022-04-04 00:07:07', 64, 0, '', NULL, '2022-04-04 00:07:11', NULL, '2022-04-04 00:07:11', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23285, '', 0, 0, 'yudao-admin-server', 'GET', '/admin-api/system/captcha/get-image', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 00:07:11', '2022-04-04 00:07:13', 1954, 0, '', NULL, '2022-04-04 00:07:13', NULL, '2022-04-04 00:07:13', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23286, '', 0, 0, 'yudao-admin-server', 'GET', '/admin-api/system/tenant/get-id-by-name', '{\"query\":{\"name\":\"芋道源码\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 00:07:21', '2022-04-04 00:07:21', 47, 0, '', NULL, '2022-04-04 00:07:21', NULL, '2022-04-04 00:07:21', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23287, '', 0, 0, 'yudao-admin-server', 'POST', '/admin-api/system/login', '{\"query\":{},\"body\":\"{\\\"username\\\":\\\"admin\\\",\\\"password\\\":\\\"admin123\\\",\\\"code\\\":\\\"kp340\\\",\\\"uuid\\\":\\\"45e2f5640a94473987394ce9d4493a0a\\\"}\"}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 00:07:21', '2022-04-04 00:07:21', 304, 0, '', NULL, '2022-04-04 00:07:21', NULL, '2022-04-04 00:07:21', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23288, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 00:07:21', '2022-04-04 00:07:21', 60, 0, '', NULL, '2022-04-04 00:07:21', NULL, '2022-04-04 00:07:21', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23289, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/get-permission-info', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 00:07:21', '2022-04-04 00:07:21', 57, 0, '', NULL, '2022-04-04 00:07:21', NULL, '2022-04-04 00:07:21', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23290, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 00:07:21', '2022-04-04 00:07:21', 24, 0, '', NULL, '2022-04-04 00:07:21', NULL, '2022-04-04 00:07:21', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23291, '', 0, 0, 'yudao-admin-server', 'GET', '/admin-api/system/captcha/get-image', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', '2022-04-04 12:45:49', '2022-04-04 12:45:49', 29, 0, '', NULL, '2022-04-04 12:45:49', NULL, '2022-04-04 12:45:49', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23292, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 12:48:36', '2022-04-04 12:48:36', 99, 0, '', NULL, '2022-04-04 12:48:36', NULL, '2022-04-04 12:48:36', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23293, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/get-permission-info', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 12:48:36', '2022-04-04 12:48:36', 109, 0, '', NULL, '2022-04-04 12:48:36', NULL, '2022-04-04 12:48:36', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23294, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 12:48:36', '2022-04-04 12:48:36', 5, 0, '', NULL, '2022-04-04 12:48:36', NULL, '2022-04-04 12:48:36', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23295, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/infra/config/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 12:48:42', '2022-04-04 12:48:42', 346, 0, '', NULL, '2022-04-04 12:48:42', NULL, '2022-04-04 12:48:42', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23296, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/infra/config/get', '{\"query\":{\"id\":\"6\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 12:48:45', '2022-04-04 12:48:45', 24, 0, '', NULL, '2022-04-04 12:48:45', NULL, '2022-04-04 12:48:45', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23297, '', 1, 2, 'yudao-admin-server', 'PUT', '/admin-api/infra/config/update', '{\"query\":{},\"body\":\"{\\\"group\\\":\\\"biz\\\",\\\"name\\\":\\\"登陆验证码的开关\\\",\\\"value\\\":\\\"false\\\",\\\"sensitive\\\":true,\\\"remark\\\":null,\\\"id\\\":6,\\\"key\\\":\\\"yudao.captcha.enable\\\",\\\"type\\\":2,\\\"createTime\\\":1645027391000}\"}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 12:48:49', '2022-04-04 12:48:49', 80, 0, '', NULL, '2022-04-04 12:48:49', NULL, '2022-04-04 12:48:49', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23298, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/infra/config/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 12:48:49', '2022-04-04 12:48:49', 30, 0, '', NULL, '2022-04-04 12:48:49', NULL, '2022-04-04 12:48:49', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23299, '', 0, 0, 'yudao-admin-server', 'GET', '/admin-api/system/captcha/get-image', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', '2022-04-04 12:50:17', '2022-04-04 12:50:17', 1, 0, '', NULL, '2022-04-04 12:50:17', NULL, '2022-04-04 12:50:17', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23300, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/infra/config/get', '{\"query\":{\"id\":\"6\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 12:51:06', '2022-04-04 12:51:06', 13, 0, '', NULL, '2022-04-04 12:51:06', NULL, '2022-04-04 12:51:06', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23301, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/infra/config/get', '{\"query\":{\"id\":\"6\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 12:51:35', '2022-04-04 12:51:35', 13, 0, '', NULL, '2022-04-04 12:51:35', NULL, '2022-04-04 12:51:35', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23302, '', 1, 2, 'yudao-admin-server', 'PUT', '/admin-api/infra/config/update', '{\"query\":{},\"body\":\"{\\\"group\\\":\\\"biz\\\",\\\"name\\\":\\\"登陆验证码的开关\\\",\\\"value\\\":\\\"true\\\",\\\"sensitive\\\":true,\\\"remark\\\":null,\\\"id\\\":6,\\\"key\\\":\\\"yudao.captcha.enable\\\",\\\"type\\\":2,\\\"createTime\\\":1645027391000}\"}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 12:51:40', '2022-04-04 12:51:40', 36, 0, '', NULL, '2022-04-04 12:51:40', NULL, '2022-04-04 12:51:40', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23303, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/infra/config/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 12:51:40', '2022-04-04 12:51:40', 32, 0, '', NULL, '2022-04-04 12:51:40', NULL, '2022-04-04 12:51:40', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23304, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/get-permission-info', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 20:26:43', '2022-04-04 20:26:43', 118, 0, '', NULL, '2022-04-04 20:26:43', NULL, '2022-04-04 20:26:43', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23305, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 20:26:43', '2022-04-04 20:26:43', 101, 0, '', NULL, '2022-04-04 20:26:43', NULL, '2022-04-04 20:26:43', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23306, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 20:26:43', '2022-04-04 20:26:43', 13, 0, '', NULL, '2022-04-04 20:26:43', NULL, '2022-04-04 20:26:43', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23307, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/infra/codegen/table/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 20:26:55', '2022-04-04 20:26:56', 136, 0, '', NULL, '2022-04-04 20:26:56', NULL, '2022-04-04 20:26:56', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23308, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/infra/codegen/preview', '{\"query\":{\"tableId\":\"53\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 20:26:57', '2022-04-04 20:26:58', 260, 0, '', NULL, '2022-04-04 20:26:58', NULL, '2022-04-04 20:26:58', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23309, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 23:04:28', '2022-04-04 23:04:28', 107, 0, '', NULL, '2022-04-04 23:04:28', NULL, '2022-04-04 23:04:28', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23310, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/get-permission-info', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 23:04:28', '2022-04-04 23:04:28', 112, 0, '', NULL, '2022-04-04 23:04:28', NULL, '2022-04-04 23:04:28', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23311, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 23:04:28', '2022-04-04 23:04:28', 7, 0, '', NULL, '2022-04-04 23:04:28', NULL, '2022-04-04 23:04:28', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23312, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/infra/codegen/table/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 23:04:44', '2022-04-04 23:04:44', 35, 0, '', NULL, '2022-04-04 23:04:44', NULL, '2022-04-04 23:04:44', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23313, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/infra/codegen/db/table/list', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 23:04:46', '2022-04-04 23:04:46', 67, 0, '', NULL, '2022-04-04 23:04:46', NULL, '2022-04-04 23:04:46', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23314, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/infra/codegen/db/table/list', '{\"query\":{\"tableComment\":\"\",\"tableName\":\"system_dict_type\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 23:04:54', '2022-04-04 23:04:54', 48, 0, '', NULL, '2022-04-04 23:04:54', NULL, '2022-04-04 23:04:54', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23315, '', 1, 2, 'yudao-admin-server', 'POST', '/admin-api/infra/codegen/create-list-from-db', '{\"query\":{\"tableNames\":\"system_dict_type\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 23:04:57', '2022-04-04 23:04:57', 180, 0, '', NULL, '2022-04-04 23:04:57', NULL, '2022-04-04 23:04:57', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23316, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/infra/codegen/table/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 23:04:57', '2022-04-04 23:04:57', 31, 0, '', NULL, '2022-04-04 23:04:57', NULL, '2022-04-04 23:04:57', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23317, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/infra/codegen/preview', '{\"query\":{\"tableId\":\"68\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 23:05:01', '2022-04-04 23:05:01', 83, 0, '', NULL, '2022-04-04 23:05:01', NULL, '2022-04-04 23:05:01', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23318, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/infra/codegen/preview', '{\"query\":{\"tableId\":\"53\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-04 23:12:33', '2022-04-04 23:12:33', 133, 0, '', NULL, '2022-04-04 23:12:33', NULL, '2022-04-04 23:12:33', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23319, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-05 00:27:26', '2022-04-05 00:27:26', 18, 0, '', NULL, '2022-04-05 00:27:26', NULL, '2022-04-05 00:27:26', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23320, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/get-permission-info', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-05 00:27:26', '2022-04-05 00:27:26', 24, 0, '', NULL, '2022-04-05 00:27:26', NULL, '2022-04-05 00:27:26', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23321, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-05 00:27:26', '2022-04-05 00:27:26', 5, 0, '', NULL, '2022-04-05 00:27:26', NULL, '2022-04-05 00:27:26', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23322, '', 0, 0, 'yudao-admin-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-05 23:33:57', '2022-04-05 23:33:57', 172, 0, '', NULL, '2022-04-05 23:33:57', NULL, '2022-04-05 23:33:57', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23323, '', 0, 0, 'yudao-admin-server', 'GET', '/admin-api/system/get-permission-info', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-05 23:33:57', '2022-04-05 23:33:57', 173, 0, '', NULL, '2022-04-05 23:33:57', NULL, '2022-04-05 23:33:57', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23324, '', 0, 0, 'yudao-admin-server', 'POST', '/admin-api/system/logout', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-05 23:33:57', '2022-04-05 23:33:57', 23, 0, '', NULL, '2022-04-05 23:33:57', NULL, '2022-04-05 23:33:57', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23325, '', 0, 0, 'yudao-admin-server', 'GET', '/admin-api/system/captcha/get-image', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-05 23:33:57', '2022-04-05 23:34:00', 2365, 0, '', NULL, '2022-04-05 23:34:00', NULL, '2022-04-05 23:34:00', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23326, '', 0, 0, 'yudao-admin-server', 'GET', '/admin-api/system/tenant/get-id-by-name', '{\"query\":{\"name\":\"芋道源码\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-07 00:14:55', '2022-04-07 00:14:55', 20, 0, '', NULL, '2022-04-07 00:14:55', NULL, '2022-04-07 00:14:55', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23327, '', 0, 0, 'yudao-admin-server', 'GET', '/admin-api/system/captcha/get-image', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-07 00:14:55', '2022-04-07 00:14:55', 22, 0, '', NULL, '2022-04-07 00:14:55', NULL, '2022-04-07 00:14:55', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23328, '', 0, 0, 'yudao-admin-server', 'GET', '/admin-api/system/tenant/get-id-by-name', '{\"query\":{\"name\":\"芋道源码\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-07 00:15:03', '2022-04-07 00:15:03', 17, 0, '', NULL, '2022-04-07 00:15:03', NULL, '2022-04-07 00:15:03', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23329, '', 0, 0, 'yudao-admin-server', 'GET', '/admin-api/system/captcha/get-image', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-07 00:15:03', '2022-04-07 00:15:03', 17, 0, '', NULL, '2022-04-07 00:15:03', NULL, '2022-04-07 00:15:03', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23330, '', 0, 0, 'yudao-admin-server', 'GET', '/admin-api/system/captcha/get-image', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-07 00:15:05', '2022-04-07 00:15:05', 14, 0, '', NULL, '2022-04-07 00:15:05', NULL, '2022-04-07 00:15:05', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23331, '', 0, 0, 'yudao-admin-server', 'GET', '/admin-api/system/tenant/get-id-by-name', '{\"query\":{\"name\":\"芋道源码\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-07 00:15:05', '2022-04-07 00:15:05', 14, 0, '', NULL, '2022-04-07 00:15:05', NULL, '2022-04-07 00:15:05', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23332, '', 0, 0, 'yudao-admin-server', 'POST', '/admin-api/system/login', '{\"query\":{},\"body\":\"{\\\"username\\\":\\\"admin\\\",\\\"password\\\":\\\"admin123\\\",\\\"code\\\":\\\"42wya\\\",\\\"uuid\\\":\\\"58a81a88842a45d6b280bf77ce752cb2\\\"}\"}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-07 00:15:10', '2022-04-07 00:15:10', 295, 0, '', NULL, '2022-04-07 00:15:10', NULL, '2022-04-07 00:15:10', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23333, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-07 00:15:10', '2022-04-07 00:15:10', 33, 0, '', NULL, '2022-04-07 00:15:10', NULL, '2022-04-07 00:15:10', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23334, '', 1, 2, 'yudao-admin-server', 'POST', '/admin-api/system/login', '{\"query\":{},\"body\":\"{\\\"username\\\":\\\"admin\\\",\\\"password\\\":\\\"admin123\\\",\\\"code\\\":\\\"42wya\\\",\\\"uuid\\\":\\\"58a81a88842a45d6b280bf77ce752cb2\\\"}\"}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-07 00:15:13', '2022-04-07 00:15:13', 11, 0, '', NULL, '2022-04-07 00:15:13', NULL, '2022-04-07 00:15:13', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23335, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-07 00:15:16', '2022-04-07 00:15:17', 6, 0, '', NULL, '2022-04-07 00:15:17', NULL, '2022-04-07 00:15:17', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23336, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-07 00:15:17', '2022-04-07 00:15:17', 9, 0, '', NULL, '2022-04-07 00:15:17', NULL, '2022-04-07 00:15:17', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23337, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-07 00:15:20', '2022-04-07 00:15:20', 9, 0, '', NULL, '2022-04-07 00:15:20', NULL, '2022-04-07 00:15:20', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23338, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-07 00:15:24', '2022-04-07 00:15:24', 7, 0, '', NULL, '2022-04-07 00:15:24', NULL, '2022-04-07 00:15:24', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23339, '', 0, 0, 'yudao-admin-server', 'POST', '/admin-api/system/login', '{\"query\":{},\"body\":\"{\\\"username\\\":\\\"admin\\\",\\\"password\\\":\\\"admin123\\\",\\\"code\\\":\\\"npq6k\\\",\\\"uuid\\\":\\\"ca5401b3f5ce4852b21d5b68a8093d07\\\"}\"}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-07 00:16:10', '2022-04-07 00:16:10', 168, 0, '', NULL, '2022-04-07 00:16:10', NULL, '2022-04-07 00:16:10', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23340, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-07 00:16:10', '2022-04-07 00:16:10', 8, 0, '', NULL, '2022-04-07 00:16:10', NULL, '2022-04-07 00:16:10', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23341, '', 0, 0, 'yudao-admin-server', 'GET', '/admin-api/system/get-permission-info', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 02:06:32', '2022-04-09 02:06:32', 27, 0, '', NULL, '2022-04-09 02:06:32', NULL, '2022-04-09 02:06:32', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23342, '', 0, 0, 'yudao-admin-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 02:06:32', '2022-04-09 02:06:32', 27, 0, '', NULL, '2022-04-09 02:06:32', NULL, '2022-04-09 02:06:32', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23343, '', 0, 0, 'yudao-admin-server', 'POST', '/admin-api/system/logout', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 02:06:32', '2022-04-09 02:06:32', 9, 0, '', NULL, '2022-04-09 02:06:32', NULL, '2022-04-09 02:06:32', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23344, '', 0, 0, 'yudao-admin-server', 'GET', '/admin-api/system/captcha/get-image', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 02:06:32', '2022-04-09 02:06:34', 1904, 0, '', NULL, '2022-04-09 02:06:34', NULL, '2022-04-09 02:06:34', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23345, '', 0, 0, 'yudao-admin-server', 'GET', '/admin-api/system/tenant/get-id-by-name', '{\"query\":{\"name\":\"芋道源码\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 02:06:37', '2022-04-09 02:06:37', 49, 0, '', NULL, '2022-04-09 02:06:37', NULL, '2022-04-09 02:06:37', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23346, '', 0, 0, 'yudao-admin-server', 'POST', '/admin-api/system/login', '{\"query\":{},\"body\":\"{\\\"username\\\":\\\"admin\\\",\\\"password\\\":\\\"admin123\\\",\\\"code\\\":\\\"cd2wd\\\",\\\"uuid\\\":\\\"1270ca85efd84487bd1e1a59d8c404a6\\\"}\"}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 02:06:37', '2022-04-09 02:06:37', 296, 0, '', NULL, '2022-04-09 02:06:37', NULL, '2022-04-09 02:06:37', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23347, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 02:06:37', '2022-04-09 02:06:37', 50, 0, '', NULL, '2022-04-09 02:06:37', NULL, '2022-04-09 02:06:37', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23348, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/get-permission-info', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 02:06:37', '2022-04-09 02:06:37', 59, 0, '', NULL, '2022-04-09 02:06:37', NULL, '2022-04-09 02:06:37', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23349, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 02:06:37', '2022-04-09 02:06:37', 11, 0, '', NULL, '2022-04-09 02:06:37', NULL, '2022-04-09 02:06:37', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23350, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 02:06:48', '2022-04-09 02:06:48', 34, 0, '', NULL, '2022-04-09 02:06:48', NULL, '2022-04-09 02:06:48', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23351, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 02:06:48', '2022-04-09 02:06:48', 105, 0, '', NULL, '2022-04-09 02:06:48', NULL, '2022-04-09 02:06:48', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23352, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 02:07:37', '2022-04-09 02:07:37', 17, 0, '', NULL, '2022-04-09 02:07:37', NULL, '2022-04-09 02:07:37', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23353, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 02:07:37', '2022-04-09 02:07:37', 97, 0, '', NULL, '2022-04-09 02:07:37', NULL, '2022-04-09 02:07:37', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23354, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 02:08:24', '2022-04-09 02:08:24', 6, 0, '', NULL, '2022-04-09 02:08:24', NULL, '2022-04-09 02:08:24', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23355, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 02:08:24', '2022-04-09 02:08:24', 30, 0, '', NULL, '2022-04-09 02:08:24', NULL, '2022-04-09 02:08:24', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23356, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 02:09:02', '2022-04-09 02:09:02', 7, 0, '', NULL, '2022-04-09 02:09:02', NULL, '2022-04-09 02:09:02', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23357, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 02:09:02', '2022-04-09 02:09:02', 33, 0, '', NULL, '2022-04-09 02:09:02', NULL, '2022-04-09 02:09:02', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23358, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 09:35:40', '2022-04-09 09:35:40', 7, 0, '', NULL, '2022-04-09 09:35:40', NULL, '2022-04-09 09:35:40', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23359, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 09:35:40', '2022-04-09 09:35:40', 32, 0, '', NULL, '2022-04-09 09:35:40', NULL, '2022-04-09 09:35:40', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23360, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 09:59:09', '2022-04-09 09:59:09', 8, 0, '', NULL, '2022-04-09 09:59:09', NULL, '2022-04-09 09:59:09', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23361, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 09:59:09', '2022-04-09 09:59:09', 34, 0, '', NULL, '2022-04-09 09:59:09', NULL, '2022-04-09 09:59:09', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23362, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 09:59:17', '2022-04-09 09:59:17', 9, 0, '', NULL, '2022-04-09 09:59:17', NULL, '2022-04-09 09:59:17', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23363, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 09:59:17', '2022-04-09 09:59:17', 36, 0, '', NULL, '2022-04-09 09:59:17', NULL, '2022-04-09 09:59:17', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23364, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 09:59:31', '2022-04-09 09:59:31', 6, 0, '', NULL, '2022-04-09 09:59:31', NULL, '2022-04-09 09:59:31', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23365, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 09:59:31', '2022-04-09 09:59:32', 28, 0, '', NULL, '2022-04-09 09:59:32', NULL, '2022-04-09 09:59:32', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23366, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:00:46', '2022-04-09 10:00:46', 8, 0, '', NULL, '2022-04-09 10:00:46', NULL, '2022-04-09 10:00:46', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23367, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:00:46', '2022-04-09 10:00:47', 37, 0, '', NULL, '2022-04-09 10:00:47', NULL, '2022-04-09 10:00:47', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23368, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:01:10', '2022-04-09 10:01:10', 6, 0, '', NULL, '2022-04-09 10:01:10', NULL, '2022-04-09 10:01:10', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23369, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:01:10', '2022-04-09 10:01:10', 27, 0, '', NULL, '2022-04-09 10:01:10', NULL, '2022-04-09 10:01:10', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23370, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:01:59', '2022-04-09 10:01:59', 6, 0, '', NULL, '2022-04-09 10:01:59', NULL, '2022-04-09 10:01:59', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23371, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:01:59', '2022-04-09 10:01:59', 26, 0, '', NULL, '2022-04-09 10:01:59', NULL, '2022-04-09 10:01:59', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23372, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:02:02', '2022-04-09 10:02:02', 26, 0, '', NULL, '2022-04-09 10:02:02', NULL, '2022-04-09 10:02:02', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23373, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/get-permission-info', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:02:02', '2022-04-09 10:02:02', 31, 0, '', NULL, '2022-04-09 10:02:02', NULL, '2022-04-09 10:02:02', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23374, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:02:02', '2022-04-09 10:02:02', 6, 0, '', NULL, '2022-04-09 10:02:02', NULL, '2022-04-09 10:02:02', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23375, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:02:03', '2022-04-09 10:02:03', 6, 0, '', NULL, '2022-04-09 10:02:03', NULL, '2022-04-09 10:02:03', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23376, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:02:03', '2022-04-09 10:02:03', 28, 0, '', NULL, '2022-04-09 10:02:03', NULL, '2022-04-09 10:02:03', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23377, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:02:54', '2022-04-09 10:02:54', 5, 0, '', NULL, '2022-04-09 10:02:54', NULL, '2022-04-09 10:02:54', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23378, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:02:54', '2022-04-09 10:02:54', 27, 0, '', NULL, '2022-04-09 10:02:54', NULL, '2022-04-09 10:02:54', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23379, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:03:09', '2022-04-09 10:03:09', 24, 0, '', NULL, '2022-04-09 10:03:09', NULL, '2022-04-09 10:03:09', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23380, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/get-permission-info', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:03:09', '2022-04-09 10:03:09', 34, 0, '', NULL, '2022-04-09 10:03:09', NULL, '2022-04-09 10:03:09', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23381, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:03:09', '2022-04-09 10:03:09', 5, 0, '', NULL, '2022-04-09 10:03:09', NULL, '2022-04-09 10:03:09', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23382, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:03:10', '2022-04-09 10:03:10', 5, 0, '', NULL, '2022-04-09 10:03:10', NULL, '2022-04-09 10:03:10', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23383, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:03:10', '2022-04-09 10:03:10', 23, 0, '', NULL, '2022-04-09 10:03:10', NULL, '2022-04-09 10:03:10', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23384, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:03:47', '2022-04-09 10:03:48', 6, 0, '', NULL, '2022-04-09 10:03:48', NULL, '2022-04-09 10:03:48', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23385, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:03:48', '2022-04-09 10:03:48', 27, 0, '', NULL, '2022-04-09 10:03:48', NULL, '2022-04-09 10:03:48', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23386, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:03:48', '2022-04-09 10:03:48', 19, 0, '', NULL, '2022-04-09 10:03:48', NULL, '2022-04-09 10:03:48', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23387, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/get-permission-info', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:03:48', '2022-04-09 10:03:48', 25, 0, '', NULL, '2022-04-09 10:03:48', NULL, '2022-04-09 10:03:48', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23388, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:03:48', '2022-04-09 10:03:48', 4, 0, '', NULL, '2022-04-09 10:03:48', NULL, '2022-04-09 10:03:48', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23389, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:03:49', '2022-04-09 10:03:49', 5, 0, '', NULL, '2022-04-09 10:03:49', NULL, '2022-04-09 10:03:49', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23390, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:03:49', '2022-04-09 10:03:49', 28, 0, '', NULL, '2022-04-09 10:03:49', NULL, '2022-04-09 10:03:49', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23391, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:04:02', '2022-04-09 10:04:02', 23, 0, '', NULL, '2022-04-09 10:04:02', NULL, '2022-04-09 10:04:02', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23392, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/get-permission-info', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:04:02', '2022-04-09 10:04:02', 29, 0, '', NULL, '2022-04-09 10:04:02', NULL, '2022-04-09 10:04:02', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23393, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:04:02', '2022-04-09 10:04:02', 4, 0, '', NULL, '2022-04-09 10:04:02', NULL, '2022-04-09 10:04:02', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23394, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:04:03', '2022-04-09 10:04:03', 6, 0, '', NULL, '2022-04-09 10:04:03', NULL, '2022-04-09 10:04:03', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23395, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:04:03', '2022-04-09 10:04:03', 27, 0, '', NULL, '2022-04-09 10:04:03', NULL, '2022-04-09 10:04:03', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23396, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:04:16', '2022-04-09 10:04:16', 28, 0, '', NULL, '2022-04-09 10:04:16', NULL, '2022-04-09 10:04:16', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23397, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/get-permission-info', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:04:16', '2022-04-09 10:04:16', 39, 0, '', NULL, '2022-04-09 10:04:16', NULL, '2022-04-09 10:04:16', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23398, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:04:16', '2022-04-09 10:04:16', 5, 0, '', NULL, '2022-04-09 10:04:16', NULL, '2022-04-09 10:04:16', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23399, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:04:17', '2022-04-09 10:04:17', 7, 0, '', NULL, '2022-04-09 10:04:17', NULL, '2022-04-09 10:04:17', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23400, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:04:17', '2022-04-09 10:04:17', 42, 0, '', NULL, '2022-04-09 10:04:17', NULL, '2022-04-09 10:04:17', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23401, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:04:22', '2022-04-09 10:04:22', 20, 0, '', NULL, '2022-04-09 10:04:22', NULL, '2022-04-09 10:04:22', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23402, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/get-permission-info', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:04:22', '2022-04-09 10:04:22', 25, 0, '', NULL, '2022-04-09 10:04:22', NULL, '2022-04-09 10:04:22', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23403, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:04:22', '2022-04-09 10:04:22', 5, 0, '', NULL, '2022-04-09 10:04:22', NULL, '2022-04-09 10:04:22', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23404, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:04:23', '2022-04-09 10:04:23', 4, 0, '', NULL, '2022-04-09 10:04:23', NULL, '2022-04-09 10:04:23', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23405, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:04:23', '2022-04-09 10:04:23', 23, 0, '', NULL, '2022-04-09 10:04:23', NULL, '2022-04-09 10:04:23', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23406, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:04:35', '2022-04-09 10:04:35', 24, 0, '', NULL, '2022-04-09 10:04:35', NULL, '2022-04-09 10:04:35', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23407, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/get-permission-info', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:04:35', '2022-04-09 10:04:35', 34, 0, '', NULL, '2022-04-09 10:04:35', NULL, '2022-04-09 10:04:35', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23408, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:04:35', '2022-04-09 10:04:35', 5, 0, '', NULL, '2022-04-09 10:04:35', NULL, '2022-04-09 10:04:35', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23409, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:04:35', '2022-04-09 10:04:35', 5, 0, '', NULL, '2022-04-09 10:04:35', NULL, '2022-04-09 10:04:35', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23410, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:04:35', '2022-04-09 10:04:35', 23, 0, '', NULL, '2022-04-09 10:04:35', NULL, '2022-04-09 10:04:35', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23411, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:05:42', '2022-04-09 10:05:42', 12, 0, '', NULL, '2022-04-09 10:05:42', NULL, '2022-04-09 10:05:42', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23412, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:05:42', '2022-04-09 10:05:42', 52, 0, '', NULL, '2022-04-09 10:05:42', NULL, '2022-04-09 10:05:42', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23413, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:06:01', '2022-04-09 10:06:01', 12, 0, '', NULL, '2022-04-09 10:06:01', NULL, '2022-04-09 10:06:01', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23414, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:06:01', '2022-04-09 10:06:01', 76, 0, '', NULL, '2022-04-09 10:06:01', NULL, '2022-04-09 10:06:01', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23415, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:06:07', '2022-04-09 10:06:07', 6, 0, '', NULL, '2022-04-09 10:06:07', NULL, '2022-04-09 10:06:07', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23416, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:06:07', '2022-04-09 10:06:07', 25, 0, '', NULL, '2022-04-09 10:06:07', NULL, '2022-04-09 10:06:07', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23417, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:06:36', '2022-04-09 10:06:36', 6, 0, '', NULL, '2022-04-09 10:06:36', NULL, '2022-04-09 10:06:36', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23418, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:06:36', '2022-04-09 10:06:36', 23, 0, '', NULL, '2022-04-09 10:06:36', NULL, '2022-04-09 10:06:36', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23419, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:06:46', '2022-04-09 10:06:46', 69, 0, '', NULL, '2022-04-09 10:06:46', NULL, '2022-04-09 10:06:46', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23420, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/get-permission-info', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:06:46', '2022-04-09 10:06:46', 70, 0, '', NULL, '2022-04-09 10:06:46', NULL, '2022-04-09 10:06:46', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23421, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:06:46', '2022-04-09 10:06:46', 5, 0, '', NULL, '2022-04-09 10:06:46', NULL, '2022-04-09 10:06:46', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23422, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:06:46', '2022-04-09 10:06:46', 5, 0, '', NULL, '2022-04-09 10:06:46', NULL, '2022-04-09 10:06:46', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23423, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:06:46', '2022-04-09 10:06:46', 26, 0, '', NULL, '2022-04-09 10:06:46', NULL, '2022-04-09 10:06:46', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23424, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/get-permission-info', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:10:24', '2022-04-09 10:10:24', 197, 0, '', NULL, '2022-04-09 10:10:24', NULL, '2022-04-09 10:10:24', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23425, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:10:24', '2022-04-09 10:10:24', 170, 0, '', NULL, '2022-04-09 10:10:24', NULL, '2022-04-09 10:10:24', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23426, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:10:24', '2022-04-09 10:10:24', 27, 0, '', NULL, '2022-04-09 10:10:24', NULL, '2022-04-09 10:10:24', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23427, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:10:26', '2022-04-09 10:10:26', 32, 0, '', NULL, '2022-04-09 10:10:26', NULL, '2022-04-09 10:10:26', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23428, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:10:26', '2022-04-09 10:10:26', 92, 0, '', NULL, '2022-04-09 10:10:26', NULL, '2022-04-09 10:10:26', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23429, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/validate-text', '{\"query\":{\"tags[0]\":\"蔬菜\",\"text\":\"哈哈\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:10:46', '2022-04-09 10:10:46', 17, 0, '', NULL, '2022-04-09 10:10:46', NULL, '2022-04-09 10:10:46', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23430, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/validate-text', '{\"query\":{\"tags[0]\":\"蔬菜\",\"text\":\"土豆\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:10:51', '2022-04-09 10:10:51', 6, 0, '', NULL, '2022-04-09 10:10:51', NULL, '2022-04-09 10:10:51', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23431, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:11:40', '2022-04-09 10:11:40', 7, 0, '', NULL, '2022-04-09 10:11:40', NULL, '2022-04-09 10:11:40', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23432, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:11:40', '2022-04-09 10:11:40', 26, 0, '', NULL, '2022-04-09 10:11:40', NULL, '2022-04-09 10:11:40', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23433, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:12:16', '2022-04-09 10:12:16', 30, 0, '', NULL, '2022-04-09 10:12:16', NULL, '2022-04-09 10:12:16', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23434, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:12:16', '2022-04-09 10:12:16', 35, 0, '', NULL, '2022-04-09 10:12:16', NULL, '2022-04-09 10:12:16', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23435, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:12:18', '2022-04-09 10:12:18', 28, 0, '', NULL, '2022-04-09 10:12:18', NULL, '2022-04-09 10:12:18', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23436, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/get-permission-info', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:12:18', '2022-04-09 10:12:19', 42, 0, '', NULL, '2022-04-09 10:12:19', NULL, '2022-04-09 10:12:19', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23437, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:12:19', '2022-04-09 10:12:19', 9, 0, '', NULL, '2022-04-09 10:12:19', NULL, '2022-04-09 10:12:19', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23438, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:12:19', '2022-04-09 10:12:19', 7, 0, '', NULL, '2022-04-09 10:12:19', NULL, '2022-04-09 10:12:19', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23439, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:12:19', '2022-04-09 10:12:20', 42, 0, '', NULL, '2022-04-09 10:12:20', NULL, '2022-04-09 10:12:20', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23440, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/validate-text', '{\"query\":{\"text\":\"土豆\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:12:27', '2022-04-09 10:12:27', 7, 0, '', NULL, '2022-04-09 10:12:27', NULL, '2022-04-09 10:12:27', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23441, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:12:35', '2022-04-09 10:12:35', 7, 0, '', NULL, '2022-04-09 10:12:35', NULL, '2022-04-09 10:12:35', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23442, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:12:35', '2022-04-09 10:12:35', 30, 0, '', NULL, '2022-04-09 10:12:35', NULL, '2022-04-09 10:12:35', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23443, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:12:38', '2022-04-09 10:12:38', 5, 0, '', NULL, '2022-04-09 10:12:38', NULL, '2022-04-09 10:12:38', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23444, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:12:38', '2022-04-09 10:12:38', 37, 0, '', NULL, '2022-04-09 10:12:38', NULL, '2022-04-09 10:12:38', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23445, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/validate-text', '{\"query\":{\"text\":\"土豆\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:12:42', '2022-04-09 10:12:42', 7, 0, '', NULL, '2022-04-09 10:12:42', NULL, '2022-04-09 10:12:42', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23446, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/validate-text', '{\"query\":{\"tags[0]\":\"短信\",\"text\":\"土豆\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:12:47', '2022-04-09 10:12:47', 7, 0, '', NULL, '2022-04-09 10:12:47', NULL, '2022-04-09 10:12:47', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23447, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/validate-text', '{\"query\":{\"tags[0]\":\"短信\",\"text\":\"土豆\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:12:52', '2022-04-09 10:12:52', 6, 0, '', NULL, '2022-04-09 10:12:52', NULL, '2022-04-09 10:12:52', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23448, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/validate-text', '{\"query\":{\"tags[0]\":\"短信\",\"text\":\"土豆\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:12:58', '2022-04-09 10:12:58', 9, 0, '', NULL, '2022-04-09 10:12:58', NULL, '2022-04-09 10:12:58', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23449, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/validate-text', '{\"query\":{\"tags[0]\":\"短信\",\"text\":\"土豆\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:13:11', '2022-04-09 10:13:11', 7, 0, '', NULL, '2022-04-09 10:13:11', NULL, '2022-04-09 10:13:11', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23450, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/validate-text', '{\"query\":{\"tags[0]\":\"短信\",\"text\":\"土豆\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:13:27', '2022-04-09 10:13:27', 6, 0, '', NULL, '2022-04-09 10:13:27', NULL, '2022-04-09 10:13:27', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23451, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:14:00', '2022-04-09 10:14:00', 40, 0, '', NULL, '2022-04-09 10:14:00', NULL, '2022-04-09 10:14:00', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23452, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/get-permission-info', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:14:00', '2022-04-09 10:14:00', 62, 0, '', NULL, '2022-04-09 10:14:00', NULL, '2022-04-09 10:14:00', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23453, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:14:00', '2022-04-09 10:14:00', 9, 0, '', NULL, '2022-04-09 10:14:00', NULL, '2022-04-09 10:14:00', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23454, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:14:02', '2022-04-09 10:14:02', 8, 0, '', NULL, '2022-04-09 10:14:02', NULL, '2022-04-09 10:14:02', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23455, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:14:02', '2022-04-09 10:14:02', 36, 0, '', NULL, '2022-04-09 10:14:02', NULL, '2022-04-09 10:14:02', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23456, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/validate-text', '{\"query\":{\"tags[0]\":\"短信\",\"text\":\"土豆\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:14:16', '2022-04-09 10:14:16', 6, 0, '', NULL, '2022-04-09 10:14:16', NULL, '2022-04-09 10:14:16', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23457, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/validate-text', '{\"query\":{\"text\":\"XX\"},\"body\":null}', '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', '2022-04-09 10:20:14', '2022-04-09 10:20:14', 172, 0, '', NULL, '2022-04-09 10:20:14', NULL, '2022-04-09 10:20:14', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23458, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/validate-text', '{\"query\":{\"text\":\"XXX\"},\"body\":null}', '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', '2022-04-09 10:20:23', '2022-04-09 10:20:23', 95, 0, '', NULL, '2022-04-09 10:20:23', NULL, '2022-04-09 10:20:23', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23459, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/validate-text', '{\"query\":{\"text\":\"XXX\",\"tags\":\"标签\"},\"body\":null}', '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', '2022-04-09 10:20:36', '2022-04-09 10:20:37', 81, 0, '', NULL, '2022-04-09 10:20:37', NULL, '2022-04-09 10:20:37', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23460, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/validate-text', '{\"query\":{\"text\":\"XXX\",\"tags\":\"短信\"},\"body\":null}', '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', '2022-04-09 10:20:45', '2022-04-09 10:20:45', 89, 0, '', NULL, '2022-04-09 10:20:45', NULL, '2022-04-09 10:20:45', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23461, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/validate-text', '{\"query\":{\"text\":\"XXX\",\"tags\":\"短信,蔬菜\"},\"body\":null}', '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', '2022-04-09 10:21:04', '2022-04-09 10:21:04', 85, 0, '', NULL, '2022-04-09 10:21:04', NULL, '2022-04-09 10:21:04', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23462, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/validate-text', '{\"query\":{\"text\":\"XXX\",\"tags\":\"短信,蔬菜\"},\"body\":null}', '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', '2022-04-09 10:21:19', '2022-04-09 10:21:25', 6574, 0, '', NULL, '2022-04-09 10:21:25', NULL, '2022-04-09 10:21:25', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23463, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:23:33', '2022-04-09 10:23:33', 6, 0, '', NULL, '2022-04-09 10:23:33', NULL, '2022-04-09 10:23:33', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23464, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:23:33', '2022-04-09 10:23:33', 26, 0, '', NULL, '2022-04-09 10:23:33', NULL, '2022-04-09 10:23:33', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23465, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:26:39', '2022-04-09 10:26:39', 15, 0, '', NULL, '2022-04-09 10:26:39', NULL, '2022-04-09 10:26:39', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23466, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:26:39', '2022-04-09 10:26:39', 32, 0, '', NULL, '2022-04-09 10:26:39', NULL, '2022-04-09 10:26:39', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23467, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:26:49', '2022-04-09 10:26:49', 10, 0, '', NULL, '2022-04-09 10:26:49', NULL, '2022-04-09 10:26:49', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23468, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:26:49', '2022-04-09 10:26:49', 68, 0, '', NULL, '2022-04-09 10:26:49', NULL, '2022-04-09 10:26:49', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23469, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:26:53', '2022-04-09 10:26:53', 32, 0, '', NULL, '2022-04-09 10:26:53', NULL, '2022-04-09 10:26:53', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23470, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/get-permission-info', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:26:53', '2022-04-09 10:26:53', 47, 0, '', NULL, '2022-04-09 10:26:53', NULL, '2022-04-09 10:26:53', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23471, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:26:53', '2022-04-09 10:26:53', 6, 0, '', NULL, '2022-04-09 10:26:53', NULL, '2022-04-09 10:26:53', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23472, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:26:54', '2022-04-09 10:26:54', 6, 0, '', NULL, '2022-04-09 10:26:54', NULL, '2022-04-09 10:26:54', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23473, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:26:54', '2022-04-09 10:26:54', 50, 0, '', NULL, '2022-04-09 10:26:54', NULL, '2022-04-09 10:26:54', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23474, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:27:14', '2022-04-09 10:27:14', 52, 0, '', NULL, '2022-04-09 10:27:14', NULL, '2022-04-09 10:27:14', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23475, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/get-permission-info', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:27:14', '2022-04-09 10:27:14', 84, 0, '', NULL, '2022-04-09 10:27:14', NULL, '2022-04-09 10:27:14', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23476, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:27:14', '2022-04-09 10:27:14', 14, 0, '', NULL, '2022-04-09 10:27:14', NULL, '2022-04-09 10:27:14', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23477, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:27:15', '2022-04-09 10:27:15', 6, 0, '', NULL, '2022-04-09 10:27:15', NULL, '2022-04-09 10:27:15', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23478, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:27:15', '2022-04-09 10:27:15', 34, 0, '', NULL, '2022-04-09 10:27:15', NULL, '2022-04-09 10:27:15', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23479, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/validate-text', '{\"query\":{\"text\":\"3232\",\"tags\":\"蔬菜\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:27:20', '2022-04-09 10:27:20', 5, 0, '', NULL, '2022-04-09 10:27:20', NULL, '2022-04-09 10:27:20', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23480, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/validate-text', '{\"query\":{\"text\":\"XXXX\",\"tags\":\"蔬菜,短信\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:27:33', '2022-04-09 10:27:33', 5, 0, '', NULL, '2022-04-09 10:27:33', NULL, '2022-04-09 10:27:33', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23481, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/validate-text', '{\"query\":{\"text\":\"XXXX土豆\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:28:00', '2022-04-09 10:28:00', 4, 0, '', NULL, '2022-04-09 10:28:00', NULL, '2022-04-09 10:28:00', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23482, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get', '{\"query\":{\"id\":\"3\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:28:11', '2022-04-09 10:28:11', 17, 0, '', NULL, '2022-04-09 10:28:11', NULL, '2022-04-09 10:28:11', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23483, '', 1, 2, 'yudao-admin-server', 'PUT', '/admin-api/system/sensitive-word/update', '{\"query\":{},\"body\":\"{\\\"name\\\":\\\"土豆\\\",\\\"tags\\\":[\\\"蔬菜\\\",\\\"短信\\\"],\\\"status\\\":0,\\\"description\\\":\\\"好呀\\\",\\\"id\\\":3,\\\"createTime\\\":1649423232000}\"}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:28:14', '2022-04-09 10:28:14', 54, 0, '', NULL, '2022-04-09 10:28:14', NULL, '2022-04-09 10:28:14', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23484, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:28:14', '2022-04-09 10:28:14', 32, 0, '', NULL, '2022-04-09 10:28:14', NULL, '2022-04-09 10:28:14', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23485, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:30:38', '2022-04-09 10:30:38', 39, 0, '', NULL, '2022-04-09 10:30:38', NULL, '2022-04-09 10:30:38', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23486, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/get-permission-info', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:30:38', '2022-04-09 10:30:38', 47, 0, '', NULL, '2022-04-09 10:30:38', NULL, '2022-04-09 10:30:38', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23487, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:30:38', '2022-04-09 10:30:38', 6, 0, '', NULL, '2022-04-09 10:30:38', NULL, '2022-04-09 10:30:38', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23488, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:30:38', '2022-04-09 10:30:38', 7, 0, '', NULL, '2022-04-09 10:30:39', NULL, '2022-04-09 10:30:39', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23489, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:30:38', '2022-04-09 10:30:39', 33, 0, '', NULL, '2022-04-09 10:30:39', NULL, '2022-04-09 10:30:39', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23490, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:30:51', '2022-04-09 10:30:51', 26, 0, '', NULL, '2022-04-09 10:30:51', NULL, '2022-04-09 10:30:51', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23491, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/get-permission-info', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:30:51', '2022-04-09 10:30:51', 39, 0, '', NULL, '2022-04-09 10:30:51', NULL, '2022-04-09 10:30:51', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23492, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:30:51', '2022-04-09 10:30:51', 5, 0, '', NULL, '2022-04-09 10:30:51', NULL, '2022-04-09 10:30:51', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23493, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:30:52', '2022-04-09 10:30:52', 6, 0, '', NULL, '2022-04-09 10:30:52', NULL, '2022-04-09 10:30:52', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23494, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:30:52', '2022-04-09 10:30:52', 35, 0, '', NULL, '2022-04-09 10:30:52', NULL, '2022-04-09 10:30:52', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23495, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:31:05', '2022-04-09 10:31:05', 30, 0, '', NULL, '2022-04-09 10:31:05', NULL, '2022-04-09 10:31:05', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23496, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/get-permission-info', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:31:05', '2022-04-09 10:31:05', 51, 0, '', NULL, '2022-04-09 10:31:05', NULL, '2022-04-09 10:31:05', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23497, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:31:05', '2022-04-09 10:31:05', 7, 0, '', NULL, '2022-04-09 10:31:05', NULL, '2022-04-09 10:31:05', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23498, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:31:06', '2022-04-09 10:31:06', 5, 0, '', NULL, '2022-04-09 10:31:06', NULL, '2022-04-09 10:31:06', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23499, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:31:06', '2022-04-09 10:31:06', 29, 0, '', NULL, '2022-04-09 10:31:06', NULL, '2022-04-09 10:31:06', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23500, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:31:17', '2022-04-09 10:31:17', 7, 0, '', NULL, '2022-04-09 10:31:17', NULL, '2022-04-09 10:31:17', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23501, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:31:17', '2022-04-09 10:31:17', 34, 0, '', NULL, '2022-04-09 10:31:17', NULL, '2022-04-09 10:31:17', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23502, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:31:35', '2022-04-09 10:31:35', 6, 0, '', NULL, '2022-04-09 10:31:35', NULL, '2022-04-09 10:31:35', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23503, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:31:35', '2022-04-09 10:31:35', 33, 0, '', NULL, '2022-04-09 10:31:35', NULL, '2022-04-09 10:31:35', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23504, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:31:51', '2022-04-09 10:31:51', 29, 0, '', NULL, '2022-04-09 10:31:51', NULL, '2022-04-09 10:31:51', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23505, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/get-permission-info', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:31:51', '2022-04-09 10:31:51', 42, 0, '', NULL, '2022-04-09 10:31:51', NULL, '2022-04-09 10:31:51', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23506, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:31:51', '2022-04-09 10:31:51', 5, 0, '', NULL, '2022-04-09 10:31:51', NULL, '2022-04-09 10:31:51', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23507, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:31:52', '2022-04-09 10:31:52', 7, 0, '', NULL, '2022-04-09 10:31:52', NULL, '2022-04-09 10:31:52', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23508, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:31:52', '2022-04-09 10:31:52', 27, 0, '', NULL, '2022-04-09 10:31:52', NULL, '2022-04-09 10:31:52', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23509, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:32:07', '2022-04-09 10:32:07', 22, 0, '', NULL, '2022-04-09 10:32:07', NULL, '2022-04-09 10:32:07', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23510, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/get-permission-info', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:32:07', '2022-04-09 10:32:07', 34, 0, '', NULL, '2022-04-09 10:32:07', NULL, '2022-04-09 10:32:07', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23511, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:32:07', '2022-04-09 10:32:07', 6, 0, '', NULL, '2022-04-09 10:32:07', NULL, '2022-04-09 10:32:07', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23512, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:32:08', '2022-04-09 10:32:08', 14, 0, '', NULL, '2022-04-09 10:32:08', NULL, '2022-04-09 10:32:08', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23513, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:32:08', '2022-04-09 10:32:08', 45, 0, '', NULL, '2022-04-09 10:32:08', NULL, '2022-04-09 10:32:08', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23514, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/dict-data/list-all-simple', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:32:13', '2022-04-09 10:32:13', 24, 0, '', NULL, '2022-04-09 10:32:13', NULL, '2022-04-09 10:32:13', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23515, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/get-permission-info', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:32:13', '2022-04-09 10:32:13', 35, 0, '', NULL, '2022-04-09 10:32:13', NULL, '2022-04-09 10:32:13', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23516, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/list-menus', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:32:13', '2022-04-09 10:32:13', 5, 0, '', NULL, '2022-04-09 10:32:13', NULL, '2022-04-09 10:32:13', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23517, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:32:14', '2022-04-09 10:32:14', 7, 0, '', NULL, '2022-04-09 10:32:14', NULL, '2022-04-09 10:32:14', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23518, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:32:14', '2022-04-09 10:32:14', 39, 0, '', NULL, '2022-04-09 10:32:14', NULL, '2022-04-09 10:32:14', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23519, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/get-tags', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:32:30', '2022-04-09 10:32:30', 5, 0, '', NULL, '2022-04-09 10:32:30', NULL, '2022-04-09 10:32:30', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23520, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/page', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:32:30', '2022-04-09 10:32:30', 33, 0, '', NULL, '2022-04-09 10:32:30', NULL, '2022-04-09 10:32:30', b'0', 1); +INSERT INTO `infra_api_access_log` VALUES (23521, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/sensitive-word/export-excel', '{\"query\":{},\"body\":null}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-09 10:32:58', '2022-04-09 10:32:59', 1875, 500, '系统异常', NULL, '2022-04-09 10:32:59', NULL, '2022-04-09 10:32:59', b'0', 1); COMMIT; -- ---------------------------- @@ -1184,7 +1486,7 @@ CREATE TABLE `infra_api_error_log` ( `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', PRIMARY KEY (`id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=323 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统异常日志'; +) ENGINE=InnoDB AUTO_INCREMENT=341 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统异常日志'; -- ---------------------------- -- Records of infra_api_error_log @@ -1283,6 +1585,24 @@ INSERT INTO `infra_api_error_log` VALUES (319, '', 1, 2, 'yudao-admin-server', ' INSERT INTO `infra_api_error_log` VALUES (320, '', 1, 2, 'yudao-admin-server', 'POST', '/admin-api/infra/codegen/create-list-from-db', '{\"query\":{\"tableNames\":\"system_role\"},\"body\":\"\"}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', '2022-03-18 22:25:12', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLException: Field \'table_id\' doesn\'t have a default value\n### The error may exist in cn/iocoder/yudao/module/infra/dal/mysql/codegen/CodegenColumnMapper.java (best guess)\n### The error may involve cn.iocoder.yudao.module.infra.dal.mysql.codegen.CodegenColumnMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO infra_codegen_column (column_name, column_type, column_comment, nullable, primary_key, auto_increment, ordinal_position, java_type, java_field, create_operation, update_operation, list_operation, list_operation_condition, list_operation_result, html_type, create_time, update_time, creator, updater) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n### Cause: java.sql.SQLException: Field \'table_id\' doesn\'t have a default value\n; Field \'table_id\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'table_id\' doesn\'t have a default value', 'SQLException: Field \'table_id\' doesn\'t have a default value', 'org.springframework.dao.DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLException: Field \'table_id\' doesn\'t have a default value\n### The error may exist in cn/iocoder/yudao/module/infra/dal/mysql/codegen/CodegenColumnMapper.java (best guess)\n### The error may involve cn.iocoder.yudao.module.infra.dal.mysql.codegen.CodegenColumnMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO infra_codegen_column (column_name, column_type, column_comment, nullable, primary_key, auto_increment, ordinal_position, java_type, java_field, create_operation, update_operation, list_operation, list_operation_condition, list_operation_result, html_type, create_time, update_time, creator, updater) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n### Cause: java.sql.SQLException: Field \'table_id\' doesn\'t have a default value\n; Field \'table_id\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'table_id\' doesn\'t have a default value\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:251)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy136.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy253.insert(Unknown Source)\n at java.util.ArrayList.forEach(ArrayList.java:1249)\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.insertBatch(BaseMapperX.java:80)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy253.insertBatch(Unknown Source)\n at cn.iocoder.yudao.module.infra.service.codegen.CodegenServiceImpl.createCodegen0(CodegenServiceImpl.java:86)\n at cn.iocoder.yudao.module.infra.service.codegen.CodegenServiceImpl.createCodegen(CodegenServiceImpl.java:114)\n at cn.iocoder.yudao.module.infra.service.codegen.CodegenServiceImpl.lambda$createCodegenListFromDB$0(CodegenServiceImpl.java:122)\n at java.util.ArrayList.forEach(ArrayList.java:1249)\n at cn.iocoder.yudao.module.infra.service.codegen.CodegenServiceImpl.createCodegenListFromDB(CodegenServiceImpl.java:122)\n at cn.iocoder.yudao.module.infra.service.codegen.CodegenServiceImpl$$FastClassBySpringCGLIB$$6152dfac.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)\n at cn.iocoder.yudao.module.infra.service.codegen.CodegenServiceImpl$$EnhancerBySpringCGLIB$$f180be30.createCodegenListFromDB()\n at cn.iocoder.yudao.module.infra.controller.admin.codegen.CodegenController.createCodegenListFromDB(CodegenController.java:92)\n at cn.iocoder.yudao.module.infra.controller.admin.codegen.CodegenController$$FastClassBySpringCGLIB$$8f5d07f9.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:96)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:77)\n at sun.reflect.GeneratedMethodAccessor313.invoke(Unknown Source)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)\n at cn.iocoder.yudao.module.infra.controller.admin.codegen.CodegenController$$EnhancerBySpringCGLIB$$2551b00b.createCodegenListFromDB()\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:98)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at cn.iocoder.yudao.framework.security.core.filter.JWTAuthenticationTokenFilter.doFilterInternal(JWTAuthenticationTokenFilter.java:60)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:32)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n at java.lang.Thread.run(Thread.java:748)\nCaused by: java.sql.SQLException: Field \'table_id\' doesn\'t have a default value\n at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:965)\n at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3976)\n at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3912)\n at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2530)\n at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683)\n at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2486)\n at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)\n at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1197)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3461)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:497)\n at sun.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy158.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\n at sun.reflect.GeneratedMethodAccessor379.invoke(Unknown Source)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy156.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\n at sun.reflect.GeneratedMethodAccessor386.invoke(Unknown Source)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy155.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\n at sun.reflect.GeneratedMethodAccessor418.invoke(Unknown Source)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 190 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 251, 0, NULL, 0, NULL, '2022-03-18 22:25:12', NULL, '2022-03-18 22:25:12', b'0', 1); INSERT INTO `infra_api_error_log` VALUES (321, '', 1, 2, 'yudao-admin-server', 'POST', '/admin-api/infra/codegen/create-list-from-db', '{\"query\":{\"tableNames\":\"system_role\"},\"body\":\"\"}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', '2022-03-18 22:25:34', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLException: Field \'table_id\' doesn\'t have a default value\n### The error may exist in cn/iocoder/yudao/module/infra/dal/mysql/codegen/CodegenColumnMapper.java (best guess)\n### The error may involve cn.iocoder.yudao.module.infra.dal.mysql.codegen.CodegenColumnMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO infra_codegen_column (column_name, column_type, column_comment, nullable, primary_key, auto_increment, ordinal_position, java_type, java_field, create_operation, update_operation, list_operation, list_operation_condition, list_operation_result, html_type, create_time, update_time, creator, updater) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n### Cause: java.sql.SQLException: Field \'table_id\' doesn\'t have a default value\n; Field \'table_id\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'table_id\' doesn\'t have a default value', 'SQLException: Field \'table_id\' doesn\'t have a default value', 'org.springframework.dao.DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLException: Field \'table_id\' doesn\'t have a default value\n### The error may exist in cn/iocoder/yudao/module/infra/dal/mysql/codegen/CodegenColumnMapper.java (best guess)\n### The error may involve cn.iocoder.yudao.module.infra.dal.mysql.codegen.CodegenColumnMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO infra_codegen_column (column_name, column_type, column_comment, nullable, primary_key, auto_increment, ordinal_position, java_type, java_field, create_operation, update_operation, list_operation, list_operation_condition, list_operation_result, html_type, create_time, update_time, creator, updater) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n### Cause: java.sql.SQLException: Field \'table_id\' doesn\'t have a default value\n; Field \'table_id\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'table_id\' doesn\'t have a default value\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:251)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy136.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy253.insert(Unknown Source)\n at java.util.ArrayList.forEach(ArrayList.java:1249)\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.insertBatch(BaseMapperX.java:80)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy253.insertBatch(Unknown Source)\n at cn.iocoder.yudao.module.infra.service.codegen.CodegenServiceImpl.createCodegen0(CodegenServiceImpl.java:86)\n at cn.iocoder.yudao.module.infra.service.codegen.CodegenServiceImpl.createCodegen(CodegenServiceImpl.java:114)\n at cn.iocoder.yudao.module.infra.service.codegen.CodegenServiceImpl.lambda$createCodegenListFromDB$0(CodegenServiceImpl.java:122)\n at java.util.ArrayList.forEach(ArrayList.java:1249)\n at cn.iocoder.yudao.module.infra.service.codegen.CodegenServiceImpl.createCodegenListFromDB(CodegenServiceImpl.java:122)\n at cn.iocoder.yudao.module.infra.service.codegen.CodegenServiceImpl$$FastClassBySpringCGLIB$$6152dfac.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)\n at cn.iocoder.yudao.module.infra.service.codegen.CodegenServiceImpl$$EnhancerBySpringCGLIB$$f180be30.createCodegenListFromDB()\n at cn.iocoder.yudao.module.infra.controller.admin.codegen.CodegenController.createCodegenListFromDB(CodegenController.java:92)\n at cn.iocoder.yudao.module.infra.controller.admin.codegen.CodegenController$$FastClassBySpringCGLIB$$8f5d07f9.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:96)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:77)\n at sun.reflect.GeneratedMethodAccessor313.invoke(Unknown Source)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)\n at cn.iocoder.yudao.module.infra.controller.admin.codegen.CodegenController$$EnhancerBySpringCGLIB$$2551b00b.createCodegenListFromDB()\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:98)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at cn.iocoder.yudao.framework.security.core.filter.JWTAuthenticationTokenFilter.doFilterInternal(JWTAuthenticationTokenFilter.java:60)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:32)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n at java.lang.Thread.run(Thread.java:748)\nCaused by: java.sql.SQLException: Field \'table_id\' doesn\'t have a default value\n at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:965)\n at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3976)\n at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3912)\n at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2530)\n at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683)\n at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2486)\n at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)\n at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1197)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3461)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:497)\n at sun.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy158.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\n at sun.reflect.GeneratedMethodAccessor379.invoke(Unknown Source)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy156.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\n at sun.reflect.GeneratedMethodAccessor386.invoke(Unknown Source)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy155.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\n at sun.reflect.GeneratedMethodAccessor418.invoke(Unknown Source)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 190 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 251, 0, NULL, 0, NULL, '2022-03-18 22:25:34', NULL, '2022-03-18 22:25:34', b'0', 1); INSERT INTO `infra_api_error_log` VALUES (322, '', 114, 2, 'yudao-admin-server', 'PUT', '/admin-api/bpm/task/approve', '{\"query\":{},\"body\":\"{\\\"id\\\":\\\"f8beb356-a78c-11ec-bf87-8e557beca7ad\\\",\\\"comment\\\":\\\"不错!\\\"}\"}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', '2022-03-19 22:16:19', 'org.flowable.common.engine.api.FlowableOptimisticLockingException', 'FlowableOptimisticLockingException: Execution[ id \'6bee3762-a787-11ec-96d6-8e557beca7ad\' ] - activity \'Event_0g5w7ck\' - parent \'6be9f198-a787-11ec-96d6-8e557beca7ad\' was updated by another transaction concurrently', 'FlowableOptimisticLockingException: Execution[ id \'6bee3762-a787-11ec-96d6-8e557beca7ad\' ] - activity \'Event_0g5w7ck\' - parent \'6be9f198-a787-11ec-96d6-8e557beca7ad\' was updated by another transaction concurrently', 'org.flowable.common.engine.api.FlowableOptimisticLockingException: Execution[ id \'6bee3762-a787-11ec-96d6-8e557beca7ad\' ] - activity \'Event_0g5w7ck\' - parent \'6be9f198-a787-11ec-96d6-8e557beca7ad\' was updated by another transaction concurrently\n at org.flowable.common.engine.impl.db.DbSqlSession.flushUpdates(DbSqlSession.java:577)\n at org.flowable.common.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:364)\n at org.flowable.common.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:211)\n at org.flowable.common.engine.impl.interceptor.CommandContext.close(CommandContext.java:69)\n at org.flowable.common.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:107)\n at org.flowable.common.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:52)\n at org.flowable.common.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:30)\n at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:56)\n at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:51)\n at org.flowable.engine.impl.TaskServiceImpl.complete(TaskServiceImpl.java:217)\n at cn.iocoder.yudao.module.bpm.service.task.BpmTaskServiceImpl.approveTask(BpmTaskServiceImpl.java:182)\n at cn.iocoder.yudao.module.bpm.service.task.BpmTaskServiceImpl$$FastClassBySpringCGLIB$$5c73399a.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)\n at cn.iocoder.yudao.module.bpm.service.task.BpmTaskServiceImpl$$EnhancerBySpringCGLIB$$f5855e16.approveTask()\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmTaskController.approveTask(BpmTaskController.java:60)\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmTaskController$$FastClassBySpringCGLIB$$5246e6e1.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:96)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:77)\n at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)\n at cn.iocoder.yudao.module.bpm.controller.admin.task.BpmTaskController$$EnhancerBySpringCGLIB$$ca26d53b.approveTask()\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\n at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:920)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:684)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:98)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at cn.iocoder.yudao.framework.security.core.filter.JWTAuthenticationTokenFilter.doFilterInternal(JWTAuthenticationTokenFilter.java:60)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:32)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n at java.lang.Thread.run(Thread.java:748)\n', 'org.flowable.common.engine.impl.db.DbSqlSession', 'DbSqlSession.java', 'flushUpdates', 577, 0, NULL, 0, NULL, '2022-03-19 22:16:19', NULL, '2022-03-19 22:16:19', b'0', 1); +INSERT INTO `infra_api_error_log` VALUES (323, '', 0, 0, 'yudao-admin-server', 'POST', '/app-api/monster/git-user/social-login2', '{\"query\":{\"redirectUri\":\"http%3A%2F%2F127.0.0.1%3A8080%3Ftype%3D10%26redirect%3Dhttp%3A%2F%2F127.0.0.1%3A8080%2Fintro%2F\",\"code\":\"9183661ec1047fd6b484910f1d1a5f5775494108894efb527bc29505924e7b95\",\"type\":\"10\"},\"body\":\"\"}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 10:54:24', 'org.springframework.jdbc.BadSqlGrammarException', 'BadSqlGrammarException: \n### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n### The error may exist in cn/iocoder/yudao/module/monster/dal/mysql/star/GitUserMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id, `type`, username, nickname, create_time, update_time, creator, updater, deleted FROM monster_git_user WHERE deleted = 0 AND (`type` = ? AND username = ?) AND tenant_id = 0\n### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'MySQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'', 'org.springframework.jdbc.BadSqlGrammarException: \n### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n### The error may exist in cn/iocoder/yudao/module/monster/dal/mysql/star/GitUserMapper.java (best guess)\n### The error may involve defaultParameterMap\n### The error occurred while setting parameters\n### SQL: SELECT id, `type`, username, nickname, create_time, update_time, creator, updater, deleted FROM monster_git_user WHERE deleted = 0 AND (`type` = ? AND username = ?) AND tenant_id = 0\n### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at jdk.proxy2/jdk.proxy2.$Proxy137.selectList(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:166)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy290.selectList(Unknown Source)\n at com.baomidou.mybatisplus.core.mapper.BaseMapper.selectOne(BaseMapper.java:174)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy290.selectOne(Unknown Source)\n at cn.iocoder.yudao.module.monster.dal.mysql.star.GitUserMapper.selectByTypeAndUsername(GitUserMapper.java:12)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy290.selectByTypeAndUsername(Unknown Source)\n at cn.iocoder.yudao.module.monster.service.star.GitUserServiceImpl.saveGitUser(GitUserServiceImpl.java:52)\n at cn.iocoder.yudao.module.monster.service.star.GitUserServiceImpl.getAuthUser(GitUserServiceImpl.java:44)\n at cn.iocoder.yudao.module.monster.controller.app.star.AppGitUserController.test(AppGitUserController.java:39)\n at cn.iocoder.yudao.module.monster.controller.app.star.AppGitUserController$$FastClassBySpringCGLIB$$3ff21da1.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:89)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:77)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)\n at cn.iocoder.yudao.module.monster.controller.app.star.AppGitUserController$$EnhancerBySpringCGLIB$$e4885c42.test()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at cn.iocoder.yudao.framework.security.core.filter.JWTAuthenticationTokenFilter.doFilterInternal(JWTAuthenticationTokenFilter.java:60)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.apilog.core.filter.ApiAccessLogFilter.doFilterInternal(ApiAccessLogFilter.java:63)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:32)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n at java.base/java.lang.Thread.run(Thread.java:833)\nCaused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column \'tenant_id\' in \'where clause\'\n at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)\n at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)\n at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)\n at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)\n at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)\n at com.mysql.jdbc.Util.getInstance(Util.java:408)\n at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944)\n at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3976)\n at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3912)\n at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2530)\n at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683)\n at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2486)\n at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)\n at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1197)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3461)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:497)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at jdk.proxy2/jdk.proxy2.$Proxy157.query(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\n at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at jdk.proxy2/jdk.proxy2.$Proxy156.query(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 176 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 239, 0, NULL, 0, NULL, '2022-03-22 10:54:24', NULL, '2022-03-22 10:54:24', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (324, '', 0, 0, 'yudao-admin-server', 'POST', '/app-api/monster/git-user/social-login2', '{\"query\":{\"redirectUri\":\"http%3A%2F%2F127.0.0.1%3A8080%3Ftype%3D10%26redirect%3Dhttp%3A%2F%2F127.0.0.1%3A8080%2Fintro%2F\",\"code\":\"a6591fb30f2dacb55fd0c45ab456fd682d716fcd2a850debe5d03f88211f1684\",\"type\":\"10\"},\"body\":\"\"}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-22 10:56:08', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLException: Field \'type\' doesn\'t have a default value\n### The error may exist in cn/iocoder/yudao/module/monster/dal/mysql/star/GitUserMapper.java (best guess)\n### The error may involve cn.iocoder.yudao.module.monster.dal.mysql.star.GitUserMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO monster_git_user (username, nickname, create_time, update_time, creator, updater) VALUES (?, ?, ?, ?, ?, ?)\n### Cause: java.sql.SQLException: Field \'type\' doesn\'t have a default value\n; Field \'type\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'type\' doesn\'t have a default value', 'SQLException: Field \'type\' doesn\'t have a default value', 'org.springframework.dao.DataIntegrityViolationException: \n### Error updating database. Cause: java.sql.SQLException: Field \'type\' doesn\'t have a default value\n### The error may exist in cn/iocoder/yudao/module/monster/dal/mysql/star/GitUserMapper.java (best guess)\n### The error may involve cn.iocoder.yudao.module.monster.dal.mysql.star.GitUserMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO monster_git_user (username, nickname, create_time, update_time, creator, updater) VALUES (?, ?, ?, ?, ?, ?)\n### Cause: java.sql.SQLException: Field \'type\' doesn\'t have a default value\n; Field \'type\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'type\' doesn\'t have a default value\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:251)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at jdk.proxy2/jdk.proxy2.$Proxy137.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy290.insert(Unknown Source)\n at cn.iocoder.yudao.module.monster.service.star.GitUserServiceImpl.saveGitUser(GitUserServiceImpl.java:54)\n at cn.iocoder.yudao.module.monster.service.star.GitUserServiceImpl.getAuthUser(GitUserServiceImpl.java:44)\n at cn.iocoder.yudao.module.monster.controller.app.star.AppGitUserController.test(AppGitUserController.java:39)\n at cn.iocoder.yudao.module.monster.controller.app.star.AppGitUserController$$FastClassBySpringCGLIB$$3ff21da1.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:89)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:77)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)\n at cn.iocoder.yudao.module.monster.controller.app.star.AppGitUserController$$EnhancerBySpringCGLIB$$bacc6c9d.test()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at cn.iocoder.yudao.framework.security.core.filter.JWTAuthenticationTokenFilter.doFilterInternal(JWTAuthenticationTokenFilter.java:60)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.apilog.core.filter.ApiAccessLogFilter.doFilterInternal(ApiAccessLogFilter.java:63)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:32)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n at java.base/java.lang.Thread.run(Thread.java:833)\nCaused by: java.sql.SQLException: Field \'type\' doesn\'t have a default value\n at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:965)\n at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3976)\n at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3912)\n at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2530)\n at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683)\n at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2486)\n at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)\n at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1197)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3461)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:497)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at jdk.proxy2/jdk.proxy2.$Proxy157.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at jdk.proxy2/jdk.proxy2.$Proxy156.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 165 more\n', 'org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator', 'SQLErrorCodeSQLExceptionTranslator.java', 'doTranslate', 251, 0, NULL, 0, NULL, '2022-03-22 10:56:08', NULL, '2022-03-22 10:56:08', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (325, '', 0, 0, 'yudao-admin-server', 'GET', '/app-api/monster/git-star/test', '{\"query\":{},\"body\":\"\"}', '127.0.0.1', 'PostmanRuntime/6.4.1', '2022-03-22 20:10:16', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \n### Error updating database. Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column \'username\' at row 1\n### The error may exist in cn/iocoder/yudao/module/monster/dal/mysql/star/GitStarMapper.java (best guess)\n### The error may involve cn.iocoder.yudao.module.monster.dal.mysql.star.GitStarMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO monster_git_star (repository, `type`, username, nickname, create_time, update_time, creator, updater) VALUES (?, ?, ?, ?, ?, ?, ?, ?)\n### Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column \'username\' at row 1\n; Data truncation: Data too long for column \'username\' at row 1; nested exception is com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column \'username\' at row 1', 'MysqlDataTruncation: Data truncation: Data too long for column \'username\' at row 1', 'org.springframework.dao.DataIntegrityViolationException: \n### Error updating database. Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column \'username\' at row 1\n### The error may exist in cn/iocoder/yudao/module/monster/dal/mysql/star/GitStarMapper.java (best guess)\n### The error may involve cn.iocoder.yudao.module.monster.dal.mysql.star.GitStarMapper.insert-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO monster_git_star (repository, `type`, username, nickname, create_time, update_time, creator, updater) VALUES (?, ?, ?, ?, ?, ?, ?, ?)\n### Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column \'username\' at row 1\n; Data truncation: Data too long for column \'username\' at row 1; nested exception is com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column \'username\' at row 1\n at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:104)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:79)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:79)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at jdk.proxy2/jdk.proxy2.$Proxy137.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy290.insert(Unknown Source)\n at java.base/java.util.HashMap$Values.forEach(HashMap.java:1065)\n at cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX.insertBatch(BaseMapperX.java:80)\n at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at jdk.proxy2/jdk.proxy2.$Proxy290.insertBatch(Unknown Source)\n at cn.iocoder.yudao.module.monster.service.star.GitStarServiceImpl.batchSaveGitStars(GitStarServiceImpl.java:106)\n at cn.iocoder.yudao.module.monster.service.star.GitStarServiceImpl.fetchAndSaveGitStarts(GitStarServiceImpl.java:64)\n at cn.iocoder.yudao.module.monster.service.star.GitStarServiceImpl.executeGiteeJob(GitStarServiceImpl.java:38)\n at cn.iocoder.yudao.module.monster.controller.app.star.AppGitStarController.socialAuthRedirect(AppGitStarController.java:25)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:655)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at cn.iocoder.yudao.framework.security.core.filter.JWTAuthenticationTokenFilter.doFilterInternal(JWTAuthenticationTokenFilter.java:60)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.apilog.core.filter.ApiAccessLogFilter.doFilterInternal(ApiAccessLogFilter.java:63)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:32)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n at java.base/java.lang.Thread.run(Thread.java:833)\nCaused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column \'username\' at row 1\n at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3974)\n at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3912)\n at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2530)\n at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683)\n at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2486)\n at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)\n at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1197)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3461)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:497)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\n at jdk.internal.reflect.GeneratedMethodAccessor251.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at jdk.proxy2/jdk.proxy2.$Proxy157.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\n at jdk.internal.reflect.GeneratedMethodAccessor245.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at jdk.proxy2/jdk.proxy2.$Proxy156.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\n at jdk.internal.reflect.GeneratedMethodAccessor244.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 150 more\n', 'org.springframework.jdbc.support.SQLStateSQLExceptionTranslator', 'SQLStateSQLExceptionTranslator.java', 'doTranslate', 104, 0, NULL, 0, NULL, '2022-03-22 20:10:16', NULL, '2022-03-22 20:10:16', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (326, '', 0, 0, 'yudao-admin-server', 'POST', '/app-api/monster/git-user/social-login2', '{\"query\":{\"redirectUri\":\"http%3A%2F%2F127.0.0.1%3A8080%3Ftype%3D10%26redirect%3Dhttp%3A%2F%2F127.0.0.1%3A8080%2Fintro%2F\",\"code\":\"82d2ba240513438c688776c2bbfa2d8f092e4f88e33af6d95ba3b59a6c0bcbca\",\"type\":\"10\"},\"body\":\"\"}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-23 00:02:39', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: okhttp3.RequestBody.create(Ljava/lang/String;Lokhttp3/MediaType;)Lokhttp3/RequestBody;', 'NoSuchMethodError: okhttp3.RequestBody.create(Ljava/lang/String;Lokhttp3/MediaType;)Lokhttp3/RequestBody;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: okhttp3.RequestBody.create(Ljava/lang/String;Lokhttp3/MediaType;)Lokhttp3/RequestBody;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1082)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at cn.iocoder.yudao.framework.security.core.filter.JWTAuthenticationTokenFilter.doFilterInternal(JWTAuthenticationTokenFilter.java:60)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.apilog.core.filter.ApiAccessLogFilter.doFilterInternal(ApiAccessLogFilter.java:63)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:32)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n at java.lang.Thread.run(Thread.java:748)\nCaused by: java.lang.NoSuchMethodError: okhttp3.RequestBody.create(Ljava/lang/String;Lokhttp3/MediaType;)Lokhttp3/RequestBody;\n at com.xkcoding.http.support.okhttp3.OkHttp3Impl.post(OkHttp3Impl.java:177)\n at com.xkcoding.http.support.okhttp3.OkHttp3Impl.post(OkHttp3Impl.java:161)\n at com.xkcoding.http.support.okhttp3.OkHttp3Impl.post(OkHttp3Impl.java:149)\n at com.xkcoding.http.HttpUtil.post(HttpUtil.java:141)\n at me.zhyd.oauth.utils.HttpUtils.post(HttpUtils.java:55)\n at me.zhyd.oauth.request.AuthDefaultRequest.doPostAuthorizationCode(AuthDefaultRequest.java:214)\n at me.zhyd.oauth.request.AuthGiteeRequest.getAccessToken(AuthGiteeRequest.java:34)\n at me.zhyd.oauth.request.AuthDefaultRequest.login(AuthDefaultRequest.java:80)\n at cn.iocoder.yudao.module.monster.service.star.GitUserServiceImpl.getAuthUser(GitUserServiceImpl.java:42)\n at cn.iocoder.yudao.module.monster.controller.app.star.AppGitUserController.test(AppGitUserController.java:38)\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)\n ... 123 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1082, 0, NULL, 0, NULL, '2022-03-23 00:02:39', NULL, '2022-03-23 00:02:39', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (327, '', 0, 0, 'yudao-admin-server', 'POST', '/app-api/monster/git-user/social-login2', '{\"query\":{\"redirectUri\":\"http%3A%2F%2F127.0.0.1%3A8080%3Ftype%3D10%26redirect%3Dhttp%3A%2F%2F127.0.0.1%3A8080%2Fintro%2F\",\"code\":\"82d2ba240513438c688776c2bbfa2d8f092e4f88e33af6d95ba3b59a6c0bcbca\",\"type\":\"10\"},\"body\":\"\"}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-23 00:02:40', 'org.springframework.web.util.NestedServletException', 'NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: okhttp3.RequestBody.create(Ljava/lang/String;Lokhttp3/MediaType;)Lokhttp3/RequestBody;', 'NoSuchMethodError: okhttp3.RequestBody.create(Ljava/lang/String;Lokhttp3/MediaType;)Lokhttp3/RequestBody;', 'org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: okhttp3.RequestBody.create(Ljava/lang/String;Lokhttp3/MediaType;)Lokhttp3/RequestBody;\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1082)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at cn.iocoder.yudao.framework.security.core.filter.JWTAuthenticationTokenFilter.doFilterInternal(JWTAuthenticationTokenFilter.java:60)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.apilog.core.filter.ApiAccessLogFilter.doFilterInternal(ApiAccessLogFilter.java:63)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:32)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n at java.lang.Thread.run(Thread.java:748)\nCaused by: java.lang.NoSuchMethodError: okhttp3.RequestBody.create(Ljava/lang/String;Lokhttp3/MediaType;)Lokhttp3/RequestBody;\n at com.xkcoding.http.support.okhttp3.OkHttp3Impl.post(OkHttp3Impl.java:177)\n at com.xkcoding.http.support.okhttp3.OkHttp3Impl.post(OkHttp3Impl.java:161)\n at com.xkcoding.http.support.okhttp3.OkHttp3Impl.post(OkHttp3Impl.java:149)\n at com.xkcoding.http.HttpUtil.post(HttpUtil.java:141)\n at me.zhyd.oauth.utils.HttpUtils.post(HttpUtils.java:55)\n at me.zhyd.oauth.request.AuthDefaultRequest.doPostAuthorizationCode(AuthDefaultRequest.java:214)\n at me.zhyd.oauth.request.AuthGiteeRequest.getAccessToken(AuthGiteeRequest.java:34)\n at me.zhyd.oauth.request.AuthDefaultRequest.login(AuthDefaultRequest.java:80)\n at cn.iocoder.yudao.module.monster.service.star.GitUserServiceImpl.getAuthUser(GitUserServiceImpl.java:42)\n at cn.iocoder.yudao.module.monster.controller.app.star.AppGitUserController.test(AppGitUserController.java:38)\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)\n ... 123 more\n', 'org.springframework.web.servlet.DispatcherServlet', 'DispatcherServlet.java', 'doDispatch', 1082, 0, NULL, 0, NULL, '2022-03-23 00:02:40', NULL, '2022-03-23 00:02:40', b'0', 0); +INSERT INTO `infra_api_error_log` VALUES (328, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/operate-log/export', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-26 20:31:44', 'com.alibaba.excel.exception.ExcelGenerateException', 'ExcelGenerateException: java.lang.ExceptionInInitializerError', 'InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not \"opens java.lang\" to unnamed module @59402b8f', 'com.alibaba.excel.exception.ExcelGenerateException: java.lang.ExceptionInInitializerError\n at com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:64)\n at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:161)\n at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:146)\n at com.alibaba.excel.write.builder.ExcelWriterSheetBuilder.doWrite(ExcelWriterSheetBuilder.java:61)\n at cn.iocoder.yudao.framework.excel.core.util.ExcelUtils.write(ExcelUtils.java:36)\n at cn.iocoder.yudao.module.system.controller.admin.logger.OperateLogController.exportOperateLog(OperateLogController.java:82)\n at cn.iocoder.yudao.module.system.controller.admin.logger.OperateLogController$$FastClassBySpringCGLIB$$d7cac0f0.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:96)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:77)\n at jdk.internal.reflect.GeneratedMethodAccessor317.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)\n at cn.iocoder.yudao.module.system.controller.admin.logger.OperateLogController$$EnhancerBySpringCGLIB$$645803a5.exportOperateLog()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:655)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:98)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at cn.iocoder.yudao.framework.security.core.filter.JWTAuthenticationTokenFilter.doFilterInternal(JWTAuthenticationTokenFilter.java:60)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:32)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n at java.base/java.lang.Thread.run(Thread.java:833)\nCaused by: java.lang.ExceptionInInitializerError\n at net.sf.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:166)\n at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)\n at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)\n at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:144)\n at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:116)\n at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)\n at net.sf.cglib.beans.BeanMap$Generator.(BeanMap.java:64)\n at net.sf.cglib.beans.BeanMap.create(BeanMap.java:56)\n at com.alibaba.excel.write.executor.ExcelWriteAddExecutor.addJavaObjectToExcel(ExcelWriteAddExecutor.java:119)\n at com.alibaba.excel.write.executor.ExcelWriteAddExecutor.addOneRowOfDataToExcel(ExcelWriteAddExecutor.java:72)\n at com.alibaba.excel.write.executor.ExcelWriteAddExecutor.add(ExcelWriteAddExecutor.java:56)\n at com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:58)\n ... 165 more\nCaused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not \"opens java.lang\" to unnamed module @59402b8f\n at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)\n at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)\n at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199)\n at java.base/java.lang.reflect.Method.setAccessible(Method.java:193)\n at net.sf.cglib.core.ReflectUtils$2.run(ReflectUtils.java:56)\n at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)\n at net.sf.cglib.core.ReflectUtils.(ReflectUtils.java:46)\n ... 177 more\n', 'com.alibaba.excel.write.ExcelBuilderImpl', 'ExcelBuilderImpl.java', 'addContent', 64, 0, NULL, 0, NULL, '2022-03-26 20:31:44', NULL, '2022-03-26 20:31:44', b'0', 1); +INSERT INTO `infra_api_error_log` VALUES (329, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/operate-log/export', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-26 20:31:53', 'com.alibaba.excel.exception.ExcelGenerateException', 'ExcelGenerateException: java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.beans.BeanMap$Generator', 'NoClassDefFoundError: Could not initialize class net.sf.cglib.beans.BeanMap$Generator', 'com.alibaba.excel.exception.ExcelGenerateException: java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.beans.BeanMap$Generator\n at com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:64)\n at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:161)\n at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:146)\n at com.alibaba.excel.write.builder.ExcelWriterSheetBuilder.doWrite(ExcelWriterSheetBuilder.java:61)\n at cn.iocoder.yudao.framework.excel.core.util.ExcelUtils.write(ExcelUtils.java:36)\n at cn.iocoder.yudao.module.system.controller.admin.logger.OperateLogController.exportOperateLog(OperateLogController.java:82)\n at cn.iocoder.yudao.module.system.controller.admin.logger.OperateLogController$$FastClassBySpringCGLIB$$d7cac0f0.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:96)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:77)\n at jdk.internal.reflect.GeneratedMethodAccessor317.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)\n at cn.iocoder.yudao.module.system.controller.admin.logger.OperateLogController$$EnhancerBySpringCGLIB$$645803a5.exportOperateLog()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:655)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:98)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at cn.iocoder.yudao.framework.security.core.filter.JWTAuthenticationTokenFilter.doFilterInternal(JWTAuthenticationTokenFilter.java:60)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:32)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n at java.base/java.lang.Thread.run(Thread.java:833)\nCaused by: java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.beans.BeanMap$Generator\n at net.sf.cglib.beans.BeanMap.create(BeanMap.java:56)\n at com.alibaba.excel.write.executor.ExcelWriteAddExecutor.addJavaObjectToExcel(ExcelWriteAddExecutor.java:119)\n at com.alibaba.excel.write.executor.ExcelWriteAddExecutor.addOneRowOfDataToExcel(ExcelWriteAddExecutor.java:72)\n at com.alibaba.excel.write.executor.ExcelWriteAddExecutor.add(ExcelWriteAddExecutor.java:56)\n at com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:58)\n ... 165 more\n', 'com.alibaba.excel.write.ExcelBuilderImpl', 'ExcelBuilderImpl.java', 'addContent', 64, 0, NULL, 0, NULL, '2022-03-26 20:31:53', NULL, '2022-03-26 20:31:53', b'0', 1); +INSERT INTO `infra_api_error_log` VALUES (330, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/operate-log/export', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\"},\"body\":\"\"}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-26 20:33:30', 'com.alibaba.excel.exception.ExcelGenerateException', 'ExcelGenerateException: java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.beans.BeanMap$Generator', 'NoClassDefFoundError: Could not initialize class net.sf.cglib.beans.BeanMap$Generator', 'com.alibaba.excel.exception.ExcelGenerateException: java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.beans.BeanMap$Generator\n at com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:64)\n at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:161)\n at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:146)\n at com.alibaba.excel.write.builder.ExcelWriterSheetBuilder.doWrite(ExcelWriterSheetBuilder.java:61)\n at cn.iocoder.yudao.framework.excel.core.util.ExcelUtils.write(ExcelUtils.java:36)\n at cn.iocoder.yudao.module.system.controller.admin.logger.OperateLogController.exportOperateLog(OperateLogController.java:82)\n at cn.iocoder.yudao.module.system.controller.admin.logger.OperateLogController$$FastClassBySpringCGLIB$$d7cac0f0.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:96)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:77)\n at jdk.internal.reflect.GeneratedMethodAccessor317.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)\n at cn.iocoder.yudao.module.system.controller.admin.logger.OperateLogController$$EnhancerBySpringCGLIB$$645803a5.exportOperateLog()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:655)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:98)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at cn.iocoder.yudao.framework.security.core.filter.JWTAuthenticationTokenFilter.doFilterInternal(JWTAuthenticationTokenFilter.java:60)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:32)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n at java.base/java.lang.Thread.run(Thread.java:833)\nCaused by: java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.beans.BeanMap$Generator\n at net.sf.cglib.beans.BeanMap.create(BeanMap.java:56)\n at com.alibaba.excel.write.executor.ExcelWriteAddExecutor.addJavaObjectToExcel(ExcelWriteAddExecutor.java:119)\n at com.alibaba.excel.write.executor.ExcelWriteAddExecutor.addOneRowOfDataToExcel(ExcelWriteAddExecutor.java:72)\n at com.alibaba.excel.write.executor.ExcelWriteAddExecutor.add(ExcelWriteAddExecutor.java:56)\n at com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:58)\n ... 165 more\n', 'com.alibaba.excel.write.ExcelBuilderImpl', 'ExcelBuilderImpl.java', 'addContent', 64, 0, NULL, 0, NULL, '2022-03-26 20:33:30', NULL, '2022-03-26 20:33:30', b'0', 1); +INSERT INTO `infra_api_error_log` VALUES (331, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/system/operate-log/export', '{\"query\":{\"pageNo\":\"1\",\"pageSize\":\"10\",\"beginTime\":\"2022-03-26 00:00:00\",\"endTime\":\"2022-03-26 23:59:59\"},\"body\":\"\"}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', '2022-03-26 20:34:32', 'com.alibaba.excel.exception.ExcelGenerateException', 'ExcelGenerateException: java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.beans.BeanMap$Generator', 'NoClassDefFoundError: Could not initialize class net.sf.cglib.beans.BeanMap$Generator', 'com.alibaba.excel.exception.ExcelGenerateException: java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.beans.BeanMap$Generator\n at com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:64)\n at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:161)\n at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:146)\n at com.alibaba.excel.write.builder.ExcelWriterSheetBuilder.doWrite(ExcelWriterSheetBuilder.java:61)\n at cn.iocoder.yudao.framework.excel.core.util.ExcelUtils.write(ExcelUtils.java:36)\n at cn.iocoder.yudao.module.system.controller.admin.logger.OperateLogController.exportOperateLog(OperateLogController.java:82)\n at cn.iocoder.yudao.module.system.controller.admin.logger.OperateLogController$$FastClassBySpringCGLIB$$d7cac0f0.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:96)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:77)\n at jdk.internal.reflect.GeneratedMethodAccessor317.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)\n at cn.iocoder.yudao.module.system.controller.admin.logger.OperateLogController$$EnhancerBySpringCGLIB$$645803a5.exportOperateLog()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:655)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:98)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at cn.iocoder.yudao.framework.security.core.filter.JWTAuthenticationTokenFilter.doFilterInternal(JWTAuthenticationTokenFilter.java:60)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:32)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n at java.base/java.lang.Thread.run(Thread.java:833)\nCaused by: java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.beans.BeanMap$Generator\n at net.sf.cglib.beans.BeanMap.create(BeanMap.java:56)\n at com.alibaba.excel.write.executor.ExcelWriteAddExecutor.addJavaObjectToExcel(ExcelWriteAddExecutor.java:119)\n at com.alibaba.excel.write.executor.ExcelWriteAddExecutor.addOneRowOfDataToExcel(ExcelWriteAddExecutor.java:72)\n at com.alibaba.excel.write.executor.ExcelWriteAddExecutor.add(ExcelWriteAddExecutor.java:56)\n at com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:58)\n ... 165 more\n', 'com.alibaba.excel.write.ExcelBuilderImpl', 'ExcelBuilderImpl.java', 'addContent', 64, 0, NULL, 0, NULL, '2022-03-26 20:34:32', NULL, '2022-03-26 20:34:32', b'0', 1); +INSERT INTO `infra_api_error_log` VALUES (332, '', 1, 2, 'yudao-admin-server', 'POST', '/admin-api/system/permission/assign-role-menu', '{\"query\":{},\"body\":\"{\\\"roleId\\\":101,\\\"menuIds\\\":[2,115,1056,1058,1057,1059,1060,1070,1071,1072,1073,1074,114,116,1076,1243,1237,1238,1239,1240,1241,1242,1090,1091,1092,106,1031,1032,1033,1034,1035,1083,1078,1088,1082,1084,1089,1085,1086,111,113,1066,1067,112,110,1087,1050,1051,1052,1053,1054,1075,1077,1116,1185,1186,1187,1188,1189,1190,1191,1192,1209,1210,1211,1212,1213,1193,1194,1195,1196,1197,1198,1199,1215,1216,1217,1218,1200,1201,1202,1219,1220,1207,1221,1222,1208,5,1118,1119,1120]}\"}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-01 21:34:12', 'org.apache.ibatis.binding.BindingException', 'BindingException: Invalid bound statement (not found): cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMenuMapper.insertBatchSomeColumn', 'BindingException: Invalid bound statement (not found): cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMenuMapper.insertBatchSomeColumn', 'org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMenuMapper.insertBatchSomeColumn\n at org.apache.ibatis.binding.MapperMethod$SqlCommand.(MapperMethod.java:235)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.(MybatisMapperMethod.java:50)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.lambda$cachedInvoker$0(MybatisMapperProxy.java:111)\n at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660)\n at com.baomidou.mybatisplus.core.toolkit.CollectionUtils.computeIfAbsent(CollectionUtils.java:115)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.cachedInvoker(MybatisMapperProxy.java:98)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy146.insertBatchSomeColumn(Unknown Source)\n at cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMenuMapper.insertList(RoleMenuMapper.java:28)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy146.insertList(Unknown Source)\n at cn.iocoder.yudao.module.system.service.permission.PermissionServiceImpl.assignRoleMenu(PermissionServiceImpl.java:205)\n at cn.iocoder.yudao.module.system.service.permission.PermissionServiceImpl$$FastClassBySpringCGLIB$$419a0207.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)\n at cn.iocoder.yudao.module.system.service.permission.PermissionServiceImpl$$EnhancerBySpringCGLIB$$48cec037.assignRoleMenu()\n at cn.iocoder.yudao.module.system.controller.admin.permission.PermissionController.assignRoleMenu(PermissionController.java:55)\n at cn.iocoder.yudao.module.system.controller.admin.permission.PermissionController$$FastClassBySpringCGLIB$$51ffb700.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:96)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:77)\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)\n at cn.iocoder.yudao.module.system.controller.admin.permission.PermissionController$$EnhancerBySpringCGLIB$$a35dd17f.assignRoleMenu()\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:98)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at cn.iocoder.yudao.framework.security.core.filter.JWTAuthenticationTokenFilter.doFilterInternal(JWTAuthenticationTokenFilter.java:60)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:32)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n at java.lang.Thread.run(Thread.java:748)\n', 'org.apache.ibatis.binding.MapperMethod$SqlCommand', 'MapperMethod.java', '', 235, 0, NULL, 0, NULL, '2022-04-01 21:34:12', NULL, '2022-04-01 21:34:12', b'0', 1); +INSERT INTO `infra_api_error_log` VALUES (333, '', 1, 2, 'yudao-admin-server', 'POST', '/admin-api/system/permission/assign-role-menu', '{\"query\":{},\"body\":\"{\\\"roleId\\\":101,\\\"menuIds\\\":[2,115,1056,1058,1057,1059,1060,1070,1071,1072,1073,1074,114,116,1076,1243,1237,1238,1239,1240,1241,1242,1090,1091,1092,106,1031,1032,1033,1034,1035,1083,1078,1088,1082,1084,1089,1085,1086,111,113,1066,1067,112,110,1087,1050,1051,1052,1053,1054,1075,1077,1116,1185,1186,1187,1188,1189,1190,1191,1192,1209,1210,1211,1212,1213,1193,1194,1195,1196,1197,1198,1199,1215,1216,1217,1218,1200,1201,1202,1219,1220,1207,1221,1222,1208,5,1118,1119,1120]}\"}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-01 21:37:02', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \n### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMenuMapper.java (best guess)\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMenuMapper.insertBatchSomeColumn-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO system_role_menu (role_id, menu_id, tenant_id, create_time, update_time, creator, updater, deleted) VALUES (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?)\n### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null\n; Column \'tenant_id\' cannot be null; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null', 'MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null', 'org.springframework.dao.DataIntegrityViolationException: \n### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMenuMapper.java (best guess)\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMenuMapper.insertBatchSomeColumn-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO system_role_menu (role_id, menu_id, tenant_id, create_time, update_time, creator, updater, deleted) VALUES (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?)\n### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null\n; Column \'tenant_id\' cannot be null; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null\n at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:87)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:79)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy137.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy146.insertBatchSomeColumn(Unknown Source)\n at cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMenuMapper.insertList(RoleMenuMapper.java:28)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy146.insertList(Unknown Source)\n at cn.iocoder.yudao.module.system.service.permission.PermissionServiceImpl.assignRoleMenu(PermissionServiceImpl.java:205)\n at cn.iocoder.yudao.module.system.service.permission.PermissionServiceImpl$$FastClassBySpringCGLIB$$419a0207.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)\n at cn.iocoder.yudao.module.system.service.permission.PermissionServiceImpl$$EnhancerBySpringCGLIB$$db3bd404.assignRoleMenu()\n at cn.iocoder.yudao.module.system.controller.admin.permission.PermissionController.assignRoleMenu(PermissionController.java:55)\n at cn.iocoder.yudao.module.system.controller.admin.permission.PermissionController$$FastClassBySpringCGLIB$$51ffb700.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:96)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:77)\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)\n at cn.iocoder.yudao.module.system.controller.admin.permission.PermissionController$$EnhancerBySpringCGLIB$$70e99649.assignRoleMenu()\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:98)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at cn.iocoder.yudao.framework.security.core.filter.JWTAuthenticationTokenFilter.doFilterInternal(JWTAuthenticationTokenFilter.java:60)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:32)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n at java.lang.Thread.run(Thread.java:748)\nCaused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null\n at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)\n at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)\n at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)\n at java.lang.reflect.Constructor.newInstance(Constructor.java:423)\n at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)\n at com.mysql.jdbc.Util.getInstance(Util.java:408)\n at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)\n at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3976)\n at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3912)\n at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2530)\n at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683)\n at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2486)\n at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)\n at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1197)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3461)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:497)\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy159.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy157.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy156.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 187 more\n', 'org.springframework.jdbc.support.SQLExceptionSubclassTranslator', 'SQLExceptionSubclassTranslator.java', 'doTranslate', 87, 0, NULL, 0, NULL, '2022-04-01 21:37:02', NULL, '2022-04-01 21:37:02', b'0', 1); +INSERT INTO `infra_api_error_log` VALUES (334, '', 1, 2, 'yudao-admin-server', 'POST', '/admin-api/system/permission/assign-role-menu', '{\"query\":{},\"body\":\"{\\\"roleId\\\":101,\\\"menuIds\\\":[2,115,1056,1058,1057,1059,1060,1070,1071,1072,1073,1074,114,116,1076,1243,1237,1238,1239,1240,1241,1242,1090,1091,1092,106,1031,1032,1033,1034,1035,1083,1078,1088,1082,1084,1089,1085,1086,111,113,1066,1067,112,110,1087,1050,1051,1052,1053,1054,1075,1077,1116,1185,1186,1187,1188,1189,1190,1191,1192,1209,1210,1211,1212,1213,1193,1194,1195,1196,1197,1198,1199,1215,1216,1217,1218,1200,1201,1202,1219,1220,1207,1221,1222,1208,5,1118,1119,1120]}\"}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-01 21:37:48', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \n### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMenuMapper.java (best guess)\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMenuMapper.insertBatchSomeColumn-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO system_role_menu (role_id, menu_id, tenant_id, create_time, update_time, creator, updater, deleted) VALUES (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?)\n### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null\n; Column \'tenant_id\' cannot be null; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null', 'MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null', 'org.springframework.dao.DataIntegrityViolationException: \n### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMenuMapper.java (best guess)\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMenuMapper.insertBatchSomeColumn-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO system_role_menu (role_id, menu_id, tenant_id, create_time, update_time, creator, updater, deleted) VALUES (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?)\n### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null\n; Column \'tenant_id\' cannot be null; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null\n at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:87)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:79)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy137.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy146.insertBatchSomeColumn(Unknown Source)\n at cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMenuMapper.insertList(RoleMenuMapper.java:28)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy146.insertList(Unknown Source)\n at cn.iocoder.yudao.module.system.service.permission.PermissionServiceImpl.assignRoleMenu(PermissionServiceImpl.java:205)\n at cn.iocoder.yudao.module.system.service.permission.PermissionServiceImpl$$FastClassBySpringCGLIB$$419a0207.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)\n at cn.iocoder.yudao.module.system.service.permission.PermissionServiceImpl$$EnhancerBySpringCGLIB$$db3bd404.assignRoleMenu()\n at cn.iocoder.yudao.module.system.controller.admin.permission.PermissionController.assignRoleMenu(PermissionController.java:55)\n at cn.iocoder.yudao.module.system.controller.admin.permission.PermissionController$$FastClassBySpringCGLIB$$51ffb700.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:96)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:77)\n at sun.reflect.GeneratedMethodAccessor305.invoke(Unknown Source)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)\n at cn.iocoder.yudao.module.system.controller.admin.permission.PermissionController$$EnhancerBySpringCGLIB$$70e99649.assignRoleMenu()\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:98)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at cn.iocoder.yudao.framework.security.core.filter.JWTAuthenticationTokenFilter.doFilterInternal(JWTAuthenticationTokenFilter.java:60)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:32)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n at java.lang.Thread.run(Thread.java:748)\nCaused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null\n at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)\n at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)\n at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)\n at java.lang.reflect.Constructor.newInstance(Constructor.java:423)\n at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)\n at com.mysql.jdbc.Util.getInstance(Util.java:408)\n at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)\n at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3976)\n at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3912)\n at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2530)\n at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683)\n at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2486)\n at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)\n at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1197)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3461)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:497)\n at sun.reflect.GeneratedMethodAccessor249.invoke(Unknown Source)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy159.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy157.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy156.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 186 more\n', 'org.springframework.jdbc.support.SQLExceptionSubclassTranslator', 'SQLExceptionSubclassTranslator.java', 'doTranslate', 87, 0, NULL, 0, NULL, '2022-04-01 21:37:48', NULL, '2022-04-01 21:37:48', b'0', 1); +INSERT INTO `infra_api_error_log` VALUES (335, '', 1, 2, 'yudao-admin-server', 'POST', '/admin-api/system/permission/assign-role-menu', '{\"query\":{},\"body\":\"{\\\"roleId\\\":101,\\\"menuIds\\\":[2,115,1056,1058,1057,1059,1060,1070,1071,1072,1073,1074,114,116,1076,1243,1237,1238,1239,1240,1241,1242,1090,1091,1092,106,1031,1032,1033,1034,1035,1083,1078,1088,1082,1084,1089,1085,1086,111,113,1066,1067,112,110,1087,1050,1051,1052,1053,1054,1075,1077,1116,1185,1186,1187,1188,1189,1190,1191,1192,1209,1210,1211,1212,1213,1193,1194,1195,1196,1197,1198,1199,1215,1216,1217,1218,1200,1201,1202,1219,1220,1207,1221,1222,1208,5,1118,1119,1120]}\"}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-01 21:42:41', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \n### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMenuMapper.java (best guess)\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMenuMapper.insertBatchSomeColumn-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO system_role_menu (role_id, menu_id, tenant_id, create_time, update_time, creator, updater, deleted) VALUES (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?)\n### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null\n; Column \'tenant_id\' cannot be null; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null', 'MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null', 'org.springframework.dao.DataIntegrityViolationException: \n### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMenuMapper.java (best guess)\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMenuMapper.insertBatchSomeColumn-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO system_role_menu (role_id, menu_id, tenant_id, create_time, update_time, creator, updater, deleted) VALUES (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?)\n### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null\n; Column \'tenant_id\' cannot be null; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null\n at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:87)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:79)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy137.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy146.insertBatchSomeColumn(Unknown Source)\n at cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMenuMapper.insertList(RoleMenuMapper.java:28)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy146.insertList(Unknown Source)\n at cn.iocoder.yudao.module.system.service.permission.PermissionServiceImpl.assignRoleMenu(PermissionServiceImpl.java:205)\n at cn.iocoder.yudao.module.system.service.permission.PermissionServiceImpl$$FastClassBySpringCGLIB$$419a0207.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)\n at cn.iocoder.yudao.module.system.service.permission.PermissionServiceImpl$$EnhancerBySpringCGLIB$$db3bd404.assignRoleMenu()\n at cn.iocoder.yudao.module.system.controller.admin.permission.PermissionController.assignRoleMenu(PermissionController.java:55)\n at cn.iocoder.yudao.module.system.controller.admin.permission.PermissionController$$FastClassBySpringCGLIB$$51ffb700.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:96)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:77)\n at sun.reflect.GeneratedMethodAccessor305.invoke(Unknown Source)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)\n at cn.iocoder.yudao.module.system.controller.admin.permission.PermissionController$$EnhancerBySpringCGLIB$$70e99649.assignRoleMenu()\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:98)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at cn.iocoder.yudao.framework.security.core.filter.JWTAuthenticationTokenFilter.doFilterInternal(JWTAuthenticationTokenFilter.java:60)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:32)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n at java.lang.Thread.run(Thread.java:748)\nCaused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null\n at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)\n at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)\n at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)\n at java.lang.reflect.Constructor.newInstance(Constructor.java:423)\n at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)\n at com.mysql.jdbc.Util.getInstance(Util.java:408)\n at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)\n at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3976)\n at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3912)\n at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2530)\n at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683)\n at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2486)\n at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)\n at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1197)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3461)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:497)\n at sun.reflect.GeneratedMethodAccessor249.invoke(Unknown Source)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy159.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy157.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy156.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 186 more\n', 'org.springframework.jdbc.support.SQLExceptionSubclassTranslator', 'SQLExceptionSubclassTranslator.java', 'doTranslate', 87, 0, NULL, 0, NULL, '2022-04-01 21:42:41', NULL, '2022-04-01 21:42:41', b'0', 1); +INSERT INTO `infra_api_error_log` VALUES (336, '', 1, 2, 'yudao-admin-server', 'POST', '/admin-api/system/permission/assign-role-menu', '{\"query\":{},\"body\":\"{\\\"roleId\\\":101,\\\"menuIds\\\":[2,115,1056,1058,1057,1059,1060,1070,1071,1072,1073,1074,114,116,1076,1243,1237,1238,1239,1240,1241,1242,1090,1091,1092,106,1031,1032,1033,1034,1035,1083,1078,1088,1082,1084,1089,1085,1086,111,113,1066,1067,112,110,1087,1050,1051,1052,1053,1054,1075,1077,1116,1185,1186,1187,1188,1189,1190,1191,1192,1209,1210,1211,1212,1213,1193,1194,1195,1196,1197,1198,1199,1215,1216,1217,1218,1200,1201,1202,1219,1220,1207,1221,1222,1208,5,1118,1119,1120]}\"}', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', '2022-04-01 21:42:53', 'org.springframework.dao.DataIntegrityViolationException', 'DataIntegrityViolationException: \n### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMenuMapper.java (best guess)\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMenuMapper.insertBatchSomeColumn-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO system_role_menu (role_id, menu_id, tenant_id, create_time, update_time, creator, updater, deleted) VALUES (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?)\n### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null\n; Column \'tenant_id\' cannot be null; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null', 'MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null', 'org.springframework.dao.DataIntegrityViolationException: \n### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null\n### The error may exist in cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMenuMapper.java (best guess)\n### The error may involve cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMenuMapper.insertBatchSomeColumn-Inline\n### The error occurred while setting parameters\n### SQL: INSERT INTO system_role_menu (role_id, menu_id, tenant_id, create_time, update_time, creator, updater, deleted) VALUES (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?, ?)\n### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null\n; Column \'tenant_id\' cannot be null; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null\n at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:87)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:79)\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)\n at com.sun.proxy.$Proxy137.insert(Unknown Source)\n at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy146.insertBatchSomeColumn(Unknown Source)\n at cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMenuMapper.insertList(RoleMenuMapper.java:28)\n at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$DefaultMethodInvoker.invoke(MybatisMapperProxy.java:162)\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\n at com.sun.proxy.$Proxy146.insertList(Unknown Source)\n at cn.iocoder.yudao.module.system.service.permission.PermissionServiceImpl.assignRoleMenu(PermissionServiceImpl.java:205)\n at cn.iocoder.yudao.module.system.service.permission.PermissionServiceImpl$$FastClassBySpringCGLIB$$419a0207.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)\n at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)\n at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)\n at cn.iocoder.yudao.module.system.service.permission.PermissionServiceImpl$$EnhancerBySpringCGLIB$$db3bd404.assignRoleMenu()\n at cn.iocoder.yudao.module.system.controller.admin.permission.PermissionController.assignRoleMenu(PermissionController.java:55)\n at cn.iocoder.yudao.module.system.controller.admin.permission.PermissionController$$FastClassBySpringCGLIB$$51ffb700.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:96)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:77)\n at sun.reflect.GeneratedMethodAccessor305.invoke(Unknown Source)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)\n at cn.iocoder.yudao.module.system.controller.admin.permission.PermissionController$$EnhancerBySpringCGLIB$$70e99649.assignRoleMenu()\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:98)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at cn.iocoder.yudao.framework.security.core.filter.JWTAuthenticationTokenFilter.doFilterInternal(JWTAuthenticationTokenFilter.java:60)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:32)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.web.core.filter.CacheRequestBodyFilter.doFilterInternal(CacheRequestBodyFilter.java:22)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n at java.lang.Thread.run(Thread.java:748)\nCaused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null\n at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)\n at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)\n at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)\n at java.lang.reflect.Constructor.newInstance(Constructor.java:423)\n at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)\n at com.mysql.jdbc.Util.getInstance(Util.java:408)\n at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)\n at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3976)\n at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3912)\n at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2530)\n at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683)\n at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2486)\n at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)\n at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1197)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3461)\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:497)\n at sun.reflect.GeneratedMethodAccessor249.invoke(Unknown Source)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\n at com.sun.proxy.$Proxy159.execute(Unknown Source)\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)\n at com.sun.proxy.$Proxy157.update(Unknown Source)\n at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\n at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)\n at com.sun.proxy.$Proxy156.update(Unknown Source)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)\n at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)\n ... 186 more\n', 'org.springframework.jdbc.support.SQLExceptionSubclassTranslator', 'SQLExceptionSubclassTranslator.java', 'doTranslate', 87, 0, NULL, 0, NULL, '2022-04-01 21:42:53', NULL, '2022-04-01 21:42:53', b'0', 1); +INSERT INTO `infra_api_error_log` VALUES (337, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/infra/test-demo/get', '{\"query\":{\"id\":\"106\"},\"body\":\"\"}', '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', '2022-04-03 09:50:26', 'java.lang.IllegalStateException', 'IllegalStateException: No cache could be resolved for \'Builder[public cn.iocoder.yudao.module.infra.dal.dataobject.test.TestDemoDO cn.iocoder.yudao.module.infra.service.test.TestDemoServiceImpl.getTestDemo(java.lang.Long)] caches=[] | key=\'\'test:\' + #id\' | keyGenerator=\'\' | cacheManager=\'\' | cacheResolver=\'\' | condition=\'\' | unless=\'\' | sync=\'false\'\' using resolver \'org.springframework.cache.interceptor.SimpleCacheResolver@2fe3dda5\'. At least one cache should be provided per cache operation.', 'IllegalStateException: No cache could be resolved for \'Builder[public cn.iocoder.yudao.module.infra.dal.dataobject.test.TestDemoDO cn.iocoder.yudao.module.infra.service.test.TestDemoServiceImpl.getTestDemo(java.lang.Long)] caches=[] | key=\'\'test:\' + #id\' | keyGenerator=\'\' | cacheManager=\'\' | cacheResolver=\'\' | condition=\'\' | unless=\'\' | sync=\'false\'\' using resolver \'org.springframework.cache.interceptor.SimpleCacheResolver@2fe3dda5\'. At least one cache should be provided per cache operation.', 'java.lang.IllegalStateException: No cache could be resolved for \'Builder[public cn.iocoder.yudao.module.infra.dal.dataobject.test.TestDemoDO cn.iocoder.yudao.module.infra.service.test.TestDemoServiceImpl.getTestDemo(java.lang.Long)] caches=[] | key=\'\'test:\' + #id\' | keyGenerator=\'\' | cacheManager=\'\' | cacheResolver=\'\' | condition=\'\' | unless=\'\' | sync=\'false\'\' using resolver \'org.springframework.cache.interceptor.SimpleCacheResolver@2fe3dda5\'. At least one cache should be provided per cache operation.\n at org.springframework.cache.interceptor.CacheAspectSupport.getCaches(CacheAspectSupport.java:255)\n at org.springframework.cache.interceptor.CacheAspectSupport$CacheOperationContext.(CacheAspectSupport.java:724)\n at org.springframework.cache.interceptor.CacheAspectSupport.getOperationContext(CacheAspectSupport.java:265)\n at org.springframework.cache.interceptor.CacheAspectSupport$CacheOperationContexts.(CacheAspectSupport.java:615)\n at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:345)\n at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:64)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)\n at cn.iocoder.yudao.module.infra.service.test.TestDemoServiceImpl$$EnhancerBySpringCGLIB$$756c8393.getTestDemo()\n at cn.iocoder.yudao.module.infra.controller.admin.test.TestDemoController.getTestDemo(TestDemoController.java:65)\n at cn.iocoder.yudao.module.infra.controller.admin.test.TestDemoController$$FastClassBySpringCGLIB$$a44aec12.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:96)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:77)\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)\n at cn.iocoder.yudao.module.infra.controller.admin.test.TestDemoController$$EnhancerBySpringCGLIB$$b6cc7115.getTestDemo()\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:655)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:98)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at cn.iocoder.yudao.framework.security.core.filter.JWTAuthenticationTokenFilter.doFilterInternal(JWTAuthenticationTokenFilter.java:60)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:32)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n at java.lang.Thread.run(Thread.java:748)\n', 'org.springframework.cache.interceptor.CacheAspectSupport', 'CacheAspectSupport.java', 'getCaches', 255, 0, NULL, 0, NULL, '2022-04-03 09:50:26', NULL, '2022-04-03 09:50:26', b'0', 1); +INSERT INTO `infra_api_error_log` VALUES (338, '', 1, 2, 'yudao-admin-server', 'GET', '/admin-api/infra/test-demo/get', '{\"query\":{\"id\":\"106\"},\"body\":\"\"}', '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', '2022-04-03 10:15:43', 'org.springframework.data.redis.serializer.SerializationException', 'SerializationException: Could not read JSON: Unexpected character (\'¬\' (code 172)): expected a valid value (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (byte[])\"��\0sr\0)\n at cn.iocoder.yudao.module.infra.controller.admin.test.TestDemoController.getTestDemo(TestDemoController.java:66)\n at cn.iocoder.yudao.module.infra.controller.admin.test.TestDemoController$$FastClassBySpringCGLIB$$a44aec12.invoke()\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:96)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:77)\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)\n at cn.iocoder.yudao.module.infra.controller.admin.test.TestDemoController$$EnhancerBySpringCGLIB$$7b7c3d09.getTestDemo()\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:655)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:98)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at cn.iocoder.yudao.framework.security.core.filter.JWTAuthenticationTokenFilter.doFilterInternal(JWTAuthenticationTokenFilter.java:60)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:32)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n at java.lang.Thread.run(Thread.java:748)\nCaused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character (\'¬\' (code 172)): expected a valid value (JSON String, Number, Array, Object or token \'null\', \'true\' or \'false\')\n at [Source: (byte[])\"��\0sr\0)\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:123)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around0(OperateLogAspect.java:96)\n at cn.iocoder.yudao.framework.operatelog.core.aop.OperateLogAspect.around(OperateLogAspect.java:77)\n at jdk.internal.reflect.GeneratedMethodAccessor316.invoke(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)\n at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)\n at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)\n at cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController$$EnhancerBySpringCGLIB$$731b1f49.exportSensitiveWordExcel()\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)\n at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.base/java.lang.reflect.Method.invoke(Method.java:568)\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:655)\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at de.codecentric.boot.admin.server.ui.web.servlet.HomepageForwardingFilter.doFilter(HomepageForwardingFilter.java:78)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:111)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.flowable.core.web.FlowableWebFilter.doFilterInternal(FlowableWebFilter.java:29)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.security.TenantSecurityWebFilter.doFilterInternal(TenantSecurityWebFilter.java:98)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at cn.iocoder.yudao.framework.security.core.filter.JWTAuthenticationTokenFilter.doFilterInternal(JWTAuthenticationTokenFilter.java:60)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.apilog.core.filter.ApiAccessLogFilter.doFilterInternal(ApiAccessLogFilter.java:57)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter.doFilterInternal(TenantContextWebFilter.java:32)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at cn.iocoder.yudao.framework.tracer.core.filter.TraceFilter.doFilterInternal(TraceFilter.java:30)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\n at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n at java.base/java.lang.Thread.run(Thread.java:833)\nCaused by: java.lang.ExceptionInInitializerError\n at net.sf.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:166)\n at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)\n at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)\n at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:144)\n at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:116)\n at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)\n at net.sf.cglib.beans.BeanMap$Generator.(BeanMap.java:64)\n at net.sf.cglib.beans.BeanMap.create(BeanMap.java:56)\n at com.alibaba.excel.write.executor.ExcelWriteAddExecutor.addJavaObjectToExcel(ExcelWriteAddExecutor.java:119)\n at com.alibaba.excel.write.executor.ExcelWriteAddExecutor.addOneRowOfDataToExcel(ExcelWriteAddExecutor.java:72)\n at com.alibaba.excel.write.executor.ExcelWriteAddExecutor.add(ExcelWriteAddExecutor.java:56)\n at com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:58)\n ... 166 more\nCaused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not \"opens java.lang\" to unnamed module @6be968ce\n at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)\n at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)\n at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199)\n at java.base/java.lang.reflect.Method.setAccessible(Method.java:193)\n at net.sf.cglib.core.ReflectUtils$2.run(ReflectUtils.java:56)\n at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)\n at net.sf.cglib.core.ReflectUtils.(ReflectUtils.java:46)\n ... 178 more\n', 'com.alibaba.excel.write.ExcelBuilderImpl', 'ExcelBuilderImpl.java', 'addContent', 64, 0, NULL, 0, NULL, '2022-04-09 10:32:59', NULL, '2022-04-09 10:32:59', b'0', 1); COMMIT; -- ---------------------------- @@ -1315,7 +1635,7 @@ CREATE TABLE `infra_codegen_column` ( `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=804 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='代码生成表字段定义'; +) ENGINE=InnoDB AUTO_INCREMENT=824 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='代码生成表字段定义'; -- ---------------------------- -- Records of infra_codegen_column @@ -1612,6 +1932,26 @@ INSERT INTO `infra_codegen_column` VALUES (800, 67, 'updater', 'varchar(64)', ' INSERT INTO `infra_codegen_column` VALUES (801, 67, 'update_time', 'datetime', '更新时间', b'0', b'0', '0', 13, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2022-03-18 22:31:29', '1', '2022-03-18 22:31:29', b'0'); INSERT INTO `infra_codegen_column` VALUES (802, 67, 'deleted', 'bit(1)', '是否删除', b'0', b'0', '0', 14, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2022-03-18 22:31:29', '1', '2022-03-18 22:31:29', b'0'); INSERT INTO `infra_codegen_column` VALUES (803, 67, 'tenant_id', 'bigint', '租户编号', b'0', b'0', '0', 15, 'Long', 'tenantId', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2022-03-18 22:31:29', '1', '2022-03-18 22:31:29', b'0'); +INSERT INTO `infra_codegen_column` VALUES (804, 68, 'id', 'bigint', '字典主键', b'0', b'1', '1', 1, 'Long', 'id', '', NULL, b'0', b'1', b'0', '=', b'1', 'input', '1', '2022-04-04 23:04:57', '1', '2022-04-04 23:04:57', b'0'); +INSERT INTO `infra_codegen_column` VALUES (805, 68, 'name', 'varchar(100)', '字典名称', b'0', b'0', '0', 2, 'String', 'name', '', NULL, b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2022-04-04 23:04:57', '1', '2022-04-04 23:04:57', b'0'); +INSERT INTO `infra_codegen_column` VALUES (806, 68, 'type', 'varchar(100)', '字典类型', b'0', b'0', '0', 3, 'String', 'type', '', NULL, b'1', b'1', b'1', '=', b'1', 'select', '1', '2022-04-04 23:04:57', '1', '2022-04-04 23:04:57', b'0'); +INSERT INTO `infra_codegen_column` VALUES (807, 68, 'status', 'tinyint', '状态(0正常 1停用)', b'0', b'0', '0', 4, 'Integer', 'status', '', NULL, b'1', b'1', b'1', '=', b'1', 'radio', '1', '2022-04-04 23:04:57', '1', '2022-04-04 23:04:57', b'0'); +INSERT INTO `infra_codegen_column` VALUES (808, 68, 'remark', 'varchar(500)', '备注', b'1', b'0', '0', 5, 'String', 'remark', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2022-04-04 23:04:57', '1', '2022-04-04 23:04:57', b'0'); +INSERT INTO `infra_codegen_column` VALUES (809, 68, 'creator', 'varchar(64)', '创建者', b'1', b'0', '0', 6, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2022-04-04 23:04:57', '1', '2022-04-04 23:04:57', b'0'); +INSERT INTO `infra_codegen_column` VALUES (810, 68, 'create_time', 'datetime', '创建时间', b'0', b'0', '0', 7, 'Date', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '1', '2022-04-04 23:04:57', '1', '2022-04-04 23:04:57', b'0'); +INSERT INTO `infra_codegen_column` VALUES (811, 68, 'updater', 'varchar(64)', '更新者', b'1', b'0', '0', 8, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2022-04-04 23:04:57', '1', '2022-04-04 23:04:57', b'0'); +INSERT INTO `infra_codegen_column` VALUES (812, 68, 'update_time', 'datetime', '更新时间', b'0', b'0', '0', 9, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2022-04-04 23:04:57', '1', '2022-04-04 23:04:57', b'0'); +INSERT INTO `infra_codegen_column` VALUES (813, 68, 'deleted', 'bit(1)', '是否删除', b'0', b'0', '0', 10, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2022-04-04 23:04:57', '1', '2022-04-04 23:04:57', b'0'); +INSERT INTO `infra_codegen_column` VALUES (814, 69, 'id', 'bigint', '编号', b'0', b'1', '1', 1, 'Long', 'id', '', NULL, b'0', b'1', b'0', '=', b'1', 'input', '1', '2022-04-08 00:53:24', '1', '2022-04-08 00:54:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (815, 69, 'name', 'varchar(255)', '敏感词', b'0', b'0', '0', 2, 'String', 'name', '', NULL, b'1', b'1', b'1', 'LIKE', b'1', 'input', '1', '2022-04-08 00:53:24', '1', '2022-04-08 00:54:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (816, 69, 'description', 'varchar(512)', '描述', b'1', b'0', '0', 3, 'String', 'description', '', NULL, b'1', b'1', b'1', '=', b'1', 'editor', '1', '2022-04-08 00:53:24', '1', '2022-04-08 00:54:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (817, 69, 'tags', 'varchar(255)', '标签数组', b'1', b'0', '0', 4, 'String', 'tags', '', NULL, b'1', b'1', b'1', '=', b'1', 'input', '1', '2022-04-08 00:53:24', '1', '2022-04-08 00:54:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (818, 69, 'status', 'tinyint', '状态', b'0', b'0', '0', 5, 'Integer', 'status', '', NULL, b'1', b'1', b'1', '=', b'1', 'radio', '1', '2022-04-08 00:53:24', '1', '2022-04-08 00:54:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (819, 69, 'creator', 'varchar(64)', '创建者', b'1', b'0', '0', 6, 'String', 'creator', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2022-04-08 00:53:24', '1', '2022-04-08 00:54:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (820, 69, 'create_time', 'datetime', '创建时间', b'0', b'0', '0', 7, 'Date', 'createTime', '', NULL, b'0', b'0', b'1', 'BETWEEN', b'1', 'datetime', '1', '2022-04-08 00:53:24', '1', '2022-04-08 00:54:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (821, 69, 'updater', 'varchar(64)', '更新者', b'1', b'0', '0', 8, 'String', 'updater', '', NULL, b'0', b'0', b'0', '=', b'0', 'input', '1', '2022-04-08 00:53:24', '1', '2022-04-08 00:54:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (822, 69, 'update_time', 'datetime', '更新时间', b'0', b'0', '0', 9, 'Date', 'updateTime', '', NULL, b'0', b'0', b'0', 'BETWEEN', b'0', 'datetime', '1', '2022-04-08 00:53:24', '1', '2022-04-08 00:54:14', b'0'); +INSERT INTO `infra_codegen_column` VALUES (823, 69, 'deleted', 'bit(1)', '是否删除', b'0', b'0', '0', 10, 'Boolean', 'deleted', '', NULL, b'0', b'0', b'0', '=', b'0', 'radio', '1', '2022-04-08 00:53:24', '1', '2022-04-08 00:54:14', b'0'); COMMIT; -- ---------------------------- @@ -1638,7 +1978,7 @@ CREATE TABLE `infra_codegen_table` ( `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=68 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='代码生成表定义'; +) ENGINE=InnoDB AUTO_INCREMENT=70 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='代码生成表定义'; -- ---------------------------- -- Records of infra_codegen_table @@ -1667,6 +2007,8 @@ INSERT INTO `infra_codegen_table` VALUES (62, 1, 1, 'bpm_oa_leave', 'OA 请假 INSERT INTO `infra_codegen_table` VALUES (63, 1, 1, 'infra_file_config', '文件配置表', NULL, 'infra', 'fileConfig', 'FileConfig', '文件配置', '芋道源码', 1, NULL, '1', '2022-03-14 16:22:45', '1', '2022-03-14 16:23:33', b'1'); INSERT INTO `infra_codegen_table` VALUES (64, 1, 1, 'infra_file_config', '文件配置表', NULL, 'infra', 'file', 'FileConfig', '文件配置', '芋道源码', 1, 1, '1', '2022-03-14 16:23:19', '1', '2022-03-15 22:51:20', b'0'); INSERT INTO `infra_codegen_table` VALUES (67, 1, 1, 'system_role', '角色信息表', NULL, 'system', 'role', 'Role', '角色信息', '芋道源码', 1, NULL, '1', '2022-03-10 15:56:18', '1', '2022-03-18 22:31:29', b'0'); +INSERT INTO `infra_codegen_table` VALUES (68, 1, 1, 'system_dict_type', '字典类型表', NULL, 'system', 'dictType', 'DictType', '字典类型', '芋道源码', 1, NULL, '1', '2022-03-10 15:56:18', '1', '2022-04-04 23:04:57', b'0'); +INSERT INTO `infra_codegen_table` VALUES (69, 1, 1, 'system_sensitive_word', '敏感词', NULL, 'system', 'sensitiveWord', 'SensitiveWord', '敏感词', '芋道源码', 1, 1, '1', '2022-04-07 16:47:02', '1', '2022-04-08 00:54:14', b'0'); COMMIT; -- ---------------------------- @@ -1688,18 +2030,19 @@ CREATE TABLE `infra_config` ( `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=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='参数配置表'; +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='参数配置表'; -- ---------------------------- -- Records of infra_config -- ---------------------------- BEGIN; -INSERT INTO `infra_config` VALUES (1, 'ui', 1, '主框架页-默认皮肤样式名称', 'sys.index.skinName', 'skin-blue', b'0', '蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow', 'admin', '2021-01-05 17:03:48', '1', '2022-03-20 02:25:48', b'0'); +INSERT INTO `infra_config` VALUES (1, 'ui', 1, '主框架页-默认皮肤样式名称', 'sys.index.skinName', 'skin-blue', b'0', '蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow', 'admin', '2021-01-05 17:03:48', '1', '2022-03-26 23:10:31', b'0'); INSERT INTO `infra_config` VALUES (2, 'biz', 1, '用户管理-账号初始密码', 'sys.user.init-password', '123456', b'0', '初始化密码 123456', 'admin', '2021-01-05 17:03:48', '1', '2022-03-20 02:25:51', b'0'); INSERT INTO `infra_config` VALUES (3, 'ui', 1, '主框架页-侧边栏主题', 'sys.index.sideTheme', 'theme-dark', b'0', '深色主题theme-dark,浅色主题theme-light', 'admin', '2021-01-05 17:03:48', '', '2021-01-19 03:05:21', b'0'); INSERT INTO `infra_config` VALUES (4, '1', 2, 'xxx', 'demo.test', '10', b'0', '5', '', '2021-01-19 03:10:26', '', '2021-01-20 09:25:55', b'0'); INSERT INTO `infra_config` VALUES (5, 'xxx', 2, 'xxx', 'xxx', 'xxx', b'1', 'xxx', '', '2021-02-09 20:06:47', '', '2021-02-09 20:06:47', b'0'); -INSERT INTO `infra_config` VALUES (6, 'biz', 2, '登陆验证码的开关', 'yudao.captcha.enable', 'true', b'1', NULL, '1', '2022-02-17 00:03:11', '1', '2022-02-17 00:15:33', b'0'); +INSERT INTO `infra_config` VALUES (6, 'biz', 2, '登陆验证码的开关', 'yudao.captcha.enable', 'true', b'1', NULL, '1', '2022-02-17 00:03:11', '1', '2022-04-04 12:51:40', b'0'); +INSERT INTO `infra_config` VALUES (7, '1', 2, '2', '3', '4', b'1', '1', '1', '2022-03-26 23:09:36', '1', '2022-03-26 15:09:41', b'1'); COMMIT; -- ---------------------------- @@ -1719,7 +2062,7 @@ CREATE TABLE `infra_file` ( `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=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='文件表'; +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='文件表'; -- ---------------------------- -- Records of infra_file @@ -1731,6 +2074,11 @@ INSERT INTO `infra_file` VALUES (3, 2, 'a294ecb2-73dd-4353-bf40-296b8931d0bf', ' INSERT INTO `infra_file` VALUES (4, 2, '43301647479822_.pic.jpg', 'http://test.yudao.iocoder.cn/43301647479822_.pic.jpg', 'png', 423337, '1', '2022-03-17 09:19:11', '1', '2022-03-17 09:19:11', b'0'); INSERT INTO `infra_file` VALUES (5, 2, '43891647495423_.pic.jpg', 'http://test.yudao.iocoder.cn/43891647495423_.pic.jpg', 'png', 17424, '1', '2022-03-17 19:51:31', '1', '2022-03-17 19:51:31', b'0'); INSERT INTO `infra_file` VALUES (6, 2, '822aebded6e6414e912534c6091771a4.jpg', 'http://test.yudao.iocoder.cn/822aebded6e6414e912534c6091771a4.jpg', 'jpg', 18385, '1', '2022-03-17 20:48:00', '1', '2022-03-17 20:48:00', b'0'); +INSERT INTO `infra_file` VALUES (7, 11, 'c6b0326f-1861-4c21-bf56-c2780481bfb9', 'http://test.yudao.iocoder.cn/c6b0326f-1861-4c21-bf56-c2780481bfb9', 'jpg', 73430, '1', '2022-03-20 22:04:20', '1', '2022-03-20 22:04:20', b'0'); +INSERT INTO `infra_file` VALUES (8, 11, '48934f2f-92d4-4250-b917-d10d2b262c6a', 'http://test.yudao.iocoder.cn/48934f2f-92d4-4250-b917-d10d2b262c6a', 'jpg', 73430, '1', '2022-03-20 22:04:20', '1', '2022-03-20 22:04:20', b'0'); +INSERT INTO `infra_file` VALUES (9, 11, 'cbd9cf5206a94acba7065342f65a3da0.jpg', 'http://test.yudao.iocoder.cn/cbd9cf5206a94acba7065342f65a3da0.jpg', 'jpg', 18385, '1', '2022-03-20 22:07:42', '1', '2022-03-20 22:07:42', b'0'); +INSERT INTO `infra_file` VALUES (10, 11, '02.png', 'http://test.yudao.iocoder.cn/02.png', 'png', 208673, '1', '2022-03-26 21:48:05', '1', '2022-03-26 21:48:05', b'0'); +INSERT INTO `infra_file` VALUES (11, 11, '02.png', 'http://test.yudao.iocoder.cn/02.png', 'png', 208673, '1', '2022-03-26 21:53:20', '1', '2022-03-26 13:53:23', b'1'); COMMIT; -- ---------------------------- @@ -1750,7 +2098,7 @@ CREATE TABLE `infra_file_config` ( `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=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='文件配置表'; +) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='文件配置表'; -- ---------------------------- -- Records of infra_file_config @@ -1758,14 +2106,17 @@ CREATE TABLE `infra_file_config` ( BEGIN; INSERT INTO `infra_file_config` VALUES (2, 'S3 - 七牛云', 20, '戴佩妮真可爱', b'1', '{\"@class\":\"cn.iocoder.yudao.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"s3-cn-south-1.qiniucs.com\",\"domain\":\"http://test.yudao.iocoder.cn\",\"region\":\"oss-cn-beijing\",\"bucket\":\"ruoyi-vue-pro\",\"accessKey\":\"b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8\",\"accessSecret\":\"kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP\"}', '1', '2022-03-15 20:43:34', '1', '2022-03-19 09:55:12', b'1'); INSERT INTO `infra_file_config` VALUES (3, '测试', 20, NULL, b'0', '{\"@class\":\"cn.iocoder.yudao.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"1\",\"domain\":\"\",\"region\":\"2\",\"bucket\":\"3\",\"accessKey\":\"4\",\"accessSecret\":\"5\"}', '1', '2022-03-15 23:30:58', '1', '2022-03-15 15:40:27', b'1'); -INSERT INTO `infra_file_config` VALUES (4, '数据库', 1, '我是数据库', b'0', '{\"@class\":\"cn.iocoder.yudao.framework.file.core.client.db.DBFileClientConfig\",\"domain\":\"http://127.0.0.1:48080\"}', '1', '2022-03-15 23:56:24', '1', '2022-03-19 19:10:11', b'0'); -INSERT INTO `infra_file_config` VALUES (5, '本地磁盘', 10, '测试下本地存储', b'0', '{\"@class\":\"cn.iocoder.yudao.framework.file.core.client.local.LocalFileClientConfig\",\"basePath\":\"/Users/yunai/file_test\",\"domain\":\"http://127.0.0.1:48080\"}', '1', '2022-03-15 23:57:00', '1', '2022-03-19 19:10:11', b'0'); +INSERT INTO `infra_file_config` VALUES (4, '数据库', 1, '我是数据库', b'0', '{\"@class\":\"cn.iocoder.yudao.framework.file.core.client.db.DBFileClientConfig\",\"domain\":\"http://127.0.0.1:48080\"}', '1', '2022-03-15 23:56:24', '1', '2022-03-26 21:39:26', b'0'); +INSERT INTO `infra_file_config` VALUES (5, '本地磁盘', 10, '测试下本地存储', b'0', '{\"@class\":\"cn.iocoder.yudao.framework.file.core.client.local.LocalFileClientConfig\",\"basePath\":\"/Users/yunai/file_test\",\"domain\":\"http://127.0.0.1:48080\"}', '1', '2022-03-15 23:57:00', '1', '2022-03-26 21:39:26', b'0'); INSERT INTO `infra_file_config` VALUES (6, 'FTP 服务器', 11, '测试下 FTP', b'0', '{\"@class\":\"cn.iocoder.yudao.framework.file.core.client.ftp.FtpFileClientConfig\",\"basePath\":\"/Users/yunai/file_test\",\"domain\":\"http://127.0.0.1:48080\",\"host\":\"127.0.0.1\",\"port\":22,\"username\":\"root\",\"password\":\"password\",\"mode\":\"Active\"}', '1', '2022-03-16 00:00:43', '1', '2022-03-16 13:23:32', b'1'); INSERT INTO `infra_file_config` VALUES (7, 'SFTP 服务器', 12, NULL, b'0', '{\"@class\":\"cn.iocoder.yudao.framework.file.core.client.sftp.SftpFileClientConfig\",\"basePath\":\"/Users/yunai/file_test\",\"domain\":\"http://127.0.0.1:48080\",\"host\":\"127.0.0.1\",\"port\":23,\"username\":\"root\",\"password\":\"password\"}', '1', '2022-03-16 00:02:02', '1', '2022-03-16 13:23:31', b'1'); INSERT INTO `infra_file_config` VALUES (8, 'S3 - 测试', 20, NULL, b'0', '{\"@class\":\"cn.iocoder.yudao.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"s3-cn-south-1.qiniucs.com\",\"domain\":\"http://test.yudao.iocoder.cn\",\"region\":\"oss-cn-beijing\",\"bucket\":\"ruoyi-vue-pro\",\"accessKey\":\"b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8\",\"accessSecret\":\"kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP\"}', '1', '2022-03-17 18:46:19', '1', '2022-03-17 10:46:28', b'1'); INSERT INTO `infra_file_config` VALUES (9, 'S3 - 测试', 20, NULL, b'0', '{\"@class\":\"cn.iocoder.yudao.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"s3-cn-south-1.qiniucs.com\",\"domain\":\"http://test.yudao.iocoder.cn\",\"region\":\"oss-cn-beijing\",\"bucket\":\"ruoyi-vue-pro\",\"accessKey\":\"b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8\",\"accessSecret\":\"kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP\"}', '1', '2022-03-17 19:40:13', '1', '2022-03-17 11:40:16', b'1'); INSERT INTO `infra_file_config` VALUES (10, 'S3 - 测试七牛', 20, NULL, b'0', '{\"@class\":\"cn.iocoder.yudao.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"s3-cn-south-1.qiniucs.com\",\"domain\":\"http://test.yudao.iocoder.cn\",\"region\":\"oss-cn-beijing\",\"bucket\":\"ruoyi-vue-pro\",\"accessKey\":\"b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8\",\"accessSecret\":\"kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP\"}', '1', '2022-03-17 19:54:19', '1', '2022-03-17 11:57:19', b'1'); -INSERT INTO `infra_file_config` VALUES (11, 'S3 - 七牛云', 20, NULL, b'1', '{\"@class\":\"cn.iocoder.yudao.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"s3-cn-south-1.qiniucs.com\",\"domain\":\"http://test.yudao.iocoder.cn\",\"bucket\":\"ruoyi-vue-pro\",\"accessKey\":\"b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8\",\"accessSecret\":\"kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP\"}', '1', '2022-03-19 18:00:03', '1', '2022-03-19 19:10:11', b'0'); +INSERT INTO `infra_file_config` VALUES (11, 'S3 - 七牛云', 20, NULL, b'1', '{\"@class\":\"cn.iocoder.yudao.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"s3-cn-south-1.qiniucs.com\",\"domain\":\"http://test.yudao.iocoder.cn\",\"bucket\":\"ruoyi-vue-pro\",\"accessKey\":\"b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8\",\"accessSecret\":\"kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP\"}', '1', '2022-03-19 18:00:03', '1', '2022-03-26 21:39:26', b'0'); +INSERT INTO `infra_file_config` VALUES (12, 'S3 - 七牛云', 20, NULL, b'0', '{\"@class\":\"cn.iocoder.yudao.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"s3-cn-south-1.qiniucs.com\",\"domain\":\"http://test.yudao.iocoder.cn\",\"bucket\":\"ruoyi-vue-pro\",\"accessKey\":\"b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8\",\"accessSecret\":\"kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP\"}', '1', '2022-03-26 23:07:01', '1', '2022-03-26 15:10:43', b'1'); +INSERT INTO `infra_file_config` VALUES (13, '1', 1, '2', b'0', '{\"@class\":\"cn.iocoder.yudao.framework.file.core.client.db.DBFileClientConfig\",\"domain\":\"http://127.0.0.1\"}', '1', '2022-03-26 23:07:39', '1', '2022-03-26 15:07:42', b'1'); +INSERT INTO `infra_file_config` VALUES (14, 'S3 - 七牛云', 20, NULL, b'0', '{\"@class\":\"cn.iocoder.yudao.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"s3-cn-south-1.qiniucs.com\",\"domain\":\"http://test.yudao.iocoder.cn\",\"bucket\":\"ruoyi-vue-pro\",\"accessKey\":\"b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8\",\"accessSecret\":\"kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP\"}', '1', '2022-03-26 23:10:41', '1', '2022-03-26 15:10:46', b'1'); COMMIT; -- ---------------------------- @@ -1783,7 +2134,7 @@ CREATE TABLE `infra_file_content` ( `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=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='文件表'; +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='文件表'; -- ---------------------------- -- Records of infra_file_content @@ -1795,6 +2146,7 @@ INSERT INTO `infra_file_content` VALUES (3, 4, 'e9b5fa3c7dbf4a4f96f5568c5eb34f3c INSERT INTO `infra_file_content` VALUES (4, 4, 'a408952f4db5433b83a275df444b7467.jpg', 0xFFD8FFE000104A46494600010100000100010000FFDB0043000302020302020303030304030304050805050404050A070706080C0A0C0C0B0A0B0B0D0E12100D0E110E0B0B1016101113141515150C0F171816141812141514FFDB00430103040405040509050509140D0B0D1414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414FFC20011080102010203011100021101031101FFC4001E00000301010101010101010000000000000008090701060A02040503FFC4001C0101000203010101000000000000000000000105020406070308FFDA000C03010002100310000000AA6000000000000000000000000000000000070000000000E81C3A70E8001C03A0700000E8001C2401808000FF000BF9808017F8E12007F8C00A0200040102BE0120C0000BFC000708045D03033802AA794029412BC69C0DFC9B206005261020356037F37E1551D33CB1AA1160BFC00070804553201017F4554D50A002A86AA4582FE0800D51164AA66503FE74CA48B22A85FD1551561552A98AB17F8000E1008AA640202FE8AA8AB00FF0BF98097F490007AB12D2D2920C0DF8F564AC2FE8AA8AB0AA954C558BFC00070804553003013CA0AA9AB1540F2A45A3CA95409B27953CB173C55474CF2C4593CB173C4047F80E9208FA27000384FF0032C387406A0CA8D58554D50D5895A6563526A66A82B06546565A61553541AA1013A0700AAA0000004FE37F03002809E449B22AA5D0303384023572E79F3B250030003CA973C6089FE2026FC3002025FE0003F22FE7CEC9AB9E58B9E6A6795030037F18227F9C26C8E913687E8A504303D48FE9BF916874874C6089FC4863E9E8000E1008CAC7F440C7F4E08195407FC4006A8404E9C1A932A1AA22D1AA0D39AA8AB8FE99492B8BFC708045FE000384023033D494A04A8CB0CA0FA261812401E5C7F8DF095A57F2400EA88115E885E3542585A530037F182384022FF0001C20115F0C00A02791303384023572A808794FCF0666B0E8F062D2B32107EC9B23A66A679724015FCC00D4C9B47D3D0001C201169CCA86B0CA0404E92ACAA62AC5F13FA4FF0033E3965D84EBBF58CCFE4D5B671FF2C44C8B03566563FA2AC6AA5501023A5540003F22FE4D93531D303003001582E79164BE50FEA463B41BD9EF975F7FD2DB5FD2F595FBE75D57FC0991F2754009583545262178D51498F5C0007E45FC8B45CF22C9AB0FF1BE1810AA9368A8312CC516DE535BBDEBA973F7DD6D7647E5FD2B29EC9C8FA0FBC4B2CB19AE55315601FE17F26B9400C00FA27000384FF22C0D58D48FE8808FF1014B4A4AD1C786F9C8DB79BF1DEDBC6DD53FBFACDCF1FF001F41FF0027D57C5D84EC6A13EDAC72C3533541AA101032C32A32B3E944000E1200754408C00B4A6006003FC60007874379C6DAFE7F2EFA09F58C5FACAFD4F98DE553F4BF11437B2A4C1A41164D4CAA640203E9E89B26A6501000384022FF001941EA480C3A44DA1FA2BF9D10F1C6A5D9FF002FCEEE7F92B36330DEC3D671B65FC5EE9C96CBD0E9C1437F2BF8BF01EA8CB0C0490057F2948001C2010FE9961958AB0FE0155055055CFF00B4CB59187FA6CB4BC59A4C69713FEB44FEFE9094C01FF2018FE9AA116C7F4E1D2AA0001F917F241969CCACCA495E7AA3E89C9567AB024095EC5D0FEE1EE1A610F10601FE382043FA6FE06006005800003F22FE7961562AA1E449B26A650127F1218F225531561FD32C1A910235326D1F49879522C8FE8810FE9404E1008BFC000709FE2B065635007040CFA503840335632B1A835332B32C2A899512B4D58D50554CB07F0E954C08045FE0003848015837F37F3D41960D48951BF9218FA4C30337C3D719392BCA4C4831FD35635422C0AA9D1803D480FE9404000FC8BF9E58000D509AC6FE745FCC046A46A8F522585272178FF0BF8FF120CC0CFA4C3CA9164BA048527F9F55000070804354006566A85532561C035432B1AA1AA1543551023803FC6544AD2D399512B4AA64AD1A82AA8001C20115F090605531562AA115C09FE5283D58969EA400AA6749046FE55022C801818E91A98E98C10001C201154C80405FD1553CA0EA9008AFE2025CF3CA8809EAC9583023A43A64832D31EA895A30070D588B27963E9E8000E1008B4E20203542AA55422C13FCA002AC5A52568D48AB8AA1400D50AA64021AA32B2D39C10032C1A732B2808001C2010001E5874CAA87CAB9D18032C37C1FD26C95F4E1BE9E549AE6025A62181EA47F85FC7F8C00408BFC000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007FFC4004210000003060209020503030203090000000607080004051415160917010203111318195785253810202147671226272829464175223739303142505160616383FFDA0008010100011200FF00C8F7B6F6DEDBDB7B6F6DEDBDB7B6FF008EFF00868D3A34FCBBDBF568F8FEAD0DBDB7B6F6DFF32F05E27A12CABC740D070E28A1B86C8CAB97545539DCD6EA8AA73B9ADD5154E7735BAA2A9CEE6B614EA84CE5279A398C26B8A8B4B9065E0BC4F4259578E81A0E1C514370D919572EA8AA73B9ADD5154E7735BAA2A9CEE6FC5782F13D09655E3A0683871450DC364655C97919E27265278E4640F89D18470C91947DC2995099CA4B3433184D715169721F2F545539DCD6EA88A73B98C830CF139CC93C0E321844EB22389CF4DBEAF233C4E4CA4F1C8C81F13A308E192328FBD5114E7731BAA2A9CEE6B7545539DCD6EA8AA73B9ADD5154E7737E6C51BDF599BE318D0344324C0122631194528E1C86F0A69F7AA2263EE5B75444C7DCC6C51BD8999BE31B032FBD9E1197820E3D0E955E3A190380F5A0DC4A4655F50720E3D09655E06190C40F450DC367A69F4F154658A6EA2E6309ADDAD71E41950A5D335671E82638C9C0CDE05C09256951A542A88B259C450989C2704D781902495A54170A84BC6726CCD1CC70CDB95AA5C8319EBCC8B2607513070C4714611C378534E49752E99A8C4F40C9C671866CF2E03735558D62ACA80B152795F97026B8A8B549F62BD061E8738121A310681EB21C8971655F550AA22C967114262709C135E064092569505E974A73B66DD2E94E76CD92EA5D335189E81938CE30CD9E5C06E6AAB1AC55D50962A4F2BF2E44D71516A93EC839789164B250030346238A288E1B3D34E58A37B13337C636065F7B3C2319EBCC8B2607513070C4714611C378534E5D51131F73188D54458A92ADE5C09AE2A2F027DB146F7D666F8CF9B146F7D666F8C6C51BD8A19BE33E38A37B13337C636067F7B3C232A0C55F96C3D04C5C6575C74595F52FA32E4437CE7593B86D675B53AC9708DE5B48B0D1735AB8A8B35EA785CFBEA2CFC9B6ED1B99506151CC91E82631B346DCAD4B7A62A223799222C4C5CD6ADDAD4AFA9AE4437C98593BC6B78DCB3AD85CFB142CFC9B25DC29F96C3D03463668DC74599F4CD1BB737D195111BCC9116262E6B56ED6A57D4D72A1BE4C2C9DE36BC6E59DF8628DEC4CCDF18D819FDECF08D8A2FBEA337C67C3033FBD9E11B146F7D666F8CF9B146F7D666F8C6C51BD8999BE33E38A37B13337C636067F7B3C23628DEFACCDF18DD5154E7735B0A754267293CD1CC6135C545A5C832F05E27A12CABC740D070E28A1B86C8CAB96171EFACB3F26DFF7EAB2F05E27A12CABC740D070E28A1B86C8CAB920E5E27A1D2ABC0C0D188E2B41B894F4D396397F64FCDB15EBCCF4260090D0703471460E4378B2AE4BC8CF1393293C723207C4E8C238648CA3EF544539DCC6EA8AA73B9AC839789E874AAF030346238AD06E253D34E58E67D93F37F0C51BD8999BE31B033FBD9E11B146F7D666F8CF86067F7B3C23628DEFACCDF19F3628DEFACCDF18DD51131F731BAA2263EE6375444C7DCC65E0BC48B3A5280E81A0E1C5684712919572C0CFEF67846C51BDF599BE3192EA5D335189E81938CE30CD9E5C06E6AAB1A23551962A4AB797226B8A8BC09F633D799164C0EA260E188E28C2386F0A69C8CF4187A13004898C46407A30721BC29A7D2352D99CA46B797219B8A8BC09F64BAA88B2462450689C38C4D679901A9AAAC14CF4187A13004898C46407A30721BC29A7D2392E19CA42B797219B868BC19F6340AE131303B89838650CA308E1BC29A72C51BD8999BE31B032FBD9E118CF5E6459303A898386238A308E1BC29A72C51BD8999BE3188D4BA66A91ADE5C866E2A2F027D8D02B84C4C0EE260E194328C2386F0A69CB146F62666F8C6C29D509629B33473184D6ED6A9720DD51131F731BAA2263EE6375444C9DCB65E467860E655E391903E27590E44A4651F7E554185473267A098C6CD1B72B52BE9BD0CBF3637433FCD8DD0CBF3637432FCD8C8650D72617B7EF5BC6E592654185473267A098C6CD1B72B52BE9B8A27B14337C636067F7B7C232A0C29F9923D04C63668DB95A96F4CC51BD8A19BE3190D2E4E4C2F6DE0ABC2E59265447973247A098C6A2DBD5A95F4C5438AC732645898B9CAEB72B52BEA781A7DEDF08CA830A8E64CF41318D9A36E56A5BD355062AFCC9916262E72BADCAD4AFA92195C9C985EDFB2AF0B96459511E5CC89E82631A8B6ED6A57D33145F62866F8C6C0CFEF6F84654185473267A098C6CD1B72B52DE9AA888DE6488B131735AB76B52BEA5D0D3F3637432FCD8DD0CFF0036B7434FCD8DD0CBF36FFD862B0A84CE4DB96197226B76B5549F64186789CE649E07190C2275911C4E7A6DF57919E27265278E4640F89D18470C91947DC2995099CA4B3433184D715169721F0340AD0C9CE0489838650BAC07225C29A725CBA7A6D595CBA7F1DDE73D5D6EA8AA73B9AC6815A1939C0913070CA17580E44B8534E5D2ED31F6D1BA5DA63ED9FC08D54466A6DADE5C89ADDAD7027D90619E273992781C643089D6447139E9B7D6C2992F162A4F34731833715169720CBC8AF0C132ABC720D07C328C1C8648CA3919EBCCF439C0913070C871590E44B8534E446AA33393756F2E44D6ED6B833EC830CF139CC93C0E321844EB22389CF4DBEB62B0A88CE4D995F97226B76B5549F6EA8AA73B9AC839789E874AAF030346238AD06E253D34E58ABAA133936657E5C89ADDAD5527DBAA2A9CEE6FCBBF768D3A74FF00A319EBCC8B2607513070C4714611C378534E4C46A5D33548D6F2E43371517813EC6815C262607713070CA194611C378534E5D51131F73188D54858A91ADE5C89AE2A2F027D8CF5E6459303A898386238A308E1BC29A725E45789CE649E390683E195911C4E4651CB0A74BE66A6CCD1CC60CDBB5AA5C86933D799164C0EA260E188E28C2386F0A69C9B1574BA67292CAFCB90CDC545AA4FB25D54459231228344E1C626B3CC80D4D5560A830CF0C132ABC0E321844E8C1C864F4DBEAE5FEE476572E7FC8965CF5798D02B84C4C0EE260E194328C2386F0A69C90720E3D09655E06190C40F450DC367A69F4F15445926DA2E6309ADDAD71E4197919E18399578E4640F89D64391291947DE974A73B66D853A5E33935E68E63866DCAD52E418CF5E6459303A898386238A308E1BC29A7233D061E84C01226311901E8C1C86F0A69F7034FBDBE118CF5E6459303A898386238A308E1BC29A726C5612F19CA4B2C32E43371516A93EC6815C262607713070CA194611C378534E5F2E28BEFA8CDF18C9708DE648F40D1735AB76B535EA5F4C183F31664B2A23CB9923D04C63516DDAD4AFA6F432FCD8DFF45FFCC5992CA88F2E648F41318D45B76B32BE9897B157E64CF40D17395D6E56A67D4F768FD2CA830A8E648F41318D9A36E56A5BD31511E5CB69162631A8B7151657D33AE57E136E46BA927F5197B65D5E9FE35D0CBF36B21A435C98DEDFBDAF1B96499506151CC99E82631B346DCAD4AFA6AA23CB96D22C4C63516E2A2CAFA6AE35CBCE7D93FB2ACEB6A7592F614FCC99161A31B346DDAD4CFA625EC55F9933D0345C6575B95A9AF525CAB93931B27F655E372CEB7233D493FA8CBDB2EEF4FF001A54446F32245898B9AD5BD5A95F5343286B930BDBF7ADE172C8B628BEFA8CDF19F0DDA1B145F7D66778CF9B146F7D666F8C62B8D1131303B860C41B14A308E1BC5957D3C55199AA468B98C26B8A8BC790641C8388B3A528018643103D6847129E9A7DEA8AA73B9AC792A333949D1731C4D71D178F21F02BD061164C0EA1A310701E8C2386F1655F7768D1ABB99782F13D09655E3A0683871450DC364655C92EAA2335671E819270E3135E05C0926AAB05E97698FB68C5715A19260090D0703617470E4378B2AE4839789E874AAF030346238AD06E253D34E5BBE9B99782F13D09655E3A0683871450DC364655CB146F62666F8C6C2992F162A4B34331833715169720C5715A19260090D0703617470E4378B2AE585C7BEB2CFC9B6397F64FCDB15EBCCF4260090D0703471460E4378B2AE4BC8CF1393293C723207C4E8C238648CA3EE14EA80CD5279A398C26B8A8B4B90D067A0C22CE71D44C623103D644712E14D3EFC3146F7D666F8CF9B146F7D666F8C65E45789CE649E390683E195911C4E4651CB0A64BC6726DCD0CC60CDBB5AA5C87C0D0344324C0122631194528E1C86F0A69F7AA2263EE5B75444C7DCCF8118974CE5255BCB80CDC545E04FB25D54459231228344E1C626B3CC80D4D5560B07C2C14ABFC4DD9D36E0476856C36DAFF00A35DF50C22F7446EE22CD4BC35C58FE21929C651D860061479CE2330DFC711A833E4625FF5B8F44F05F73442DD13C19DCE10B270275C13992E1D2EDC222F91974834C70DFB6D137777D96BED36BA769B3D9EAE8DFADAF8A82663254D6C8ADD72CC3B73EA422A73BA52EAA12C91891219270E31359E6386A6AAB05418678609955E07190C227460E4327A6DF572E8EA496572E7FC8965CF57992EAA22C9189141A270E31359E6406A6AAB055E0BC48B3A5280E81A0E1C5684712919572DCC839789164B250030346238A288E1B3D34E49752E99A8C4F40C9C671866CF2E03735558D2E5FEE4B6572E7FC8965CF5798D02B84C4C0EE260E194328C2386F0A69CBE5C517DF519BE319511E5CB71162631A8B7151657D310D2E4E73AF6FD95675B523F054446F32445098B9AD5BD5A95F53E867F9B5BA19FE6DF86067F7B3C23628BEFA8CDF18CFF00FAB5DD769A9A9AFA767ADADA75767A35F63B2D4D86CF46CF67ABA353535746ED1AA288FBB85035158D3D7EA9587BAED5EF6AC994EF8A1DA1A103C4760BA81E8DC1E2FB686BCB83E3EEC21EE9B77979DAEA6C361B1D4D3B4DA6D4A050702394482F83C19D5FB61B40EED1DF46B6DB733A3B6AC39E1F75767A74E8D8EB69D5DB68D9AA0C2A39933CC4C63668DB95A95F4CFAB21A5C9C98DEDBC1578DCB24CA88F2E648F41318D45B7AB52BE99D0CBF3632E4435C98D95FBD6F1B967592F614FCC91161A31B346DCAD4D7A62A223799222C4C5CD6ADEAD4AFA9FF00D187F31664B7235D497FA8DBDB2EEF4FF1AF9376FD1A7469633D06116738EA26311881EB2238970A69F52EAA2335671E819270E3135E05C0926AAB055CBFDB6ACAE5CFF8EAF49EAF320C33C4E7324F038C86113AC88E273D36FABC8CF1393293C723207C4E8C238648CA3EE14EA84CE5259A398E26B8A8B4B9065E0BC4F4259578E81A0E1C514370D91957241857860E655E07068C219590E44E7A6DC88D4BA5926DADE5C866DDAD7027DB146F7D666F8C67AD3F4FFF004D9B6FFA31FE3672D806A260972D8ED622258FC35E1DF62EB037B1D02A3A237B0DE80EEDDDE2FB7D8EDD850361D98908B523A1C82B8439EF69B3A8C4137C2E16F8231D8ADDF6BB2D488C45E7610FDBB96E67AFA6D1E74FFF0056CD9772F23D09655A390703471460DC364655CBA5DA63ED9B74BB4C7DB36E97698FB66DD5154E773590CE9EA4B7B7317FC8965C8D098AE2B4324C0121A0E06C2E8E1C86F1655CBAA2A9CEE6B219D3D496F6E62FF912CB91A1315C5686498024341C0D85D1C390DE2CAB97C9BF768D3A74FF00A319EBCC8B2607513070C4714611C378534E4830CF0C132ABC0E321844E8C1C864F4DBE91AA88B25235BCB9135C545E04FB628DEFACCDF18C9752E99A8C4F40C9C671866CF2E03735558D75444C7DCB62B8D10C9CE04868C41B14AC07225C5957DEA8898FB98CB9B4F524B2B973FE44B2E7ABAC6815C262607713070CA194611C378534E58297D0AF33BFDE9C1A04788E824696C204614B3A3BBDED3F4E9D905841B1354C7797F7A803F8D611187E717E7A763FE1AE645449E2C6D9EA43352201C88BF6D2181C2A41B1F7D154076C03DBC2F650FD83B6BBB8DE16338BC38BE0D9A0E8F1BE3908D9687989B0C94582804F102768ABDBF6BBCC69CE7DCB640B1F408CD0E6A08434FD5283BDEA6ED8BCAED41A7A1D2AB872310681EB21B8948CABEB6067F7B3C23628DEFACCDF18DD2E94E76CDB0A74BC6726CCD1CC60CDBB5AA5C832F041C7A1D2ABC74320701EB41B8948CABEB614CA84B14D99A398C26B76B54B9065E467860E655E391903E27590E44A4651F7E554185473247A098C6CD1B72B52DE99F56434B97930BDFF64DE372C937235D493FA8DBDB2EEF4FF1A54446F32245898B9AD5BD5A95F53E86BF9B592E11BCB69161A2E6B5715166BD492E11BCC91E81A2E6B56ED6A6BD4D0D21BE4C2F6FDED78DCB24D8A2FBEB337C6360A1FF002C4CEFF7A7065B503DABFC6A0FA8EBB5D7D8BEC503F157275DB13C58D0800198840C42FB078BE873D9ED767148AC3A3FB533A18268A06844328C425E9F364F5108480A3E25026CE1B121088A030578D9EBEF098049D8EC2843A1DDFB61AAED06D4D8EBBB6D98322E108C2000009BD43363B77A09C43650D866C36F1B8A244493128A4621CEF1E7D0942F8921D72BF09B2A0C2A396C22C4C63668DC74595F4DC0CFEF6F84654185473267A098C6CD1B72B52BE9AA88F2E5B48B1318D45B8A8B2BE9BD733F09B75CDFC24CA830A7E5B08B1318D9A371D1657D310D21BE73AF6FDED675B524CA888DE5B4F4131735AB8A8B2BEA7F2AF05E27A12CABC740D070E28A1B86C8CAB974BB4C7DB36C55D2F1629B32BF2E4336ED6AA93EC57AF33D098024341C0D1C518390DE2CAB92F233C4E4CA4F1C8C81F13A308E192328FB853AA133949668E6389AE2A2D2E419782F13D09655E3A0683871450DC364655C8AF418459303A868C41C07A308E1BC5957DC5595099C9B32BF2E04D6E56AA93EC9752E964B388A0D1C671866F03204935558D609FF00F2C4CDFF007B70654AE9BF685AC4765AFB39A7314EC7535765A9A346AE8DDA3468D1A3FF004DDF4D3F4DFF00FC010F37DD018D47D1A429EF61AFADB6D7D4D47D0B8A21A31826C22D09DAEBEDDC36FBF87B40E47A22FCAD42C1C0FB83DED76F05143CEDA29AE62806046784A361513B954E031376D9EC1F1D3A5DA64EDA3628DEC4CCDF18C462A23393656F2E04D6ED6B813EDD5154E7735B146F62666F8CF89A056864E70244C1C3285D603912E14D392E5D3D36ECAE5CFF008EAF49EAF325D4BA592CE22834719C619BC0C8124D55635F2E28DEFACCDF19F03C5511649BA8B98C25B76B5C79062B8D10C9CE04868C41B14AC07225C5957D418678609955E07190C227460E4327A6DF572FF723B2B973FE44B2E7ABCC6815C262607713070CA194611C378534E4839071E84B2AF030C86207A286E1B3D34FBA3E1861A76311368087AE263076DCDBBFC49D1EDDB40AC030B183EC31F1FF0067ADB57886EB6D35DD74EB95FB2FAF0DF75F57469FF4DA15EF3BFF00E07ED9E9D568DA628BBB461F63213106D431117DD7D3B47BD9B881044E90F77D47ED4D9BDBE6AECF5746DB6A98837B370DA98D16DBB8EA6C226F82678D8ED36BB6DAEA6D36EFBABABADA35B4EA6AECF5759B143F7D065F8C641C838F425957818643103D14370D9E9A7DDFA3F4EF633D799164C0EA260E188E28C2386F0A69C8AF5E6459CE3A868381C38AC88E25C595723C5521629BA8B98C26B76B5C7906EA8898FB98CBC17891674A501D0341C38AD08E25232AE5B99072F122C964A006068C4714511C367A69CBE5C517DF519BE3192F62AFCC99E81A2E32BADCAD4D7A96397F64FCDB25EC56396C22C345CE575C7459AF534B846F3247A068B9AD5BB5A9AF53FA60C3F98B325B91AEA4BFD465ED9777A7F8D6E65CAB97930B2B4595785CB3ADD737F09B4331BB707B89EC3651727B6EEB0AD7D3B9EB6900C4353DC51C364F0EE6B383B6CB5F46FE07500203BB61E6191D4110006DEE3E2114384260EE9FA38EF9CFF901DDB0F3034E9088FC38E91E0F89DC22D077BFD7C07CD617C335F67AFABB18BBBEA6BEB7FE2856DF51EF4EAEC1CF5769ACEDFAB89B67A53F854732479894C6CD1B72B32BE9A97B157E64CF40D17195D6E56A6BD4B7E8D1A37696C513DF5999E3192F614FCB61E81A31B346E3A2CCFA62E5435CE7595FBDACEB6A7595111BCB69E8262E6B57151657D4FA197E6C6E869F9B1BA197E6CF9776FD1A7469633D06116738EA26311881EB2238970A69F70B8F7D659F9363C52E162A4A8B98E19B8A8BC7906E97698FB66CA852E9648C48A131C64E066CF320352B4A8D1E2A90CE52345CC6135C545E3C8315EBCCF4260090D0703471460E4378B2AE4D8E67D93F36C8390711674A50030C86207AD08E253D34FABC1071164B2501D0C81C07A288E1B232AFBFAB4B20F416461D49440E3318826B024894F4D3E25650C602C53EC30501BB1FBACBB11CD5520F8AAA5D2C935E57E5C86A815AAA4FB618900717E43A5B6DB6DB1DFAFAF526D40C43B534EFD0EFA37B62A2A60CA4CB95FA0B5125B75AAA4FB7545539DCD6C2E3DF5967E4DB1575446726CCAFCB9135BB5AAA4FB25D4BA592CE22834719C619BC0C8124D55635D5154E7735B0A754267293CD1CC7135C745A5C8319E8308B39C7513188C40F5911C4B8534FABC8CF1393293C723207C4E8C238648CA3EE14EA84CE5259A398E26B8A8B4B9065E0BC4F4259578E81A0E1C514370D919572F937EED1A74E9FF4633D799164C0EA260E188E28C2386F0A69CB146F62666F8C6C0CBEF6784F81A068864980244C62328A51C390DE14D3EAE5D1D492CAE5CFF916CB9EAF325D54459231228344E1C626B3CC80D4D5560AD8AC25E3394965865C866E2A2D527D8D02B84C4C0EE260E194328C2386F0A69C9B033FBD9E11B146F7D666F8C6542A88B259C450989C2704D781902495A54150D7F6DABDB98CFE3ABCE4682DD51131F73192EA5D335189E81938CE30CD9E5C06E6AAB1A5CBFDC96CAE5CFF00912CB9EAF31A057098981DC4C1C3286518470DE14D391A068864980244C62328A51C390DE14D3E91AA88B15235BD05C89AE2A2F067DB146F7D666F8C6542A88B259C450989C2704D781902495A5417A5CA9CED9B25D54459231228344E1C626B3CC80D4D5560BF0C51BDF599BE33E654185473247A098C6CD1B72B52DE98A83157E64C8B1317195D6E56A57D490D2E4E4BEF7FD9578DCB22DD737F09B73C9D493FA72B272EAF4FF25FA60C3F98B3259511E5CC91E82631A8B6F56A57D337B7D1B145F7D66778C6541853F2D845898C6CD1B8E8B2BE9886972725F7BEE055E372C937235D497FA8DBDB2EEF4FF1A4BD853F2DA7A068C6CD1B8E8B33E998E57D93F36C97B0A8E64C8B0D18D9A36E56A6BD315111BCC8916262E6B56F56A57D4D0D21BE4C6F6DE36BC6E5926C517DF599BE3195062B1CC9916262E72BADCAD4AFA9E067F7B7C23628DEFACCDF18C970F2E5B4F40D18D45B8A8B35E99D733F09B7237D493FA8CBDB2EEF4FF1ADEDBF46ED2D8A2FBEA337C67CCBC1789E84B2AF1D0341C38A286E1B232AE4830AF0C1CCABC0E0D18432B21C89CF4DB962AE97CB14DB95F97219B76B5549F641C8388B3A528018643103D6847129E9A7D542974B246245098E327033679901A95A54690D7F725BDB98CFE45B324682DD2ED31F6CD9072F13D0E955E06068C4715A0DC4A7A69CB1575426726CCAFCB8135BB5AAA4FB1A068898E71DC4C62328A5644712E14D3E9A056864E70244C1C3285D603912E14D3974BC4C9DB462B8AD0C93004868381B0BA38721BC5957263C92E962A4A8B98C19B8A8BC7906542A88CD4627A0989C2704D679701B95A54157919E27265278E4640F89D18470C91947DEA88A73B98C9752E964B388A0D1C671866F03204935558D74BB4C7DB362352E1629B6B797019B76B5C09F6C51BDF599BE33E1A34FE9FAE862BD799E84C0121A0E068E28C1C86F1655CBAA2A9CEE6B7545539DCD64BA974B259C45068E338C3378190249AAAC6BE4DFBB469D3A7FD18CF5E6459303A898386238A308E1BC29A72EA8898FB98DD51131F731BAA2263EE6375444C7DCC623551962A4AB797226B8A8BC09F65E0838F43A5578E8640E03D68371291957D542A88B259C450989C2704D781902495A54170A74BC6726CCD1CC60CDBB5AA5C832F041C7A1D2ABC74320701EB41B8948CABEE171EFACB3F26D8E67D93F36D85C7B132CFC9B2F22BC4E7324F1C8341F0CAC88E272328E4863FB6DDEBCC5FF001DDE7234262B8D10C9CE04868C41B14AC07225C5957DE974A73B66D853A5E33936668E63066DDAD52E4197820E3D0E955E3A190380F5A0DC4A4655F57915E27399278E41A0F865644713919472E976A73B68C6815C262607713070CA194611C378534E4681A2192600913188CA29470E4378534FA46AA22C548D6F417226B8A8BC19F6C51BDF599BE318D0344324C0122631194528E1C86F0A69F715854258A92CB0CB9135C545AA4FFCF8A2FBEA337C637432FCD8DD0CFF0036B7432FCD8CA830A8E5B08B1318D9A371D1657D37032FBD9E11B737235D3737A8CBD7316CBFF1AEB97F84DBAE6FE1264BD85472D87A068C6CD1B8E8B35E9B8E67D93F36D85CFB142CFC9B7D197221AE73ECADC36B3EDA9E64B846F2DA45868B9AD5C5459AF52EB9BF84DBAE5FE136EB9BF8499511E5CB71162631A8B7151657D310D2E4E73AF6D164D9F6D493628BEFACCEF18CA888DE6488B131735AB76B52BEA48690D72637B7EF6BC6E5926C517DF599DE31B144F62866F8C643686B9CFBDB78DACEB6A49BA197E6DF9B146F7D666F8C65E46789C9949E391903E274611C324651F7AA229CEE637545539DCD6C51BD8999BE31B032FBD9E13E09755119AB38F40C9387189AF02E049355582E2AE978B14DB95F97219B76B5549FF820E5E27A1D2ABC0C0D188E2B41B894F4D396397F64FCDB15EBCCF4260090D0703471460E4378B2AE5D5154E7735BAA2A9CEE6B7545539DCD6E97698FB66DD2ED3276D197915E18265578E41A0F86518390C9194724BAA88CD59C7A0649C38C4D78170249AAAC148C4BA58A6DADE5C866DDAD7027DB146F7D666F8C6EA8AA73B9ADD5114E77318D03444C738EE263119452B2238970A69F52EAA2335671E819270E3135E05C0926AAB055CBFDB6ACAE5CFF008EAF49EAF320C33C4E7324F038C86113AC88E273D36FBF2E28DEFACCDF18D8A37B13337C67C7146F62666F8C6C0CBEF678465E0838F43A5578E8640E03D68371291957DC51BD8999BE31B468DEC839789164B250030346238A288E1B3D34E4830CF0C132ABC0E321844E8C1C864F4DBE91AA88B15215BCBA135C545E04FB19EBCC8B2607513070C4714611C378534E4839071E84B2AF030C86207A286E1B3D34FB8E67D93F37F0418678609955E07190C227460E4327A6DF572FF723B2B973FE45B2E7ABCC830AF1393293C0E0D184328C23864F4DB96171EFACB3F26C78AA22C537513418C26B76B5C69062B8D10C9CE04868C41B14AC07225C5957D41C838F425957818643103D14370D9E9A7DC55D2F19CA4F2BF2E43371516A93EC975511648C48A0D1387189ACF32035355582E28DEC4CCDF18C46A5D33548D6F2E43371517813EC6815C262607713070CA194611C378534E5F2E28DEFACCDF18CA888DE6488B131735AB76B52BEA5D0CBF36B7432FCDAD8A2FB14337C636065F7B3C236E65418ABF32645898B9CAEB72B52BEA4C97B0A7E6488B0D18D9A36E56A6BD312E11BCC91E81A2E6B56ED6A6BD490D21AE4C6F6FDED78DCB24D8A27BEB333C6375CDFC24CB9572739F64E8B2ACFB6A7BE0A830A7E5B08B1318D9A371D165BD33033FBDBE11BE8D85C7BEB2CFC9B6397F64FCDB25EC56396C22C345CE575C74599F53FA37D3732A0C2A39923D04C63668DB95A96F4CE793A92FF004E564E5DDE9FE4A8690D72617BFEF6BC6E5926541853F3247A098C6CD1B72B52BE9BF2E28DEFACCDF18DD5154E7735BAA2A9CEE6B7545539DCD633D799E873812260E190E2B21C8970A69CB032FBD9E13E3A34FE9FAE862BD799E84C0121A0E068E28C1C86F1655C8AE3444C4C0EE183106C528C2386F1655F7AA229CEE6325D4BA592CE22834719C619BC0C8124D55634830AF0C1CCABC0E0D18432B21C89CF4DB974BB4C9DB46E97698FB66C6815A1939C0913070CA17580E44B8534E44725C2C53756F2E4336ED6B813ECBC1789E84B2AF1D0341C38A286E1B232AE585C7BEB2CFC9B1E2974B252545CC60CDC545E3C832F22BC304CAAF1C8341F0CA3072192328E5D5154E7735B0A754267293CD1CC6135C545A5C832F05E27A12CABC740D070E28A1B86C8CAB915E8308B260750D188380F4611C378B2AFB8ABAA133936657E5C09ADCAD5527DBAA2A9CEE6FF00EE7FFFC4003E10000102050106030703040004070000000203130001041114150512212232331085D4162023346394E4313541245161624260718206305281B1B3D1FFDA0008010100133F00FF0091349A05DB7281054F9D5408F899C681B2FD34681B2FD34681B2FD34681B2FD346052D2B2F65B9D8482F7682349A05DB7281054F9D5408F899C681B2FD34681B2FD34681B2FD378E9340BB6E5020A9F3AA811F13386125DB72BD048F9151209DC0CE5C46302969597B2DCEC2417BB41EEE81B2FD34681B2FD3430920E375F509072242212B0004B80C3092EDB95E8247C8A8904EE0672E231A06CBF4D1A06CBF4D1A06CBF4D1A06CBF4D1A06CBF4DEF795D2463AABB6E2A09072242473B9984B80CED1A06D4F4D1A06D4F4D1E69491F7F1AB5020E37408247C8AAE272B1846AD40BB6E502E907224B91F1338C0AAAA7996DDEC2476B3A1D519F4B43938F4A952ADF06A954960B2C82A1CE11815543938F549552DF1AA924910B2282A7CE719F4B54F3396EF6153B59D08D22BD76DC4C150E7490209DC0C27C0A33E96BB1B22955A547E0D2AAAAC77597483902302AA9597B11AEFA417BB471ABD020E36A9A47C8AAE272B181CB88C605550E4E3D52554B7C6AA492442C8A0A9F39C6BFB2FD4C6BFB2FD4C67D2D7636452AB4A8FC1A555558EEB2E907204605552B2F6237DF482F768E349AF5DB72BD75439D24083A0C23CD2923EFE348AF5DB71305439D24082770309F028D036A7A68C0AAA565E71AEFA417BB47D378F2BA4F7BCAE923CCE93C7CD2923EFE35FC579EA5497ED629DACEDBABC349CEC8C863EBA5B9BAC46262BCF552ABF6B7CED67777AA71E5957E1A06532CD2A48777282F76AFD318994CB35492FDADF0BDDADDEA8D27071B1D8FACAEFEF3F1E67571A062BCF52AA877728ED676FD3E38994CB35492FDADF0BDDADDEA8D27071B1D8FACAEFEF3FE1E69491F7F1E594BE1F7F1E5749EF795D2479A5278F9A5247DFC795D24681B2FD346052D2B2F65B9D8482F7682349A05DB7281054F9D5408F899C795D5F869340BB6E5020A9F3AA811F1338D2681071BA05D50E749013E0611F611A4502EDB8A9AA7CEAA0473B999CF8943092EDB95E8247C8A8904EE0672E231A06CBF4D1A06CBF4D1A4D020E3740BAA1CE92027C0C23EC3C3CD2923EFE3CAE93C3EFE3CAE93DEF2BA48D036A7A68D036A7A68D036A7A68D26BD071BAF4153E755010E8038FBF8F2BA48CFA5AEC6C8A556951F834AAAAB1DD65D20E408C0AAA565E71BEFA417BB47D378D22BD76DC4C150E7490209DC0C27C0A357A05DB71504839125C8E7733097018CFA5A565E71BEFAA17BB47D378C0AAAEC6C8AA56A91F8D4A92A89DD15D23E438D5E8176DC54120E4497239DCCC25C06275F4B4ACBCE37DF542F7694E9BC3E92EDB890AA1CE91104EE0613E053B479A5247DFC6915EBB6E260A873A48104EE0613E051E694913AFA5A565E71BEFAA17BB4A74DE1F4976DC48550E748882770309F029DA3CD292302AAA9E672DDEC2476B3A11A06D4F4D1A06D4F4D1A06D4F4D0C2A838DD02091F22A2272B181CB88FBDA06532CD2A48777282F76AFD31ECA7E6C7B29F9B1ECA7E6C7B29F9B1A4E0E3E3E47D7577F79F8D032996695243BB9417BB57E98F33A58FBF8D032996695243BB9417BB57E98F33A48D57071B1F23E82BBFBCFC65E532CD2A48777702F76B7BA651AFE532CD524BF6B142F76ADD51F7F1A06532CD2A48777282F76AFD31AFE532CD524BF6B142F76ADD51AB60E363E47D0577F79F8CBCA659A5490EEEE05EED6F74CA3CCE963EFE340CA659A5490EEE505EED5FA631329966A925FB5BE17BB56EA947B29F9B1ECA7E6C7B29F9B1ECA7E6C7B29F9BFF91814B54F3388DF7D23B59D3861241C6EBEA120E44844256000970186125DB72BD048F9151209DC0CE5C46302969597B2DCEC2417BB41E190AA0E36A82A1CE9109CAC6984F814AF1FBA6662318DF3CFB7B994BF6ED7DF8D0365FA68C855071B54150E74884E5634C27C0A578D7F6A7A98D7F6A7A9F0C0A5AA79971BEFA476B3A7D30C24838DD7D4241C890884AC0012E03E19F554ACBD96E76150BDDA087D55DB7281054F9D52239DCCCE7C4A348A041C6D505439D2404E563009F028C0A5AA79971BEFA476B3A7D30C24838DD7D4241C890884AC0012E03E1814B54F3388D77D23B59D38D0365FA68D2681071BA05D50E749013E0611814B54F3388DF7D23B59D38D0365FA6F7B48AF5DB71305439D24082770309F02F0CFA5A565E71BEFAA17BB47D3787D25DB71215439D22209DC0C27C0A768D036A7A68C0AAA565E71BEFA417BB47D378D22BD76DC4C150E7490209DC0C27C0A1F49071BAF4153E754842560039F128CFA5AA799CB77B0A9DACE846915EBB6E260A873A48104EE0613E05E19F4B4ACBD88D77D50BDDA38C0AAAEC6C8AA56A91F8D4A92A89DD15D23E4386155DB7282A120E44848E7733097018FDAF0F2D8C6F9E65CDFC45FA2F6DC87D25DB71215439D22209DC0C27C0A768D5A8176DCA05D20E449723E2671815554F32DB9D848ED6743AAD0C2A838DD02091F22A2272B181CB88C6BFB2FD4C67D2D53CCE5BBD854ED6742348AF5DB71305439D24082770309F028D5E8176DC54120E4497239DCCC25C063EFE348AF5DB71305439D24082770309F02F0CFA5A565EC46FBEA85EED1C3E92EDB890AA1CE91104EE0613E053B7BDE594B18994CB34AAAFDADF0BDDAB754A3F63D3B4FFB975CCFFF004B3519794CB34A921DDDC0BDDADEE9947B29F9B1FB1E9DA7FDCBAE67FF00A59A8CBCA659A5490EEEE05EED5FA651AFE532CD2AABF6B142F76ADD5E1A06532CD2A48777282F76AFD31978AF3D54921DDDC3B59DDEE99C7B57F851A56A98789FD0FCCBC8B9BF8AE76E56DFB47B29F9B1A4E0E3E3E47D7577F79F8D032996695243BB9417BB57E98CBC579EAA490EEEE1EED9DDEE99C6AD9D9390C7D14B737588D0329966A9543BB9417BB57E98D7F299669555FB58A17BB56EA8D5B071F1D8FA0AEFEF3F1A56A98789FD07CCBE8B9BF8AE76E56DFB4626532CD524BF6B7C2F76ADD51A4E0E363E47D7577F79F8F2CA5F1F2CA4F7BCAE92184976DC48D23E4544827703397119DA3029695979B73B0905EED27D578D5ABD071BAF5D20E449710E8008D0365FA68C0A5A565E6DDEC2417BB41D57F0D5EBD76DC4CD23E4557209DC0CE5C47C349A05DB7281054F9D5408F899C6052D0E4E3D2AB548FC6A5492582CB2091F21C6BFB53D4C642ABB6E2A6A9F3AA4473B9A853E253B469340838DD02EA873A4809F030F0D268176DCA04153E755023E2671E694912AFAAA565ECB73B0A85EED04642ABB6E2A6A9F3AA4473B9A853E253B4795D5C7D8469140BB6E2A6A9F3AA811CEE6673E250C24BB6E57A091F22A2413B819CB88C6052D2B2F65BBD8482F7682357AF41C6D304839125C42560009701F1F2BA4F7BCAE921F49071BAF4153E754842560039F128CFA5AA799CB73B0A9DACE87863AABB6E2A09072242473B9984B80CED1A06D4F4D1A06D4F4DE19F4B4ACBCE35DF542F768FA6F181555D8D9154AD523F1A9525513BA2BA47C87157B7681943FDCDA58CED2FF0003384A8184E98E9DFE12B19DEEFC536CC71306699343AA76BDDA8D1C234708A8A59A6A28F54AABCEE3295A569AB68248E5294BFCCED19F4A836F623567950BDDA38C0AAAEC6C8AA56A91F8D4A92A89DD15D23E5386155DB7282A120E44848E7733097018FDAF0F2D8C6F9D65CDFC55FB77B46055576364552B548FC6A549544EE8AE91F21C6935E838DD7A0A9F3AA8087401F86935EBB6E57AEA873A48107418467D2D7636452AB4A8FC1A555558EEB2E9072047ED78796C637CEB2E6FE2AFDBBDB721F4976DC48550E748882770309F029DBDEF2CA58CBC579EAA490EEEE1DACEEF74CE356CEC8C8C8FA096E6EB1E18994CB35492FDADF0BDDAB754A3D94FCD8F653F37C3EFE3CB29607F51DE9CA5797F995E252E128095E7B8984CA7697FD250139948252909A73BCF8CEE2769CF85E72BCA568527610194AF39CE73FE2528AC49B1AA496099A6AA72FD6425295E5BD294ED69DBC3FE10995E45BB2FE25398DEDFDE739FF31A06532CD2A48777282F76AFD3E1AAE0E363E47D0577F79F8CBCA659A5490EEEE05EED6F74CA3D94FCD8D27071F1D8FAEAEFEF3F1A06532CD52A8777282F76AFD318994CB35492FDADF0BDDADDEA95AF1FB1E9DA7FDCBAE677FA59A8D2B54C3C4FE83E65E45CDFC573B636DFB7BDABD7A0E3698241C892E212B0004B80C6052D0E4E3D2AB548FC6A5492582CB2091F21C7EE99988C637CF3CDEE65AFDBB5F7E1849071BAFA84839121109580025C06184976DCAF4123E4544827703397118C0A5A565ECB73B0905EED0469340BB6E5020A9F3AA811F13387D541C6E82A150E74884E563009F028CFAAAA79971BEFAA76B3A7D368F2BA48FF00BE5E14E52963266049E42E5796E2729CE76FE4A72B0CA73BDB6A3DBE330A74D2B727F1C853BDE7FACB84AD3BECDDB2A2AF2025BC694913404A523DDDC9F35B7665C62F27524E9A46204A87EA247350E72BFEA0DF87FDC51A4502EDB94082A7CEAA047D671AFED4F531AFED4F531AFED4F531A06CBF4D1FB5E1E5BF93F22C39BF8A8772F6DC8C85576DC54D53E75488E77350A7C4A768D0365FA68FDAF0F2DFC9F9161CDFC543B97B6E4642ABB6E2A6A9F3AA4473B9A853E253B7BDA457AEDB8982A1CE920413B8184F81430AAEDB941509072242473B9984B80C605552B2F38DF7D20BDDA3E9BC795D2467D2D7636452AB4A8FC1A555558EEB2E907204681B53D3463AA838DAA691F22A2272B1A652E2328D036A7A68FDAF0F2D8C6F9E61CDFC55FB77B6E43E92EDB890AA1CE91104EE0613E053B78274229A28A467314574AA24A94D407268A4523009DD4BDA366A96651AA56A12A62A8DD9DD8A646986649CA7BB335EE5095E68D32B4AD492A84D39DC46EF148A5294A45619CE2A7E67682CAA6446AA15339B9F0F978EF5AE56B5A2946432DABB384A725F78385F7921782FD256B4E5C6F41B36A2B0954256B9FC202E1CC30D1A7BF3150C4B94E522E1319CBF48D5E81071BA04123E455713E0607E1F7F1E57491AFECBF5319F4B54F3396E76153B59D08D5A81071BA04123E455713958C3C302AAA9E672DCEC2476B3A10C2A838DD02091F22A2272B181CB88FBDA06532CD2A48777282F76AFD3E1AB60E363E47D1577F79F8D2B54C3C4FE83E65E45CDFC573B636DFB4626532CD524BF6B7C2F76ADD51ECA7E6C6262BCF552ABF6B7CF76CEDBAA718994CB34AAAFDADF0BDDADDEA94693838F8F91F5D5DFDE7E3CB297C03F8AA40A9EB11FFE838A0009112469A736493504C4C39653B14A7394F8CA70B8802C549319A694C3993414BDF7E4090CA5212E6B95EE9D624CA03322DD4896107A616DD9CC1DB7198F4C02929A6B23309837219719CA729FE9394B8452593ACAE5123ABA6911D42A5BA92130A4524729094CAD149564926A27906DA6F12739F2818DCB723DABFC28D0315E7AA9243BB9476B3B7E98FBF8D032996695243BB9417BB57E98CBC579EAA490EEEE1EED9DDEE99C7B57F851ED5FE146818AF3D54921DDCA3B59DBF4C6939D919191F5D2DCDD6231315E7A9525FB5BE76B3B6EA9FBDA4D02EDB94082A7CEAA047C4CE35FDA9EA633EAAA9E6711AEFAA76B3A71A4502EDB8A9AA7CEAA0473B999CF8943092EDB95E8247C8A8904EE0672E231814B4ACBD96E76120BDDA08D268176DCA04153E755023E2671ABD7AEDB899A47C8AAE413B819CB88C6052D53CCE235DF48ED674E33EAA87271EA95A547E0D2AA92216450483903C1CDD3553569D748E432FF008AD23DF9CBFF00485E25FA47F78D8FB357A9A79C84B7484E49C8C933039184E45FAEE6F42889A339DA769F298C8A5C65FCCA10E2E20B564D6DF9CA529EE8260B29729CE579A96943CA22E86FCE76DF4C84A5C65FC4E51AFED3F531E69491814B54F32E35DF48ED674FA6D1A06CBF4D1E6949E390AA0E36A82A1CE9109CAC6984F814AF1FBA6662318DF3CF37B994BF6ED7DF8CFAAA1C9C7AA56951F834AAA4885914120E40F7BCAE93C25415554F32DB9D848ED6743AAD18EAA0E36A9A47C8A889CAC6994B88CA185576DCA0A84839121239DCCC25C063F6BC3CB631BE799737F117E8BDB721F4976DC48550E748882770309F029DA356A05DB728174839125C8F899F8E75354EFA412B1CEE8A8768DEE09998EE914A5FA6F6EDC653FE244504129FFF009049CE53FF00E611B2F475273B5CCE9D496EC8F965720984E7C6F38A619260676E2421329CC653FED79DBFBC4E9C4159A69269260332971294B74A728FED3BCE769FFED394E3CAE92356A05DB728174839125C8F899F86915EBB6E260A873A48104EE0613E051A457A0E3699AA7CEAA0212B001CF8946055553CCB6E76123B59D0EA8D036A7A68D26BD071BAF4153E755010E803F0D26BD76DCAF5D50E749020E830F7BCB29635FCA659A5557ED6285EED5BAA3EC235FC579EAA557ED629DACEDBAA313299669555FB5BE17BB56EA8FD8F4ED3FEE5D733BFD2CD4695AA61E27F41F32F22E6FE2B9DB95B7EDE1AB60E363B1F415DFDE7E3DABFC28A5FFC432A951BFF0009952848E7FE37E51B4692A13552FF005B4C061A5E2A1153713DE3101BDA7FC910CA195A29D05260A6E19015AF3FE084A509D31CE729FF007E33B5FF00EB0B4AC7507C39A7C25FDA5FC4BF494A5294A51A06532CD2A48777282F76AFD31AFE532CD2AABF6B142F76ADD5E1E59491A062BCF52AA877728ED676FD31A4E7646431F5D2DCDD6231315E7A9525FB5BE76B3BBBD538F653F363D94FCD8F653F37DED5EBD071B4C120E4497109580025C063CAEAE33EAA95979B77B0A85EED0755E35FDA9EA633EAABB1B22A92A55BE0D52AAA2774575439C23029695979B73B0905EED0755E348A05DB715354F9D5408E773339F12F0FB08D5ABD071BAF5D20E449710E8008D5ABD76DCAF4123E455720E833F0D5EB9071BAF5D20E449610958023029A85FC7A55AA91F8D4C9A6A85964122E0713AFA9AA799C46BBCA1DACE9C799D5786052D53CCE235DF48ED674E340D97E9A3CAEAE30296A9E6711AEFA476B3A719F5543938F54AD2A3F069554910B228241C811A06CBF4D1814B4ACBD96EF6120BDDA08D5EBD071B4C120E4497109580025C06184976DCAF4123E4544827703397118C0A5A565ECB73B0905EED0469340BB6E5020A9F3AA811F133F7B48AF5DB71305439D24082770309F028F34A48FBFF0C75576DC54120E44848E7733097019DA3F6BC3CB631BE799737F157EDDEDB9181555D8D9154AD523F1A9525513BA2BA47C87E19F4B4ACBD88DF7D50BDDA387D25DB71215439D22209DC0C27C0A76F0FBF8F2BA48C0AAA1C9C7AA4AA96F8D54924885914153E738FDD33311FC9F9179BDCCA43B96BEFC681B53D3467D2D7636452AB4A8FC1A555558EEB2E9072047ED78796C637CEB2E6FE2AFDBBDB721F4976DC48550E748882770309F029DA31D55DB71504839121239DCCC25C067689D05552B2F38DF7D20BDDA3E9BC795D24605550E4E3D52554B7C6AA492442C8A0A9F39C6BDB33D4C6055576364552B548FC6A549544EE8AE91F21F8F95D27BDA06532CD2A48777282F76AFD31AFE532CD524BF6B142F76ADD51AB60E363E47D1577F79F8F6AFF0A355D530F13FAEF96651737F15BEE4ADBF78FD8F4ED3FEE5D733BFD2CD465E532CD2A48777702F76B7BA65E3E59491A062BCF5524877728ED676FD31AAE0E363E47D1577F79F8D2B54C3C4FE83E65E45CDFC573B72B6FDA340C579EA5550EEE51DACEDFA63EC2340CA659AA550EEE505EED5FA631329966A925FB5BE17BB56EA8D27071F1F23EBABBFBCFC79652C6BF94CB35492FDAC50BDDAB7547DFC795D2465E2BCF52AA877770ED6777BA671ED5FE14695AA61E27F41F32F22E6FE2B9DB95B7EDE3E594BEF69340BB6E5020A9F3AA811F13387D541C6E82A150E74884E563009F028CFAAAA799C46FBEA9DACE9C6AD5E838DD7AE907224B887400467D557636455254AB7C1AA55544EE8AEA873847ED78796FE4FC8B2E6FE2A1DCBDA35FDA9EA6349A041C6E8175439D2404F81846052D53CCE237DF48ED674E1849071B48520E4484425604C25C06578C855071B54150E74884E5634C27C0A578D7F6A7A98C85576DC54D53E75488E77350A7C4A76F0CFAAA565E6DDEC2A17BB41D578C0A5AEC6C8A54AA96F8D5492AB1DD65D53E7386125DB72BD048F9151209DC0CE5C46340D97E9A33EAA87271EA95A547E0D2AA9221645048390235FDA9EA633EAAA9E65C6BBEA9DACE9F4C795D278E9140BB6E2A6A9F3AA811CEE6673E251A06CBF4D1A06CBF4D19F5543938F54AD2A3F069554910B228241C81EF6915EBB6E260A873A48104EE0613E051A06D4F4D1A06D4F4D1A06D4F4D1A06D4F4D181554ACBCE35DF482F768FA6F1AB5020E37408247C8AAE272B184605550E4E3D52554B7C6AA492442C8A0A9F39C67D2D53CCE5B9D854ED6742356A041C6E81048F9155C4E56308F2BAB8FB08F34AB87D241C6EBD054F9D521095800E7C4A3F74CCC47F27E45F6F73290EE5AFBF18EAA0E36A9A47C8A889CAC6994B88CA35FD97EA633E96A9E672DCEC2A76B3A11AB5020E37408247C8AAE272B1843E920E375E82A7CEA9084AC0073E251AFECBF530FA4BB6E242A873A44413B8184F814ED18EAAEDB8A8241C89091CEE6612E033B44E82AA95979C6FBE905EED1F4DE3CAE9231D55DB71504839121239DCCC25C067689D05552B2F6237DF482F768FDFF002CA58F653F363D94FCD8F653F36340C579EAA490EEE51DACEDFA63EFFC34AD2F332FFA1F997966F7329CED947B57F851ED5FE146818AF3D4AAA1DDCA3B59DBF4C7D84799D5F86939D9190C7D74B737588C4C579EAA557ED6F9EED9DB754E3DABFC28F6AFF0A3DABFC28CBC579EAA490EEEE1DACEEF74CE355CEC9C8C8FA096E6EB11E594918994CB35492FDADF0DEBB56EA94695838D8F91F5D5DFDE7E3CB2923CCE9634ACEC9C8C8FAC96E6EB11ECA7E6FBDE57490C24BB6E57A091F22A2413B819CB88C681B2FD34681B2FD3479A5247DFF86052D0E4E3D2AB548FC6A5492582CB2091F21C67D5553CCE235DF54ED674FC349A041C6E8175439D2404F81847D8469140BB6E2A6A9F3AA811CEE6673E251A06CBF4D1A06CBF4D1A06CBF4D1AFED4F531AFED4F530FAABB6E5020A9F3AA4473B999CF8946052D0E4E3D2AB548FC6A5492582CB2091F21C67D5553CCB8D77D53B59D3E9B4795D24681B2FD34681B2FD3430920E3690A41C890884AC0984B80CAF1814B43938F4AAD523F1A9524960B2C8247C871FBA6662318DF3CF37B996BF6ED7DF861241C6EBEA120E448442560009701F7BCAE923CD293C7CD2923EFE356A041C6E81048F9155C4E56308F34A4F0D26BD76DCAF5D50E749020E83086155DB7282A120E44848E77330970189D05552B2EB8DF7D20BDDA3E9BC6915EBB6E260A873A48104EE0613E051AB502EDB940BA41C892E47C4CE3EC3C185576DCA0A84839121239DCCC25C063F6BC3CB631BE799737F117EDDEDB90FA4BB6E57D42A1CE91104EE0613E051E575712A0AAAA7996DCEC2476B3A9F55A31D541C6D5348F915113958D329711946AD40BB6E502E907224B91F1338CFA5A565EC46FBEA85EED1C6055576364552B548FC6A549544EE8AE91F21C79A5244EBE9695979C6FBEA85EED29D3787D25DB71215439D22209DC0C27C0A76F7BCAE9231329966A925FB5BE1BD76ADD528F653F363D94FCD8F33A58FBFF0D7F29966A925FB58A17BB56EAF0D0329966A9543BB9417BB57E98C4CA659A5557ED6F85EED6EF54A34AC1C6C7C8FAEAEFEF3F1E59491ED5FE146AB9D9390C7D04B73758F0D0315E7AA9243BB9476B3B7E98FBFF0F2BAB8FB08D7F15E7AA955FB58A76B3B6EAF1D032996695243BB9417BB57E98D5754C3C4FEBFE59945CDFC56FB92B6FDE349C1C7C7C8FACAEFEF3F1A06532CD2A48777282F76AFD3EF795D24681B2FD34681B2FD34681B2FD3469140838DAA0A873A4809CAC6013E051F7FEE69140BB6E2A6A9F3AA811CEE6673E250C24BB6E24691F22A2413B819CB88CED1A06CCF4D19F5543938F54AD2A3F069554910B228241C810FAA838DD0542A1CE9109CAC6013E051AFED4F531AFED4F53190AA0E36A82A1CE9109CAC6984F814AF13AFAAAA79971BEFAA76B3A7D368D268176DCA04153E755023E2671E575719F554ACBCDB9D8542F7683AAF0FAABB6E5020A9F3AA4473B999CF894681B2FD346052D2B2F65B9D8482F7682349A05DB7281054F9D5408F899C6AF5EBB6E26691F22AB904EE0672E231814B54F3388D77D23B59D38D0365FA6FF99FFFC4002A11000103030205040203000000000000000100020304051106211213314051101422413280162442FFDA0008010201013F00FD9A073E83708641EFA59046325433897A2924118C950CC25E9DEEDD15DEB22A6A77F1EE55B756B2DF172A66F555FAA5B5748EE546412B4C81EC83B8B2E3E9F8F74767A75496CE42A3823ADAA2F937C7D2BD5AA8DF3B1EE6630BD8521A511F00030AD956EB55D1F0039612B9E00C94C7878EE88CABEC8200C7F8475355D1D710C3B29EF02BA2CCB2E0A9357CD08E40391E54B7685E1B237F2F2BDC3EB18C847FA54C0B58223F5DD67016A767F4DEEF0A42E3212A9C1126241B2ABB232439A5F1F6A4824A69431EAC25B253C2E3F41746E3BAE87215C6DCDB93381C765268280E785E9FA065CE5922FE3B5B147CB90712A8D2570E6F1C4CC0565A534B42D63BAAC671DD0F8EC5608DC2F92C1F2B87EC84785FB2D9BF00BA7EDDFF00FFC400251100010401040104030000000000000000010002030411051221403210224180144261FFDA0008010301013F00FB76D6A73709A139B8EEF2AA40F95E24F85269DF907785069E18FDC5CAFEDDFC0F407B4D4C8B729849523DA154B53161084AF7BF20AB359F356DC5A830A23B43C9513FAAB518B8DC151D335FC555A518707CA15FB94DF4042C1CA6E222F47DDDAF95A77364350FE27709B69CDF6BC26B848DE15AE1CF4381DAC65413188E426EB2F09BAD1F9085F8F3951EA9106E15B977BF211E5BDA6AC64AC05C2E10217921F6EFFFD9, '1', '2022-03-16 22:15:46', '1', '2022-03-16 22:15:46', b'0'); INSERT INTO `infra_file_content` VALUES (5, 4, '0d9be64ab8674344b236df60f4c39b62.jpg', 0xFFD8FFE000104A46494600010100000100010000FFDB0043000302020302020303030304030304050805050404050A070706080C0A0C0C0B0A0B0B0D0E12100D0E110E0B0B1016101113141515150C0F171816141812141514FFDB00430103040405040509050509140D0B0D1414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414FFC20011080102010203011100021101031101FFC4001E00000301010101010101010000000000000008090701060A02040503FFC4001C0101000203010101000000000000000000000105020406070308FFDA000C03010002100310000000AA6000000000000000000000000000000000070000000000E81C3A70E8001C03A0700000E8001C2401808000FF000BF9808017F8E12007F8C00A0200040102BE0120C0000BFC000708045D03033802AA794029412BC69C0DFC9B206005261020356037F37E1551D33CB1AA1160BFC00070804553201017F4554D50A002A86AA4582FE0800D51164AA66503FE74CA48B22A85FD1551561552A98AB17F8000E1008AA640202FE8AA8AB00FF0BF98097F490007AB12D2D2920C0DF8F564AC2FE8AA8AB0AA954C558BFC00070804553003013CA0AA9AB1540F2A45A3CA95409B27953CB173C55474CF2C4593CB173C4047F80E9208FA27000384FF0032C387406A0CA8D58554D50D5895A6563526A66A82B06546565A61553541AA1013A0700AAA0000004FE37F03002809E449B22AA5D0303384023572E79F3B250030003CA973C6089FE2026FC3002025FE0003F22FE7CEC9AB9E58B9E6A6795030037F18227F9C26C8E913687E8A504303D48FE9BF916874874C6089FC4863E9E8000E1008CAC7F440C7F4E08195407FC4006A8404E9C1A932A1AA22D1AA0D39AA8AB8FE99492B8BFC708045FE000384023033D494A04A8CB0CA0FA261812401E5C7F8DF095A57F2400EA88115E885E3542585A530037F182384022FF0001C20115F0C00A02791303384023572A808794FCF0666B0E8F062D2B32107EC9B23A66A679724015FCC00D4C9B47D3D0001C201169CCA86B0CA0404E92ACAA62AC5F13FA4FF0033E3965D84EBBF58CCFE4D5B671FF2C44C8B03566563FA2AC6AA5501023A5540003F22FE4D93531D303003001582E79164BE50FEA463B41BD9EF975F7FD2DB5FD2F595FBE75D57FC0991F2754009583545262178D51498F5C0007E45FC8B45CF22C9AB0FF1BE1810AA9368A8312CC516DE535BBDEBA973F7DD6D7647E5FD2B29EC9C8FA0FBC4B2CB19AE55315601FE17F26B9400C00FA27000384FF22C0D58D48FE8808FF1014B4A4AD1C786F9C8DB79BF1DEDBC6DD53FBFACDCF1FF001F41FF0027D57C5D84EC6A13EDAC72C3533541AA101032C32A32B3E944000E1200754408C00B4A6006003FC60007874379C6DAFE7F2EFA09F58C5FACAFD4F98DE553F4BF11437B2A4C1A41164D4CAA640203E9E89B26A6501000384022FF001941EA480C3A44DA1FA2BF9D10F1C6A5D9FF002FCEEE7F92B36330DEC3D671B65FC5EE9C96CBD0E9C1437F2BF8BF01EA8CB0C0490057F2948001C2010FE9961958AB0FE0155055055CFF00B4CB59187FA6CB4BC59A4C69713FEB44FEFE9094C01FF2018FE9AA116C7F4E1D2AA0001F917F241969CCACCA495E7AA3E89C9567AB024095EC5D0FEE1EE1A610F10601FE382043FA6FE06006005800003F22FE7961562AA1E449B26A650127F1218F225531561FD32C1A910235326D1F49879522C8FE8810FE9404E1008BFC000709FE2B065635007040CFA503840335632B1A835332B32C2A899512B4D58D50554CB07F0E954C08045FE0003848015837F37F3D41960D48951BF9218FA4C30337C3D719392BCA4C4831FD35635422C0AA9D1803D480FE9404000FC8BF9E58000D509AC6FE745FCC046A46A8F522585272178FF0BF8FF120CC0CFA4C3CA9164BA048527F9F55000070804354006566A85532561C035432B1AA1AA1543551023803FC6544AD2D399512B4AA64AD1A82AA8001C20115F090605531562AA115C09FE5283D58969EA400AA6749046FE55022C801818E91A98E98C10001C201154C80405FD1553CA0EA9008AFE2025CF3CA8809EAC9583023A43A64832D31EA895A30070D588B27963E9E8000E1008B4E20203542AA55422C13FCA002AC5A52568D48AB8AA1400D50AA64021AA32B2D39C10032C1A732B2808001C2010001E5874CAA87CAB9D18032C37C1FD26C95F4E1BE9E549AE6025A62181EA47F85FC7F8C00408BFC000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007FFC4004210000003060209020503030203090000000607080004051415160917010203111318195785253810202147671226272829464175223739303142505160616383FFDA0008010100011200FF00C8F7B6F6DEDBDB7B6F6DEDBDB7B6FF008EFF00868D3A34FCBBDBF568F8FEAD0DBDB7B6F6DFF32F05E27A12CABC740D070E28A1B86C8CAB97545539DCD6EA8AA73B9ADD5154E7735BAA2A9CEE6B614EA84CE5279A398C26B8A8B4B9065E0BC4F4259578E81A0E1C514370D919572EA8AA73B9ADD5154E7735BAA2A9CEE6FC5782F13D09655E3A0683871450DC364655C97919E27265278E4640F89D18470C91947DC2995099CA4B3433184D715169721F2F545539DCD6EA88A73B98C830CF139CC93C0E321844EB22389CF4DBEAF233C4E4CA4F1C8C81F13A308E192328FBD5114E7731BAA2A9CEE6B7545539DCD6EA8AA73B9ADD5154E7737E6C51BDF599BE318D0344324C0122631194528E1C86F0A69F7AA2263EE5B75444C7DCC6C51BD8999BE31B032FBD9E1197820E3D0E955E3A190380F5A0DC4A4655F50720E3D09655E06190C40F450DC367A69F4F154658A6EA2E6309ADDAD71E41950A5D335671E82638C9C0CDE05C09256951A542A88B259C450989C2704D781902495A54170A84BC6726CCD1CC70CDB95AA5C8319EBCC8B2607513070C4714611C378534E49752E99A8C4F40C9C671866CF2E03735558D62ACA80B152795F97026B8A8B549F62BD061E8738121A310681EB21C8971655F550AA22C967114262709C135E064092569505E974A73B66DD2E94E76CD92EA5D335189E81938CE30CD9E5C06E6AAB1AC55D50962A4F2BF2E44D71516A93EC839789164B250030346238A288E1B3D34E58A37B13337C636065F7B3C2319EBCC8B2607513070C4714611C378534E5D51131F73188D54458A92ADE5C09AE2A2F027DB146F7D666F8CF9B146F7D666F8C6C51BD8A19BE33E38A37B13337C636067F7B3C232A0C55F96C3D04C5C6575C74595F52FA32E4437CE7593B86D675B53AC9708DE5B48B0D1735AB8A8B35EA785CFBEA2CFC9B6ED1B99506151CC91E82631B346DCAD4B7A62A223799222C4C5CD6ADDAD4AFA9AE4437C98593BC6B78DCB3AD85CFB142CFC9B25DC29F96C3D03463668DC74599F4CD1BB737D195111BCC9116262E6B56ED6A57D4D72A1BE4C2C9DE36BC6E59DF8628DEC4CCDF18D819FDECF08D8A2FBEA337C67C3033FBD9E11B146F7D666F8CF9B146F7D666F8C6C51BD8999BE33E38A37B13337C636067F7B3C23628DEFACCDF18DD5154E7735B0A754267293CD1CC6135C545A5C832F05E27A12CABC740D070E28A1B86C8CAB96171EFACB3F26DFF7EAB2F05E27A12CABC740D070E28A1B86C8CAB920E5E27A1D2ABC0C0D188E2B41B894F4D396397F64FCDB15EBCCF4260090D0703471460E4378B2AE4BC8CF1393293C723207C4E8C238648CA3EF544539DCC6EA8AA73B9AC839789E874AAF030346238AD06E253D34E58E67D93F37F0C51BD8999BE31B033FBD9E11B146F7D666F8CF86067F7B3C23628DEFACCDF19F3628DEFACCDF18DD51131F731BAA2263EE6375444C7DCC65E0BC48B3A5280E81A0E1C5684712919572C0CFEF67846C51BDF599BE3192EA5D335189E81938CE30CD9E5C06E6AAB1A23551962A4AB797226B8A8BC09F633D799164C0EA260E188E28C2386F0A69C8CF4187A13004898C46407A30721BC29A7D2352D99CA46B797219B8A8BC09F64BAA88B2462450689C38C4D679901A9AAAC14CF4187A13004898C46407A30721BC29A7D2392E19CA42B797219B868BC19F6340AE131303B89838650CA308E1BC29A72C51BD8999BE31B032FBD9E118CF5E6459303A898386238A308E1BC29A72C51BD8999BE3188D4BA66A91ADE5C866E2A2F027D8D02B84C4C0EE260E194328C2386F0A69CB146F62666F8C6C29D509629B33473184D6ED6A9720DD51131F731BAA2263EE6375444C9DCB65E467860E655E391903E27590E44A4651F7E554185473267A098C6CD1B72B52BE9BD0CBF3637433FCD8DD0CBF3637432FCD8C8650D72617B7EF5BC6E592654185473267A098C6CD1B72B52BE9B8A27B14337C636067F7B7C232A0C29F9923D04C63668DB95A96F4CC51BD8A19BE3190D2E4E4C2F6DE0ABC2E59265447973247A098C6A2DBD5A95F4C5438AC732645898B9CAEB72B52BEA781A7DEDF08CA830A8E64CF41318D9A36E56A5BD355062AFCC9916262E72BADCAD4AFA92195C9C985EDFB2AF0B96459511E5CC89E82631A8B6ED6A57D33145F62866F8C6C0CFEF6F84654185473267A098C6CD1B72B52DE9AA888DE6488B131735AB76B52BEA5D0D3F3637432FCD8DD0CFF0036B7434FCD8DD0CBF36FFD862B0A84CE4DB96197226B76B5549F64186789CE649E07190C2275911C4E7A6DF57919E27265278E4640F89D18470C91947DC2995099CA4B3433184D715169721F0340AD0C9CE0489838650BAC07225C29A725CBA7A6D595CBA7F1DDE73D5D6EA8AA73B9AC6815A1939C0913070CA17580E44B8534E5D2ED31F6D1BA5DA63ED9FC08D54466A6DADE5C89ADDAD7027D90619E273992781C643089D6447139E9B7D6C2992F162A4F34731833715169720CBC8AF0C132ABC720D07C328C1C8648CA3919EBCCF439C0913070C871590E44B8534E446AA33393756F2E44D6ED6B833EC830CF139CC93C0E321844EB22389CF4DBEB62B0A88CE4D995F97226B76B5549F6EA8AA73B9AC839789E874AAF030346238AD06E253D34E58ABAA133936657E5C89ADDAD5527DBAA2A9CEE6FCBBF768D3A74FF00A319EBCC8B2607513070C4714611C378534E4C46A5D33548D6F2E43371517813EC6815C262607713070CA194611C378534E5D51131F73188D54858A91ADE5C89AE2A2F027D8CF5E6459303A898386238A308E1BC29A725E45789CE649E390683E195911C4E4651CB0A74BE66A6CCD1CC60CDBB5AA5C86933D799164C0EA260E188E28C2386F0A69C9B1574BA67292CAFCB90CDC545AA4FB25D54459231228344E1C626B3CC80D4D5560A830CF0C132ABC0E321844E8C1C864F4DBEAE5FEE476572E7FC8965CF5798D02B84C4C0EE260E194328C2386F0A69C90720E3D09655E06190C40F450DC367A69F4F15445926DA2E6309ADDAD71E4197919E18399578E4640F89D64391291947DE974A73B66D853A5E33935E68E63866DCAD52E418CF5E6459303A898386238A308E1BC29A7233D061E84C01226311901E8C1C86F0A69F7034FBDBE118CF5E6459303A898386238A308E1BC29A726C5612F19CA4B2C32E43371516A93EC6815C262607713070CA194611C378534E5F2E28BEFA8CDF18C9708DE648F40D1735AB76B535EA5F4C183F31664B2A23CB9923D04C63516DDAD4AFA6F432FCD8DFF45FFCC5992CA88F2E648F41318D45B76B32BE9897B157E64CF40D17395D6E56A67D4F768FD2CA830A8E648F41318D9A36E56A5BD31511E5CB69162631A8B7151657D33AE57E136E46BA927F5197B65D5E9FE35D0CBF36B21A435C98DEDFBDAF1B96499506151CC99E82631B346DCAD4AFA6AA23CB96D22C4C63516E2A2CAFA6AE35CBCE7D93FB2ACEB6A7592F614FCC99161A31B346DDAD4CFA625EC55F9933D0345C6575B95A9AF525CAB93931B27F655E372CEB7233D493FA8CBDB2EEF4FF001A54446F32245898B9AD5BD5A95F5343286B930BDBF7ADE172C8B628BEFA8CDF19F0DDA1B145F7D66778CF9B146F7D666F8C62B8D1131303B860C41B14A308E1BC5957D3C55199AA468B98C26B8A8BC790641C8388B3A528018643103D6847129E9A7DEA8AA73B9AC792A333949D1731C4D71D178F21F02BD061164C0EA1A310701E8C2386F1655F7768D1ABB99782F13D09655E3A0683871450DC364655C92EAA2335671E819270E3135E05C0926AAB05E97698FB68C5715A19260090D0703617470E4378B2AE4839789E874AAF030346238AD06E253D34E5BBE9B99782F13D09655E3A0683871450DC364655CB146F62666F8C6C2992F162A4B34331833715169720C5715A19260090D0703617470E4378B2AE585C7BEB2CFC9B6397F64FCDB15EBCCF4260090D0703471460E4378B2AE4BC8CF1393293C723207C4E8C238648CA3EE14EA80CD5279A398C26B8A8B4B90D067A0C22CE71D44C623103D644712E14D3EFC3146F7D666F8CF9B146F7D666F8C65E45789CE649E390683E195911C4E4651CB0A64BC6726DCD0CC60CDBB5AA5C87C0D0344324C0122631194528E1C86F0A69F7AA2263EE5B75444C7DCCF8118974CE5255BCB80CDC545E04FB25D54459231228344E1C626B3CC80D4D5560B07C2C14ABFC4DD9D36E0476856C36DAFF00A35DF50C22F7446EE22CD4BC35C58FE21929C651D860061479CE2330DFC711A833E4625FF5B8F44F05F73442DD13C19DCE10B270275C13992E1D2EDC222F91974834C70DFB6D137777D96BED36BA769B3D9EAE8DFADAF8A82663254D6C8ADD72CC3B73EA422A73BA52EAA12C91891219270E31359E6386A6AAB05418678609955E07190C227460E4327A6DF572E8EA496572E7FC8965CF57992EAA22C9189141A270E31359E6406A6AAB055E0BC48B3A5280E81A0E1C5684712919572DCC839789164B250030346238A288E1B3D34E49752E99A8C4F40C9C671866CF2E03735558D2E5FEE4B6572E7FC8965CF5798D02B84C4C0EE260E194328C2386F0A69CBE5C517DF519BE319511E5CB71162631A8B7151657D310D2E4E73AF6FD95675B523F054446F32445098B9AD5BD5A95F53E867F9B5BA19FE6DF86067F7B3C23628BEFA8CDF18CFF00FAB5DD769A9A9AFA767ADADA75767A35F63B2D4D86CF46CF67ABA353535746ED1AA288FBB85035158D3D7EA9587BAED5EF6AC994EF8A1DA1A103C4760BA81E8DC1E2FB686BCB83E3EEC21EE9B77979DAEA6C361B1D4D3B4DA6D4A050702394482F83C19D5FB61B40EED1DF46B6DB733A3B6AC39E1F75767A74E8D8EB69D5DB68D9AA0C2A39933CC4C63668DB95A95F4CFAB21A5C9C98DEDBC1578DCB24CA88F2E648F41318D45B7AB52BE99D0CBF3632E4435C98D95FBD6F1B967592F614FCC91161A31B346DCAD4D7A62A223799222C4C5CD6ADEAD4AFA9FF00D187F31664B7235D497FA8DBDB2EEF4FF1AF9376FD1A7469633D06116738EA26311881EB2238970A69F52EAA2335671E819270E3135E05C0926AAB055CBFDB6ACAE5CFF8EAF49EAF320C33C4E7324F038C86113AC88E273D36FABC8CF1393293C723207C4E8C238648CA3EE14EA84CE5259A398E26B8A8B4B9065E0BC4F4259578E81A0E1C514370D91957241857860E655E07068C219590E44E7A6DC88D4BA5926DADE5C866DDAD7027DB146F7D666F8C67AD3F4FFF004D9B6FFA31FE3672D806A260972D8ED622258FC35E1DF62EB037B1D02A3A237B0DE80EEDDDE2FB7D8EDD850361D98908B523A1C82B8439EF69B3A8C4137C2E16F8231D8ADDF6BB2D488C45E7610FDBB96E67AFA6D1E74FFF0056CD9772F23D09655A390703471460DC364655CBA5DA63ED9B74BB4C7DB36E97698FB66DD5154E773590CE9EA4B7B7317FC8965C8D098AE2B4324C0121A0E06C2E8E1C86F1655CBAA2A9CEE6B219D3D496F6E62FF912CB91A1315C5686498024341C0D85D1C390DE2CAB97C9BF768D3A74FF00A319EBCC8B2607513070C4714611C378534E4830CF0C132ABC0E321844E8C1C864F4DBE91AA88B25235BCB9135C545E04FB628DEFACCDF18C9752E99A8C4F40C9C671866CF2E03735558D75444C7DCB62B8D10C9CE04868C41B14AC07225C5957DEA8898FB98CB9B4F524B2B973FE44B2E7ABAC6815C262607713070CA194611C378534E58297D0AF33BFDE9C1A04788E824696C204614B3A3BBDED3F4E9D905841B1354C7797F7A803F8D611187E717E7A763FE1AE645449E2C6D9EA43352201C88BF6D2181C2A41B1F7D154076C03DBC2F650FD83B6BBB8DE16338BC38BE0D9A0E8F1BE3908D9687989B0C94582804F102768ABDBF6BBCC69CE7DCB640B1F408CD0E6A08434FD5283BDEA6ED8BCAED41A7A1D2AB872310681EB21B8948CABEB6067F7B3C23628DEFACCDF18DD2E94E76CDB0A74BC6726CCD1CC60CDBB5AA5C832F041C7A1D2ABC74320701EB41B8948CABEB614CA84B14D99A398C26B76B54B9065E467860E655E391903E27590E44A4651F7E554185473247A098C6CD1B72B52DE99F56434B97930BDFF64DE372C937235D493FA8DBDB2EEF4FF1A54446F32245898B9AD5BD5A95F53E86BF9B592E11BCB69161A2E6B5715166BD492E11BCC91E81A2E6B56ED6A6BD4D0D21BE4C2F6FDED78DCB24D8A2FBEB337C6360A1FF002C4CEFF7A7065B503DABFC6A0FA8EBB5D7D8BEC503F157275DB13C58D0800198840C42FB078BE873D9ED767148AC3A3FB533A18268A06844328C425E9F364F5108480A3E25026CE1B121088A030578D9EBEF098049D8EC2843A1DDFB61AAED06D4D8EBBB6D98322E108C2000009BD43363B77A09C43650D866C36F1B8A244493128A4621CEF1E7D0942F8921D72BF09B2A0C2A396C22C4C63668DC74595F4DC0CFEF6F84654185473267A098C6CD1B72B52BE9AA88F2E5B48B1318D45B8A8B2BE9BD733F09B75CDFC24CA830A7E5B08B1318D9A371D1657D310D21BE73AF6FDED675B524CA888DE5B4F4131735AB8A8B2BEA7F2AF05E27A12CABC740D070E28A1B86C8CAB974BB4C7DB36C55D2F1629B32BF2E4336ED6AA93EC57AF33D098024341C0D1C518390DE2CAB92F233C4E4CA4F1C8C81F13A308E192328FB853AA133949668E6389AE2A2D2E419782F13D09655E3A0683871450DC364655C8AF418459303A868C41C07A308E1BC5957DC5595099C9B32BF2E04D6E56AA93EC9752E964B388A0D1C671866F03204935558D609FF00F2C4CDFF007B70654AE9BF685AC4765AFB39A7314EC7535765A9A346AE8DDA3468D1A3FF004DDF4D3F4DFF00FC010F37DD018D47D1A429EF61AFADB6D7D4D47D0B8A21A31826C22D09DAEBEDDC36FBF87B40E47A22FCAD42C1C0FB83DED76F05143CEDA29AE62806046784A361513B954E031376D9EC1F1D3A5DA64EDA3628DEC4CCDF18C462A23393656F2E04D6ED6B813EDD5154E7735B146F62666F8CF89A056864E70244C1C3285D603912E14D392E5D3D36ECAE5CFF008EAF49EAF325D4BA592CE22834719C619BC0C8124D55635F2E28DEFACCDF19F03C5511649BA8B98C25B76B5C79062B8D10C9CE04868C41B14AC07225C5957D418678609955E07190C227460E4327A6DF572FF723B2B973FE44B2E7ABCC6815C262607713070CA194611C378534E4839071E84B2AF030C86207A286E1B3D34FBA3E1861A76311368087AE263076DCDBBFC49D1EDDB40AC030B183EC31F1FF0067ADB57886EB6D35DD74EB95FB2FAF0DF75F57469FF4DA15EF3BFF00E07ED9E9D568DA628BBB461F63213106D431117DD7D3B47BD9B881044E90F77D47ED4D9BDBE6AECF5746DB6A98837B370DA98D16DBB8EA6C226F82678D8ED36BB6DAEA6D36EFBABABADA35B4EA6AECF5759B143F7D065F8C641C838F425957818643103D14370D9E9A7DDFA3F4EF633D799164C0EA260E188E28C2386F0A69C8AF5E6459CE3A868381C38AC88E25C595723C5521629BA8B98C26B76B5C7906EA8898FB98CBC17891674A501D0341C38AD08E25232AE5B99072F122C964A006068C4714511C367A69CBE5C517DF519BE3192F62AFCC99E81A2E32BADCAD4D7A96397F64FCDB25EC56396C22C345CE575C7459AF534B846F3247A068B9AD5BB5A9AF53FA60C3F98B325B91AEA4BFD465ED9777A7F8D6E65CAB97930B2B4595785CB3ADD737F09B4331BB707B89EC3651727B6EEB0AD7D3B9EB6900C4353DC51C364F0EE6B383B6CB5F46FE07500203BB61E6191D4110006DEE3E2114384260EE9FA38EF9CFF901DDB0F3034E9088FC38E91E0F89DC22D077BFD7C07CD617C335F67AFABB18BBBEA6BEB7FE2856DF51EF4EAEC1CF5769ACEDFAB89B67A53F854732479894C6CD1B72B32BE9A97B157E64CF40D17195D6E56A6BD4B7E8D1A37696C513DF5999E3192F614FCB61E81A31B346E3A2CCFA62E5435CE7595FBDACEB6A7595111BCB69E8262E6B57151657D4FA197E6C6E869F9B1BA197E6CF9776FD1A7469633D06116738EA26311881EB2238970A69F70B8F7D659F9363C52E162A4A8B98E19B8A8BC7906E97698FB66CA852E9648C48A131C64E066CF320352B4A8D1E2A90CE52345CC6135C545E3C8315EBCCF4260090D0703471460E4378B2AE4D8E67D93F36C8390711674A50030C86207AD08E253D34FABC1071164B2501D0C81C07A288E1B232AFBFAB4B20F416461D49440E3318826B024894F4D3E25650C602C53EC30501BB1FBACBB11CD5520F8AAA5D2C935E57E5C86A815AAA4FB618900717E43A5B6DB6DB1DFAFAF526D40C43B534EFD0EFA37B62A2A60CA4CB95FA0B5125B75AAA4FB7545539DCD6C2E3DF5967E4DB1575446726CCAFCB9135BB5AAA4FB25D4BA592CE22834719C619BC0C8124D55635D5154E7735B0A754267293CD1CC7135C745A5C8319E8308B39C7513188C40F5911C4B8534FABC8CF1393293C723207C4E8C238648CA3EE14EA84CE5259A398E26B8A8B4B9065E0BC4F4259578E81A0E1C514370D919572F937EED1A74E9FF4633D799164C0EA260E188E28C2386F0A69CB146F62666F8C6C0CBEF6784F81A068864980244C62328A51C390DE14D3EAE5D1D492CAE5CFF916CB9EAF325D54459231228344E1C626B3CC80D4D5560AD8AC25E3394965865C866E2A2D527D8D02B84C4C0EE260E194328C2386F0A69C9B033FBD9E11B146F7D666F8C6542A88B259C450989C2704D781902495A54150D7F6DABDB98CFE3ABCE4682DD51131F73192EA5D335189E81938CE30CD9E5C06E6AAB1A5CBFDC96CAE5CFF00912CB9EAF31A057098981DC4C1C3286518470DE14D391A068864980244C62328A51C390DE14D3E91AA88B15235BD05C89AE2A2F067DB146F7D666F8C6542A88B259C450989C2704D781902495A5417A5CA9CED9B25D54459231228344E1C626B3CC80D4D5560BF0C51BDF599BE33E654185473247A098C6CD1B72B52DE98A83157E64C8B1317195D6E56A57D490D2E4E4BEF7FD9578DCB22DD737F09B73C9D493FA72B272EAF4FF25FA60C3F98B3259511E5CC91E82631A8B6F56A57D337B7D1B145F7D66778C6541853F2D845898C6CD1B8E8B2BE9886972725F7BEE055E372C937235D497FA8DBDB2EEF4FF1A4BD853F2DA7A068C6CD1B8E8B33E998E57D93F36C97B0A8E64C8B0D18D9A36E56A6BD315111BCC8916262E6B56F56A57D4D0D21BE4C6F6DE36BC6E5926C517DF599BE3195062B1CC9916262E72BADCAD4AFA9E067F7B7C23628DEFACCDF18C970F2E5B4F40D18D45B8A8B35E99D733F09B7237D493FA8CBDB2EEF4FF1ADEDBF46ED2D8A2FBEA337C67CCBC1789E84B2AF1D0341C38A286E1B232AE4830AF0C1CCABC0E0D18432B21C89CF4DB962AE97CB14DB95F97219B76B5549F641C8388B3A528018643103D6847129E9A7D542974B246245098E327033679901A95A54690D7F725BDB98CFE45B324682DD2ED31F6CD9072F13D0E955E06068C4715A0DC4A7A69CB1575426726CCAFCB8135BB5AAA4FB1A068898E71DC4C62328A5644712E14D3E9A056864E70244C1C3285D603912E14D3974BC4C9DB462B8AD0C93004868381B0BA38721BC5957263C92E962A4A8B98C19B8A8BC7906542A88CD4627A0989C2704D679701B95A54157919E27265278E4640F89D18470C91947DEA88A73B98C9752E964B388A0D1C671866F03204935558D74BB4C7DB362352E1629B6B797019B76B5C09F6C51BDF599BE33E1A34FE9FAE862BD799E84C0121A0E068E28C1C86F1655CBAA2A9CEE6B7545539DCD64BA974B259C45068E338C3378190249AAAC6BE4DFBB469D3A7FD18CF5E6459303A898386238A308E1BC29A72EA8898FB98DD51131F731BAA2263EE6375444C7DCC623551962A4AB797226B8A8BC09F65E0838F43A5578E8640E03D68371291957D542A88B259C450989C2704D781902495A54170A74BC6726CCD1CC60CDBB5AA5C832F041C7A1D2ABC74320701EB41B8948CABEE171EFACB3F26D8E67D93F36D85C7B132CFC9B2F22BC4E7324F1C8341F0CAC88E272328E4863FB6DDEBCC5FF001DDE7234262B8D10C9CE04868C41B14AC07225C5957DE974A73B66D853A5E33936668E63066DDAD52E4197820E3D0E955E3A190380F5A0DC4A4655F57915E27399278E41A0F865644713919472E976A73B68C6815C262607713070CA194611C378534E4681A2192600913188CA29470E4378534FA46AA22C548D6F417226B8A8BC19F6C51BDF599BE318D0344324C0122631194528E1C86F0A69F715854258A92CB0CB9135C545AA4FFCF8A2FBEA337C637432FCD8DD0CFF0036B7432FCD8CA830A8E5B08B1318D9A371D1657D37032FBD9E11B737235D3737A8CBD7316CBFF1AEB97F84DBAE6FE1264BD85472D87A068C6CD1B8E8B35E9B8E67D93F36D85CFB142CFC9B7D197221AE73ECADC36B3EDA9E64B846F2DA45868B9AD5C5459AF52EB9BF84DBAE5FE136EB9BF8499511E5CB71162631A8B7151657D310D2E4E73AF6D164D9F6D493628BEFACCEF18CA888DE6488B131735AB76B52BEA48690D72637B7EF6BC6E5926C517DF599DE31B144F62866F8C643686B9CFBDB78DACEB6A49BA197E6DF9B146F7D666F8C65E46789C9949E391903E274611C324651F7AA229CEE637545539DCD6C51BD8999BE31B032FBD9E13E09755119AB38F40C9387189AF02E049355582E2AE978B14DB95F97219B76B5549FF820E5E27A1D2ABC0C0D188E2B41B894F4D396397F64FCDB15EBCCF4260090D0703471460E4378B2AE5D5154E7735BAA2A9CEE6B7545539DCD6E97698FB66DD2ED3276D197915E18265578E41A0F86518390C9194724BAA88CD59C7A0649C38C4D78170249AAAC148C4BA58A6DADE5C866DDAD7027DB146F7D666F8C6EA8AA73B9ADD5114E77318D03444C738EE263119452B2238970A69F52EAA2335671E819270E3135E05C0926AAB055CBFDB6ACAE5CFF008EAF49EAF320C33C4E7324F038C86113AC88E273D36FBF2E28DEFACCDF18D8A37B13337C67C7146F62666F8C6C0CBEF678465E0838F43A5578E8640E03D68371291957DC51BD8999BE31B468DEC839789164B250030346238A288E1B3D34E4830CF0C132ABC0E321844E8C1C864F4DBE91AA88B15215BCBA135C545E04FB19EBCC8B2607513070C4714611C378534E4839071E84B2AF030C86207A286E1B3D34FB8E67D93F37F0418678609955E07190C227460E4327A6DF572FF723B2B973FE45B2E7ABCC830AF1393293C0E0D184328C23864F4DB96171EFACB3F26C78AA22C537513418C26B76B5C69062B8D10C9CE04868C41B14AC07225C5957D41C838F425957818643103D14370D9E9A7DC55D2F19CA4F2BF2E43371516A93EC975511648C48A0D1387189ACF32035355582E28DEC4CCDF18C46A5D33548D6F2E43371517813EC6815C262607713070CA194611C378534E5F2E28DEFACCDF18CA888DE6488B131735AB76B52BEA5D0CBF36B7432FCDAD8A2FB14337C636065F7B3C236E65418ABF32645898B9CAEB72B52BEA4C97B0A7E6488B0D18D9A36E56A6BD312E11BCC91E81A2E6B56ED6A6BD490D21AE4C6F6FDED78DCB24D8A27BEB333C6375CDFC24CB9572739F64E8B2ACFB6A7BE0A830A7E5B08B1318D9A371D165BD33033FBDBE11BE8D85C7BEB2CFC9B6397F64FCDB25EC56396C22C345CE575C74599F53FA37D3732A0C2A39923D04C63668DB95A96F4CE793A92FF004E564E5DDE9FE4A8690D72617BFEF6BC6E5926541853F3247A098C6CD1B72B52BE9BF2E28DEFACCDF18DD5154E7735BAA2A9CEE6B7545539DCD633D799E873812260E190E2B21C8970A69CB032FBD9E13E3A34FE9FAE862BD799E84C0121A0E068E28C1C86F1655C8AE3444C4C0EE183106C528C2386F1655F7AA229CEE6325D4BA592CE22834719C619BC0C8124D55634830AF0C1CCABC0E0D18432B21C89CF4DB974BB4C9DB46E97698FB66C6815A1939C0913070CA17580E44B8534E44725C2C53756F2E4336ED6B813ECBC1789E84B2AF1D0341C38A286E1B232AE585C7BEB2CFC9B1E2974B252545CC60CDC545E3C832F22BC304CAAF1C8341F0CA3072192328E5D5154E7735B0A754267293CD1CC6135C545A5C832F05E27A12CABC740D070E28A1B86C8CAB915E8308B260750D188380F4611C378B2AFB8ABAA133936657E5C09ADCAD5527DBAA2A9CEE6FF00EE7FFFC4003E10000102050106030703040004070000000203130001041114150512212232331085D4162023346394E4313541245161624260718206305281B1B3D1FFDA0008010100133F00FF0091349A05DB7281054F9D5408F899C681B2FD34681B2FD34681B2FD34681B2FD346052D2B2F65B9D8482F7682349A05DB7281054F9D5408F899C681B2FD34681B2FD34681B2FD378E9340BB6E5020A9F3AA811F13386125DB72BD048F9151209DC0CE5C46302969597B2DCEC2417BB41EEE81B2FD34681B2FD3430920E375F509072242212B0004B80C3092EDB95E8247C8A8904EE0672E231A06CBF4D1A06CBF4D1A06CBF4D1A06CBF4D1A06CBF4DEF795D2463AABB6E2A09072242473B9984B80CED1A06D4F4D1A06D4F4D1E69491F7F1AB5020E37408247C8AAE272B1846AD40BB6E502E907224B91F1338C0AAAA7996DDEC2476B3A1D519F4B43938F4A952ADF06A954960B2C82A1CE11815543938F549552DF1AA924910B2282A7CE719F4B54F3396EF6153B59D08D22BD76DC4C150E7490209DC0C27C0A33E96BB1B22955A547E0D2AAAAC77597483902302AA9597B11AEFA417BB471ABD020E36A9A47C8AAE272B181CB88C605550E4E3D52554B7C6AA492442C8A0A9F39C6BFB2FD4C6BFB2FD4C67D2D7636452AB4A8FC1A555558EEB2E907204605552B2F6237DF482F768E349AF5DB72BD75439D24083A0C23CD2923EFE348AF5DB71305439D24082770309F028D036A7A68C0AAA565E71AEFA417BB47D378F2BA4F7BCAE923CCE93C7CD2923EFE35FC579EA5497ED629DACEDBABC349CEC8C863EBA5B9BAC46262BCF552ABF6B7CED67777AA71E5957E1A06532CD2A48777282F76AFD318994CB35492FDADF0BDDADDEA8D27071B1D8FACAEFEF3F1E67571A062BCF52AA877728ED676FD3E38994CB35492FDADF0BDDADDEA8D27071B1D8FACAEFEF3FE1E69491F7F1E594BE1F7F1E5749EF795D2479A5278F9A5247DFC795D24681B2FD346052D2B2F65B9D8482F7682349A05DB7281054F9D5408F899C795D5F869340BB6E5020A9F3AA811F1338D2681071BA05D50E749013E0611F611A4502EDB8A9AA7CEAA0473B999CF8943092EDB95E8247C8A8904EE0672E231A06CBF4D1A06CBF4D1A4D020E3740BAA1CE92027C0C23EC3C3CD2923EFE3CAE93C3EFE3CAE93DEF2BA48D036A7A68D036A7A68D036A7A68D26BD071BAF4153E755010E8038FBF8F2BA48CFA5AEC6C8A556951F834AAAAB1DD65D20E408C0AAA565E71BEFA417BB47D378D22BD76DC4C150E7490209DC0C27C0A357A05DB71504839125C8E7733097018CFA5A565E71BEFAA17BB47D378C0AAAEC6C8AA56A91F8D4A92A89DD15D23E438D5E8176DC54120E4497239DCCC25C06275F4B4ACBCE37DF542F7694E9BC3E92EDB890AA1CE91104EE0613E053B479A5247DFC6915EBB6E260A873A48104EE0613E051E694913AFA5A565E71BEFAA17BB4A74DE1F4976DC48550E748882770309F029DA3CD292302AAA9E672DDEC2476B3A11A06D4F4D1A06D4F4D1A06D4F4D0C2A838DD02091F22A2272B181CB88FBDA06532CD2A48777282F76AFD31ECA7E6C7B29F9B1ECA7E6C7B29F9B1A4E0E3E3E47D7577F79F8D032996695243BB9417BB57E98F33A58FBF8D032996695243BB9417BB57E98F33A48D57071B1F23E82BBFBCFC65E532CD2A48777702F76B7BA651AFE532CD524BF6B142F76ADD51F7F1A06532CD2A48777282F76AFD31AFE532CD524BF6B142F76ADD51AB60E363E47D0577F79F8CBCA659A5490EEEE05EED6F74CA3CCE963EFE340CA659A5490EEE505EED5FA631329966A925FB5BE17BB56EA947B29F9B1ECA7E6C7B29F9B1ECA7E6C7B29F9BFF91814B54F3388DF7D23B59D3861241C6EBEA120E44844256000970186125DB72BD048F9151209DC0CE5C46302969597B2DCEC2417BB41E190AA0E36A82A1CE9109CAC6984F814AF1FBA6662318DF3CFB7B994BF6ED7DF8D0365FA68C855071B54150E74884E5634C27C0A578D7F6A7A98D7F6A7A9F0C0A5AA79971BEFA476B3A7D30C24838DD7D4241C890884AC0012E03E19F554ACBD96E76150BDDA087D55DB7281054F9D52239DCCCE7C4A348A041C6D505439D2404E563009F028C0A5AA79971BEFA476B3A7D30C24838DD7D4241C890884AC0012E03E1814B54F3388D77D23B59D38D0365FA68D2681071BA05D50E749013E0611814B54F3388DF7D23B59D38D0365FA6F7B48AF5DB71305439D24082770309F02F0CFA5A565E71BEFAA17BB47D3787D25DB71215439D22209DC0C27C0A768D036A7A68C0AAA565E71BEFA417BB47D378D22BD76DC4C150E7490209DC0C27C0A1F49071BAF4153E754842560039F128CFA5AA799CB77B0A9DACE846915EBB6E260A873A48104EE0613E05E19F4B4ACBD88D77D50BDDA38C0AAAEC6C8AA56A91F8D4A92A89DD15D23E4386155DB7282A120E44848E7733097018FDAF0F2D8C6F9E65CDFC45FA2F6DC87D25DB71215439D22209DC0C27C0A768D5A8176DCA05D20E449723E2671815554F32DB9D848ED6743AAD0C2A838DD02091F22A2272B181CB88C6BFB2FD4C67D2D53CCE5BBD854ED6742348AF5DB71305439D24082770309F028D5E8176DC54120E4497239DCCC25C063EFE348AF5DB71305439D24082770309F02F0CFA5A565EC46FBEA85EED1C3E92EDB890AA1CE91104EE0613E053B7BDE594B18994CB34AAAFDADF0BDDAB754A3F63D3B4FFB975CCFFF004B3519794CB34A921DDDC0BDDADEE9947B29F9B1FB1E9DA7FDCBAE67FF00A59A8CBCA659A5490EEEE05EED5FA651AFE532CD2AABF6B142F76ADD5E1A06532CD2A48777282F76AFD31978AF3D54921DDDC3B59DDEE99C7B57F851A56A98789FD0FCCBC8B9BF8AE76E56DFB47B29F9B1A4E0E3E3E47D7577F79F8D032996695243BB9417BB57E98CBC579EAA490EEEE1EED9DDEE99C6AD9D9390C7D14B737588D0329966A9543BB9417BB57E98D7F299669555FB58A17BB56EA8D5B071F1D8FA0AEFEF3F1A56A98789FD07CCBE8B9BF8AE76E56DFB4626532CD524BF6B7C2F76ADD51A4E0E363E47D7577F79F8F2CA5F1F2CA4F7BCAE92184976DC48D23E4544827703397119DA3029695979B73B0905EED27D578D5ABD071BAF5D20E449710E8008D0365FA68C0A5A565E6DDEC2417BB41D57F0D5EBD76DC4CD23E4557209DC0CE5C47C349A05DB7281054F9D5408F899C6052D0E4E3D2AB548FC6A5492582CB2091F21C6BFB53D4C642ABB6E2A6A9F3AA4473B9A853E253B469340838DD02EA873A4809F030F0D268176DCA04153E755023E2671E694912AFAAA565ECB73B0A85EED04642ABB6E2A6A9F3AA4473B9A853E253B4795D5C7D8469140BB6E2A6A9F3AA811CEE6673E250C24BB6E57A091F22A2413B819CB88C6052D2B2F65BBD8482F7682357AF41C6D304839125C42560009701F1F2BA4F7BCAE921F49071BAF4153E754842560039F128CFA5AA799CB73B0A9DACE87863AABB6E2A09072242473B9984B80CED1A06D4F4D1A06D4F4DE19F4B4ACBCE35DF542F768FA6F181555D8D9154AD523F1A9525513BA2BA47C87157B7681943FDCDA58CED2FF0003384A8184E98E9DFE12B19DEEFC536CC71306699343AA76BDDA8D1C234708A8A59A6A28F54AABCEE3295A569AB68248E5294BFCCED19F4A836F623567950BDDA38C0AAAEC6C8AA56A91F8D4A92A89DD15D23E5386155DB7282A120E44848E7733097018FDAF0F2D8C6F9D65CDFC55FB77B46055576364552B548FC6A549544EE8AE91F21C6935E838DD7A0A9F3AA8087401F86935EBB6E57AEA873A48107418467D2D7636452AB4A8FC1A555558EEB2E9072047ED78796C637CEB2E6FE2AFDBBDB721F4976DC48550E748882770309F029DBDEF2CA58CBC579EAA490EEEE1DACEEF74CE356CEC8C8C8FA096E6EB1E18994CB35492FDADF0BDDAB754A3D94FCD8F653F37C3EFE3CB29607F51DE9CA5797F995E252E128095E7B8984CA7697FD250139948252909A73BCF8CEE2769CF85E72BCA568527610194AF39CE73FE2528AC49B1AA496099A6AA72FD6425295E5BD294ED69DBC3FE10995E45BB2FE25398DEDFDE739FF31A06532CD2A48777282F76AFD3E1AAE0E363E47D0577F79F8CBCA659A5490EEEE05EED6F74CA3D94FCD8D27071F1D8FAEAEFEF3F1A06532CD52A8777282F76AFD318994CB35492FDADF0BDDADDEA95AF1FB1E9DA7FDCBAE677FA59A8D2B54C3C4FE83E65E45CDFC573B636DFB7BDABD7A0E3698241C892E212B0004B80C6052D0E4E3D2AB548FC6A5492582CB2091F21C7EE99988C637CF3CDEE65AFDBB5F7E1849071BAFA84839121109580025C06184976DCAF4123E4544827703397118C0A5A565ECB73B0905EED0469340BB6E5020A9F3AA811F13387D541C6E82A150E74884E563009F028CFAAAA79971BEFAA76B3A7D368F2BA48FF00BE5E14E52963266049E42E5796E2729CE76FE4A72B0CA73BDB6A3DBE330A74D2B727F1C853BDE7FACB84AD3BECDDB2A2AF2025BC694913404A523DDDC9F35B7665C62F27524E9A46204A87EA247350E72BFEA0DF87FDC51A4502EDB94082A7CEAA047D671AFED4F531AFED4F531AFED4F531A06CBF4D1FB5E1E5BF93F22C39BF8A8772F6DC8C85576DC54D53E75488E77350A7C4A768D0365FA68FDAF0F2DFC9F9161CDFC543B97B6E4642ABB6E2A6A9F3AA4473B9A853E253B7BDA457AEDB8982A1CE920413B8184F81430AAEDB941509072242473B9984B80C605552B2F38DF7D20BDDA3E9BC795D2467D2D7636452AB4A8FC1A555558EEB2E907204681B53D3463AA838DAA691F22A2272B1A652E2328D036A7A68FDAF0F2D8C6F9E61CDFC55FB77B6E43E92EDB890AA1CE91104EE0613E053B78274229A28A467314574AA24A94D407268A4523009DD4BDA366A96651AA56A12A62A8DD9DD8A646986649CA7BB335EE5095E68D32B4AD492A84D39DC46EF148A5294A45619CE2A7E67682CAA6446AA15339B9F0F978EF5AE56B5A2946432DABB384A725F78385F7921782FD256B4E5C6F41B36A2B0954256B9FC202E1CC30D1A7BF3150C4B94E522E1319CBF48D5E81071BA04123E455713E0607E1F7F1E57491AFECBF5319F4B54F3396E76153B59D08D5A81071BA04123E455713958C3C302AAA9E672DCEC2476B3A10C2A838DD02091F22A2272B181CB88FBDA06532CD2A48777282F76AFD3E1AB60E363E47D1577F79F8D2B54C3C4FE83E65E45CDFC573B636DFB4626532CD524BF6B7C2F76ADD51ECA7E6C6262BCF552ABF6B7CF76CEDBAA718994CB34AAAFDADF0BDDADDEA94693838F8F91F5D5DFDE7E3CB297C03F8AA40A9EB11FFE838A0009112469A736493504C4C39653B14A7394F8CA70B8802C549319A694C3993414BDF7E4090CA5212E6B95EE9D624CA03322DD4896107A616DD9CC1DB7198F4C02929A6B23309837219719CA729FE9394B8452593ACAE5123ABA6911D42A5BA92130A4524729094CAD149564926A27906DA6F12739F2818DCB723DABFC28D0315E7AA9243BB9476B3B7E98FBF8D032996695243BB9417BB57E98CBC579EAA490EEEE1EED9DDEE99C7B57F851ED5FE146818AF3D54921DDCA3B59DBF4C6939D919191F5D2DCDD6231315E7A9525FB5BE76B3B6EA9FBDA4D02EDB94082A7CEAA047C4CE35FDA9EA633EAAA9E6711AEFAA76B3A71A4502EDB8A9AA7CEAA0473B999CF8943092EDB95E8247C8A8904EE0672E231814B4ACBD96E76120BDDA08D268176DCA04153E755023E2671ABD7AEDB899A47C8AAE413B819CB88C6052D53CCE235DF48ED674E33EAA87271EA95A547E0D2AA92216450483903C1CDD3553569D748E432FF008AD23DF9CBFF00485E25FA47F78D8FB357A9A79C84B7484E49C8C933039184E45FAEE6F42889A339DA769F298C8A5C65FCCA10E2E20B564D6DF9CA529EE8260B29729CE579A96943CA22E86FCE76DF4C84A5C65FC4E51AFED3F531E69491814B54F32E35DF48ED674FA6D1A06CBF4D1E6949E390AA0E36A82A1CE9109CAC6984F814AF1FBA6662318DF3CF37B994BF6ED7DF8CFAAA1C9C7AA56951F834AAA4885914120E40F7BCAE93C25415554F32DB9D848ED6743AAD18EAA0E36A9A47C8A889CAC6994B88CA185576DCA0A84839121239DCCC25C063F6BC3CB631BE799737F117E8BDB721F4976DC48550E748882770309F029DA356A05DB728174839125C8F899F8E75354EFA412B1CEE8A8768DEE09998EE914A5FA6F6EDC653FE244504129FFF009049CE53FF00E611B2F475273B5CCE9D496EC8F965720984E7C6F38A619260676E2421329CC653FED79DBFBC4E9C4159A69269260332971294B74A728FED3BCE769FFED394E3CAE92356A05DB728174839125C8F899F86915EBB6E260A873A48104EE0613E051A457A0E3699AA7CEAA0212B001CF8946055553CCB6E76123B59D0EA8D036A7A68D26BD071BAF4153E755010E803F0D26BD76DCAF5D50E749020E830F7BCB29635FCA659A5557ED6285EED5BAA3EC235FC579EAA557ED629DACEDBAA313299669555FB5BE17BB56EA8FD8F4ED3FEE5D733BFD2CD4695AA61E27F41F32F22E6FE2B9DB95B7EDE1AB60E363B1F415DFDE7E3DABFC28A5FFC432A951BFF0009952848E7FE37E51B4692A13552FF005B4C061A5E2A1153713DE3101BDA7FC910CA195A29D05260A6E19015AF3FE084A509D31CE729FF007E33B5FF00EB0B4AC7507C39A7C25FDA5FC4BF494A5294A51A06532CD2A48777282F76AFD31AFE532CD2AABF6B142F76ADD5E1E59491A062BCF52AA877728ED676FD31A4E7646431F5D2DCDD6231315E7A9525FB5BE76B3BBBD538F653F363D94FCD8F653F37DED5EBD071B4C120E4497109580025C063CAEAE33EAA95979B77B0A85EED0755E35FDA9EA633EAABB1B22A92A55BE0D52AAA2774575439C23029695979B73B0905EED0755E348A05DB715354F9D5408E773339F12F0FB08D5ABD071BAF5D20E449710E8008D5ABD76DCAF4123E455720E833F0D5EB9071BAF5D20E449610958023029A85FC7A55AA91F8D4C9A6A85964122E0713AFA9AA799C46BBCA1DACE9C799D5786052D53CCE235DF48ED674E340D97E9A3CAEAE30296A9E6711AEFA476B3A719F5543938F54AD2A3F069554910B228241C811A06CBF4D1814B4ACBD96EF6120BDDA08D5EBD071B4C120E4497109580025C06184976DCAF4123E4544827703397118C0A5A565ECB73B0905EED0469340BB6E5020A9F3AA811F133F7B48AF5DB71305439D24082770309F028F34A48FBFF0C75576DC54120E44848E7733097019DA3F6BC3CB631BE799737F157EDDEDB9181555D8D9154AD523F1A9525513BA2BA47C87E19F4B4ACBD88DF7D50BDDA387D25DB71215439D22209DC0C27C0A76F0FBF8F2BA48C0AAA1C9C7AA4AA96F8D54924885914153E738FDD33311FC9F9179BDCCA43B96BEFC681B53D3467D2D7636452AB4A8FC1A555558EEB2E9072047ED78796C637CEB2E6FE2AFDBBDB721F4976DC48550E748882770309F029DA31D55DB71504839121239DCCC25C067689D05552B2F38DF7D20BDDA3E9BC795D24605550E4E3D52554B7C6AA492442C8A0A9F39C6BDB33D4C6055576364552B548FC6A549544EE8AE91F21F8F95D27BDA06532CD2A48777282F76AFD31AFE532CD524BF6B142F76ADD51AB60E363E47D1577F79F8F6AFF0A355D530F13FAEF96651737F15BEE4ADBF78FD8F4ED3FEE5D733BFD2CD465E532CD2A48777702F76B7BA65E3E59491A062BCF5524877728ED676FD31AAE0E363E47D1577F79F8D2B54C3C4FE83E65E45CDFC573B72B6FDA340C579EA5550EEE51DACEDFA63EC2340CA659AA550EEE505EED5FA631329966A925FB5BE17BB56EA8D27071F1F23EBABBFBCFC79652C6BF94CB35492FDAC50BDDAB7547DFC795D2465E2BCF52AA877770ED6777BA671ED5FE14695AA61E27F41F32F22E6FE2B9DB95B7EDE3E594BEF69340BB6E5020A9F3AA811F13387D541C6E82A150E74884E563009F028CFAAAA799C46FBEA9DACE9C6AD5E838DD7AE907224B887400467D557636455254AB7C1AA55544EE8AEA873847ED78796FE4FC8B2E6FE2A1DCBDA35FDA9EA6349A041C6E8175439D2404F81846052D53CCE237DF48ED674E1849071B48520E4484425604C25C06578C855071B54150E74884E5634C27C0A578D7F6A7A98C85576DC54D53E75488E77350A7C4A76F0CFAAA565E6DDEC2A17BB41D578C0A5AEC6C8A54AA96F8D5492AB1DD65D53E7386125DB72BD048F9151209DC0CE5C46340D97E9A33EAA87271EA95A547E0D2AA9221645048390235FDA9EA633EAAA9E65C6BBEA9DACE9F4C795D278E9140BB6E2A6A9F3AA811CEE6673E251A06CBF4D1A06CBF4D19F5543938F54AD2A3F069554910B228241C81EF6915EBB6E260A873A48104EE0613E051A06D4F4D1A06D4F4D1A06D4F4D1A06D4F4D181554ACBCE35DF482F768FA6F1AB5020E37408247C8AAE272B184605550E4E3D52554B7C6AA492442C8A0A9F39C67D2D53CCE5B9D854ED6742356A041C6E81048F9155C4E56308F2BAB8FB08F34AB87D241C6EBD054F9D521095800E7C4A3F74CCC47F27E45F6F73290EE5AFBF18EAA0E36A9A47C8A889CAC6994B88CA35FD97EA633E96A9E672DCEC2A76B3A11AB5020E37408247C8AAE272B1843E920E375E82A7CEA9084AC0073E251AFECBF530FA4BB6E242A873A44413B8184F814ED18EAAEDB8A8241C89091CEE6612E033B44E82AA95979C6FBE905EED1F4DE3CAE9231D55DB71504839121239DCCC25C067689D05552B2F6237DF482F768FDFF002CA58F653F363D94FCD8F653F36340C579EAA490EEE51DACEDFA63EFFC34AD2F332FFA1F997966F7329CED947B57F851ED5FE146818AF3D4AAA1DDCA3B59DBF4C7D84799D5F86939D9190C7D74B737588C4C579EAA557ED6F9EED9DB754E3DABFC28F6AFF0A3DABFC28CBC579EAA490EEEE1DACEEF74CE355CEC9C8C8FA096E6EB11E594918994CB35492FDADF0DEBB56EA94695838D8F91F5D5DFDE7E3CB2923CCE9634ACEC9C8C8FAC96E6EB11ECA7E6FBDE57490C24BB6E57A091F22A2413B819CB88C681B2FD34681B2FD3479A5247DFF86052D0E4E3D2AB548FC6A5492582CB2091F21C67D5553CCE235DF54ED674FC349A041C6E8175439D2404F81847D8469140BB6E2A6A9F3AA811CEE6673E251A06CBF4D1A06CBF4D1A06CBF4D1AFED4F531AFED4F530FAABB6E5020A9F3AA4473B999CF8946052D0E4E3D2AB548FC6A5492582CB2091F21C67D5553CCB8D77D53B59D3E9B4795D24681B2FD34681B2FD3430920E3690A41C890884AC0984B80CAF1814B43938F4AAD523F1A9524960B2C8247C871FBA6662318DF3CF37B996BF6ED7DF861241C6EBEA120E448442560009701F7BCAE923CD293C7CD2923EFE356A041C6E81048F9155C4E56308F34A4F0D26BD76DCAF5D50E749020E83086155DB7282A120E44848E77330970189D05552B2EB8DF7D20BDDA3E9BC6915EBB6E260A873A48104EE0613E051AB502EDB940BA41C892E47C4CE3EC3C185576DCA0A84839121239DCCC25C063F6BC3CB631BE799737F117EDDEDB90FA4BB6E57D42A1CE91104EE0613E051E575712A0AAAA7996DCEC2476B3A9F55A31D541C6D5348F915113958D329711946AD40BB6E502E907224B91F1338CFA5A565EC46FBEA85EED1C6055576364552B548FC6A549544EE8AE91F21C79A5244EBE9695979C6FBEA85EED29D3787D25DB71215439D22209DC0C27C0A76F7BCAE9231329966A925FB5BE1BD76ADD528F653F363D94FCD8F33A58FBFF0D7F29966A925FB58A17BB56EAF0D0329966A9543BB9417BB57E98C4CA659A5557ED6F85EED6EF54A34AC1C6C7C8FAEAEFEF3F1E59491ED5FE146AB9D9390C7D04B73758F0D0315E7AA9243BB9476B3B7E98FBFF0F2BAB8FB08D7F15E7AA955FB58A76B3B6EAF1D032996695243BB9417BB57E98D5754C3C4FEBFE59945CDFC56FB92B6FDE349C1C7C7C8FACAEFEF3F1A06532CD2A48777282F76AFD3EF795D24681B2FD34681B2FD34681B2FD3469140838DAA0A873A4809CAC6013E051F7FEE69140BB6E2A6A9F3AA811CEE6673E250C24BB6E24691F22A2413B819CB88CED1A06CCF4D19F5543938F54AD2A3F069554910B228241C810FAA838DD0542A1CE9109CAC6013E051AFED4F531AFED4F53190AA0E36A82A1CE9109CAC6984F814AF13AFAAAA79971BEFAA76B3A7D368D268176DCA04153E755023E2671E575719F554ACBCDB9D8542F7683AAF0FAABB6E5020A9F3AA4473B999CF894681B2FD346052D2B2F65B9D8482F7682349A05DB7281054F9D5408F899C6AF5EBB6E26691F22AB904EE0672E231814B54F3388D77D23B59D38D0365FA6FF99FFFC4002A11000103030205040203000000000000000100020304051106211213314051101422413280162442FFDA0008010201013F00FD9A073E83708641EFA59046325433897A2924118C950CC25E9DEEDD15DEB22A6A77F1EE55B756B2DF172A66F555FAA5B5748EE546412B4C81EC83B8B2E3E9F8F74767A75496CE42A3823ADAA2F937C7D2BD5AA8DF3B1EE6630BD8521A511F00030AD956EB55D1F0039612B9E00C94C7878EE88CABEC8200C7F8475355D1D710C3B29EF02BA2CCB2E0A9357CD08E40391E54B7685E1B237F2F2BDC3EB18C847FA54C0B58223F5DD67016A767F4DEEF0A42E3212A9C1126241B2ABB232439A5F1F6A4824A69431EAC25B253C2E3F41746E3BAE87215C6DCDB93381C765268280E785E9FA065CE5922FE3B5B147CB90712A8D2570E6F1C4CC0565A534B42D63BAAC671DD0F8EC5608DC2F92C1F2B87EC84785FB2D9BF00BA7EDDFF00FFC400251100010401040104030000000000000000010002030411051221403210224180144261FFDA0008010301013F00FB76D6A73709A139B8EEF2AA40F95E24F85269DF907785069E18FDC5CAFEDDFC0F407B4D4C8B729849523DA154B53161084AF7BF20AB359F356DC5A830A23B43C9513FAAB518B8DC151D335FC555A518707CA15FB94DF4042C1CA6E222F47DDDAF95A77364350FE27709B69CDF6BC26B848DE15AE1CF4381DAC65413188E426EB2F09BAD1F9085F8F3951EA9106E15B977BF211E5BDA6AC64AC05C2E10217921F6EFFFD9, '1', '2022-03-16 22:19:44', '1', '2022-03-16 22:19:44', b'0'); INSERT INTO `infra_file_content` VALUES (6, 4, '822aebded6e6414e912534c6091771a4.jpg', 0xFFD8FFE000104A46494600010100000100010000FFDB0043000302020302020303030304030304050805050404050A070706080C0A0C0C0B0A0B0B0D0E12100D0E110E0B0B1016101113141515150C0F171816141812141514FFDB00430103040405040509050509140D0B0D1414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414FFC20011080102010203011100021101031101FFC4001E00000301010101010101010000000000000008090701060A02040503FFC4001C0101000203010101000000000000000000000105020406070308FFDA000C03010002100310000000AA6000000000000000000000000000000000070000000000E81C3A70E8001C03A0700000E8001C2401808000FF000BF9808017F8E12007F8C00A0200040102BE0120C0000BFC000708045D03033802AA794029412BC69C0DFC9B206005261020356037F37E1551D33CB1AA1160BFC00070804553201017F4554D50A002A86AA4582FE0800D51164AA66503FE74CA48B22A85FD1551561552A98AB17F8000E1008AA640202FE8AA8AB00FF0BF98097F490007AB12D2D2920C0DF8F564AC2FE8AA8AB0AA954C558BFC00070804553003013CA0AA9AB1540F2A45A3CA95409B27953CB173C55474CF2C4593CB173C4047F80E9208FA27000384FF0032C387406A0CA8D58554D50D5895A6563526A66A82B06546565A61553541AA1013A0700AAA0000004FE37F03002809E449B22AA5D0303384023572E79F3B250030003CA973C6089FE2026FC3002025FE0003F22FE7CEC9AB9E58B9E6A6795030037F18227F9C26C8E913687E8A504303D48FE9BF916874874C6089FC4863E9E8000E1008CAC7F440C7F4E08195407FC4006A8404E9C1A932A1AA22D1AA0D39AA8AB8FE99492B8BFC708045FE000384023033D494A04A8CB0CA0FA261812401E5C7F8DF095A57F2400EA88115E885E3542585A530037F182384022FF0001C20115F0C00A02791303384023572A808794FCF0666B0E8F062D2B32107EC9B23A66A679724015FCC00D4C9B47D3D0001C201169CCA86B0CA0404E92ACAA62AC5F13FA4FF0033E3965D84EBBF58CCFE4D5B671FF2C44C8B03566563FA2AC6AA5501023A5540003F22FE4D93531D303003001582E79164BE50FEA463B41BD9EF975F7FD2DB5FD2F595FBE75D57FC0991F2754009583545262178D51498F5C0007E45FC8B45CF22C9AB0FF1BE1810AA9368A8312CC516DE535BBDEBA973F7DD6D7647E5FD2B29EC9C8FA0FBC4B2CB19AE55315601FE17F26B9400C00FA27000384FF22C0D58D48FE8808FF1014B4A4AD1C786F9C8DB79BF1DEDBC6DD53FBFACDCF1FF001F41FF0027D57C5D84EC6A13EDAC72C3533541AA101032C32A32B3E944000E1200754408C00B4A6006003FC60007874379C6DAFE7F2EFA09F58C5FACAFD4F98DE553F4BF11437B2A4C1A41164D4CAA640203E9E89B26A6501000384022FF001941EA480C3A44DA1FA2BF9D10F1C6A5D9FF002FCEEE7F92B36330DEC3D671B65FC5EE9C96CBD0E9C1437F2BF8BF01EA8CB0C0490057F2948001C2010FE9961958AB0FE0155055055CFF00B4CB59187FA6CB4BC59A4C69713FEB44FEFE9094C01FF2018FE9AA116C7F4E1D2AA0001F917F241969CCACCA495E7AA3E89C9567AB024095EC5D0FEE1EE1A610F10601FE382043FA6FE06006005800003F22FE7961562AA1E449B26A650127F1218F225531561FD32C1A910235326D1F49879522C8FE8810FE9404E1008BFC000709FE2B065635007040CFA503840335632B1A835332B32C2A899512B4D58D50554CB07F0E954C08045FE0003848015837F37F3D41960D48951BF9218FA4C30337C3D719392BCA4C4831FD35635422C0AA9D1803D480FE9404000FC8BF9E58000D509AC6FE745FCC046A46A8F522585272178FF0BF8FF120CC0CFA4C3CA9164BA048527F9F55000070804354006566A85532561C035432B1AA1AA1543551023803FC6544AD2D399512B4AA64AD1A82AA8001C20115F090605531562AA115C09FE5283D58969EA400AA6749046FE55022C801818E91A98E98C10001C201154C80405FD1553CA0EA9008AFE2025CF3CA8809EAC9583023A43A64832D31EA895A30070D588B27963E9E8000E1008B4E20203542AA55422C13FCA002AC5A52568D48AB8AA1400D50AA64021AA32B2D39C10032C1A732B2808001C2010001E5874CAA87CAB9D18032C37C1FD26C95F4E1BE9E549AE6025A62181EA47F85FC7F8C00408BFC000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007FFC4004210000003060209020503030203090000000607080004051415160917010203111318195785253810202147671226272829464175223739303142505160616383FFDA0008010100011200FF00C8F7B6F6DEDBDB7B6F6DEDBDB7B6FF008EFF00868D3A34FCBBDBF568F8FEAD0DBDB7B6F6DFF32F05E27A12CABC740D070E28A1B86C8CAB97545539DCD6EA8AA73B9ADD5154E7735BAA2A9CEE6B614EA84CE5279A398C26B8A8B4B9065E0BC4F4259578E81A0E1C514370D919572EA8AA73B9ADD5154E7735BAA2A9CEE6FC5782F13D09655E3A0683871450DC364655C97919E27265278E4640F89D18470C91947DC2995099CA4B3433184D715169721F2F545539DCD6EA88A73B98C830CF139CC93C0E321844EB22389CF4DBEAF233C4E4CA4F1C8C81F13A308E192328FBD5114E7731BAA2A9CEE6B7545539DCD6EA8AA73B9ADD5154E7737E6C51BDF599BE318D0344324C0122631194528E1C86F0A69F7AA2263EE5B75444C7DCC6C51BD8999BE31B032FBD9E1197820E3D0E955E3A190380F5A0DC4A4655F50720E3D09655E06190C40F450DC367A69F4F154658A6EA2E6309ADDAD71E41950A5D335671E82638C9C0CDE05C09256951A542A88B259C450989C2704D781902495A54170A84BC6726CCD1CC70CDB95AA5C8319EBCC8B2607513070C4714611C378534E49752E99A8C4F40C9C671866CF2E03735558D62ACA80B152795F97026B8A8B549F62BD061E8738121A310681EB21C8971655F550AA22C967114262709C135E064092569505E974A73B66DD2E94E76CD92EA5D335189E81938CE30CD9E5C06E6AAB1AC55D50962A4F2BF2E44D71516A93EC839789164B250030346238A288E1B3D34E58A37B13337C636065F7B3C2319EBCC8B2607513070C4714611C378534E5D51131F73188D54458A92ADE5C09AE2A2F027DB146F7D666F8CF9B146F7D666F8C6C51BD8A19BE33E38A37B13337C636067F7B3C232A0C55F96C3D04C5C6575C74595F52FA32E4437CE7593B86D675B53AC9708DE5B48B0D1735AB8A8B35EA785CFBEA2CFC9B6ED1B99506151CC91E82631B346DCAD4B7A62A223799222C4C5CD6ADDAD4AFA9AE4437C98593BC6B78DCB3AD85CFB142CFC9B25DC29F96C3D03463668DC74599F4CD1BB737D195111BCC9116262E6B56ED6A57D4D72A1BE4C2C9DE36BC6E59DF8628DEC4CCDF18D819FDECF08D8A2FBEA337C67C3033FBD9E11B146F7D666F8CF9B146F7D666F8C6C51BD8999BE33E38A37B13337C636067F7B3C23628DEFACCDF18DD5154E7735B0A754267293CD1CC6135C545A5C832F05E27A12CABC740D070E28A1B86C8CAB96171EFACB3F26DFF7EAB2F05E27A12CABC740D070E28A1B86C8CAB920E5E27A1D2ABC0C0D188E2B41B894F4D396397F64FCDB15EBCCF4260090D0703471460E4378B2AE4BC8CF1393293C723207C4E8C238648CA3EF544539DCC6EA8AA73B9AC839789E874AAF030346238AD06E253D34E58E67D93F37F0C51BD8999BE31B033FBD9E11B146F7D666F8CF86067F7B3C23628DEFACCDF19F3628DEFACCDF18DD51131F731BAA2263EE6375444C7DCC65E0BC48B3A5280E81A0E1C5684712919572C0CFEF67846C51BDF599BE3192EA5D335189E81938CE30CD9E5C06E6AAB1A23551962A4AB797226B8A8BC09F633D799164C0EA260E188E28C2386F0A69C8CF4187A13004898C46407A30721BC29A7D2352D99CA46B797219B8A8BC09F64BAA88B2462450689C38C4D679901A9AAAC14CF4187A13004898C46407A30721BC29A7D2392E19CA42B797219B868BC19F6340AE131303B89838650CA308E1BC29A72C51BD8999BE31B032FBD9E118CF5E6459303A898386238A308E1BC29A72C51BD8999BE3188D4BA66A91ADE5C866E2A2F027D8D02B84C4C0EE260E194328C2386F0A69CB146F62666F8C6C29D509629B33473184D6ED6A9720DD51131F731BAA2263EE6375444C9DCB65E467860E655E391903E27590E44A4651F7E554185473267A098C6CD1B72B52BE9BD0CBF3637433FCD8DD0CBF3637432FCD8C8650D72617B7EF5BC6E592654185473267A098C6CD1B72B52BE9B8A27B14337C636067F7B7C232A0C29F9923D04C63668DB95A96F4CC51BD8A19BE3190D2E4E4C2F6DE0ABC2E59265447973247A098C6A2DBD5A95F4C5438AC732645898B9CAEB72B52BEA781A7DEDF08CA830A8E64CF41318D9A36E56A5BD355062AFCC9916262E72BADCAD4AFA92195C9C985EDFB2AF0B96459511E5CC89E82631A8B6ED6A57D33145F62866F8C6C0CFEF6F84654185473267A098C6CD1B72B52DE9AA888DE6488B131735AB76B52BEA5D0D3F3637432FCD8DD0CFF0036B7434FCD8DD0CBF36FFD862B0A84CE4DB96197226B76B5549F64186789CE649E07190C2275911C4E7A6DF57919E27265278E4640F89D18470C91947DC2995099CA4B3433184D715169721F0340AD0C9CE0489838650BAC07225C29A725CBA7A6D595CBA7F1DDE73D5D6EA8AA73B9AC6815A1939C0913070CA17580E44B8534E5D2ED31F6D1BA5DA63ED9FC08D54466A6DADE5C89ADDAD7027D90619E273992781C643089D6447139E9B7D6C2992F162A4F34731833715169720CBC8AF0C132ABC720D07C328C1C8648CA3919EBCCF439C0913070C871590E44B8534E446AA33393756F2E44D6ED6B833EC830CF139CC93C0E321844EB22389CF4DBEB62B0A88CE4D995F97226B76B5549F6EA8AA73B9AC839789E874AAF030346238AD06E253D34E58ABAA133936657E5C89ADDAD5527DBAA2A9CEE6FCBBF768D3A74FF00A319EBCC8B2607513070C4714611C378534E4C46A5D33548D6F2E43371517813EC6815C262607713070CA194611C378534E5D51131F73188D54858A91ADE5C89AE2A2F027D8CF5E6459303A898386238A308E1BC29A725E45789CE649E390683E195911C4E4651CB0A74BE66A6CCD1CC60CDBB5AA5C86933D799164C0EA260E188E28C2386F0A69C9B1574BA67292CAFCB90CDC545AA4FB25D54459231228344E1C626B3CC80D4D5560A830CF0C132ABC0E321844E8C1C864F4DBEAE5FEE476572E7FC8965CF5798D02B84C4C0EE260E194328C2386F0A69C90720E3D09655E06190C40F450DC367A69F4F15445926DA2E6309ADDAD71E4197919E18399578E4640F89D64391291947DE974A73B66D853A5E33935E68E63866DCAD52E418CF5E6459303A898386238A308E1BC29A7233D061E84C01226311901E8C1C86F0A69F7034FBDBE118CF5E6459303A898386238A308E1BC29A726C5612F19CA4B2C32E43371516A93EC6815C262607713070CA194611C378534E5F2E28BEFA8CDF18C9708DE648F40D1735AB76B535EA5F4C183F31664B2A23CB9923D04C63516DDAD4AFA6F432FCD8DFF45FFCC5992CA88F2E648F41318D45B76B32BE9897B157E64CF40D17395D6E56A67D4F768FD2CA830A8E648F41318D9A36E56A5BD31511E5CB69162631A8B7151657D33AE57E136E46BA927F5197B65D5E9FE35D0CBF36B21A435C98DEDFBDAF1B96499506151CC99E82631B346DCAD4AFA6AA23CB96D22C4C63516E2A2CAFA6AE35CBCE7D93FB2ACEB6A7592F614FCC99161A31B346DDAD4CFA625EC55F9933D0345C6575B95A9AF525CAB93931B27F655E372CEB7233D493FA8CBDB2EEF4FF001A54446F32245898B9AD5BD5A95F5343286B930BDBF7ADE172C8B628BEFA8CDF19F0DDA1B145F7D66778CF9B146F7D666F8C62B8D1131303B860C41B14A308E1BC5957D3C55199AA468B98C26B8A8BC790641C8388B3A528018643103D6847129E9A7DEA8AA73B9AC792A333949D1731C4D71D178F21F02BD061164C0EA1A310701E8C2386F1655F7768D1ABB99782F13D09655E3A0683871450DC364655C92EAA2335671E819270E3135E05C0926AAB05E97698FB68C5715A19260090D0703617470E4378B2AE4839789E874AAF030346238AD06E253D34E5BBE9B99782F13D09655E3A0683871450DC364655CB146F62666F8C6C2992F162A4B34331833715169720C5715A19260090D0703617470E4378B2AE585C7BEB2CFC9B6397F64FCDB15EBCCF4260090D0703471460E4378B2AE4BC8CF1393293C723207C4E8C238648CA3EE14EA80CD5279A398C26B8A8B4B90D067A0C22CE71D44C623103D644712E14D3EFC3146F7D666F8CF9B146F7D666F8C65E45789CE649E390683E195911C4E4651CB0A64BC6726DCD0CC60CDBB5AA5C87C0D0344324C0122631194528E1C86F0A69F7AA2263EE5B75444C7DCCF8118974CE5255BCB80CDC545E04FB25D54459231228344E1C626B3CC80D4D5560B07C2C14ABFC4DD9D36E0476856C36DAFF00A35DF50C22F7446EE22CD4BC35C58FE21929C651D860061479CE2330DFC711A833E4625FF5B8F44F05F73442DD13C19DCE10B270275C13992E1D2EDC222F91974834C70DFB6D137777D96BED36BA769B3D9EAE8DFADAF8A82663254D6C8ADD72CC3B73EA422A73BA52EAA12C91891219270E31359E6386A6AAB05418678609955E07190C227460E4327A6DF572E8EA496572E7FC8965CF57992EAA22C9189141A270E31359E6406A6AAB055E0BC48B3A5280E81A0E1C5684712919572DCC839789164B250030346238A288E1B3D34E49752E99A8C4F40C9C671866CF2E03735558D2E5FEE4B6572E7FC8965CF5798D02B84C4C0EE260E194328C2386F0A69CBE5C517DF519BE319511E5CB71162631A8B7151657D310D2E4E73AF6FD95675B523F054446F32445098B9AD5BD5A95F53E867F9B5BA19FE6DF86067F7B3C23628BEFA8CDF18CFF00FAB5DD769A9A9AFA767ADADA75767A35F63B2D4D86CF46CF67ABA353535746ED1AA288FBB85035158D3D7EA9587BAED5EF6AC994EF8A1DA1A103C4760BA81E8DC1E2FB686BCB83E3EEC21EE9B77979DAEA6C361B1D4D3B4DA6D4A050702394482F83C19D5FB61B40EED1DF46B6DB733A3B6AC39E1F75767A74E8D8EB69D5DB68D9AA0C2A39933CC4C63668DB95A95F4CFAB21A5C9C98DEDBC1578DCB24CA88F2E648F41318D45B7AB52BE99D0CBF3632E4435C98D95FBD6F1B967592F614FCC91161A31B346DCAD4D7A62A223799222C4C5CD6ADEAD4AFA9FF00D187F31664B7235D497FA8DBDB2EEF4FF1AF9376FD1A7469633D06116738EA26311881EB2238970A69F52EAA2335671E819270E3135E05C0926AAB055CBFDB6ACAE5CFF8EAF49EAF320C33C4E7324F038C86113AC88E273D36FABC8CF1393293C723207C4E8C238648CA3EE14EA84CE5259A398E26B8A8B4B9065E0BC4F4259578E81A0E1C514370D91957241857860E655E07068C219590E44E7A6DC88D4BA5926DADE5C866DDAD7027DB146F7D666F8C67AD3F4FFF004D9B6FFA31FE3672D806A260972D8ED622258FC35E1DF62EB037B1D02A3A237B0DE80EEDDDE2FB7D8EDD850361D98908B523A1C82B8439EF69B3A8C4137C2E16F8231D8ADDF6BB2D488C45E7610FDBB96E67AFA6D1E74FFF0056CD9772F23D09655A390703471460DC364655CBA5DA63ED9B74BB4C7DB36E97698FB66DD5154E773590CE9EA4B7B7317FC8965C8D098AE2B4324C0121A0E06C2E8E1C86F1655CBAA2A9CEE6B219D3D496F6E62FF912CB91A1315C5686498024341C0D85D1C390DE2CAB97C9BF768D3A74FF00A319EBCC8B2607513070C4714611C378534E4830CF0C132ABC0E321844E8C1C864F4DBE91AA88B25235BCB9135C545E04FB628DEFACCDF18C9752E99A8C4F40C9C671866CF2E03735558D75444C7DCB62B8D10C9CE04868C41B14AC07225C5957DEA8898FB98CB9B4F524B2B973FE44B2E7ABAC6815C262607713070CA194611C378534E58297D0AF33BFDE9C1A04788E824696C204614B3A3BBDED3F4E9D905841B1354C7797F7A803F8D611187E717E7A763FE1AE645449E2C6D9EA43352201C88BF6D2181C2A41B1F7D154076C03DBC2F650FD83B6BBB8DE16338BC38BE0D9A0E8F1BE3908D9687989B0C94582804F102768ABDBF6BBCC69CE7DCB640B1F408CD0E6A08434FD5283BDEA6ED8BCAED41A7A1D2AB872310681EB21B8948CABEB6067F7B3C23628DEFACCDF18DD2E94E76CDB0A74BC6726CCD1CC60CDBB5AA5C832F041C7A1D2ABC74320701EB41B8948CABEB614CA84B14D99A398C26B76B54B9065E467860E655E391903E27590E44A4651F7E554185473247A098C6CD1B72B52DE99F56434B97930BDFF64DE372C937235D493FA8DBDB2EEF4FF1A54446F32245898B9AD5BD5A95F53E86BF9B592E11BCB69161A2E6B5715166BD492E11BCC91E81A2E6B56ED6A6BD4D0D21BE4C2F6FDED78DCB24D8A2FBEB337C6360A1FF002C4CEFF7A7065B503DABFC6A0FA8EBB5D7D8BEC503F157275DB13C58D0800198840C42FB078BE873D9ED767148AC3A3FB533A18268A06844328C425E9F364F5108480A3E25026CE1B121088A030578D9EBEF098049D8EC2843A1DDFB61AAED06D4D8EBBB6D98322E108C2000009BD43363B77A09C43650D866C36F1B8A244493128A4621CEF1E7D0942F8921D72BF09B2A0C2A396C22C4C63668DC74595F4DC0CFEF6F84654185473267A098C6CD1B72B52BE9AA88F2E5B48B1318D45B8A8B2BE9BD733F09B75CDFC24CA830A7E5B08B1318D9A371D1657D310D21BE73AF6FDED675B524CA888DE5B4F4131735AB8A8B2BEA7F2AF05E27A12CABC740D070E28A1B86C8CAB974BB4C7DB36C55D2F1629B32BF2E4336ED6AA93EC57AF33D098024341C0D1C518390DE2CAB92F233C4E4CA4F1C8C81F13A308E192328FB853AA133949668E6389AE2A2D2E419782F13D09655E3A0683871450DC364655C8AF418459303A868C41C07A308E1BC5957DC5595099C9B32BF2E04D6E56AA93EC9752E964B388A0D1C671866F03204935558D609FF00F2C4CDFF007B70654AE9BF685AC4765AFB39A7314EC7535765A9A346AE8DDA3468D1A3FF004DDF4D3F4DFF00FC010F37DD018D47D1A429EF61AFADB6D7D4D47D0B8A21A31826C22D09DAEBEDDC36FBF87B40E47A22FCAD42C1C0FB83DED76F05143CEDA29AE62806046784A361513B954E031376D9EC1F1D3A5DA64EDA3628DEC4CCDF18C462A23393656F2E04D6ED6B813EDD5154E7735B146F62666F8CF89A056864E70244C1C3285D603912E14D392E5D3D36ECAE5CFF008EAF49EAF325D4BA592CE22834719C619BC0C8124D55635F2E28DEFACCDF19F03C5511649BA8B98C25B76B5C79062B8D10C9CE04868C41B14AC07225C5957D418678609955E07190C227460E4327A6DF572FF723B2B973FE44B2E7ABCC6815C262607713070CA194611C378534E4839071E84B2AF030C86207A286E1B3D34FBA3E1861A76311368087AE263076DCDBBFC49D1EDDB40AC030B183EC31F1FF0067ADB57886EB6D35DD74EB95FB2FAF0DF75F57469FF4DA15EF3BFF00E07ED9E9D568DA628BBB461F63213106D431117DD7D3B47BD9B881044E90F77D47ED4D9BDBE6AECF5746DB6A98837B370DA98D16DBB8EA6C226F82678D8ED36BB6DAEA6D36EFBABABADA35B4EA6AECF5759B143F7D065F8C641C838F425957818643103D14370D9E9A7DDFA3F4EF633D799164C0EA260E188E28C2386F0A69C8AF5E6459CE3A868381C38AC88E25C595723C5521629BA8B98C26B76B5C7906EA8898FB98CBC17891674A501D0341C38AD08E25232AE5B99072F122C964A006068C4714511C367A69CBE5C517DF519BE3192F62AFCC99E81A2E32BADCAD4D7A96397F64FCDB25EC56396C22C345CE575C7459AF534B846F3247A068B9AD5BB5A9AF53FA60C3F98B325B91AEA4BFD465ED9777A7F8D6E65CAB97930B2B4595785CB3ADD737F09B4331BB707B89EC3651727B6EEB0AD7D3B9EB6900C4353DC51C364F0EE6B383B6CB5F46FE07500203BB61E6191D4110006DEE3E2114384260EE9FA38EF9CFF901DDB0F3034E9088FC38E91E0F89DC22D077BFD7C07CD617C335F67AFABB18BBBEA6BEB7FE2856DF51EF4EAEC1CF5769ACEDFAB89B67A53F854732479894C6CD1B72B32BE9A97B157E64CF40D17195D6E56A6BD4B7E8D1A37696C513DF5999E3192F614FCB61E81A31B346E3A2CCFA62E5435CE7595FBDACEB6A7595111BCB69E8262E6B57151657D4FA197E6C6E869F9B1BA197E6CF9776FD1A7469633D06116738EA26311881EB2238970A69F70B8F7D659F9363C52E162A4A8B98E19B8A8BC7906E97698FB66CA852E9648C48A131C64E066CF320352B4A8D1E2A90CE52345CC6135C545E3C8315EBCCF4260090D0703471460E4378B2AE4D8E67D93F36C8390711674A50030C86207AD08E253D34FABC1071164B2501D0C81C07A288E1B232AFBFAB4B20F416461D49440E3318826B024894F4D3E25650C602C53EC30501BB1FBACBB11CD5520F8AAA5D2C935E57E5C86A815AAA4FB618900717E43A5B6DB6DB1DFAFAF526D40C43B534EFD0EFA37B62A2A60CA4CB95FA0B5125B75AAA4FB7545539DCD6C2E3DF5967E4DB1575446726CCAFCB9135BB5AAA4FB25D4BA592CE22834719C619BC0C8124D55635D5154E7735B0A754267293CD1CC7135C745A5C8319E8308B39C7513188C40F5911C4B8534FABC8CF1393293C723207C4E8C238648CA3EE14EA84CE5259A398E26B8A8B4B9065E0BC4F4259578E81A0E1C514370D919572F937EED1A74E9FF4633D799164C0EA260E188E28C2386F0A69CB146F62666F8C6C0CBEF6784F81A068864980244C62328A51C390DE14D3EAE5D1D492CAE5CFF916CB9EAF325D54459231228344E1C626B3CC80D4D5560AD8AC25E3394965865C866E2A2D527D8D02B84C4C0EE260E194328C2386F0A69C9B033FBD9E11B146F7D666F8C6542A88B259C450989C2704D781902495A54150D7F6DABDB98CFE3ABCE4682DD51131F73192EA5D335189E81938CE30CD9E5C06E6AAB1A5CBFDC96CAE5CFF00912CB9EAF31A057098981DC4C1C3286518470DE14D391A068864980244C62328A51C390DE14D3E91AA88B15235BD05C89AE2A2F067DB146F7D666F8C6542A88B259C450989C2704D781902495A5417A5CA9CED9B25D54459231228344E1C626B3CC80D4D5560BF0C51BDF599BE33E654185473247A098C6CD1B72B52DE98A83157E64C8B1317195D6E56A57D490D2E4E4BEF7FD9578DCB22DD737F09B73C9D493FA72B272EAF4FF25FA60C3F98B3259511E5CC91E82631A8B6F56A57D337B7D1B145F7D66778C6541853F2D845898C6CD1B8E8B2BE9886972725F7BEE055E372C937235D497FA8DBDB2EEF4FF1A4BD853F2DA7A068C6CD1B8E8B33E998E57D93F36C97B0A8E64C8B0D18D9A36E56A6BD315111BCC8916262E6B56F56A57D4D0D21BE4C6F6DE36BC6E5926C517DF599BE3195062B1CC9916262E72BADCAD4AFA9E067F7B7C23628DEFACCDF18C970F2E5B4F40D18D45B8A8B35E99D733F09B7237D493FA8CBDB2EEF4FF1ADEDBF46ED2D8A2FBEA337C67CCBC1789E84B2AF1D0341C38A286E1B232AE4830AF0C1CCABC0E0D18432B21C89CF4DB962AE97CB14DB95F97219B76B5549F641C8388B3A528018643103D6847129E9A7D542974B246245098E327033679901A95A54690D7F725BDB98CFE45B324682DD2ED31F6CD9072F13D0E955E06068C4715A0DC4A7A69CB1575426726CCAFCB8135BB5AAA4FB1A068898E71DC4C62328A5644712E14D3E9A056864E70244C1C3285D603912E14D3974BC4C9DB462B8AD0C93004868381B0BA38721BC5957263C92E962A4A8B98C19B8A8BC7906542A88CD4627A0989C2704D679701B95A54157919E27265278E4640F89D18470C91947DEA88A73B98C9752E964B388A0D1C671866F03204935558D74BB4C7DB362352E1629B6B797019B76B5C09F6C51BDF599BE33E1A34FE9FAE862BD799E84C0121A0E068E28C1C86F1655CBAA2A9CEE6B7545539DCD64BA974B259C45068E338C3378190249AAAC6BE4DFBB469D3A7FD18CF5E6459303A898386238A308E1BC29A72EA8898FB98DD51131F731BAA2263EE6375444C7DCC623551962A4AB797226B8A8BC09F65E0838F43A5578E8640E03D68371291957D542A88B259C450989C2704D781902495A54170A74BC6726CCD1CC60CDBB5AA5C832F041C7A1D2ABC74320701EB41B8948CABEE171EFACB3F26D8E67D93F36D85C7B132CFC9B2F22BC4E7324F1C8341F0CAC88E272328E4863FB6DDEBCC5FF001DDE7234262B8D10C9CE04868C41B14AC07225C5957DE974A73B66D853A5E33936668E63066DDAD52E4197820E3D0E955E3A190380F5A0DC4A4655F57915E27399278E41A0F865644713919472E976A73B68C6815C262607713070CA194611C378534E4681A2192600913188CA29470E4378534FA46AA22C548D6F417226B8A8BC19F6C51BDF599BE318D0344324C0122631194528E1C86F0A69F715854258A92CB0CB9135C545AA4FFCF8A2FBEA337C637432FCD8DD0CFF0036B7432FCD8CA830A8E5B08B1318D9A371D1657D37032FBD9E11B737235D3737A8CBD7316CBFF1AEB97F84DBAE6FE1264BD85472D87A068C6CD1B8E8B35E9B8E67D93F36D85CFB142CFC9B7D197221AE73ECADC36B3EDA9E64B846F2DA45868B9AD5C5459AF52EB9BF84DBAE5FE136EB9BF8499511E5CB71162631A8B7151657D310D2E4E73AF6D164D9F6D493628BEFACCEF18CA888DE6488B131735AB76B52BEA48690D72637B7EF6BC6E5926C517DF599DE31B144F62866F8C643686B9CFBDB78DACEB6A49BA197E6DF9B146F7D666F8C65E46789C9949E391903E274611C324651F7AA229CEE637545539DCD6C51BD8999BE31B032FBD9E13E09755119AB38F40C9387189AF02E049355582E2AE978B14DB95F97219B76B5549FF820E5E27A1D2ABC0C0D188E2B41B894F4D396397F64FCDB15EBCCF4260090D0703471460E4378B2AE5D5154E7735BAA2A9CEE6B7545539DCD6E97698FB66DD2ED3276D197915E18265578E41A0F86518390C9194724BAA88CD59C7A0649C38C4D78170249AAAC148C4BA58A6DADE5C866DDAD7027DB146F7D666F8C6EA8AA73B9ADD5114E77318D03444C738EE263119452B2238970A69F52EAA2335671E819270E3135E05C0926AAB055CBFDB6ACAE5CFF008EAF49EAF320C33C4E7324F038C86113AC88E273D36FBF2E28DEFACCDF18D8A37B13337C67C7146F62666F8C6C0CBEF678465E0838F43A5578E8640E03D68371291957DC51BD8999BE31B468DEC839789164B250030346238A288E1B3D34E4830CF0C132ABC0E321844E8C1C864F4DBE91AA88B15215BCBA135C545E04FB19EBCC8B2607513070C4714611C378534E4839071E84B2AF030C86207A286E1B3D34FB8E67D93F37F0418678609955E07190C227460E4327A6DF572FF723B2B973FE45B2E7ABCC830AF1393293C0E0D184328C23864F4DB96171EFACB3F26C78AA22C537513418C26B76B5C69062B8D10C9CE04868C41B14AC07225C5957D41C838F425957818643103D14370D9E9A7DC55D2F19CA4F2BF2E43371516A93EC975511648C48A0D1387189ACF32035355582E28DEC4CCDF18C46A5D33548D6F2E43371517813EC6815C262607713070CA194611C378534E5F2E28DEFACCDF18CA888DE6488B131735AB76B52BEA5D0CBF36B7432FCDAD8A2FB14337C636065F7B3C236E65418ABF32645898B9CAEB72B52BEA4C97B0A7E6488B0D18D9A36E56A6BD312E11BCC91E81A2E6B56ED6A6BD490D21AE4C6F6FDED78DCB24D8A27BEB333C6375CDFC24CB9572739F64E8B2ACFB6A7BE0A830A7E5B08B1318D9A371D165BD33033FBDBE11BE8D85C7BEB2CFC9B6397F64FCDB25EC56396C22C345CE575C74599F53FA37D3732A0C2A39923D04C63668DB95A96F4CE793A92FF004E564E5DDE9FE4A8690D72617BFEF6BC6E5926541853F3247A098C6CD1B72B52BE9BF2E28DEFACCDF18DD5154E7735BAA2A9CEE6B7545539DCD633D799E873812260E190E2B21C8970A69CB032FBD9E13E3A34FE9FAE862BD799E84C0121A0E068E28C1C86F1655C8AE3444C4C0EE183106C528C2386F1655F7AA229CEE6325D4BA592CE22834719C619BC0C8124D55634830AF0C1CCABC0E0D18432B21C89CF4DB974BB4C9DB46E97698FB66C6815A1939C0913070CA17580E44B8534E44725C2C53756F2E4336ED6B813ECBC1789E84B2AF1D0341C38A286E1B232AE585C7BEB2CFC9B1E2974B252545CC60CDC545E3C832F22BC304CAAF1C8341F0CA3072192328E5D5154E7735B0A754267293CD1CC6135C545A5C832F05E27A12CABC740D070E28A1B86C8CAB915E8308B260750D188380F4611C378B2AFB8ABAA133936657E5C09ADCAD5527DBAA2A9CEE6FF00EE7FFFC4003E10000102050106030703040004070000000203130001041114150512212232331085D4162023346394E4313541245161624260718206305281B1B3D1FFDA0008010100133F00FF0091349A05DB7281054F9D5408F899C681B2FD34681B2FD34681B2FD34681B2FD346052D2B2F65B9D8482F7682349A05DB7281054F9D5408F899C681B2FD34681B2FD34681B2FD378E9340BB6E5020A9F3AA811F13386125DB72BD048F9151209DC0CE5C46302969597B2DCEC2417BB41EEE81B2FD34681B2FD3430920E375F509072242212B0004B80C3092EDB95E8247C8A8904EE0672E231A06CBF4D1A06CBF4D1A06CBF4D1A06CBF4D1A06CBF4DEF795D2463AABB6E2A09072242473B9984B80CED1A06D4F4D1A06D4F4D1E69491F7F1AB5020E37408247C8AAE272B1846AD40BB6E502E907224B91F1338C0AAAA7996DDEC2476B3A1D519F4B43938F4A952ADF06A954960B2C82A1CE11815543938F549552DF1AA924910B2282A7CE719F4B54F3396EF6153B59D08D22BD76DC4C150E7490209DC0C27C0A33E96BB1B22955A547E0D2AAAAC77597483902302AA9597B11AEFA417BB471ABD020E36A9A47C8AAE272B181CB88C605550E4E3D52554B7C6AA492442C8A0A9F39C6BFB2FD4C6BFB2FD4C67D2D7636452AB4A8FC1A555558EEB2E907204605552B2F6237DF482F768E349AF5DB72BD75439D24083A0C23CD2923EFE348AF5DB71305439D24082770309F028D036A7A68C0AAA565E71AEFA417BB47D378F2BA4F7BCAE923CCE93C7CD2923EFE35FC579EA5497ED629DACEDBABC349CEC8C863EBA5B9BAC46262BCF552ABF6B7CED67777AA71E5957E1A06532CD2A48777282F76AFD318994CB35492FDADF0BDDADDEA8D27071B1D8FACAEFEF3F1E67571A062BCF52AA877728ED676FD3E38994CB35492FDADF0BDDADDEA8D27071B1D8FACAEFEF3FE1E69491F7F1E594BE1F7F1E5749EF795D2479A5278F9A5247DFC795D24681B2FD346052D2B2F65B9D8482F7682349A05DB7281054F9D5408F899C795D5F869340BB6E5020A9F3AA811F1338D2681071BA05D50E749013E0611F611A4502EDB8A9AA7CEAA0473B999CF8943092EDB95E8247C8A8904EE0672E231A06CBF4D1A06CBF4D1A4D020E3740BAA1CE92027C0C23EC3C3CD2923EFE3CAE93C3EFE3CAE93DEF2BA48D036A7A68D036A7A68D036A7A68D26BD071BAF4153E755010E8038FBF8F2BA48CFA5AEC6C8A556951F834AAAAB1DD65D20E408C0AAA565E71BEFA417BB47D378D22BD76DC4C150E7490209DC0C27C0A357A05DB71504839125C8E7733097018CFA5A565E71BEFAA17BB47D378C0AAAEC6C8AA56A91F8D4A92A89DD15D23E438D5E8176DC54120E4497239DCCC25C06275F4B4ACBCE37DF542F7694E9BC3E92EDB890AA1CE91104EE0613E053B479A5247DFC6915EBB6E260A873A48104EE0613E051E694913AFA5A565E71BEFAA17BB4A74DE1F4976DC48550E748882770309F029DA3CD292302AAA9E672DDEC2476B3A11A06D4F4D1A06D4F4D1A06D4F4D0C2A838DD02091F22A2272B181CB88FBDA06532CD2A48777282F76AFD31ECA7E6C7B29F9B1ECA7E6C7B29F9B1A4E0E3E3E47D7577F79F8D032996695243BB9417BB57E98F33A58FBF8D032996695243BB9417BB57E98F33A48D57071B1F23E82BBFBCFC65E532CD2A48777702F76B7BA651AFE532CD524BF6B142F76ADD51F7F1A06532CD2A48777282F76AFD31AFE532CD524BF6B142F76ADD51AB60E363E47D0577F79F8CBCA659A5490EEEE05EED6F74CA3CCE963EFE340CA659A5490EEE505EED5FA631329966A925FB5BE17BB56EA947B29F9B1ECA7E6C7B29F9B1ECA7E6C7B29F9BFF91814B54F3388DF7D23B59D3861241C6EBEA120E44844256000970186125DB72BD048F9151209DC0CE5C46302969597B2DCEC2417BB41E190AA0E36A82A1CE9109CAC6984F814AF1FBA6662318DF3CFB7B994BF6ED7DF8D0365FA68C855071B54150E74884E5634C27C0A578D7F6A7A98D7F6A7A9F0C0A5AA79971BEFA476B3A7D30C24838DD7D4241C890884AC0012E03E19F554ACBD96E76150BDDA087D55DB7281054F9D52239DCCCE7C4A348A041C6D505439D2404E563009F028C0A5AA79971BEFA476B3A7D30C24838DD7D4241C890884AC0012E03E1814B54F3388D77D23B59D38D0365FA68D2681071BA05D50E749013E0611814B54F3388DF7D23B59D38D0365FA6F7B48AF5DB71305439D24082770309F02F0CFA5A565E71BEFAA17BB47D3787D25DB71215439D22209DC0C27C0A768D036A7A68C0AAA565E71BEFA417BB47D378D22BD76DC4C150E7490209DC0C27C0A1F49071BAF4153E754842560039F128CFA5AA799CB77B0A9DACE846915EBB6E260A873A48104EE0613E05E19F4B4ACBD88D77D50BDDA38C0AAAEC6C8AA56A91F8D4A92A89DD15D23E4386155DB7282A120E44848E7733097018FDAF0F2D8C6F9E65CDFC45FA2F6DC87D25DB71215439D22209DC0C27C0A768D5A8176DCA05D20E449723E2671815554F32DB9D848ED6743AAD0C2A838DD02091F22A2272B181CB88C6BFB2FD4C67D2D53CCE5BBD854ED6742348AF5DB71305439D24082770309F028D5E8176DC54120E4497239DCCC25C063EFE348AF5DB71305439D24082770309F02F0CFA5A565EC46FBEA85EED1C3E92EDB890AA1CE91104EE0613E053B7BDE594B18994CB34AAAFDADF0BDDAB754A3F63D3B4FFB975CCFFF004B3519794CB34A921DDDC0BDDADEE9947B29F9B1FB1E9DA7FDCBAE67FF00A59A8CBCA659A5490EEEE05EED5FA651AFE532CD2AABF6B142F76ADD5E1A06532CD2A48777282F76AFD31978AF3D54921DDDC3B59DDEE99C7B57F851A56A98789FD0FCCBC8B9BF8AE76E56DFB47B29F9B1A4E0E3E3E47D7577F79F8D032996695243BB9417BB57E98CBC579EAA490EEEE1EED9DDEE99C6AD9D9390C7D14B737588D0329966A9543BB9417BB57E98D7F299669555FB58A17BB56EA8D5B071F1D8FA0AEFEF3F1A56A98789FD07CCBE8B9BF8AE76E56DFB4626532CD524BF6B7C2F76ADD51A4E0E363E47D7577F79F8F2CA5F1F2CA4F7BCAE92184976DC48D23E4544827703397119DA3029695979B73B0905EED27D578D5ABD071BAF5D20E449710E8008D0365FA68C0A5A565E6DDEC2417BB41D57F0D5EBD76DC4CD23E4557209DC0CE5C47C349A05DB7281054F9D5408F899C6052D0E4E3D2AB548FC6A5492582CB2091F21C6BFB53D4C642ABB6E2A6A9F3AA4473B9A853E253B469340838DD02EA873A4809F030F0D268176DCA04153E755023E2671E694912AFAAA565ECB73B0A85EED04642ABB6E2A6A9F3AA4473B9A853E253B4795D5C7D8469140BB6E2A6A9F3AA811CEE6673E250C24BB6E57A091F22A2413B819CB88C6052D2B2F65BBD8482F7682357AF41C6D304839125C42560009701F1F2BA4F7BCAE921F49071BAF4153E754842560039F128CFA5AA799CB73B0A9DACE87863AABB6E2A09072242473B9984B80CED1A06D4F4D1A06D4F4DE19F4B4ACBCE35DF542F768FA6F181555D8D9154AD523F1A9525513BA2BA47C87157B7681943FDCDA58CED2FF0003384A8184E98E9DFE12B19DEEFC536CC71306699343AA76BDDA8D1C234708A8A59A6A28F54AABCEE3295A569AB68248E5294BFCCED19F4A836F623567950BDDA38C0AAAEC6C8AA56A91F8D4A92A89DD15D23E5386155DB7282A120E44848E7733097018FDAF0F2D8C6F9D65CDFC55FB77B46055576364552B548FC6A549544EE8AE91F21C6935E838DD7A0A9F3AA8087401F86935EBB6E57AEA873A48107418467D2D7636452AB4A8FC1A555558EEB2E9072047ED78796C637CEB2E6FE2AFDBBDB721F4976DC48550E748882770309F029DBDEF2CA58CBC579EAA490EEEE1DACEEF74CE356CEC8C8C8FA096E6EB1E18994CB35492FDADF0BDDAB754A3D94FCD8F653F37C3EFE3CB29607F51DE9CA5797F995E252E128095E7B8984CA7697FD250139948252909A73BCF8CEE2769CF85E72BCA568527610194AF39CE73FE2528AC49B1AA496099A6AA72FD6425295E5BD294ED69DBC3FE10995E45BB2FE25398DEDFDE739FF31A06532CD2A48777282F76AFD3E1AAE0E363E47D0577F79F8CBCA659A5490EEEE05EED6F74CA3D94FCD8D27071F1D8FAEAEFEF3F1A06532CD52A8777282F76AFD318994CB35492FDADF0BDDADDEA95AF1FB1E9DA7FDCBAE677FA59A8D2B54C3C4FE83E65E45CDFC573B636DFB7BDABD7A0E3698241C892E212B0004B80C6052D0E4E3D2AB548FC6A5492582CB2091F21C7EE99988C637CF3CDEE65AFDBB5F7E1849071BAFA84839121109580025C06184976DCAF4123E4544827703397118C0A5A565ECB73B0905EED0469340BB6E5020A9F3AA811F13387D541C6E82A150E74884E563009F028CFAAAA79971BEFAA76B3A7D368F2BA48FF00BE5E14E52963266049E42E5796E2729CE76FE4A72B0CA73BDB6A3DBE330A74D2B727F1C853BDE7FACB84AD3BECDDB2A2AF2025BC694913404A523DDDC9F35B7665C62F27524E9A46204A87EA247350E72BFEA0DF87FDC51A4502EDB94082A7CEAA047D671AFED4F531AFED4F531AFED4F531A06CBF4D1FB5E1E5BF93F22C39BF8A8772F6DC8C85576DC54D53E75488E77350A7C4A768D0365FA68FDAF0F2DFC9F9161CDFC543B97B6E4642ABB6E2A6A9F3AA4473B9A853E253B7BDA457AEDB8982A1CE920413B8184F81430AAEDB941509072242473B9984B80C605552B2F38DF7D20BDDA3E9BC795D2467D2D7636452AB4A8FC1A555558EEB2E907204681B53D3463AA838DAA691F22A2272B1A652E2328D036A7A68FDAF0F2D8C6F9E61CDFC55FB77B6E43E92EDB890AA1CE91104EE0613E053B78274229A28A467314574AA24A94D407268A4523009DD4BDA366A96651AA56A12A62A8DD9DD8A646986649CA7BB335EE5095E68D32B4AD492A84D39DC46EF148A5294A45619CE2A7E67682CAA6446AA15339B9F0F978EF5AE56B5A2946432DABB384A725F78385F7921782FD256B4E5C6F41B36A2B0954256B9FC202E1CC30D1A7BF3150C4B94E522E1319CBF48D5E81071BA04123E455713E0607E1F7F1E57491AFECBF5319F4B54F3396E76153B59D08D5A81071BA04123E455713958C3C302AAA9E672DCEC2476B3A10C2A838DD02091F22A2272B181CB88FBDA06532CD2A48777282F76AFD3E1AB60E363E47D1577F79F8D2B54C3C4FE83E65E45CDFC573B636DFB4626532CD524BF6B7C2F76ADD51ECA7E6C6262BCF552ABF6B7CF76CEDBAA718994CB34AAAFDADF0BDDADDEA94693838F8F91F5D5DFDE7E3CB297C03F8AA40A9EB11FFE838A0009112469A736493504C4C39653B14A7394F8CA70B8802C549319A694C3993414BDF7E4090CA5212E6B95EE9D624CA03322DD4896107A616DD9CC1DB7198F4C02929A6B23309837219719CA729FE9394B8452593ACAE5123ABA6911D42A5BA92130A4524729094CAD149564926A27906DA6F12739F2818DCB723DABFC28D0315E7AA9243BB9476B3B7E98FBF8D032996695243BB9417BB57E98CBC579EAA490EEEE1EED9DDEE99C7B57F851ED5FE146818AF3D54921DDCA3B59DBF4C6939D919191F5D2DCDD6231315E7A9525FB5BE76B3B6EA9FBDA4D02EDB94082A7CEAA047C4CE35FDA9EA633EAAA9E6711AEFAA76B3A71A4502EDB8A9AA7CEAA0473B999CF8943092EDB95E8247C8A8904EE0672E231814B4ACBD96E76120BDDA08D268176DCA04153E755023E2671ABD7AEDB899A47C8AAE413B819CB88C6052D53CCE235DF48ED674E33EAA87271EA95A547E0D2AA92216450483903C1CDD3553569D748E432FF008AD23DF9CBFF00485E25FA47F78D8FB357A9A79C84B7484E49C8C933039184E45FAEE6F42889A339DA769F298C8A5C65FCCA10E2E20B564D6DF9CA529EE8260B29729CE579A96943CA22E86FCE76DF4C84A5C65FC4E51AFED3F531E69491814B54F32E35DF48ED674FA6D1A06CBF4D1E6949E390AA0E36A82A1CE9109CAC6984F814AF1FBA6662318DF3CF37B994BF6ED7DF8CFAAA1C9C7AA56951F834AAA4885914120E40F7BCAE93C25415554F32DB9D848ED6743AAD18EAA0E36A9A47C8A889CAC6994B88CA185576DCA0A84839121239DCCC25C063F6BC3CB631BE799737F117E8BDB721F4976DC48550E748882770309F029DA356A05DB728174839125C8F899F8E75354EFA412B1CEE8A8768DEE09998EE914A5FA6F6EDC653FE244504129FFF009049CE53FF00E611B2F475273B5CCE9D496EC8F965720984E7C6F38A619260676E2421329CC653FED79DBFBC4E9C4159A69269260332971294B74A728FED3BCE769FFED394E3CAE92356A05DB728174839125C8F899F86915EBB6E260A873A48104EE0613E051A457A0E3699AA7CEAA0212B001CF8946055553CCB6E76123B59D0EA8D036A7A68D26BD071BAF4153E755010E803F0D26BD76DCAF5D50E749020E830F7BCB29635FCA659A5557ED6285EED5BAA3EC235FC579EAA557ED629DACEDBAA313299669555FB5BE17BB56EA8FD8F4ED3FEE5D733BFD2CD4695AA61E27F41F32F22E6FE2B9DB95B7EDE1AB60E363B1F415DFDE7E3DABFC28A5FFC432A951BFF0009952848E7FE37E51B4692A13552FF005B4C061A5E2A1153713DE3101BDA7FC910CA195A29D05260A6E19015AF3FE084A509D31CE729FF007E33B5FF00EB0B4AC7507C39A7C25FDA5FC4BF494A5294A51A06532CD2A48777282F76AFD31AFE532CD2AABF6B142F76ADD5E1E59491A062BCF52AA877728ED676FD31A4E7646431F5D2DCDD6231315E7A9525FB5BE76B3BBBD538F653F363D94FCD8F653F37DED5EBD071B4C120E4497109580025C063CAEAE33EAA95979B77B0A85EED0755E35FDA9EA633EAABB1B22A92A55BE0D52AAA2774575439C23029695979B73B0905EED0755E348A05DB715354F9D5408E773339F12F0FB08D5ABD071BAF5D20E449710E8008D5ABD76DCAF4123E455720E833F0D5EB9071BAF5D20E449610958023029A85FC7A55AA91F8D4C9A6A85964122E0713AFA9AA799C46BBCA1DACE9C799D5786052D53CCE235DF48ED674E340D97E9A3CAEAE30296A9E6711AEFA476B3A719F5543938F54AD2A3F069554910B228241C811A06CBF4D1814B4ACBD96EF6120BDDA08D5EBD071B4C120E4497109580025C06184976DCAF4123E4544827703397118C0A5A565ECB73B0905EED0469340BB6E5020A9F3AA811F133F7B48AF5DB71305439D24082770309F028F34A48FBFF0C75576DC54120E44848E7733097019DA3F6BC3CB631BE799737F157EDDEDB9181555D8D9154AD523F1A9525513BA2BA47C87E19F4B4ACBD88DF7D50BDDA387D25DB71215439D22209DC0C27C0A76F0FBF8F2BA48C0AAA1C9C7AA4AA96F8D54924885914153E738FDD33311FC9F9179BDCCA43B96BEFC681B53D3467D2D7636452AB4A8FC1A555558EEB2E9072047ED78796C637CEB2E6FE2AFDBBDB721F4976DC48550E748882770309F029DA31D55DB71504839121239DCCC25C067689D05552B2F38DF7D20BDDA3E9BC795D24605550E4E3D52554B7C6AA492442C8A0A9F39C6BDB33D4C6055576364552B548FC6A549544EE8AE91F21F8F95D27BDA06532CD2A48777282F76AFD31AFE532CD524BF6B142F76ADD51AB60E363E47D1577F79F8F6AFF0A355D530F13FAEF96651737F15BEE4ADBF78FD8F4ED3FEE5D733BFD2CD465E532CD2A48777702F76B7BA65E3E59491A062BCF5524877728ED676FD31AAE0E363E47D1577F79F8D2B54C3C4FE83E65E45CDFC573B72B6FDA340C579EA5550EEE51DACEDFA63EC2340CA659AA550EEE505EED5FA631329966A925FB5BE17BB56EA8D27071F1F23EBABBFBCFC79652C6BF94CB35492FDAC50BDDAB7547DFC795D2465E2BCF52AA877770ED6777BA671ED5FE14695AA61E27F41F32F22E6FE2B9DB95B7EDE3E594BEF69340BB6E5020A9F3AA811F13387D541C6E82A150E74884E563009F028CFAAAA799C46FBEA9DACE9C6AD5E838DD7AE907224B887400467D557636455254AB7C1AA55544EE8AEA873847ED78796FE4FC8B2E6FE2A1DCBDA35FDA9EA6349A041C6E8175439D2404F81846052D53CCE237DF48ED674E1849071B48520E4484425604C25C06578C855071B54150E74884E5634C27C0A578D7F6A7A98C85576DC54D53E75488E77350A7C4A76F0CFAAA565E6DDEC2A17BB41D578C0A5AEC6C8A54AA96F8D5492AB1DD65D53E7386125DB72BD048F9151209DC0CE5C46340D97E9A33EAA87271EA95A547E0D2AA9221645048390235FDA9EA633EAAA9E65C6BBEA9DACE9F4C795D278E9140BB6E2A6A9F3AA811CEE6673E251A06CBF4D1A06CBF4D19F5543938F54AD2A3F069554910B228241C81EF6915EBB6E260A873A48104EE0613E051A06D4F4D1A06D4F4D1A06D4F4D1A06D4F4D181554ACBCE35DF482F768FA6F1AB5020E37408247C8AAE272B184605550E4E3D52554B7C6AA492442C8A0A9F39C67D2D53CCE5B9D854ED6742356A041C6E81048F9155C4E56308F2BAB8FB08F34AB87D241C6EBD054F9D521095800E7C4A3F74CCC47F27E45F6F73290EE5AFBF18EAA0E36A9A47C8A889CAC6994B88CA35FD97EA633E96A9E672DCEC2A76B3A11AB5020E37408247C8AAE272B1843E920E375E82A7CEA9084AC0073E251AFECBF530FA4BB6E242A873A44413B8184F814ED18EAAEDB8A8241C89091CEE6612E033B44E82AA95979C6FBE905EED1F4DE3CAE9231D55DB71504839121239DCCC25C067689D05552B2F6237DF482F768FDFF002CA58F653F363D94FCD8F653F36340C579EAA490EEE51DACEDFA63EFFC34AD2F332FFA1F997966F7329CED947B57F851ED5FE146818AF3D4AAA1DDCA3B59DBF4C7D84799D5F86939D9190C7D74B737588C4C579EAA557ED6F9EED9DB754E3DABFC28F6AFF0A3DABFC28CBC579EAA490EEEE1DACEEF74CE355CEC9C8C8FA096E6EB11E594918994CB35492FDADF0DEBB56EA94695838D8F91F5D5DFDE7E3CB2923CCE9634ACEC9C8C8FAC96E6EB11ECA7E6FBDE57490C24BB6E57A091F22A2413B819CB88C681B2FD34681B2FD3479A5247DFF86052D0E4E3D2AB548FC6A5492582CB2091F21C67D5553CCE235DF54ED674FC349A041C6E8175439D2404F81847D8469140BB6E2A6A9F3AA811CEE6673E251A06CBF4D1A06CBF4D1A06CBF4D1AFED4F531AFED4F530FAABB6E5020A9F3AA4473B999CF8946052D0E4E3D2AB548FC6A5492582CB2091F21C67D5553CCB8D77D53B59D3E9B4795D24681B2FD34681B2FD3430920E3690A41C890884AC0984B80CAF1814B43938F4AAD523F1A9524960B2C8247C871FBA6662318DF3CF37B996BF6ED7DF861241C6EBEA120E448442560009701F7BCAE923CD293C7CD2923EFE356A041C6E81048F9155C4E56308F34A4F0D26BD76DCAF5D50E749020E83086155DB7282A120E44848E77330970189D05552B2EB8DF7D20BDDA3E9BC6915EBB6E260A873A48104EE0613E051AB502EDB940BA41C892E47C4CE3EC3C185576DCA0A84839121239DCCC25C063F6BC3CB631BE799737F117EDDEDB90FA4BB6E57D42A1CE91104EE0613E051E575712A0AAAA7996DCEC2476B3A9F55A31D541C6D5348F915113958D329711946AD40BB6E502E907224B91F1338CFA5A565EC46FBEA85EED1C6055576364552B548FC6A549544EE8AE91F21C79A5244EBE9695979C6FBEA85EED29D3787D25DB71215439D22209DC0C27C0A76F7BCAE9231329966A925FB5BE1BD76ADD528F653F363D94FCD8F33A58FBFF0D7F29966A925FB58A17BB56EAF0D0329966A9543BB9417BB57E98C4CA659A5557ED6F85EED6EF54A34AC1C6C7C8FAEAEFEF3F1E59491ED5FE146AB9D9390C7D04B73758F0D0315E7AA9243BB9476B3B7E98FBFF0F2BAB8FB08D7F15E7AA955FB58A76B3B6EAF1D032996695243BB9417BB57E98D5754C3C4FEBFE59945CDFC56FB92B6FDE349C1C7C7C8FACAEFEF3F1A06532CD2A48777282F76AFD3EF795D24681B2FD34681B2FD34681B2FD3469140838DAA0A873A4809CAC6013E051F7FEE69140BB6E2A6A9F3AA811CEE6673E250C24BB6E24691F22A2413B819CB88CED1A06CCF4D19F5543938F54AD2A3F069554910B228241C810FAA838DD0542A1CE9109CAC6013E051AFED4F531AFED4F53190AA0E36A82A1CE9109CAC6984F814AF13AFAAAA79971BEFAA76B3A7D368D268176DCA04153E755023E2671E575719F554ACBCDB9D8542F7683AAF0FAABB6E5020A9F3AA4473B999CF894681B2FD346052D2B2F65B9D8482F7682349A05DB7281054F9D5408F899C6AF5EBB6E26691F22AB904EE0672E231814B54F3388D77D23B59D38D0365FA6FF99FFFC4002A11000103030205040203000000000000000100020304051106211213314051101422413280162442FFDA0008010201013F00FD9A073E83708641EFA59046325433897A2924118C950CC25E9DEEDD15DEB22A6A77F1EE55B756B2DF172A66F555FAA5B5748EE546412B4C81EC83B8B2E3E9F8F74767A75496CE42A3823ADAA2F937C7D2BD5AA8DF3B1EE6630BD8521A511F00030AD956EB55D1F0039612B9E00C94C7878EE88CABEC8200C7F8475355D1D710C3B29EF02BA2CCB2E0A9357CD08E40391E54B7685E1B237F2F2BDC3EB18C847FA54C0B58223F5DD67016A767F4DEEF0A42E3212A9C1126241B2ABB232439A5F1F6A4824A69431EAC25B253C2E3F41746E3BAE87215C6DCDB93381C765268280E785E9FA065CE5922FE3B5B147CB90712A8D2570E6F1C4CC0565A534B42D63BAAC671DD0F8EC5608DC2F92C1F2B87EC84785FB2D9BF00BA7EDDFF00FFC400251100010401040104030000000000000000010002030411051221403210224180144261FFDA0008010301013F00FB76D6A73709A139B8EEF2AA40F95E24F85269DF907785069E18FDC5CAFEDDFC0F407B4D4C8B729849523DA154B53161084AF7BF20AB359F356DC5A830A23B43C9513FAAB518B8DC151D335FC555A518707CA15FB94DF4042C1CA6E222F47DDDAF95A77364350FE27709B69CDF6BC26B848DE15AE1CF4381DAC65413188E426EB2F09BAD1F9085F8F3951EA9106E15B977BF211E5BDA6AC64AC05C2E10217921F6EFFFD9, '1', '2022-03-16 22:22:30', '1', '2022-03-16 22:22:30', b'0'); +INSERT INTO `infra_file_content` VALUES (7, 4, '53659126d51042fab67d070aa294efce.jpg', 0xFFD8FFE000104A46494600010100000100010000FFDB0043000302020302020303030304030304050805050404050A070706080C0A0C0C0B0A0B0B0D0E12100D0E110E0B0B1016101113141515150C0F171816141812141514FFDB00430103040405040509050509140D0B0D1414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414FFC20011080102010203011100021101031101FFC4001E00000301010101010101010000000000000008090701060A02040503FFC4001C0101000203010101000000000000000000000105020406070308FFDA000C03010002100310000000AA6000000000000000000000000000000000070000000000E81C3A70E8001C03A0700000E8001C2401808000FF000BF9808017F8E12007F8C00A0200040102BE0120C0000BFC000708045D03033802AA794029412BC69C0DFC9B206005261020356037F37E1551D33CB1AA1160BFC00070804553201017F4554D50A002A86AA4582FE0800D51164AA66503FE74CA48B22A85FD1551561552A98AB17F8000E1008AA640202FE8AA8AB00FF0BF98097F490007AB12D2D2920C0DF8F564AC2FE8AA8AB0AA954C558BFC00070804553003013CA0AA9AB1540F2A45A3CA95409B27953CB173C55474CF2C4593CB173C4047F80E9208FA27000384FF0032C387406A0CA8D58554D50D5895A6563526A66A82B06546565A61553541AA1013A0700AAA0000004FE37F03002809E449B22AA5D0303384023572E79F3B250030003CA973C6089FE2026FC3002025FE0003F22FE7CEC9AB9E58B9E6A6795030037F18227F9C26C8E913687E8A504303D48FE9BF916874874C6089FC4863E9E8000E1008CAC7F440C7F4E08195407FC4006A8404E9C1A932A1AA22D1AA0D39AA8AB8FE99492B8BFC708045FE000384023033D494A04A8CB0CA0FA261812401E5C7F8DF095A57F2400EA88115E885E3542585A530037F182384022FF0001C20115F0C00A02791303384023572A808794FCF0666B0E8F062D2B32107EC9B23A66A679724015FCC00D4C9B47D3D0001C201169CCA86B0CA0404E92ACAA62AC5F13FA4FF0033E3965D84EBBF58CCFE4D5B671FF2C44C8B03566563FA2AC6AA5501023A5540003F22FE4D93531D303003001582E79164BE50FEA463B41BD9EF975F7FD2DB5FD2F595FBE75D57FC0991F2754009583545262178D51498F5C0007E45FC8B45CF22C9AB0FF1BE1810AA9368A8312CC516DE535BBDEBA973F7DD6D7647E5FD2B29EC9C8FA0FBC4B2CB19AE55315601FE17F26B9400C00FA27000384FF22C0D58D48FE8808FF1014B4A4AD1C786F9C8DB79BF1DEDBC6DD53FBFACDCF1FF001F41FF0027D57C5D84EC6A13EDAC72C3533541AA101032C32A32B3E944000E1200754408C00B4A6006003FC60007874379C6DAFE7F2EFA09F58C5FACAFD4F98DE553F4BF11437B2A4C1A41164D4CAA640203E9E89B26A6501000384022FF001941EA480C3A44DA1FA2BF9D10F1C6A5D9FF002FCEEE7F92B36330DEC3D671B65FC5EE9C96CBD0E9C1437F2BF8BF01EA8CB0C0490057F2948001C2010FE9961958AB0FE0155055055CFF00B4CB59187FA6CB4BC59A4C69713FEB44FEFE9094C01FF2018FE9AA116C7F4E1D2AA0001F917F241969CCACCA495E7AA3E89C9567AB024095EC5D0FEE1EE1A610F10601FE382043FA6FE06006005800003F22FE7961562AA1E449B26A650127F1218F225531561FD32C1A910235326D1F49879522C8FE8810FE9404E1008BFC000709FE2B065635007040CFA503840335632B1A835332B32C2A899512B4D58D50554CB07F0E954C08045FE0003848015837F37F3D41960D48951BF9218FA4C30337C3D719392BCA4C4831FD35635422C0AA9D1803D480FE9404000FC8BF9E58000D509AC6FE745FCC046A46A8F522585272178FF0BF8FF120CC0CFA4C3CA9164BA048527F9F55000070804354006566A85532561C035432B1AA1AA1543551023803FC6544AD2D399512B4AA64AD1A82AA8001C20115F090605531562AA115C09FE5283D58969EA400AA6749046FE55022C801818E91A98E98C10001C201154C80405FD1553CA0EA9008AFE2025CF3CA8809EAC9583023A43A64832D31EA895A30070D588B27963E9E8000E1008B4E20203542AA55422C13FCA002AC5A52568D48AB8AA1400D50AA64021AA32B2D39C10032C1A732B2808001C2010001E5874CAA87CAB9D18032C37C1FD26C95F4E1BE9E549AE6025A62181EA47F85FC7F8C00408BFC000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007FFC4004210000003060209020503030203090000000607080004051415160917010203111318195785253810202147671226272829464175223739303142505160616383FFDA0008010100011200FF00C8F7B6F6DEDBDB7B6F6DEDBDB7B6FF008EFF00868D3A34FCBBDBF568F8FEAD0DBDB7B6F6DFF32F05E27A12CABC740D070E28A1B86C8CAB97545539DCD6EA8AA73B9ADD5154E7735BAA2A9CEE6B614EA84CE5279A398C26B8A8B4B9065E0BC4F4259578E81A0E1C514370D919572EA8AA73B9ADD5154E7735BAA2A9CEE6FC5782F13D09655E3A0683871450DC364655C97919E27265278E4640F89D18470C91947DC2995099CA4B3433184D715169721F2F545539DCD6EA88A73B98C830CF139CC93C0E321844EB22389CF4DBEAF233C4E4CA4F1C8C81F13A308E192328FBD5114E7731BAA2A9CEE6B7545539DCD6EA8AA73B9ADD5154E7737E6C51BDF599BE318D0344324C0122631194528E1C86F0A69F7AA2263EE5B75444C7DCC6C51BD8999BE31B032FBD9E1197820E3D0E955E3A190380F5A0DC4A4655F50720E3D09655E06190C40F450DC367A69F4F154658A6EA2E6309ADDAD71E41950A5D335671E82638C9C0CDE05C09256951A542A88B259C450989C2704D781902495A54170A84BC6726CCD1CC70CDB95AA5C8319EBCC8B2607513070C4714611C378534E49752E99A8C4F40C9C671866CF2E03735558D62ACA80B152795F97026B8A8B549F62BD061E8738121A310681EB21C8971655F550AA22C967114262709C135E064092569505E974A73B66DD2E94E76CD92EA5D335189E81938CE30CD9E5C06E6AAB1AC55D50962A4F2BF2E44D71516A93EC839789164B250030346238A288E1B3D34E58A37B13337C636065F7B3C2319EBCC8B2607513070C4714611C378534E5D51131F73188D54458A92ADE5C09AE2A2F027DB146F7D666F8CF9B146F7D666F8C6C51BD8A19BE33E38A37B13337C636067F7B3C232A0C55F96C3D04C5C6575C74595F52FA32E4437CE7593B86D675B53AC9708DE5B48B0D1735AB8A8B35EA785CFBEA2CFC9B6ED1B99506151CC91E82631B346DCAD4B7A62A223799222C4C5CD6ADDAD4AFA9AE4437C98593BC6B78DCB3AD85CFB142CFC9B25DC29F96C3D03463668DC74599F4CD1BB737D195111BCC9116262E6B56ED6A57D4D72A1BE4C2C9DE36BC6E59DF8628DEC4CCDF18D819FDECF08D8A2FBEA337C67C3033FBD9E11B146F7D666F8CF9B146F7D666F8C6C51BD8999BE33E38A37B13337C636067F7B3C23628DEFACCDF18DD5154E7735B0A754267293CD1CC6135C545A5C832F05E27A12CABC740D070E28A1B86C8CAB96171EFACB3F26DFF7EAB2F05E27A12CABC740D070E28A1B86C8CAB920E5E27A1D2ABC0C0D188E2B41B894F4D396397F64FCDB15EBCCF4260090D0703471460E4378B2AE4BC8CF1393293C723207C4E8C238648CA3EF544539DCC6EA8AA73B9AC839789E874AAF030346238AD06E253D34E58E67D93F37F0C51BD8999BE31B033FBD9E11B146F7D666F8CF86067F7B3C23628DEFACCDF19F3628DEFACCDF18DD51131F731BAA2263EE6375444C7DCC65E0BC48B3A5280E81A0E1C5684712919572C0CFEF67846C51BDF599BE3192EA5D335189E81938CE30CD9E5C06E6AAB1A23551962A4AB797226B8A8BC09F633D799164C0EA260E188E28C2386F0A69C8CF4187A13004898C46407A30721BC29A7D2352D99CA46B797219B8A8BC09F64BAA88B2462450689C38C4D679901A9AAAC14CF4187A13004898C46407A30721BC29A7D2392E19CA42B797219B868BC19F6340AE131303B89838650CA308E1BC29A72C51BD8999BE31B032FBD9E118CF5E6459303A898386238A308E1BC29A72C51BD8999BE3188D4BA66A91ADE5C866E2A2F027D8D02B84C4C0EE260E194328C2386F0A69CB146F62666F8C6C29D509629B33473184D6ED6A9720DD51131F731BAA2263EE6375444C9DCB65E467860E655E391903E27590E44A4651F7E554185473267A098C6CD1B72B52BE9BD0CBF3637433FCD8DD0CBF3637432FCD8C8650D72617B7EF5BC6E592654185473267A098C6CD1B72B52BE9B8A27B14337C636067F7B7C232A0C29F9923D04C63668DB95A96F4CC51BD8A19BE3190D2E4E4C2F6DE0ABC2E59265447973247A098C6A2DBD5A95F4C5438AC732645898B9CAEB72B52BEA781A7DEDF08CA830A8E64CF41318D9A36E56A5BD355062AFCC9916262E72BADCAD4AFA92195C9C985EDFB2AF0B96459511E5CC89E82631A8B6ED6A57D33145F62866F8C6C0CFEF6F84654185473267A098C6CD1B72B52DE9AA888DE6488B131735AB76B52BEA5D0D3F3637432FCD8DD0CFF0036B7434FCD8DD0CBF36FFD862B0A84CE4DB96197226B76B5549F64186789CE649E07190C2275911C4E7A6DF57919E27265278E4640F89D18470C91947DC2995099CA4B3433184D715169721F0340AD0C9CE0489838650BAC07225C29A725CBA7A6D595CBA7F1DDE73D5D6EA8AA73B9AC6815A1939C0913070CA17580E44B8534E5D2ED31F6D1BA5DA63ED9FC08D54466A6DADE5C89ADDAD7027D90619E273992781C643089D6447139E9B7D6C2992F162A4F34731833715169720CBC8AF0C132ABC720D07C328C1C8648CA3919EBCCF439C0913070C871590E44B8534E446AA33393756F2E44D6ED6B833EC830CF139CC93C0E321844EB22389CF4DBEB62B0A88CE4D995F97226B76B5549F6EA8AA73B9AC839789E874AAF030346238AD06E253D34E58ABAA133936657E5C89ADDAD5527DBAA2A9CEE6FCBBF768D3A74FF00A319EBCC8B2607513070C4714611C378534E4C46A5D33548D6F2E43371517813EC6815C262607713070CA194611C378534E5D51131F73188D54858A91ADE5C89AE2A2F027D8CF5E6459303A898386238A308E1BC29A725E45789CE649E390683E195911C4E4651CB0A74BE66A6CCD1CC60CDBB5AA5C86933D799164C0EA260E188E28C2386F0A69C9B1574BA67292CAFCB90CDC545AA4FB25D54459231228344E1C626B3CC80D4D5560A830CF0C132ABC0E321844E8C1C864F4DBEAE5FEE476572E7FC8965CF5798D02B84C4C0EE260E194328C2386F0A69C90720E3D09655E06190C40F450DC367A69F4F15445926DA2E6309ADDAD71E4197919E18399578E4640F89D64391291947DE974A73B66D853A5E33935E68E63866DCAD52E418CF5E6459303A898386238A308E1BC29A7233D061E84C01226311901E8C1C86F0A69F7034FBDBE118CF5E6459303A898386238A308E1BC29A726C5612F19CA4B2C32E43371516A93EC6815C262607713070CA194611C378534E5F2E28BEFA8CDF18C9708DE648F40D1735AB76B535EA5F4C183F31664B2A23CB9923D04C63516DDAD4AFA6F432FCD8DFF45FFCC5992CA88F2E648F41318D45B76B32BE9897B157E64CF40D17395D6E56A67D4F768FD2CA830A8E648F41318D9A36E56A5BD31511E5CB69162631A8B7151657D33AE57E136E46BA927F5197B65D5E9FE35D0CBF36B21A435C98DEDFBDAF1B96499506151CC99E82631B346DCAD4AFA6AA23CB96D22C4C63516E2A2CAFA6AE35CBCE7D93FB2ACEB6A7592F614FCC99161A31B346DDAD4CFA625EC55F9933D0345C6575B95A9AF525CAB93931B27F655E372CEB7233D493FA8CBDB2EEF4FF001A54446F32245898B9AD5BD5A95F5343286B930BDBF7ADE172C8B628BEFA8CDF19F0DDA1B145F7D66778CF9B146F7D666F8C62B8D1131303B860C41B14A308E1BC5957D3C55199AA468B98C26B8A8BC790641C8388B3A528018643103D6847129E9A7DEA8AA73B9AC792A333949D1731C4D71D178F21F02BD061164C0EA1A310701E8C2386F1655F7768D1ABB99782F13D09655E3A0683871450DC364655C92EAA2335671E819270E3135E05C0926AAB05E97698FB68C5715A19260090D0703617470E4378B2AE4839789E874AAF030346238AD06E253D34E5BBE9B99782F13D09655E3A0683871450DC364655CB146F62666F8C6C2992F162A4B34331833715169720C5715A19260090D0703617470E4378B2AE585C7BEB2CFC9B6397F64FCDB15EBCCF4260090D0703471460E4378B2AE4BC8CF1393293C723207C4E8C238648CA3EE14EA80CD5279A398C26B8A8B4B90D067A0C22CE71D44C623103D644712E14D3EFC3146F7D666F8CF9B146F7D666F8C65E45789CE649E390683E195911C4E4651CB0A64BC6726DCD0CC60CDBB5AA5C87C0D0344324C0122631194528E1C86F0A69F7AA2263EE5B75444C7DCCF8118974CE5255BCB80CDC545E04FB25D54459231228344E1C626B3CC80D4D5560B07C2C14ABFC4DD9D36E0476856C36DAFF00A35DF50C22F7446EE22CD4BC35C58FE21929C651D860061479CE2330DFC711A833E4625FF5B8F44F05F73442DD13C19DCE10B270275C13992E1D2EDC222F91974834C70DFB6D137777D96BED36BA769B3D9EAE8DFADAF8A82663254D6C8ADD72CC3B73EA422A73BA52EAA12C91891219270E31359E6386A6AAB05418678609955E07190C227460E4327A6DF572E8EA496572E7FC8965CF57992EAA22C9189141A270E31359E6406A6AAB055E0BC48B3A5280E81A0E1C5684712919572DCC839789164B250030346238A288E1B3D34E49752E99A8C4F40C9C671866CF2E03735558D2E5FEE4B6572E7FC8965CF5798D02B84C4C0EE260E194328C2386F0A69CBE5C517DF519BE319511E5CB71162631A8B7151657D310D2E4E73AF6FD95675B523F054446F32445098B9AD5BD5A95F53E867F9B5BA19FE6DF86067F7B3C23628BEFA8CDF18CFF00FAB5DD769A9A9AFA767ADADA75767A35F63B2D4D86CF46CF67ABA353535746ED1AA288FBB85035158D3D7EA9587BAED5EF6AC994EF8A1DA1A103C4760BA81E8DC1E2FB686BCB83E3EEC21EE9B77979DAEA6C361B1D4D3B4DA6D4A050702394482F83C19D5FB61B40EED1DF46B6DB733A3B6AC39E1F75767A74E8D8EB69D5DB68D9AA0C2A39933CC4C63668DB95A95F4CFAB21A5C9C98DEDBC1578DCB24CA88F2E648F41318D45B7AB52BE99D0CBF3632E4435C98D95FBD6F1B967592F614FCC91161A31B346DCAD4D7A62A223799222C4C5CD6ADEAD4AFA9FF00D187F31664B7235D497FA8DBDB2EEF4FF1AF9376FD1A7469633D06116738EA26311881EB2238970A69F52EAA2335671E819270E3135E05C0926AAB055CBFDB6ACAE5CFF8EAF49EAF320C33C4E7324F038C86113AC88E273D36FABC8CF1393293C723207C4E8C238648CA3EE14EA84CE5259A398E26B8A8B4B9065E0BC4F4259578E81A0E1C514370D91957241857860E655E07068C219590E44E7A6DC88D4BA5926DADE5C866DDAD7027DB146F7D666F8C67AD3F4FFF004D9B6FFA31FE3672D806A260972D8ED622258FC35E1DF62EB037B1D02A3A237B0DE80EEDDDE2FB7D8EDD850361D98908B523A1C82B8439EF69B3A8C4137C2E16F8231D8ADDF6BB2D488C45E7610FDBB96E67AFA6D1E74FFF0056CD9772F23D09655A390703471460DC364655CBA5DA63ED9B74BB4C7DB36E97698FB66DD5154E773590CE9EA4B7B7317FC8965C8D098AE2B4324C0121A0E06C2E8E1C86F1655CBAA2A9CEE6B219D3D496F6E62FF912CB91A1315C5686498024341C0D85D1C390DE2CAB97C9BF768D3A74FF00A319EBCC8B2607513070C4714611C378534E4830CF0C132ABC0E321844E8C1C864F4DBE91AA88B25235BCB9135C545E04FB628DEFACCDF18C9752E99A8C4F40C9C671866CF2E03735558D75444C7DCB62B8D10C9CE04868C41B14AC07225C5957DEA8898FB98CB9B4F524B2B973FE44B2E7ABAC6815C262607713070CA194611C378534E58297D0AF33BFDE9C1A04788E824696C204614B3A3BBDED3F4E9D905841B1354C7797F7A803F8D611187E717E7A763FE1AE645449E2C6D9EA43352201C88BF6D2181C2A41B1F7D154076C03DBC2F650FD83B6BBB8DE16338BC38BE0D9A0E8F1BE3908D9687989B0C94582804F102768ABDBF6BBCC69CE7DCB640B1F408CD0E6A08434FD5283BDEA6ED8BCAED41A7A1D2AB872310681EB21B8948CABEB6067F7B3C23628DEFACCDF18DD2E94E76CDB0A74BC6726CCD1CC60CDBB5AA5C832F041C7A1D2ABC74320701EB41B8948CABEB614CA84B14D99A398C26B76B54B9065E467860E655E391903E27590E44A4651F7E554185473247A098C6CD1B72B52DE99F56434B97930BDFF64DE372C937235D493FA8DBDB2EEF4FF1A54446F32245898B9AD5BD5A95F53E86BF9B592E11BCB69161A2E6B5715166BD492E11BCC91E81A2E6B56ED6A6BD4D0D21BE4C2F6FDED78DCB24D8A2FBEB337C6360A1FF002C4CEFF7A7065B503DABFC6A0FA8EBB5D7D8BEC503F157275DB13C58D0800198840C42FB078BE873D9ED767148AC3A3FB533A18268A06844328C425E9F364F5108480A3E25026CE1B121088A030578D9EBEF098049D8EC2843A1DDFB61AAED06D4D8EBBB6D98322E108C2000009BD43363B77A09C43650D866C36F1B8A244493128A4621CEF1E7D0942F8921D72BF09B2A0C2A396C22C4C63668DC74595F4DC0CFEF6F84654185473267A098C6CD1B72B52BE9AA88F2E5B48B1318D45B8A8B2BE9BD733F09B75CDFC24CA830A7E5B08B1318D9A371D1657D310D21BE73AF6FDED675B524CA888DE5B4F4131735AB8A8B2BEA7F2AF05E27A12CABC740D070E28A1B86C8CAB974BB4C7DB36C55D2F1629B32BF2E4336ED6AA93EC57AF33D098024341C0D1C518390DE2CAB92F233C4E4CA4F1C8C81F13A308E192328FB853AA133949668E6389AE2A2D2E419782F13D09655E3A0683871450DC364655C8AF418459303A868C41C07A308E1BC5957DC5595099C9B32BF2E04D6E56AA93EC9752E964B388A0D1C671866F03204935558D609FF00F2C4CDFF007B70654AE9BF685AC4765AFB39A7314EC7535765A9A346AE8DDA3468D1A3FF004DDF4D3F4DFF00FC010F37DD018D47D1A429EF61AFADB6D7D4D47D0B8A21A31826C22D09DAEBEDDC36FBF87B40E47A22FCAD42C1C0FB83DED76F05143CEDA29AE62806046784A361513B954E031376D9EC1F1D3A5DA64EDA3628DEC4CCDF18C462A23393656F2E04D6ED6B813EDD5154E7735B146F62666F8CF89A056864E70244C1C3285D603912E14D392E5D3D36ECAE5CFF008EAF49EAF325D4BA592CE22834719C619BC0C8124D55635F2E28DEFACCDF19F03C5511649BA8B98C25B76B5C79062B8D10C9CE04868C41B14AC07225C5957D418678609955E07190C227460E4327A6DF572FF723B2B973FE44B2E7ABCC6815C262607713070CA194611C378534E4839071E84B2AF030C86207A286E1B3D34FBA3E1861A76311368087AE263076DCDBBFC49D1EDDB40AC030B183EC31F1FF0067ADB57886EB6D35DD74EB95FB2FAF0DF75F57469FF4DA15EF3BFF00E07ED9E9D568DA628BBB461F63213106D431117DD7D3B47BD9B881044E90F77D47ED4D9BDBE6AECF5746DB6A98837B370DA98D16DBB8EA6C226F82678D8ED36BB6DAEA6D36EFBABABADA35B4EA6AECF5759B143F7D065F8C641C838F425957818643103D14370D9E9A7DDFA3F4EF633D799164C0EA260E188E28C2386F0A69C8AF5E6459CE3A868381C38AC88E25C595723C5521629BA8B98C26B76B5C7906EA8898FB98CBC17891674A501D0341C38AD08E25232AE5B99072F122C964A006068C4714511C367A69CBE5C517DF519BE3192F62AFCC99E81A2E32BADCAD4D7A96397F64FCDB25EC56396C22C345CE575C7459AF534B846F3247A068B9AD5BB5A9AF53FA60C3F98B325B91AEA4BFD465ED9777A7F8D6E65CAB97930B2B4595785CB3ADD737F09B4331BB707B89EC3651727B6EEB0AD7D3B9EB6900C4353DC51C364F0EE6B383B6CB5F46FE07500203BB61E6191D4110006DEE3E2114384260EE9FA38EF9CFF901DDB0F3034E9088FC38E91E0F89DC22D077BFD7C07CD617C335F67AFABB18BBBEA6BEB7FE2856DF51EF4EAEC1CF5769ACEDFAB89B67A53F854732479894C6CD1B72B32BE9A97B157E64CF40D17195D6E56A6BD4B7E8D1A37696C513DF5999E3192F614FCB61E81A31B346E3A2CCFA62E5435CE7595FBDACEB6A7595111BCB69E8262E6B57151657D4FA197E6C6E869F9B1BA197E6CF9776FD1A7469633D06116738EA26311881EB2238970A69F70B8F7D659F9363C52E162A4A8B98E19B8A8BC7906E97698FB66CA852E9648C48A131C64E066CF320352B4A8D1E2A90CE52345CC6135C545E3C8315EBCCF4260090D0703471460E4378B2AE4D8E67D93F36C8390711674A50030C86207AD08E253D34FABC1071164B2501D0C81C07A288E1B232AFBFAB4B20F416461D49440E3318826B024894F4D3E25650C602C53EC30501BB1FBACBB11CD5520F8AAA5D2C935E57E5C86A815AAA4FB618900717E43A5B6DB6DB1DFAFAF526D40C43B534EFD0EFA37B62A2A60CA4CB95FA0B5125B75AAA4FB7545539DCD6C2E3DF5967E4DB1575446726CCAFCB9135BB5AAA4FB25D4BA592CE22834719C619BC0C8124D55635D5154E7735B0A754267293CD1CC7135C745A5C8319E8308B39C7513188C40F5911C4B8534FABC8CF1393293C723207C4E8C238648CA3EE14EA84CE5259A398E26B8A8B4B9065E0BC4F4259578E81A0E1C514370D919572F937EED1A74E9FF4633D799164C0EA260E188E28C2386F0A69CB146F62666F8C6C0CBEF6784F81A068864980244C62328A51C390DE14D3EAE5D1D492CAE5CFF916CB9EAF325D54459231228344E1C626B3CC80D4D5560AD8AC25E3394965865C866E2A2D527D8D02B84C4C0EE260E194328C2386F0A69C9B033FBD9E11B146F7D666F8C6542A88B259C450989C2704D781902495A54150D7F6DABDB98CFE3ABCE4682DD51131F73192EA5D335189E81938CE30CD9E5C06E6AAB1A5CBFDC96CAE5CFF00912CB9EAF31A057098981DC4C1C3286518470DE14D391A068864980244C62328A51C390DE14D3E91AA88B15235BD05C89AE2A2F067DB146F7D666F8C6542A88B259C450989C2704D781902495A5417A5CA9CED9B25D54459231228344E1C626B3CC80D4D5560BF0C51BDF599BE33E654185473247A098C6CD1B72B52DE98A83157E64C8B1317195D6E56A57D490D2E4E4BEF7FD9578DCB22DD737F09B73C9D493FA72B272EAF4FF25FA60C3F98B3259511E5CC91E82631A8B6F56A57D337B7D1B145F7D66778C6541853F2D845898C6CD1B8E8B2BE9886972725F7BEE055E372C937235D497FA8DBDB2EEF4FF1A4BD853F2DA7A068C6CD1B8E8B33E998E57D93F36C97B0A8E64C8B0D18D9A36E56A6BD315111BCC8916262E6B56F56A57D4D0D21BE4C6F6DE36BC6E5926C517DF599BE3195062B1CC9916262E72BADCAD4AFA9E067F7B7C23628DEFACCDF18C970F2E5B4F40D18D45B8A8B35E99D733F09B7237D493FA8CBDB2EEF4FF1ADEDBF46ED2D8A2FBEA337C67CCBC1789E84B2AF1D0341C38A286E1B232AE4830AF0C1CCABC0E0D18432B21C89CF4DB962AE97CB14DB95F97219B76B5549F641C8388B3A528018643103D6847129E9A7D542974B246245098E327033679901A95A54690D7F725BDB98CFE45B324682DD2ED31F6CD9072F13D0E955E06068C4715A0DC4A7A69CB1575426726CCAFCB8135BB5AAA4FB1A068898E71DC4C62328A5644712E14D3E9A056864E70244C1C3285D603912E14D3974BC4C9DB462B8AD0C93004868381B0BA38721BC5957263C92E962A4A8B98C19B8A8BC7906542A88CD4627A0989C2704D679701B95A54157919E27265278E4640F89D18470C91947DEA88A73B98C9752E964B388A0D1C671866F03204935558D74BB4C7DB362352E1629B6B797019B76B5C09F6C51BDF599BE33E1A34FE9FAE862BD799E84C0121A0E068E28C1C86F1655CBAA2A9CEE6B7545539DCD64BA974B259C45068E338C3378190249AAAC6BE4DFBB469D3A7FD18CF5E6459303A898386238A308E1BC29A72EA8898FB98DD51131F731BAA2263EE6375444C7DCC623551962A4AB797226B8A8BC09F65E0838F43A5578E8640E03D68371291957D542A88B259C450989C2704D781902495A54170A74BC6726CCD1CC60CDBB5AA5C832F041C7A1D2ABC74320701EB41B8948CABEE171EFACB3F26D8E67D93F36D85C7B132CFC9B2F22BC4E7324F1C8341F0CAC88E272328E4863FB6DDEBCC5FF001DDE7234262B8D10C9CE04868C41B14AC07225C5957DE974A73B66D853A5E33936668E63066DDAD52E4197820E3D0E955E3A190380F5A0DC4A4655F57915E27399278E41A0F865644713919472E976A73B68C6815C262607713070CA194611C378534E4681A2192600913188CA29470E4378534FA46AA22C548D6F417226B8A8BC19F6C51BDF599BE318D0344324C0122631194528E1C86F0A69F715854258A92CB0CB9135C545AA4FFCF8A2FBEA337C637432FCD8DD0CFF0036B7432FCD8CA830A8E5B08B1318D9A371D1657D37032FBD9E11B737235D3737A8CBD7316CBFF1AEB97F84DBAE6FE1264BD85472D87A068C6CD1B8E8B35E9B8E67D93F36D85CFB142CFC9B7D197221AE73ECADC36B3EDA9E64B846F2DA45868B9AD5C5459AF52EB9BF84DBAE5FE136EB9BF8499511E5CB71162631A8B7151657D310D2E4E73AF6D164D9F6D493628BEFACCEF18CA888DE6488B131735AB76B52BEA48690D72637B7EF6BC6E5926C517DF599DE31B144F62866F8C643686B9CFBDB78DACEB6A49BA197E6DF9B146F7D666F8C65E46789C9949E391903E274611C324651F7AA229CEE637545539DCD6C51BD8999BE31B032FBD9E13E09755119AB38F40C9387189AF02E049355582E2AE978B14DB95F97219B76B5549FF820E5E27A1D2ABC0C0D188E2B41B894F4D396397F64FCDB15EBCCF4260090D0703471460E4378B2AE5D5154E7735BAA2A9CEE6B7545539DCD6E97698FB66DD2ED3276D197915E18265578E41A0F86518390C9194724BAA88CD59C7A0649C38C4D78170249AAAC148C4BA58A6DADE5C866DDAD7027DB146F7D666F8C6EA8AA73B9ADD5114E77318D03444C738EE263119452B2238970A69F52EAA2335671E819270E3135E05C0926AAB055CBFDB6ACAE5CFF008EAF49EAF320C33C4E7324F038C86113AC88E273D36FBF2E28DEFACCDF18D8A37B13337C67C7146F62666F8C6C0CBEF678465E0838F43A5578E8640E03D68371291957DC51BD8999BE31B468DEC839789164B250030346238A288E1B3D34E4830CF0C132ABC0E321844E8C1C864F4DBE91AA88B15215BCBA135C545E04FB19EBCC8B2607513070C4714611C378534E4839071E84B2AF030C86207A286E1B3D34FB8E67D93F37F0418678609955E07190C227460E4327A6DF572FF723B2B973FE45B2E7ABCC830AF1393293C0E0D184328C23864F4DB96171EFACB3F26C78AA22C537513418C26B76B5C69062B8D10C9CE04868C41B14AC07225C5957D41C838F425957818643103D14370D9E9A7DC55D2F19CA4F2BF2E43371516A93EC975511648C48A0D1387189ACF32035355582E28DEC4CCDF18C46A5D33548D6F2E43371517813EC6815C262607713070CA194611C378534E5F2E28DEFACCDF18CA888DE6488B131735AB76B52BEA5D0CBF36B7432FCDAD8A2FB14337C636065F7B3C236E65418ABF32645898B9CAEB72B52BEA4C97B0A7E6488B0D18D9A36E56A6BD312E11BCC91E81A2E6B56ED6A6BD490D21AE4C6F6FDED78DCB24D8A27BEB333C6375CDFC24CB9572739F64E8B2ACFB6A7BE0A830A7E5B08B1318D9A371D165BD33033FBDBE11BE8D85C7BEB2CFC9B6397F64FCDB25EC56396C22C345CE575C74599F53FA37D3732A0C2A39923D04C63668DB95A96F4CE793A92FF004E564E5DDE9FE4A8690D72617BFEF6BC6E5926541853F3247A098C6CD1B72B52BE9BF2E28DEFACCDF18DD5154E7735BAA2A9CEE6B7545539DCD633D799E873812260E190E2B21C8970A69CB032FBD9E13E3A34FE9FAE862BD799E84C0121A0E068E28C1C86F1655C8AE3444C4C0EE183106C528C2386F1655F7AA229CEE6325D4BA592CE22834719C619BC0C8124D55634830AF0C1CCABC0E0D18432B21C89CF4DB974BB4C9DB46E97698FB66C6815A1939C0913070CA17580E44B8534E44725C2C53756F2E4336ED6B813ECBC1789E84B2AF1D0341C38A286E1B232AE585C7BEB2CFC9B1E2974B252545CC60CDC545E3C832F22BC304CAAF1C8341F0CA3072192328E5D5154E7735B0A754267293CD1CC6135C545A5C832F05E27A12CABC740D070E28A1B86C8CAB915E8308B260750D188380F4611C378B2AFB8ABAA133936657E5C09ADCAD5527DBAA2A9CEE6FF00EE7FFFC4003E10000102050106030703040004070000000203130001041114150512212232331085D4162023346394E4313541245161624260718206305281B1B3D1FFDA0008010100133F00FF0091349A05DB7281054F9D5408F899C681B2FD34681B2FD34681B2FD34681B2FD346052D2B2F65B9D8482F7682349A05DB7281054F9D5408F899C681B2FD34681B2FD34681B2FD378E9340BB6E5020A9F3AA811F13386125DB72BD048F9151209DC0CE5C46302969597B2DCEC2417BB41EEE81B2FD34681B2FD3430920E375F509072242212B0004B80C3092EDB95E8247C8A8904EE0672E231A06CBF4D1A06CBF4D1A06CBF4D1A06CBF4D1A06CBF4DEF795D2463AABB6E2A09072242473B9984B80CED1A06D4F4D1A06D4F4D1E69491F7F1AB5020E37408247C8AAE272B1846AD40BB6E502E907224B91F1338C0AAAA7996DDEC2476B3A1D519F4B43938F4A952ADF06A954960B2C82A1CE11815543938F549552DF1AA924910B2282A7CE719F4B54F3396EF6153B59D08D22BD76DC4C150E7490209DC0C27C0A33E96BB1B22955A547E0D2AAAAC77597483902302AA9597B11AEFA417BB471ABD020E36A9A47C8AAE272B181CB88C605550E4E3D52554B7C6AA492442C8A0A9F39C6BFB2FD4C6BFB2FD4C67D2D7636452AB4A8FC1A555558EEB2E907204605552B2F6237DF482F768E349AF5DB72BD75439D24083A0C23CD2923EFE348AF5DB71305439D24082770309F028D036A7A68C0AAA565E71AEFA417BB47D378F2BA4F7BCAE923CCE93C7CD2923EFE35FC579EA5497ED629DACEDBABC349CEC8C863EBA5B9BAC46262BCF552ABF6B7CED67777AA71E5957E1A06532CD2A48777282F76AFD318994CB35492FDADF0BDDADDEA8D27071B1D8FACAEFEF3F1E67571A062BCF52AA877728ED676FD3E38994CB35492FDADF0BDDADDEA8D27071B1D8FACAEFEF3FE1E69491F7F1E594BE1F7F1E5749EF795D2479A5278F9A5247DFC795D24681B2FD346052D2B2F65B9D8482F7682349A05DB7281054F9D5408F899C795D5F869340BB6E5020A9F3AA811F1338D2681071BA05D50E749013E0611F611A4502EDB8A9AA7CEAA0473B999CF8943092EDB95E8247C8A8904EE0672E231A06CBF4D1A06CBF4D1A4D020E3740BAA1CE92027C0C23EC3C3CD2923EFE3CAE93C3EFE3CAE93DEF2BA48D036A7A68D036A7A68D036A7A68D26BD071BAF4153E755010E8038FBF8F2BA48CFA5AEC6C8A556951F834AAAAB1DD65D20E408C0AAA565E71BEFA417BB47D378D22BD76DC4C150E7490209DC0C27C0A357A05DB71504839125C8E7733097018CFA5A565E71BEFAA17BB47D378C0AAAEC6C8AA56A91F8D4A92A89DD15D23E438D5E8176DC54120E4497239DCCC25C06275F4B4ACBCE37DF542F7694E9BC3E92EDB890AA1CE91104EE0613E053B479A5247DFC6915EBB6E260A873A48104EE0613E051E694913AFA5A565E71BEFAA17BB4A74DE1F4976DC48550E748882770309F029DA3CD292302AAA9E672DDEC2476B3A11A06D4F4D1A06D4F4D1A06D4F4D0C2A838DD02091F22A2272B181CB88FBDA06532CD2A48777282F76AFD31ECA7E6C7B29F9B1ECA7E6C7B29F9B1A4E0E3E3E47D7577F79F8D032996695243BB9417BB57E98F33A58FBF8D032996695243BB9417BB57E98F33A48D57071B1F23E82BBFBCFC65E532CD2A48777702F76B7BA651AFE532CD524BF6B142F76ADD51F7F1A06532CD2A48777282F76AFD31AFE532CD524BF6B142F76ADD51AB60E363E47D0577F79F8CBCA659A5490EEEE05EED6F74CA3CCE963EFE340CA659A5490EEE505EED5FA631329966A925FB5BE17BB56EA947B29F9B1ECA7E6C7B29F9B1ECA7E6C7B29F9BFF91814B54F3388DF7D23B59D3861241C6EBEA120E44844256000970186125DB72BD048F9151209DC0CE5C46302969597B2DCEC2417BB41E190AA0E36A82A1CE9109CAC6984F814AF1FBA6662318DF3CFB7B994BF6ED7DF8D0365FA68C855071B54150E74884E5634C27C0A578D7F6A7A98D7F6A7A9F0C0A5AA79971BEFA476B3A7D30C24838DD7D4241C890884AC0012E03E19F554ACBD96E76150BDDA087D55DB7281054F9D52239DCCCE7C4A348A041C6D505439D2404E563009F028C0A5AA79971BEFA476B3A7D30C24838DD7D4241C890884AC0012E03E1814B54F3388D77D23B59D38D0365FA68D2681071BA05D50E749013E0611814B54F3388DF7D23B59D38D0365FA6F7B48AF5DB71305439D24082770309F02F0CFA5A565E71BEFAA17BB47D3787D25DB71215439D22209DC0C27C0A768D036A7A68C0AAA565E71BEFA417BB47D378D22BD76DC4C150E7490209DC0C27C0A1F49071BAF4153E754842560039F128CFA5AA799CB77B0A9DACE846915EBB6E260A873A48104EE0613E05E19F4B4ACBD88D77D50BDDA38C0AAAEC6C8AA56A91F8D4A92A89DD15D23E4386155DB7282A120E44848E7733097018FDAF0F2D8C6F9E65CDFC45FA2F6DC87D25DB71215439D22209DC0C27C0A768D5A8176DCA05D20E449723E2671815554F32DB9D848ED6743AAD0C2A838DD02091F22A2272B181CB88C6BFB2FD4C67D2D53CCE5BBD854ED6742348AF5DB71305439D24082770309F028D5E8176DC54120E4497239DCCC25C063EFE348AF5DB71305439D24082770309F02F0CFA5A565EC46FBEA85EED1C3E92EDB890AA1CE91104EE0613E053B7BDE594B18994CB34AAAFDADF0BDDAB754A3F63D3B4FFB975CCFFF004B3519794CB34A921DDDC0BDDADEE9947B29F9B1FB1E9DA7FDCBAE67FF00A59A8CBCA659A5490EEEE05EED5FA651AFE532CD2AABF6B142F76ADD5E1A06532CD2A48777282F76AFD31978AF3D54921DDDC3B59DDEE99C7B57F851A56A98789FD0FCCBC8B9BF8AE76E56DFB47B29F9B1A4E0E3E3E47D7577F79F8D032996695243BB9417BB57E98CBC579EAA490EEEE1EED9DDEE99C6AD9D9390C7D14B737588D0329966A9543BB9417BB57E98D7F299669555FB58A17BB56EA8D5B071F1D8FA0AEFEF3F1A56A98789FD07CCBE8B9BF8AE76E56DFB4626532CD524BF6B7C2F76ADD51A4E0E363E47D7577F79F8F2CA5F1F2CA4F7BCAE92184976DC48D23E4544827703397119DA3029695979B73B0905EED27D578D5ABD071BAF5D20E449710E8008D0365FA68C0A5A565E6DDEC2417BB41D57F0D5EBD76DC4CD23E4557209DC0CE5C47C349A05DB7281054F9D5408F899C6052D0E4E3D2AB548FC6A5492582CB2091F21C6BFB53D4C642ABB6E2A6A9F3AA4473B9A853E253B469340838DD02EA873A4809F030F0D268176DCA04153E755023E2671E694912AFAAA565ECB73B0A85EED04642ABB6E2A6A9F3AA4473B9A853E253B4795D5C7D8469140BB6E2A6A9F3AA811CEE6673E250C24BB6E57A091F22A2413B819CB88C6052D2B2F65BBD8482F7682357AF41C6D304839125C42560009701F1F2BA4F7BCAE921F49071BAF4153E754842560039F128CFA5AA799CB73B0A9DACE87863AABB6E2A09072242473B9984B80CED1A06D4F4D1A06D4F4DE19F4B4ACBCE35DF542F768FA6F181555D8D9154AD523F1A9525513BA2BA47C87157B7681943FDCDA58CED2FF0003384A8184E98E9DFE12B19DEEFC536CC71306699343AA76BDDA8D1C234708A8A59A6A28F54AABCEE3295A569AB68248E5294BFCCED19F4A836F623567950BDDA38C0AAAEC6C8AA56A91F8D4A92A89DD15D23E5386155DB7282A120E44848E7733097018FDAF0F2D8C6F9D65CDFC55FB77B46055576364552B548FC6A549544EE8AE91F21C6935E838DD7A0A9F3AA8087401F86935EBB6E57AEA873A48107418467D2D7636452AB4A8FC1A555558EEB2E9072047ED78796C637CEB2E6FE2AFDBBDB721F4976DC48550E748882770309F029DBDEF2CA58CBC579EAA490EEEE1DACEEF74CE356CEC8C8C8FA096E6EB1E18994CB35492FDADF0BDDAB754A3D94FCD8F653F37C3EFE3CB29607F51DE9CA5797F995E252E128095E7B8984CA7697FD250139948252909A73BCF8CEE2769CF85E72BCA568527610194AF39CE73FE2528AC49B1AA496099A6AA72FD6425295E5BD294ED69DBC3FE10995E45BB2FE25398DEDFDE739FF31A06532CD2A48777282F76AFD3E1AAE0E363E47D0577F79F8CBCA659A5490EEEE05EED6F74CA3D94FCD8D27071F1D8FAEAEFEF3F1A06532CD52A8777282F76AFD318994CB35492FDADF0BDDADDEA95AF1FB1E9DA7FDCBAE677FA59A8D2B54C3C4FE83E65E45CDFC573B636DFB7BDABD7A0E3698241C892E212B0004B80C6052D0E4E3D2AB548FC6A5492582CB2091F21C7EE99988C637CF3CDEE65AFDBB5F7E1849071BAFA84839121109580025C06184976DCAF4123E4544827703397118C0A5A565ECB73B0905EED0469340BB6E5020A9F3AA811F13387D541C6E82A150E74884E563009F028CFAAAA79971BEFAA76B3A7D368F2BA48FF00BE5E14E52963266049E42E5796E2729CE76FE4A72B0CA73BDB6A3DBE330A74D2B727F1C853BDE7FACB84AD3BECDDB2A2AF2025BC694913404A523DDDC9F35B7665C62F27524E9A46204A87EA247350E72BFEA0DF87FDC51A4502EDB94082A7CEAA047D671AFED4F531AFED4F531AFED4F531A06CBF4D1FB5E1E5BF93F22C39BF8A8772F6DC8C85576DC54D53E75488E77350A7C4A768D0365FA68FDAF0F2DFC9F9161CDFC543B97B6E4642ABB6E2A6A9F3AA4473B9A853E253B7BDA457AEDB8982A1CE920413B8184F81430AAEDB941509072242473B9984B80C605552B2F38DF7D20BDDA3E9BC795D2467D2D7636452AB4A8FC1A555558EEB2E907204681B53D3463AA838DAA691F22A2272B1A652E2328D036A7A68FDAF0F2D8C6F9E61CDFC55FB77B6E43E92EDB890AA1CE91104EE0613E053B78274229A28A467314574AA24A94D407268A4523009DD4BDA366A96651AA56A12A62A8DD9DD8A646986649CA7BB335EE5095E68D32B4AD492A84D39DC46EF148A5294A45619CE2A7E67682CAA6446AA15339B9F0F978EF5AE56B5A2946432DABB384A725F78385F7921782FD256B4E5C6F41B36A2B0954256B9FC202E1CC30D1A7BF3150C4B94E522E1319CBF48D5E81071BA04123E455713E0607E1F7F1E57491AFECBF5319F4B54F3396E76153B59D08D5A81071BA04123E455713958C3C302AAA9E672DCEC2476B3A10C2A838DD02091F22A2272B181CB88FBDA06532CD2A48777282F76AFD3E1AB60E363E47D1577F79F8D2B54C3C4FE83E65E45CDFC573B636DFB4626532CD524BF6B7C2F76ADD51ECA7E6C6262BCF552ABF6B7CF76CEDBAA718994CB34AAAFDADF0BDDADDEA94693838F8F91F5D5DFDE7E3CB297C03F8AA40A9EB11FFE838A0009112469A736493504C4C39653B14A7394F8CA70B8802C549319A694C3993414BDF7E4090CA5212E6B95EE9D624CA03322DD4896107A616DD9CC1DB7198F4C02929A6B23309837219719CA729FE9394B8452593ACAE5123ABA6911D42A5BA92130A4524729094CAD149564926A27906DA6F12739F2818DCB723DABFC28D0315E7AA9243BB9476B3B7E98FBF8D032996695243BB9417BB57E98CBC579EAA490EEEE1EED9DDEE99C7B57F851ED5FE146818AF3D54921DDCA3B59DBF4C6939D919191F5D2DCDD6231315E7A9525FB5BE76B3B6EA9FBDA4D02EDB94082A7CEAA047C4CE35FDA9EA633EAAA9E6711AEFAA76B3A71A4502EDB8A9AA7CEAA0473B999CF8943092EDB95E8247C8A8904EE0672E231814B4ACBD96E76120BDDA08D268176DCA04153E755023E2671ABD7AEDB899A47C8AAE413B819CB88C6052D53CCE235DF48ED674E33EAA87271EA95A547E0D2AA92216450483903C1CDD3553569D748E432FF008AD23DF9CBFF00485E25FA47F78D8FB357A9A79C84B7484E49C8C933039184E45FAEE6F42889A339DA769F298C8A5C65FCCA10E2E20B564D6DF9CA529EE8260B29729CE579A96943CA22E86FCE76DF4C84A5C65FC4E51AFED3F531E69491814B54F32E35DF48ED674FA6D1A06CBF4D1E6949E390AA0E36A82A1CE9109CAC6984F814AF1FBA6662318DF3CF37B994BF6ED7DF8CFAAA1C9C7AA56951F834AAA4885914120E40F7BCAE93C25415554F32DB9D848ED6743AAD18EAA0E36A9A47C8A889CAC6994B88CA185576DCA0A84839121239DCCC25C063F6BC3CB631BE799737F117E8BDB721F4976DC48550E748882770309F029DA356A05DB728174839125C8F899F8E75354EFA412B1CEE8A8768DEE09998EE914A5FA6F6EDC653FE244504129FFF009049CE53FF00E611B2F475273B5CCE9D496EC8F965720984E7C6F38A619260676E2421329CC653FED79DBFBC4E9C4159A69269260332971294B74A728FED3BCE769FFED394E3CAE92356A05DB728174839125C8F899F86915EBB6E260A873A48104EE0613E051A457A0E3699AA7CEAA0212B001CF8946055553CCB6E76123B59D0EA8D036A7A68D26BD071BAF4153E755010E803F0D26BD76DCAF5D50E749020E830F7BCB29635FCA659A5557ED6285EED5BAA3EC235FC579EAA557ED629DACEDBAA313299669555FB5BE17BB56EA8FD8F4ED3FEE5D733BFD2CD4695AA61E27F41F32F22E6FE2B9DB95B7EDE1AB60E363B1F415DFDE7E3DABFC28A5FFC432A951BFF0009952848E7FE37E51B4692A13552FF005B4C061A5E2A1153713DE3101BDA7FC910CA195A29D05260A6E19015AF3FE084A509D31CE729FF007E33B5FF00EB0B4AC7507C39A7C25FDA5FC4BF494A5294A51A06532CD2A48777282F76AFD31AFE532CD2AABF6B142F76ADD5E1E59491A062BCF52AA877728ED676FD31A4E7646431F5D2DCDD6231315E7A9525FB5BE76B3BBBD538F653F363D94FCD8F653F37DED5EBD071B4C120E4497109580025C063CAEAE33EAA95979B77B0A85EED0755E35FDA9EA633EAABB1B22A92A55BE0D52AAA2774575439C23029695979B73B0905EED0755E348A05DB715354F9D5408E773339F12F0FB08D5ABD071BAF5D20E449710E8008D5ABD76DCAF4123E455720E833F0D5EB9071BAF5D20E449610958023029A85FC7A55AA91F8D4C9A6A85964122E0713AFA9AA799C46BBCA1DACE9C799D5786052D53CCE235DF48ED674E340D97E9A3CAEAE30296A9E6711AEFA476B3A719F5543938F54AD2A3F069554910B228241C811A06CBF4D1814B4ACBD96EF6120BDDA08D5EBD071B4C120E4497109580025C06184976DCAF4123E4544827703397118C0A5A565ECB73B0905EED0469340BB6E5020A9F3AA811F133F7B48AF5DB71305439D24082770309F028F34A48FBFF0C75576DC54120E44848E7733097019DA3F6BC3CB631BE799737F157EDDEDB9181555D8D9154AD523F1A9525513BA2BA47C87E19F4B4ACBD88DF7D50BDDA387D25DB71215439D22209DC0C27C0A76F0FBF8F2BA48C0AAA1C9C7AA4AA96F8D54924885914153E738FDD33311FC9F9179BDCCA43B96BEFC681B53D3467D2D7636452AB4A8FC1A555558EEB2E9072047ED78796C637CEB2E6FE2AFDBBDB721F4976DC48550E748882770309F029DA31D55DB71504839121239DCCC25C067689D05552B2F38DF7D20BDDA3E9BC795D24605550E4E3D52554B7C6AA492442C8A0A9F39C6BDB33D4C6055576364552B548FC6A549544EE8AE91F21F8F95D27BDA06532CD2A48777282F76AFD31AFE532CD524BF6B142F76ADD51AB60E363E47D1577F79F8F6AFF0A355D530F13FAEF96651737F15BEE4ADBF78FD8F4ED3FEE5D733BFD2CD465E532CD2A48777702F76B7BA65E3E59491A062BCF5524877728ED676FD31AAE0E363E47D1577F79F8D2B54C3C4FE83E65E45CDFC573B72B6FDA340C579EA5550EEE51DACEDFA63EC2340CA659AA550EEE505EED5FA631329966A925FB5BE17BB56EA8D27071F1F23EBABBFBCFC79652C6BF94CB35492FDAC50BDDAB7547DFC795D2465E2BCF52AA877770ED6777BA671ED5FE14695AA61E27F41F32F22E6FE2B9DB95B7EDE3E594BEF69340BB6E5020A9F3AA811F13387D541C6E82A150E74884E563009F028CFAAAA799C46FBEA9DACE9C6AD5E838DD7AE907224B887400467D557636455254AB7C1AA55544EE8AEA873847ED78796FE4FC8B2E6FE2A1DCBDA35FDA9EA6349A041C6E8175439D2404F81846052D53CCE237DF48ED674E1849071B48520E4484425604C25C06578C855071B54150E74884E5634C27C0A578D7F6A7A98C85576DC54D53E75488E77350A7C4A76F0CFAAA565E6DDEC2A17BB41D578C0A5AEC6C8A54AA96F8D5492AB1DD65D53E7386125DB72BD048F9151209DC0CE5C46340D97E9A33EAA87271EA95A547E0D2AA9221645048390235FDA9EA633EAAA9E65C6BBEA9DACE9F4C795D278E9140BB6E2A6A9F3AA811CEE6673E251A06CBF4D1A06CBF4D19F5543938F54AD2A3F069554910B228241C81EF6915EBB6E260A873A48104EE0613E051A06D4F4D1A06D4F4D1A06D4F4D1A06D4F4D181554ACBCE35DF482F768FA6F1AB5020E37408247C8AAE272B184605550E4E3D52554B7C6AA492442C8A0A9F39C67D2D53CCE5B9D854ED6742356A041C6E81048F9155C4E56308F2BAB8FB08F34AB87D241C6EBD054F9D521095800E7C4A3F74CCC47F27E45F6F73290EE5AFBF18EAA0E36A9A47C8A889CAC6994B88CA35FD97EA633E96A9E672DCEC2A76B3A11AB5020E37408247C8AAE272B1843E920E375E82A7CEA9084AC0073E251AFECBF530FA4BB6E242A873A44413B8184F814ED18EAAEDB8A8241C89091CEE6612E033B44E82AA95979C6FBE905EED1F4DE3CAE9231D55DB71504839121239DCCC25C067689D05552B2F6237DF482F768FDFF002CA58F653F363D94FCD8F653F36340C579EAA490EEE51DACEDFA63EFFC34AD2F332FFA1F997966F7329CED947B57F851ED5FE146818AF3D4AAA1DDCA3B59DBF4C7D84799D5F86939D9190C7D74B737588C4C579EAA557ED6F9EED9DB754E3DABFC28F6AFF0A3DABFC28CBC579EAA490EEEE1DACEEF74CE355CEC9C8C8FA096E6EB11E594918994CB35492FDADF0DEBB56EA94695838D8F91F5D5DFDE7E3CB2923CCE9634ACEC9C8C8FAC96E6EB11ECA7E6FBDE57490C24BB6E57A091F22A2413B819CB88C681B2FD34681B2FD3479A5247DFF86052D0E4E3D2AB548FC6A5492582CB2091F21C67D5553CCE235DF54ED674FC349A041C6E8175439D2404F81847D8469140BB6E2A6A9F3AA811CEE6673E251A06CBF4D1A06CBF4D1A06CBF4D1AFED4F531AFED4F530FAABB6E5020A9F3AA4473B999CF8946052D0E4E3D2AB548FC6A5492582CB2091F21C67D5553CCB8D77D53B59D3E9B4795D24681B2FD34681B2FD3430920E3690A41C890884AC0984B80CAF1814B43938F4AAD523F1A9524960B2C8247C871FBA6662318DF3CF37B996BF6ED7DF861241C6EBEA120E448442560009701F7BCAE923CD293C7CD2923EFE356A041C6E81048F9155C4E56308F34A4F0D26BD76DCAF5D50E749020E83086155DB7282A120E44848E77330970189D05552B2EB8DF7D20BDDA3E9BC6915EBB6E260A873A48104EE0613E051AB502EDB940BA41C892E47C4CE3EC3C185576DCA0A84839121239DCCC25C063F6BC3CB631BE799737F117EDDEDB90FA4BB6E57D42A1CE91104EE0613E051E575712A0AAAA7996DCEC2476B3A9F55A31D541C6D5348F915113958D329711946AD40BB6E502E907224B91F1338CFA5A565EC46FBEA85EED1C6055576364552B548FC6A549544EE8AE91F21C79A5244EBE9695979C6FBEA85EED29D3787D25DB71215439D22209DC0C27C0A76F7BCAE9231329966A925FB5BE1BD76ADD528F653F363D94FCD8F33A58FBFF0D7F29966A925FB58A17BB56EAF0D0329966A9543BB9417BB57E98C4CA659A5557ED6F85EED6EF54A34AC1C6C7C8FAEAEFEF3F1E59491ED5FE146AB9D9390C7D04B73758F0D0315E7AA9243BB9476B3B7E98FBFF0F2BAB8FB08D7F15E7AA955FB58A76B3B6EAF1D032996695243BB9417BB57E98D5754C3C4FEBFE59945CDFC56FB92B6FDE349C1C7C7C8FACAEFEF3F1A06532CD2A48777282F76AFD3EF795D24681B2FD34681B2FD34681B2FD3469140838DAA0A873A4809CAC6013E051F7FEE69140BB6E2A6A9F3AA811CEE6673E250C24BB6E24691F22A2413B819CB88CED1A06CCF4D19F5543938F54AD2A3F069554910B228241C810FAA838DD0542A1CE9109CAC6013E051AFED4F531AFED4F53190AA0E36A82A1CE9109CAC6984F814AF13AFAAAA79971BEFAA76B3A7D368D268176DCA04153E755023E2671E575719F554ACBCDB9D8542F7683AAF0FAABB6E5020A9F3AA4473B999CF894681B2FD346052D2B2F65B9D8482F7682349A05DB7281054F9D5408F899C6AF5EBB6E26691F22AB904EE0672E231814B54F3388D77D23B59D38D0365FA6FF99FFFC4002A11000103030205040203000000000000000100020304051106211213314051101422413280162442FFDA0008010201013F00FD9A073E83708641EFA59046325433897A2924118C950CC25E9DEEDD15DEB22A6A77F1EE55B756B2DF172A66F555FAA5B5748EE546412B4C81EC83B8B2E3E9F8F74767A75496CE42A3823ADAA2F937C7D2BD5AA8DF3B1EE6630BD8521A511F00030AD956EB55D1F0039612B9E00C94C7878EE88CABEC8200C7F8475355D1D710C3B29EF02BA2CCB2E0A9357CD08E40391E54B7685E1B237F2F2BDC3EB18C847FA54C0B58223F5DD67016A767F4DEEF0A42E3212A9C1126241B2ABB232439A5F1F6A4824A69431EAC25B253C2E3F41746E3BAE87215C6DCDB93381C765268280E785E9FA065CE5922FE3B5B147CB90712A8D2570E6F1C4CC0565A534B42D63BAAC671DD0F8EC5608DC2F92C1F2B87EC84785FB2D9BF00BA7EDDFF00FFC400251100010401040104030000000000000000010002030411051221403210224180144261FFDA0008010301013F00FB76D6A73709A139B8EEF2AA40F95E24F85269DF907785069E18FDC5CAFEDDFC0F407B4D4C8B729849523DA154B53161084AF7BF20AB359F356DC5A830A23B43C9513FAAB518B8DC151D335FC555A518707CA15FB94DF4042C1CA6E222F47DDDAF95A77364350FE27709B69CDF6BC26B848DE15AE1CF4381DAC65413188E426EB2F09BAD1F9085F8F3951EA9106E15B977BF211E5BDA6AC64AC05C2E10217921F6EFFFD9, '1', '2022-03-26 21:30:19', '1', '2022-03-26 21:30:19', b'0'); COMMIT; -- ---------------------------- @@ -1817,7 +2169,7 @@ CREATE TABLE `infra_job` ( `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 COLLATE=utf8mb4_unicode_ci COMMENT='定时任务表'; +) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='定时任务表'; -- ---------------------------- -- Records of infra_job @@ -1826,9 +2178,11 @@ BEGIN; INSERT INTO `infra_job` VALUES (2, '用户 Session 超时 Job', 3, 'sysUserSessionTimeoutJob', 'aoteman', '0/5 * * * * ? *', 0, 0, 10, '', '2021-02-07 10:15:09', '', '2021-02-07 12:57:44', b'1'); INSERT INTO `infra_job` VALUES (3, '用户 Session 超时 Job', 1, 'sysUserSessionTimeoutJob', NULL, '0 * * * * ? *', 3, 2000, 0, '', '2021-02-07 13:07:32', '1', '2022-02-04 16:48:26', b'1'); INSERT INTO `infra_job` VALUES (4, 'payNotifyJob', 1, '支付通知 Job', NULL, '* * * * * ?', 0, 0, 0, '1', '2021-10-27 08:33:35', '1', '2021-10-27 00:34:14', b'1'); -INSERT INTO `infra_job` VALUES (5, '支付通知 Job', 2, 'payNotifyJob', NULL, '* * * * * ?', 0, 0, 0, '1', '2021-10-27 08:34:42', '1', '2022-02-17 12:29:22', b'0'); +INSERT INTO `infra_job` VALUES (5, '支付通知 Job', 2, 'payNotifyJob', NULL, '* * * * * ?', 0, 0, 0, '1', '2021-10-27 08:34:42', '1', '2022-04-03 20:35:25', b'0'); INSERT INTO `infra_job` VALUES (6, 'uerSessionTimeoutJob', 1, '用户 Session 超时 Job', NULL, '0 * * * * ? *', 3, 2000, 0, '1', '2022-02-05 00:46:54', '1', '2022-02-04 16:47:10', b'1'); -INSERT INTO `infra_job` VALUES (13, '用户 Session 超时 Job', 1, 'userSessionTimeoutJob', NULL, '0 * * * * ? *', 3, 2000, 0, '1', '2022-02-05 00:49:47', '1', '2022-02-05 00:49:47', b'0'); +INSERT INTO `infra_job` VALUES (13, '用户 Session 超时 Job', 1, 'userSessionTimeoutJob', NULL, '0 * * * * ? *', 3, 2000, 0, '1', '2022-02-05 00:49:47', '1', '2022-04-03 14:12:48', b'1'); +INSERT INTO `infra_job` VALUES (14, '用户 Session 超时 Job', 1, 'userSessionTimeoutJob', NULL, '* * * * * ?', 0, 0, 60, '1', '2022-04-03 22:15:33', '1', '2022-04-03 14:16:09', b'1'); +INSERT INTO `infra_job` VALUES (15, '用户 Session 超时 Job', 1, 'userSessionTimeoutJob', NULL, '0 * * * * ?', 0, 0, 60000, '1', '2022-04-03 22:18:14', '1', '2022-04-03 22:18:14', b'0'); COMMIT; -- ---------------------------- @@ -1852,7 +2206,7 @@ CREATE TABLE `infra_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=25278 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='定时任务日志表'; +) ENGINE=InnoDB AUTO_INCREMENT=25294 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='定时任务日志表'; -- ---------------------------- -- Records of infra_job_log @@ -1862,6 +2216,22 @@ INSERT INTO `infra_job_log` VALUES (25274, 13, 'userSessionTimeoutJob', NULL, 1, INSERT INTO `infra_job_log` VALUES (25275, 13, 'userSessionTimeoutJob', NULL, 2, '2022-02-20 00:21:19', '2022-02-20 00:22:16', 56563, 1, '{\"1\":\"移除在线会话数量为 0 个\",\"107\":\"移除在线会话数量为 0 个\",\"108\":\"移除在线会话数量为 0 个\"}', NULL, '2022-02-20 00:21:19', NULL, '2022-02-20 00:22:16', b'0'); INSERT INTO `infra_job_log` VALUES (25276, 13, 'userSessionTimeoutJob', NULL, 1, '2022-02-20 00:23:33', '2022-02-20 00:23:40', 7445, 1, '{\"1\":\"移除在线会话数量为 0 个\",\"107\":\"移除在线会话数量为 0 个\",\"108\":\"移除在线会话数量为 0 个\"}', NULL, '2022-02-20 00:23:33', NULL, '2022-02-20 00:23:40', b'0'); INSERT INTO `infra_job_log` VALUES (25277, 13, 'userSessionTimeoutJob', NULL, 1, '2022-02-20 00:24:00', '2022-02-20 00:24:51', 51162, 1, '{\"1\":\"移除在线会话数量为 0 个\",\"107\":\"移除在线会话数量为 0 个\",\"108\":\"移除在线会话数量为 0 个\"}', NULL, '2022-02-20 00:24:00', NULL, '2022-02-20 00:24:51', b'0'); +INSERT INTO `infra_job_log` VALUES (25278, 15, 'userSessionTimeoutJob', NULL, 1, '2022-04-03 22:21:24', '2022-04-03 22:21:25', 1107, 1, '{\"1\":\"移除在线会话数量为 34 个\",\"121\":\"移除在线会话数量为 1 个\",\"122\":\"移除在线会话数量为 1 个\"}', NULL, '2022-04-03 22:21:24', NULL, '2022-04-03 22:21:25', b'0'); +INSERT INTO `infra_job_log` VALUES (25279, 15, 'userSessionTimeoutJob', NULL, 1, '2022-04-03 22:21:25', '2022-04-03 22:21:25', 36, 1, '{\"1\":\"移除在线会话数量为 0 个\",\"121\":\"移除在线会话数量为 0 个\",\"122\":\"移除在线会话数量为 0 个\"}', NULL, '2022-04-03 22:21:25', NULL, '2022-04-03 22:21:25', b'0'); +INSERT INTO `infra_job_log` VALUES (25280, 15, 'userSessionTimeoutJob', NULL, 1, '2022-04-03 22:22:00', '2022-04-03 22:22:00', 22, 1, '{\"1\":\"移除在线会话数量为 0 个\",\"121\":\"移除在线会话数量为 0 个\",\"122\":\"移除在线会话数量为 0 个\"}', NULL, '2022-04-03 22:22:00', NULL, '2022-04-03 22:22:00', b'0'); +INSERT INTO `infra_job_log` VALUES (25281, 15, 'userSessionTimeoutJob', NULL, 1, '2022-04-03 22:22:01', '2022-04-03 22:22:01', 24, 1, '{\"1\":\"移除在线会话数量为 0 个\",\"121\":\"移除在线会话数量为 0 个\",\"122\":\"移除在线会话数量为 0 个\"}', NULL, '2022-04-03 22:22:01', NULL, '2022-04-03 22:22:01', b'0'); +INSERT INTO `infra_job_log` VALUES (25282, 15, 'userSessionTimeoutJob', NULL, 1, '2022-04-03 22:22:33', '2022-04-03 22:22:33', 24, 1, '{\"1\":\"移除在线会话数量为 0 个\",\"121\":\"移除在线会话数量为 0 个\",\"122\":\"移除在线会话数量为 0 个\"}', NULL, '2022-04-03 22:22:33', NULL, '2022-04-03 22:22:33', b'0'); +INSERT INTO `infra_job_log` VALUES (25283, 15, 'userSessionTimeoutJob', NULL, 1, '2022-04-03 22:22:36', '2022-04-03 22:22:36', 21, 1, '{\"1\":\"移除在线会话数量为 0 个\",\"121\":\"移除在线会话数量为 0 个\",\"122\":\"移除在线会话数量为 0 个\"}', NULL, '2022-04-03 22:22:36', NULL, '2022-04-03 22:22:36', b'0'); +INSERT INTO `infra_job_log` VALUES (25284, 15, 'userSessionTimeoutJob', NULL, 1, '2022-04-03 22:23:00', '2022-04-03 22:23:00', 49, 1, '{\"1\":\"移除在线会话数量为 0 个\",\"121\":\"移除在线会话数量为 0 个\",\"122\":\"移除在线会话数量为 0 个\"}', NULL, '2022-04-03 22:23:00', NULL, '2022-04-03 22:23:00', b'0'); +INSERT INTO `infra_job_log` VALUES (25285, 15, 'userSessionTimeoutJob', NULL, 1, '2022-04-03 22:23:17', '2022-04-03 22:23:17', 19, 1, '{\"1\":\"移除在线会话数量为 0 个\",\"121\":\"移除在线会话数量为 0 个\",\"122\":\"移除在线会话数量为 0 个\"}', NULL, '2022-04-03 22:23:17', NULL, '2022-04-03 22:23:17', b'0'); +INSERT INTO `infra_job_log` VALUES (25286, 15, 'userSessionTimeoutJob', NULL, 1, '2022-04-03 22:23:29', '2022-04-03 22:23:29', 20, 1, '{\"1\":\"移除在线会话数量为 0 个\",\"121\":\"移除在线会话数量为 0 个\",\"122\":\"移除在线会话数量为 0 个\"}', NULL, '2022-04-03 22:23:29', NULL, '2022-04-03 22:23:29', b'0'); +INSERT INTO `infra_job_log` VALUES (25287, 15, 'userSessionTimeoutJob', NULL, 1, '2022-04-03 22:24:00', '2022-04-03 22:24:00', 23, 1, '{\"1\":\"移除在线会话数量为 0 个\",\"121\":\"移除在线会话数量为 0 个\",\"122\":\"移除在线会话数量为 0 个\"}', NULL, '2022-04-03 22:24:00', NULL, '2022-04-03 22:24:00', b'0'); +INSERT INTO `infra_job_log` VALUES (25288, 15, 'userSessionTimeoutJob', NULL, 1, '2022-04-03 22:25:00', '2022-04-03 22:25:00', 21, 1, '{\"1\":\"移除在线会话数量为 0 个\",\"121\":\"移除在线会话数量为 0 个\",\"122\":\"移除在线会话数量为 0 个\"}', NULL, '2022-04-03 22:25:00', NULL, '2022-04-03 22:25:00', b'0'); +INSERT INTO `infra_job_log` VALUES (25289, 15, 'userSessionTimeoutJob', NULL, 1, '2022-04-03 22:26:00', '2022-04-03 22:26:00', 17, 1, '{\"1\":\"移除在线会话数量为 0 个\",\"121\":\"移除在线会话数量为 0 个\",\"122\":\"移除在线会话数量为 0 个\"}', NULL, '2022-04-03 22:26:00', NULL, '2022-04-03 22:26:00', b'0'); +INSERT INTO `infra_job_log` VALUES (25290, 15, 'userSessionTimeoutJob', NULL, 1, '2022-04-03 22:27:00', '2022-04-03 22:27:00', 26, 1, '{\"1\":\"移除在线会话数量为 0 个\",\"121\":\"移除在线会话数量为 0 个\",\"122\":\"移除在线会话数量为 0 个\"}', NULL, '2022-04-03 22:27:00', NULL, '2022-04-03 22:27:00', b'0'); +INSERT INTO `infra_job_log` VALUES (25291, 15, 'userSessionTimeoutJob', NULL, 1, '2022-04-03 22:28:00', '2022-04-03 22:28:00', 19, 1, '{\"1\":\"移除在线会话数量为 0 个\",\"121\":\"移除在线会话数量为 0 个\",\"122\":\"移除在线会话数量为 0 个\"}', NULL, '2022-04-03 22:28:00', NULL, '2022-04-03 22:28:00', b'0'); +INSERT INTO `infra_job_log` VALUES (25292, 15, 'userSessionTimeoutJob', NULL, 1, '2022-04-03 22:29:00', '2022-04-03 22:29:00', 21, 1, '{\"1\":\"移除在线会话数量为 0 个\",\"121\":\"移除在线会话数量为 0 个\",\"122\":\"移除在线会话数量为 0 个\"}', NULL, '2022-04-03 22:29:00', NULL, '2022-04-03 22:29:00', b'0'); +INSERT INTO `infra_job_log` VALUES (25293, 15, 'userSessionTimeoutJob', NULL, 1, '2022-04-03 22:30:00', '2022-04-03 22:30:00', 37, 1, '{\"1\":\"移除在线会话数量为 0 个\",\"121\":\"移除在线会话数量为 0 个\",\"122\":\"移除在线会话数量为 0 个\"}', NULL, '2022-04-03 22:30:00', NULL, '2022-04-03 22:30:00', b'0'); COMMIT; -- ---------------------------- @@ -1887,7 +2257,7 @@ CREATE TABLE `infra_test_demo` ( -- Records of infra_test_demo -- ---------------------------- BEGIN; -INSERT INTO `infra_test_demo` VALUES (106, '老五1', 0, 1, 1, '牛逼哈2', '', '2021-02-06 13:25:00', '', '2021-02-06 14:00:37', b'1'); +INSERT INTO `infra_test_demo` VALUES (106, '测试', 0, 1, 1, '牛逼哈2', '', '2021-02-06 13:25:00', '1', '2022-04-03 13:50:43', b'0'); INSERT INTO `infra_test_demo` VALUES (107, '哈哈哈哈', 1, 0, 1, 'biubiubui', '', '2021-02-06 14:00:54', '1', '2022-02-17 12:42:14', b'0'); COMMIT; @@ -2480,7 +2850,7 @@ CREATE TABLE `system_dict_data` ( -- Records of system_dict_data -- ---------------------------- BEGIN; -INSERT INTO `system_dict_data` VALUES (1, 1, '男', '1', 'system_user_sex', 0, 'default', 'A', '性别男', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 01:30:55', b'0'); +INSERT INTO `system_dict_data` VALUES (1, 1, '男', '1', 'system_user_sex', 0, 'default', 'A', '性别男', 'admin', '2021-01-05 17:03:48', '1', '2022-03-29 00:14:39', b'0'); INSERT INTO `system_dict_data` VALUES (2, 2, '女', '2', 'system_user_sex', 1, 'success', '', '性别女', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 01:30:51', b'0'); INSERT INTO `system_dict_data` VALUES (8, 1, '正常', '1', 'infra_job_status', 0, 'success', '', '正常状态', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 19:33:38', b'0'); INSERT INTO `system_dict_data` VALUES (9, 2, '暂停', '2', 'infra_job_status', 0, 'danger', '', '停用状态', 'admin', '2021-01-05 17:03:48', '1', '2022-02-16 19:33:45', b'0'); @@ -2699,7 +3069,7 @@ CREATE TABLE `system_error_code` ( `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=5448 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='错误码表'; +) ENGINE=InnoDB AUTO_INCREMENT=5449 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='错误码表'; -- ---------------------------- -- Records of system_error_code @@ -2871,34 +3241,11 @@ INSERT INTO `system_error_code` VALUES (5440, 1, 'yudao-admin-server', 100201700 INSERT INTO `system_error_code` VALUES (5441, 1, 'yudao-admin-server', 1002018000, '社交授权失败,原因是:{}', '', NULL, '2022-03-10 23:59:14', NULL, '2022-03-10 23:59:14', b'0'); INSERT INTO `system_error_code` VALUES (5442, 1, 'yudao-admin-server', 1002018001, '社交解绑失败,非当前用户绑定', '', NULL, '2022-03-10 23:59:14', NULL, '2022-03-10 23:59:14', b'0'); INSERT INTO `system_error_code` VALUES (5443, 1, 'yudao-admin-server', 1002018002, '社交授权失败,找不到对应的用户', '', NULL, '2022-03-10 23:59:14', NULL, '2022-03-10 23:59:14', b'0'); -INSERT INTO `system_error_code` VALUES (5444, 1, 'yudao-admin-server', 1002019000, '用户组不存在', '', NULL, '2022-03-12 16:03:50', NULL, '2022-03-12 16:03:50', b'0'); +INSERT INTO `system_error_code` VALUES (5444, 1, 'yudao-admin-server', 1002019000, '系统敏感词在所有标签中都不存在', '', NULL, '2022-03-12 16:03:50', NULL, '2022-04-08 00:51:30', b'0'); INSERT INTO `system_error_code` VALUES (5445, 1, 'yudao-admin-server', 1001005000, '测试示例不存在', '', NULL, '2022-03-15 19:25:23', NULL, '2022-03-15 19:25:23', b'0'); INSERT INTO `system_error_code` VALUES (5446, 1, 'yudao-admin-server', 1001006000, '文件配置不存在', '', NULL, '2022-03-15 19:25:23', NULL, '2022-03-15 19:25:23', b'0'); INSERT INTO `system_error_code` VALUES (5447, 1, 'yudao-admin-server', 1001006001, '该文件配置不允许删除,原因:它是主配置,删除会导致无法上传文件', '', NULL, '2022-03-15 23:43:35', NULL, '2022-03-15 23:43:35', b'0'); -COMMIT; - --- ---------------------------- --- Table structure for system_group --- ---------------------------- -DROP TABLE IF EXISTS `system_group`; -CREATE TABLE `system_group` ( - `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', - `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '名字', - `description` varchar(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '描述', - `status` tinyint NOT NULL COMMENT '状态', - `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', - `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', - PRIMARY KEY (`id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户组'; - --- ---------------------------- --- Records of system_group --- ---------------------------- -BEGIN; +INSERT INTO `system_error_code` VALUES (5448, 1, 'yudao-admin-server', 1002019001, '系统敏感词已在标签中存在', '', NULL, '2022-04-08 00:51:30', NULL, '2022-04-08 00:51:30', b'0'); COMMIT; -- ---------------------------- @@ -2922,7 +3269,7 @@ CREATE TABLE `system_login_log` ( `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', PRIMARY KEY (`id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=1055 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统访问记录'; +) ENGINE=InnoDB AUTO_INCREMENT=1155 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统访问记录'; -- ---------------------------- -- Records of system_login_log @@ -3092,6 +3439,106 @@ INSERT INTO `system_login_log` VALUES (1051, 200, '', 104, 2, 'test', 0, '127.0. INSERT INTO `system_login_log` VALUES (1052, 100, '', 104, 2, 'test', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-19 21:46:19', NULL, '2022-03-19 21:46:19', b'0', 1); INSERT INTO `system_login_log` VALUES (1053, 200, '', 104, 2, 'test', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-19 22:13:06', NULL, '2022-03-19 22:13:06', b'0', 1); INSERT INTO `system_login_log` VALUES (1054, 100, '', 114, 2, 'hrmgr', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-19 22:15:43', NULL, '2022-03-19 22:15:43', b'0', 1); +INSERT INTO `system_login_log` VALUES (1055, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-20 21:50:09', NULL, '2022-03-20 21:50:09', b'0', 1); +INSERT INTO `system_login_log` VALUES (1056, 200, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-20 21:51:32', NULL, '2022-03-20 21:51:32', b'0', 1); +INSERT INTO `system_login_log` VALUES (1057, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-20 21:51:39', NULL, '2022-03-20 21:51:39', b'0', 1); +INSERT INTO `system_login_log` VALUES (1058, 200, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-20 21:54:36', NULL, '2022-03-20 21:54:36', b'0', 1); +INSERT INTO `system_login_log` VALUES (1059, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-20 21:54:42', NULL, '2022-03-20 21:54:42', b'0', 1); +INSERT INTO `system_login_log` VALUES (1060, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-20 22:03:38', NULL, '2022-03-20 22:03:38', b'0', 1); +INSERT INTO `system_login_log` VALUES (1061, 200, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-20 23:45:22', NULL, '2022-03-20 23:45:22', b'0', 1); +INSERT INTO `system_login_log` VALUES (1062, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-20 23:45:27', NULL, '2022-03-20 23:45:27', b'0', 1); +INSERT INTO `system_login_log` VALUES (1063, 200, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-20 23:45:32', NULL, '2022-03-20 23:45:32', b'0', 1); +INSERT INTO `system_login_log` VALUES (1064, 100, '', 1, 2, 'admin', 30, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-21 00:10:00', NULL, '2022-03-21 00:10:00', b'0', 1); +INSERT INTO `system_login_log` VALUES (1065, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-21 00:10:05', NULL, '2022-03-21 00:10:05', b'0', 1); +INSERT INTO `system_login_log` VALUES (1066, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-03-23 12:29:14', NULL, '2022-03-23 12:29:14', b'0', 1); +INSERT INTO `system_login_log` VALUES (1067, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-03-23 12:29:18', NULL, '2022-03-23 12:29:18', b'0', 1); +INSERT INTO `system_login_log` VALUES (1068, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-03-23 22:35:43', NULL, '2022-03-23 22:35:43', b'0', 1); +INSERT INTO `system_login_log` VALUES (1069, 100, '', 0, 2, 'admin', 10, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-03-23 22:53:23', NULL, '2022-03-23 22:53:23', b'0', 121); +INSERT INTO `system_login_log` VALUES (1070, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-03-23 22:57:07', NULL, '2022-03-23 22:57:07', b'0', 1); +INSERT INTO `system_login_log` VALUES (1071, 100, '', 1, 2, 'admin', 30, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-03-23 23:30:13', NULL, '2022-03-23 23:30:13', b'0', 1); +INSERT INTO `system_login_log` VALUES (1072, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-03-23 23:30:34', NULL, '2022-03-23 23:30:34', b'0', 1); +INSERT INTO `system_login_log` VALUES (1073, 100, '', 1, 2, 'admin', 31, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-03-23 23:30:42', NULL, '2022-03-23 23:30:42', b'0', 1); +INSERT INTO `system_login_log` VALUES (1074, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-03-23 23:30:49', NULL, '2022-03-23 23:30:49', b'0', 1); +INSERT INTO `system_login_log` VALUES (1075, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-03-23 23:33:02', NULL, '2022-03-23 23:33:02', b'0', 1); +INSERT INTO `system_login_log` VALUES (1076, 100, '', 0, 2, 'zhijiantianya', 10, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-03-24 20:23:57', NULL, '2022-03-24 20:23:57', b'0', 1); +INSERT INTO `system_login_log` VALUES (1077, 100, '', 1, 2, 'admin', 31, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-03-24 20:24:05', NULL, '2022-03-24 20:24:05', b'0', 1); +INSERT INTO `system_login_log` VALUES (1078, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-03-24 20:24:10', NULL, '2022-03-24 20:24:10', b'0', 1); +INSERT INTO `system_login_log` VALUES (1079, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-03-26 19:36:22', NULL, '2022-03-26 19:36:22', b'0', 1); +INSERT INTO `system_login_log` VALUES (1080, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-03-26 20:06:48', NULL, '2022-03-26 20:06:48', b'0', 1); +INSERT INTO `system_login_log` VALUES (1081, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-03-26 23:58:21', NULL, '2022-03-26 23:58:21', b'0', 1); +INSERT INTO `system_login_log` VALUES (1082, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-03-29 00:12:30', NULL, '2022-03-29 00:12:30', b'0', 1); +INSERT INTO `system_login_log` VALUES (1083, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-03-30 20:29:14', NULL, '2022-03-30 20:29:14', b'0', 1); +INSERT INTO `system_login_log` VALUES (1084, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-03-31 20:46:52', NULL, '2022-03-31 20:46:52', b'0', 1); +INSERT INTO `system_login_log` VALUES (1085, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-03-31 20:53:05', NULL, '2022-03-31 20:53:05', b'0', 1); +INSERT INTO `system_login_log` VALUES (1086, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-01 21:33:52', NULL, '2022-04-01 21:33:52', b'0', 1); +INSERT INTO `system_login_log` VALUES (1087, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-02 22:03:16', NULL, '2022-04-02 22:03:16', b'0', 1); +INSERT INTO `system_login_log` VALUES (1088, 100, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-02 22:04:37', NULL, '2022-04-02 22:04:37', b'0', 1); +INSERT INTO `system_login_log` VALUES (1089, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-02 23:05:50', NULL, '2022-04-02 23:05:50', b'0', 1); +INSERT INTO `system_login_log` VALUES (1090, 102, '', 1, 2, 'admin', 0, '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', NULL, '2022-04-03 09:45:20', NULL, '2022-04-03 09:45:20', b'0', 1); +INSERT INTO `system_login_log` VALUES (1091, 102, '', 1, 2, 'admin', 0, '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', NULL, '2022-04-03 09:45:54', NULL, '2022-04-03 09:45:54', b'0', 1); +INSERT INTO `system_login_log` VALUES (1092, 102, '', 1, 2, 'admin', 0, '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', NULL, '2022-04-03 09:50:26', NULL, '2022-04-03 09:50:26', b'0', 1); +INSERT INTO `system_login_log` VALUES (1093, 102, '', 1, 2, 'admin', 0, '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', NULL, '2022-04-03 09:53:25', NULL, '2022-04-03 09:53:25', b'0', 1); +INSERT INTO `system_login_log` VALUES (1094, 102, '', 1, 2, 'admin', 0, '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', NULL, '2022-04-03 09:58:29', NULL, '2022-04-03 09:58:29', b'0', 1); +INSERT INTO `system_login_log` VALUES (1095, 102, '', 1, 2, 'admin', 0, '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', NULL, '2022-04-03 09:59:32', NULL, '2022-04-03 09:59:32', b'0', 1); +INSERT INTO `system_login_log` VALUES (1096, 102, '', 1, 2, 'admin', 0, '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', NULL, '2022-04-03 10:00:12', NULL, '2022-04-03 10:00:12', b'0', 1); +INSERT INTO `system_login_log` VALUES (1097, 102, '', 1, 2, 'admin', 0, '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', NULL, '2022-04-03 10:01:10', NULL, '2022-04-03 10:01:10', b'0', 1); +INSERT INTO `system_login_log` VALUES (1098, 102, '', 1, 2, 'admin', 0, '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', NULL, '2022-04-03 10:01:21', NULL, '2022-04-03 10:01:21', b'0', 1); +INSERT INTO `system_login_log` VALUES (1099, 102, '', 1, 2, 'admin', 0, '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', NULL, '2022-04-03 10:15:43', NULL, '2022-04-03 10:15:43', b'0', 1); +INSERT INTO `system_login_log` VALUES (1100, 102, '', 1, 2, 'admin', 0, '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', NULL, '2022-04-03 10:16:05', NULL, '2022-04-03 10:16:05', b'0', 1); +INSERT INTO `system_login_log` VALUES (1101, 102, '', 1, 2, 'admin', 0, '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', NULL, '2022-04-03 10:16:31', NULL, '2022-04-03 10:16:31', b'0', 1); +INSERT INTO `system_login_log` VALUES (1102, 102, '', 1, 2, 'admin', 0, '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', NULL, '2022-04-03 10:16:34', NULL, '2022-04-03 10:16:34', b'0', 1); +INSERT INTO `system_login_log` VALUES (1103, 102, '', 1, 2, 'admin', 0, '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', NULL, '2022-04-03 13:48:59', NULL, '2022-04-03 13:48:59', b'0', 1); +INSERT INTO `system_login_log` VALUES (1104, 102, '', 1, 2, 'admin', 0, '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', NULL, '2022-04-03 13:50:43', NULL, '2022-04-03 13:50:43', b'0', 1); +INSERT INTO `system_login_log` VALUES (1105, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-03 20:35:06', NULL, '2022-04-03 20:35:06', b'0', 1); +INSERT INTO `system_login_log` VALUES (1106, 201, '', 113, 2, 'aoteman', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-04-03 22:21:24', NULL, '2022-04-03 22:21:24', b'0', 122); +INSERT INTO `system_login_log` VALUES (1107, 201, '', 110, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36', NULL, '2022-04-03 22:21:24', NULL, '2022-04-03 22:21:24', b'0', 121); +INSERT INTO `system_login_log` VALUES (1108, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-04-03 22:21:24', NULL, '2022-04-03 22:21:24', b'0', 1); +INSERT INTO `system_login_log` VALUES (1109, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-04-03 22:21:24', NULL, '2022-04-03 22:21:24', b'0', 1); +INSERT INTO `system_login_log` VALUES (1110, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-04-03 22:21:24', NULL, '2022-04-03 22:21:24', b'0', 1); +INSERT INTO `system_login_log` VALUES (1111, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-03 22:21:24', NULL, '2022-04-03 22:21:24', b'0', 1); +INSERT INTO `system_login_log` VALUES (1112, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-04-03 22:21:24', NULL, '2022-04-03 22:21:24', b'0', 1); +INSERT INTO `system_login_log` VALUES (1113, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-04-03 22:21:24', NULL, '2022-04-03 22:21:24', b'0', 1); +INSERT INTO `system_login_log` VALUES (1114, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-04-03 22:21:24', NULL, '2022-04-03 22:21:24', b'0', 1); +INSERT INTO `system_login_log` VALUES (1115, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-04-03 22:21:24', NULL, '2022-04-03 22:21:24', b'0', 1); +INSERT INTO `system_login_log` VALUES (1116, 201, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-03 22:21:24', NULL, '2022-04-03 22:21:24', b'0', 1); +INSERT INTO `system_login_log` VALUES (1117, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-04-03 22:21:24', NULL, '2022-04-03 22:21:24', b'0', 1); +INSERT INTO `system_login_log` VALUES (1118, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-04-03 22:21:24', NULL, '2022-04-03 22:21:24', b'0', 1); +INSERT INTO `system_login_log` VALUES (1119, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36', NULL, '2022-04-03 22:21:24', NULL, '2022-04-03 22:21:24', b'0', 1); +INSERT INTO `system_login_log` VALUES (1120, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-04-03 22:21:24', NULL, '2022-04-03 22:21:24', b'0', 1); +INSERT INTO `system_login_log` VALUES (1121, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-04-03 22:21:24', NULL, '2022-04-03 22:21:24', b'0', 1); +INSERT INTO `system_login_log` VALUES (1122, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-04-03 22:21:24', NULL, '2022-04-03 22:21:24', b'0', 1); +INSERT INTO `system_login_log` VALUES (1123, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-04-03 22:21:24', NULL, '2022-04-03 22:21:24', b'0', 1); +INSERT INTO `system_login_log` VALUES (1124, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-03 22:21:24', NULL, '2022-04-03 22:21:24', b'0', 1); +INSERT INTO `system_login_log` VALUES (1125, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-04-03 22:21:24', NULL, '2022-04-03 22:21:24', b'0', 1); +INSERT INTO `system_login_log` VALUES (1126, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36', NULL, '2022-04-03 22:21:24', NULL, '2022-04-03 22:21:24', b'0', 1); +INSERT INTO `system_login_log` VALUES (1127, 201, '', 1, 2, 'admin', 0, '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-03 22:21:25', NULL, '2022-04-03 22:21:25', b'0', 1); +INSERT INTO `system_login_log` VALUES (1128, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-04-03 22:21:25', NULL, '2022-04-03 22:21:25', b'0', 1); +INSERT INTO `system_login_log` VALUES (1129, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-03 22:21:25', NULL, '2022-04-03 22:21:25', b'0', 1); +INSERT INTO `system_login_log` VALUES (1130, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-04-03 22:21:25', NULL, '2022-04-03 22:21:25', b'0', 1); +INSERT INTO `system_login_log` VALUES (1131, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-04-03 22:21:25', NULL, '2022-04-03 22:21:25', b'0', 1); +INSERT INTO `system_login_log` VALUES (1132, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-04-03 22:21:25', NULL, '2022-04-03 22:21:25', b'0', 1); +INSERT INTO `system_login_log` VALUES (1133, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-03 22:21:25', NULL, '2022-04-03 22:21:25', b'0', 1); +INSERT INTO `system_login_log` VALUES (1134, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-03 22:21:25', NULL, '2022-04-03 22:21:25', b'0', 1); +INSERT INTO `system_login_log` VALUES (1135, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-04-03 22:21:25', NULL, '2022-04-03 22:21:25', b'0', 1); +INSERT INTO `system_login_log` VALUES (1136, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-04-03 22:21:25', NULL, '2022-04-03 22:21:25', b'0', 1); +INSERT INTO `system_login_log` VALUES (1137, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36', NULL, '2022-04-03 22:21:25', NULL, '2022-04-03 22:21:25', b'0', 1); +INSERT INTO `system_login_log` VALUES (1138, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-04-03 22:21:25', NULL, '2022-04-03 22:21:25', b'0', 1); +INSERT INTO `system_login_log` VALUES (1139, 201, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-04-03 22:21:25', NULL, '2022-04-03 22:21:25', b'0', 1); +INSERT INTO `system_login_log` VALUES (1140, 201, '', 104, 2, 'test', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36', NULL, '2022-04-03 22:21:25', NULL, '2022-04-03 22:21:25', b'0', 1); +INSERT INTO `system_login_log` VALUES (1141, 201, '', 114, 2, 'hrmgr', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-04-03 22:21:25', NULL, '2022-04-03 22:21:25', b'0', 1); +INSERT INTO `system_login_log` VALUES (1142, 200, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-04 00:04:42', NULL, '2022-04-04 00:04:42', b'0', 1); +INSERT INTO `system_login_log` VALUES (1143, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-04 00:07:21', NULL, '2022-04-04 00:07:21', b'0', 1); +INSERT INTO `system_login_log` VALUES (1144, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-07 00:15:10', NULL, '2022-04-07 00:15:10', b'0', 1); +INSERT INTO `system_login_log` VALUES (1145, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-07 00:16:10', NULL, '2022-04-07 00:16:10', b'0', 1); +INSERT INTO `system_login_log` VALUES (1146, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-08 00:52:17', NULL, '2022-04-08 00:52:17', b'0', 1); +INSERT INTO `system_login_log` VALUES (1147, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-08 19:24:13', NULL, '2022-04-08 19:24:13', b'0', 1); +INSERT INTO `system_login_log` VALUES (1148, 100, '', 1, 2, 'admin', 0, '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-09 02:06:37', NULL, '2022-04-09 02:06:37', b'0', 1); +INSERT INTO `system_login_log` VALUES (1149, 102, '', 1, 2, 'admin', 0, '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', NULL, '2022-04-09 10:20:14', NULL, '2022-04-09 10:20:14', b'0', 1); +INSERT INTO `system_login_log` VALUES (1150, 102, '', 1, 2, 'admin', 0, '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', NULL, '2022-04-09 10:20:23', NULL, '2022-04-09 10:20:23', b'0', 1); +INSERT INTO `system_login_log` VALUES (1151, 102, '', 1, 2, 'admin', 0, '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', NULL, '2022-04-09 10:20:36', NULL, '2022-04-09 10:20:36', b'0', 1); +INSERT INTO `system_login_log` VALUES (1152, 102, '', 1, 2, 'admin', 0, '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', NULL, '2022-04-09 10:20:45', NULL, '2022-04-09 10:20:45', b'0', 1); +INSERT INTO `system_login_log` VALUES (1153, 102, '', 1, 2, 'admin', 0, '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', NULL, '2022-04-09 10:21:04', NULL, '2022-04-09 10:21:04', b'0', 1); +INSERT INTO `system_login_log` VALUES (1154, 102, '', 1, 2, 'admin', 0, '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', NULL, '2022-04-09 10:21:19', NULL, '2022-04-09 10:21:19', b'0', 1); COMMIT; -- ---------------------------- @@ -3115,7 +3562,7 @@ CREATE TABLE `system_menu` ( `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=1244 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='菜单权限表'; +) ENGINE=InnoDB AUTO_INCREMENT=1253 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='菜单权限表'; -- ---------------------------- -- Records of system_menu @@ -3138,7 +3585,7 @@ INSERT INTO `system_menu` VALUES (108, '审计日志', '', 1, 9, 1, 'log', 'log' INSERT INTO `system_menu` VALUES (109, '在线用户', 'system:user-session:list', 2, 10, 1, 'user-session', 'online', 'system/session/index', 0, 'admin', '2021-01-05 17:03:48', '', '2021-01-26 08:21:20', b'0'); INSERT INTO `system_menu` VALUES (110, '定时任务', '', 2, 12, 2, 'job', 'job', 'infra/job/index', 0, 'admin', '2021-01-05 17:03:48', '1', '2022-03-11 00:31:08', b'0'); INSERT INTO `system_menu` VALUES (111, 'MySQL 监控', '', 2, 9, 2, 'druid', 'druid', 'infra/druid/index', 0, 'admin', '2021-01-05 17:03:48', '1', '2022-03-11 00:30:47', b'0'); -INSERT INTO `system_menu` VALUES (112, 'Java 监控', '', 2, 11, 2, 'admin-server', 'server', 'infra/server', 0, 'admin', '2021-01-05 17:03:48', '1', '2022-03-11 00:31:01', b'0'); +INSERT INTO `system_menu` VALUES (112, 'Java 监控', '', 2, 11, 2, 'admin-server', 'server', 'infra/server/index', 0, 'admin', '2021-01-05 17:03:48', '1', '2022-03-27 00:06:49', b'0'); INSERT INTO `system_menu` VALUES (113, 'Redis 监控', '', 2, 10, 2, 'redis', 'redis', 'infra/redis/index', 0, 'admin', '2021-01-05 17:03:48', '1', '2022-03-11 00:30:52', b'0'); INSERT INTO `system_menu` VALUES (114, '表单构建', 'infra:build:list', 2, 2, 2, 'build', 'build', 'infra/build/index', 0, 'admin', '2021-01-05 17:03:48', '1', '2022-03-11 00:29:59', b'0'); INSERT INTO `system_menu` VALUES (115, '代码生成', 'infra:codegen:query', 2, 1, 2, 'codegen', 'code', 'infra/codegen/index', 0, 'admin', '2021-01-05 17:03:48', '1', '2022-03-11 00:29:33', b'0'); @@ -3215,7 +3662,7 @@ INSERT INTO `system_menu` VALUES (1073, '测试示例表删除', 'infra:test-dem INSERT INTO `system_menu` VALUES (1074, '测试示例表导出', 'infra:test-demo:export', 3, 4, 1070, '', '', '', 0, '', '2021-02-06 12:42:49', '1', '2022-03-11 00:27:17', b'0'); INSERT INTO `system_menu` VALUES (1075, '任务触发', 'infra:job:trigger', 3, 8, 110, '', '', '', 0, '', '2021-02-07 13:03:10', '', '2021-02-07 13:03:10', b'0'); INSERT INTO `system_menu` VALUES (1076, '数据库文档', '', 2, 4, 2, 'db-doc', 'table', 'infra/dbDoc/index', 0, '', '2021-02-08 01:41:47', '1', '2022-03-11 00:30:06', b'0'); -INSERT INTO `system_menu` VALUES (1077, '链路追踪', '', 2, 13, 2, 'skywalking', 'eye-open', 'infra/skywalking', 0, '', '2021-02-08 20:41:31', '1', '2022-03-11 00:31:12', b'0'); +INSERT INTO `system_menu` VALUES (1077, '链路追踪', '', 2, 13, 2, 'skywalking', 'eye-open', 'infra/skywalking/index', 0, '', '2021-02-08 20:41:31', '1', '2022-03-27 00:06:56', b'0'); INSERT INTO `system_menu` VALUES (1078, '访问日志', '', 2, 1, 1083, 'api-access-log', 'log', 'infra/apiAccessLog/index', 0, '', '2021-02-26 01:32:59', '1', '2021-03-10 01:28:09', b'0'); INSERT INTO `system_menu` VALUES (1079, 'API 访问日志表创建', 'system:api-access-log:create', 3, 1, 1078, '', '', '', 1, '', '2021-02-26 01:32:59', '', '2021-02-26 02:21:00', b'1'); INSERT INTO `system_menu` VALUES (1080, 'API 访问日志表更新', 'system:api-access-log:update', 3, 2, 1078, '', '', '', 1, '', '2021-02-26 01:32:59', '', '2021-02-26 02:21:08', b'1'); @@ -3288,11 +3735,11 @@ INSERT INTO `system_menu` VALUES (1147, '支付应用信息更新', 'pay:app:upd INSERT INTO `system_menu` VALUES (1148, '支付应用信息删除', 'pay:app:delete', 3, 4, 1144, '', '', '', 0, '', '2021-12-25 08:26:31', '', '2021-12-25 08:47:46', b'1'); INSERT INTO `system_menu` VALUES (1149, '支付应用信息导出', 'pay:app:export', 3, 5, 1144, '', '', '', 0, '', '2021-12-25 08:26:31', '', '2021-12-25 08:47:43', b'1'); INSERT INTO `system_menu` VALUES (1150, '秘钥解析', 'pay:channel:parsing', 3, 6, 1129, '', '', '', 0, '1', '2021-11-08 15:15:47', '1', '2021-11-08 15:15:47', b'0'); -INSERT INTO `system_menu` VALUES (1156, '支付订单查询', 'pay:order:query', 3, 1, 1155, '', '', '', 0, '', '2021-12-25 08:29:01', '', '2021-12-25 08:29:01', b'0'); -INSERT INTO `system_menu` VALUES (1157, '支付订单创建', 'pay:order:create', 3, 2, 1155, '', '', '', 0, '', '2021-12-25 08:29:01', '', '2021-12-25 08:29:01', b'0'); -INSERT INTO `system_menu` VALUES (1158, '支付订单更新', 'pay:order:update', 3, 3, 1155, '', '', '', 0, '', '2021-12-25 08:29:01', '', '2021-12-25 08:29:01', b'0'); -INSERT INTO `system_menu` VALUES (1159, '支付订单删除', 'pay:order:delete', 3, 4, 1155, '', '', '', 0, '', '2021-12-25 08:29:01', '', '2021-12-25 08:29:01', b'0'); -INSERT INTO `system_menu` VALUES (1160, '支付订单导出', 'pay:order:export', 3, 5, 1155, '', '', '', 0, '', '2021-12-25 08:29:01', '', '2021-12-25 08:29:01', b'0'); +INSERT INTO `system_menu` VALUES (1156, '支付订单查询', 'pay:order:query', 3, 1, 1155, '', '', '', 0, '', '2021-12-25 08:29:01', '', '2022-03-23 16:45:18', b'1'); +INSERT INTO `system_menu` VALUES (1157, '支付订单创建', 'pay:order:create', 3, 2, 1155, '', '', '', 0, '', '2021-12-25 08:29:01', '', '2022-03-23 16:45:39', b'1'); +INSERT INTO `system_menu` VALUES (1158, '支付订单更新', 'pay:order:update', 3, 3, 1155, '', '', '', 0, '', '2021-12-25 08:29:01', '', '2022-03-23 16:45:50', b'1'); +INSERT INTO `system_menu` VALUES (1159, '支付订单删除', 'pay:order:delete', 3, 4, 1155, '', '', '', 0, '', '2021-12-25 08:29:01', '', '2022-03-23 16:46:03', b'1'); +INSERT INTO `system_menu` VALUES (1160, '支付订单导出', 'pay:order:export', 3, 5, 1155, '', '', '', 0, '', '2021-12-25 08:29:01', '', '2022-03-23 16:46:18', b'1'); INSERT INTO `system_menu` VALUES (1161, '退款订单', '', 2, 3, 1117, 'refund', 'order', 'pay/refund/index', 0, '', '2021-12-25 08:29:07', '1', '2021-12-25 19:30:22', b'0'); INSERT INTO `system_menu` VALUES (1162, '退款订单查询', 'pay:refund:query', 3, 1, 1161, '', '', '', 0, '', '2021-12-25 08:29:07', '', '2021-12-25 08:29:07', b'0'); INSERT INTO `system_menu` VALUES (1163, '退款订单创建', 'pay:refund:create', 3, 2, 1161, '', '', '', 0, '', '2021-12-25 08:29:07', '', '2021-12-25 08:29:07', b'0'); @@ -3360,6 +3807,15 @@ INSERT INTO `system_menu` VALUES (1240, '文件配置更新', 'infra:file-config INSERT INTO `system_menu` VALUES (1241, '文件配置删除', 'infra:file-config:delete', 3, 4, 1237, '', '', '', 0, '', '2022-03-15 14:35:28', '', '2022-03-15 14:35:28', b'0'); INSERT INTO `system_menu` VALUES (1242, '文件配置导出', 'infra:file-config:export', 3, 5, 1237, '', '', '', 0, '', '2022-03-15 14:35:28', '', '2022-03-15 14:35:28', b'0'); INSERT INTO `system_menu` VALUES (1243, '文件管理', '', 2, 5, 2, 'file', 'download', NULL, 0, '1', '2022-03-16 23:47:40', '1', '2022-03-16 23:48:27', b'0'); +INSERT INTO `system_menu` VALUES (1244, '1', '', 2, 2, 0, '/3', 'checkbox', NULL, 0, '1', '2022-03-24 22:25:24', '1', '2022-03-24 14:31:21', b'1'); +INSERT INTO `system_menu` VALUES (1245, '2', '3', 2, 3, 1244, '2', 'button', '111', 0, '1', '2022-03-24 22:29:38', '1', '2022-03-24 14:31:18', b'1'); +INSERT INTO `system_menu` VALUES (1246, '3', '5', 3, 4, 1245, '', '', '', 0, '1', '2022-03-24 22:30:48', '1', '2022-03-24 14:30:53', b'1'); +INSERT INTO `system_menu` VALUES (1247, '敏感词管理', '', 2, 13, 1, 'sensitive-word', 'education', 'system/sensitiveWord/index', 0, '', '2022-04-07 16:55:03', '1', '2022-04-08 19:25:09', b'0'); +INSERT INTO `system_menu` VALUES (1248, '敏感词查询', 'system:sensitive-word:query', 3, 1, 1247, '', '', '', 0, '', '2022-04-07 16:55:03', '', '2022-04-07 16:55:03', b'0'); +INSERT INTO `system_menu` VALUES (1249, '敏感词创建', 'system:sensitive-word:create', 3, 2, 1247, '', '', '', 0, '', '2022-04-07 16:55:03', '', '2022-04-07 16:55:03', b'0'); +INSERT INTO `system_menu` VALUES (1250, '敏感词更新', 'system:sensitive-word:update', 3, 3, 1247, '', '', '', 0, '', '2022-04-07 16:55:03', '', '2022-04-07 16:55:03', b'0'); +INSERT INTO `system_menu` VALUES (1251, '敏感词删除', 'system:sensitive-word:delete', 3, 4, 1247, '', '', '', 0, '', '2022-04-07 16:55:03', '', '2022-04-07 16:55:03', b'0'); +INSERT INTO `system_menu` VALUES (1252, '敏感词导出', 'system:sensitive-word:export', 3, 5, 1247, '', '', '', 0, '', '2022-04-07 16:55:03', '', '2022-04-07 16:55:03', b'0'); COMMIT; -- ---------------------------- @@ -3423,7 +3879,7 @@ CREATE TABLE `system_operate_log` ( `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', PRIMARY KEY (`id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=1619 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='操作日志记录'; +) ENGINE=InnoDB AUTO_INCREMENT=1739 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='操作日志记录'; -- ---------------------------- -- Records of system_operate_log @@ -3899,6 +4355,126 @@ INSERT INTO `system_operate_log` VALUES (1615, '', 1, 2, '管理后台 - 流程 INSERT INTO `system_operate_log` VALUES (1616, '', 1, 2, '管理后台 - 流程模型', '部署模型', 2, '', '', 'POST', '/admin-api/bpm/model/deploy', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.bpm.controller.admin.definition.BpmModelController.deployModel(String)', '{\"id\":\"18348550-a79a-11ec-bf87-8e557beca7ad\"}', '2022-03-20 00:17:30', 16, 500, 'ServiceException: 部署流程失败,原因:流程表单未配置,请点击【修改流程】按钮进行配置', 'null', NULL, '2022-03-20 00:17:30', NULL, '2022-03-20 00:17:30', b'0', 1); INSERT INTO `system_operate_log` VALUES (1617, '', 1, 2, '管理后台 - 参数配置', '修改参数配置', 3, '', '', 'PUT', '/admin-api/infra/config/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.config.ConfigController.updateConfig(ConfigUpdateReqVO)', '{\"reqVO\":{\"group\":\"ui\",\"name\":\"主框架页-默认皮肤样式名称\",\"value\":\"skin-blue\",\"sensitive\":false,\"remark\":\"蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow\",\"id\":1}}', '2022-03-20 02:25:48', 46, 0, '', 'true', NULL, '2022-03-20 02:25:49', NULL, '2022-03-20 02:25:49', b'0', 1); INSERT INTO `system_operate_log` VALUES (1618, '', 1, 2, '管理后台 - 参数配置', '修改参数配置', 3, '', '', 'PUT', '/admin-api/infra/config/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.config.ConfigController.updateConfig(ConfigUpdateReqVO)', '{\"reqVO\":{\"group\":\"biz\",\"name\":\"用户管理-账号初始密码\",\"value\":\"123456\",\"sensitive\":false,\"remark\":\"初始化密码 123456\",\"id\":2}}', '2022-03-20 02:25:51', 36, 0, '', 'true', NULL, '2022-03-20 02:25:51', NULL, '2022-03-20 02:25:51', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1619, '', 1, 2, '管理后台 - 用户个人中心', '上传用户个人头像', 3, '', '', 'PUT', '/admin-api/system/user/profile/update-avatar', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.user.UserProfileController.updateUserAvatar(MultipartFile)', '{\"file\":\"[ignore]\"}', '2022-03-20 22:04:18', 2059, 0, '', '\"http://test.yudao.iocoder.cn/c6b0326f-1861-4c21-bf56-c2780481bfb9\"', NULL, '2022-03-20 22:04:20', NULL, '2022-03-20 22:04:20', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1620, '', 1, 2, '管理后台 - 用户个人中心', '上传用户个人头像', 3, '', '', 'PUT', '/admin-api/system/user/profile/update-avatar', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.user.UserProfileController.updateUserAvatar(MultipartFile)', '{\"file\":\"[ignore]\"}', '2022-03-20 22:04:20', 250, 0, '', '\"http://test.yudao.iocoder.cn/48934f2f-92d4-4250-b917-d10d2b262c6a\"', NULL, '2022-03-20 22:04:20', NULL, '2022-03-20 22:04:20', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1621, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.file.FileController.uploadFile(MultipartFile,String)', '{\"path\":\"cbd9cf5206a94acba7065342f65a3da0.jpg\",\"file\":\"[ignore]\"}', '2022-03-20 22:07:42', 376, 0, '', '\"http://test.yudao.iocoder.cn/cbd9cf5206a94acba7065342f65a3da0.jpg\"', NULL, '2022-03-20 22:07:42', NULL, '2022-03-20 22:07:42', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1622, '', 1, 2, '管理后台 - 菜单', '创建菜单', 2, '', '', 'POST', '/admin-api/system/menu/create', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.permission.MenuController.createMenu(MenuCreateReqVO)', '{\"reqVO\":{\"name\":\"1\",\"permission\":null,\"type\":1,\"sort\":2,\"parentId\":0,\"path\":\"/3\",\"icon\":\"checkbox\",\"component\":null,\"status\":0}}', '2022-03-24 22:25:24', 43, 0, '', '1244', NULL, '2022-03-24 22:25:24', NULL, '2022-03-24 22:25:24', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1623, '', 1, 2, '管理后台 - 菜单', '创建菜单', 2, '', '', 'POST', '/admin-api/system/menu/create', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.permission.MenuController.createMenu(MenuCreateReqVO)', '{\"reqVO\":{\"name\":\"2\",\"permission\":\"3\",\"type\":2,\"sort\":3,\"parentId\":1244,\"path\":\"2\",\"icon\":\"button\",\"component\":\"111\",\"status\":0}}', '2022-03-24 22:29:37', 42, 0, '', '1245', NULL, '2022-03-24 22:29:38', NULL, '2022-03-24 22:29:38', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1624, '', 1, 2, '管理后台 - 菜单', '创建菜单', 2, '', '', 'POST', '/admin-api/system/menu/create', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.permission.MenuController.createMenu(MenuCreateReqVO)', '{\"reqVO\":{\"name\":\"3\",\"permission\":\"5\",\"type\":3,\"sort\":4,\"parentId\":1245,\"path\":null,\"icon\":null,\"component\":null,\"status\":0}}', '2022-03-24 22:30:48', 33, 0, '', '1246', NULL, '2022-03-24 22:30:48', NULL, '2022-03-24 22:30:48', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1625, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1246}', '2022-03-24 22:30:54', 77, 0, '', 'true', NULL, '2022-03-24 22:30:54', NULL, '2022-03-24 22:30:54', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1626, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"1\",\"permission\":\"\",\"type\":2,\"sort\":2,\"parentId\":0,\"path\":\"/3\",\"icon\":\"checkbox\",\"component\":null,\"status\":0,\"id\":1244}}', '2022-03-24 22:31:12', 33, 0, '', 'true', NULL, '2022-03-24 22:31:12', NULL, '2022-03-24 22:31:12', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1627, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1245}', '2022-03-24 22:31:18', 52, 0, '', 'true', NULL, '2022-03-24 22:31:18', NULL, '2022-03-24 22:31:18', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1628, '', 1, 2, '管理后台 - 菜单', '删除菜单', 4, '', '', 'DELETE', '/admin-api/system/menu/delete', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.permission.MenuController.deleteMenu(Long)', '{\"id\":1244}', '2022-03-24 22:31:21', 51, 0, '', 'true', NULL, '2022-03-24 22:31:21', NULL, '2022-03-24 22:31:21', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1629, '', 1, 2, '管理后台 - 操作日志', '导出操作日志', 5, '', '', 'GET', '/admin-api/system/operate-log/export', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'void cn.iocoder.yudao.module.system.controller.admin.logger.OperateLogController.exportOperateLog(HttpServletResponse,OperateLogExportReqVO)', '{\"reqVO\":{\"module\":null,\"userNickname\":null,\"type\":null,\"success\":null,\"beginTime\":null,\"endTime\":null},\"response\":\"[ignore]\"}', '2022-03-26 20:31:43', 985, 500, 'InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not \"opens java.lang\" to unnamed module @59402b8f', 'null', NULL, '2022-03-26 20:31:44', NULL, '2022-03-26 20:31:44', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1630, '', 1, 2, '管理后台 - 操作日志', '导出操作日志', 5, '', '', 'GET', '/admin-api/system/operate-log/export', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'void cn.iocoder.yudao.module.system.controller.admin.logger.OperateLogController.exportOperateLog(HttpServletResponse,OperateLogExportReqVO)', '{\"reqVO\":{\"module\":null,\"userNickname\":null,\"type\":null,\"success\":null,\"beginTime\":null,\"endTime\":null},\"response\":\"[ignore]\"}', '2022-03-26 20:31:53', 142, 500, 'NoClassDefFoundError: Could not initialize class net.sf.cglib.beans.BeanMap$Generator', 'null', NULL, '2022-03-26 20:31:53', NULL, '2022-03-26 20:31:53', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1631, '', 1, 2, '管理后台 - 操作日志', '导出操作日志', 5, '', '', 'GET', '/admin-api/system/operate-log/export', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'void cn.iocoder.yudao.module.system.controller.admin.logger.OperateLogController.exportOperateLog(HttpServletResponse,OperateLogExportReqVO)', '{\"reqVO\":{\"module\":null,\"userNickname\":null,\"type\":null,\"success\":null,\"beginTime\":null,\"endTime\":null},\"response\":\"[ignore]\"}', '2022-03-26 20:33:30', 143, 500, 'NoClassDefFoundError: Could not initialize class net.sf.cglib.beans.BeanMap$Generator', 'null', NULL, '2022-03-26 20:33:30', NULL, '2022-03-26 20:33:30', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1632, '', 1, 2, '管理后台 - 操作日志', '导出操作日志', 5, '', '', 'GET', '/admin-api/system/operate-log/export', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'void cn.iocoder.yudao.module.system.controller.admin.logger.OperateLogController.exportOperateLog(HttpServletResponse,OperateLogExportReqVO)', '{\"reqVO\":{\"module\":null,\"userNickname\":null,\"type\":null,\"success\":null,\"beginTime\":1648224000000,\"endTime\":1648310399000},\"response\":\"[ignore]\"}', '2022-03-26 20:34:31', 56, 500, 'NoClassDefFoundError: Could not initialize class net.sf.cglib.beans.BeanMap$Generator', 'null', NULL, '2022-03-26 20:34:32', NULL, '2022-03-26 20:34:32', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1633, '', 1, 2, '管理后台 - 操作日志', '导出操作日志', 5, '', '', 'GET', '/admin-api/system/operate-log/export', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'void cn.iocoder.yudao.module.system.controller.admin.logger.OperateLogController.exportOperateLog(HttpServletResponse,OperateLogExportReqVO)', '{\"reqVO\":{\"module\":null,\"userNickname\":null,\"type\":null,\"success\":null,\"beginTime\":null,\"endTime\":null},\"response\":\"[ignore]\"}', '2022-03-26 20:39:28', 2986, 0, '', 'null', NULL, '2022-03-26 20:39:31', NULL, '2022-03-26 20:39:31', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1634, '', 1, 2, '管理后台 - 操作日志', '导出操作日志', 5, '', '', 'GET', '/admin-api/system/operate-log/export', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'void cn.iocoder.yudao.module.system.controller.admin.logger.OperateLogController.exportOperateLog(HttpServletResponse,OperateLogExportReqVO)', '{\"reqVO\":{\"module\":null,\"userNickname\":null,\"type\":null,\"success\":null,\"beginTime\":null,\"endTime\":null},\"response\":\"[ignore]\"}', '2022-03-26 20:44:12', 170, 0, '', 'null', NULL, '2022-03-26 20:44:12', NULL, '2022-03-26 20:44:12', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1635, '', 1, 2, '管理后台 - 操作日志', '导出操作日志', 5, '', '', 'GET', '/admin-api/system/operate-log/export', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'void cn.iocoder.yudao.module.system.controller.admin.logger.OperateLogController.exportOperateLog(HttpServletResponse,OperateLogExportReqVO)', '{\"reqVO\":{\"module\":null,\"userNickname\":null,\"type\":null,\"success\":null,\"beginTime\":null,\"endTime\":null},\"response\":\"[ignore]\"}', '2022-03-26 20:44:28', 175, 0, '', 'null', NULL, '2022-03-26 20:44:29', NULL, '2022-03-26 20:44:29', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1636, '', 1, 2, '管理后台 - 登录日志', '导出登录日志 Excel', 5, '', '', 'GET', '/admin-api/system/login-log/export', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'void cn.iocoder.yudao.module.system.controller.admin.logger.LoginLogController.exportLoginLog(HttpServletResponse,LoginLogExportReqVO)', '{\"reqVO\":{\"userIp\":null,\"username\":null,\"status\":null,\"beginTime\":-36914342743000,\"endTime\":-36914256344000},\"response\":\"[ignore]\"}', '2022-03-26 20:55:46', 48, 0, '', 'null', NULL, '2022-03-26 20:55:46', NULL, '2022-03-26 20:55:46', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1637, '', 1, 2, '管理后台 - 文件配置', '更新文件配置为 Master', 3, '', '', 'PUT', '/admin-api/infra/file-config/update-master', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.file.FileConfigController.updateFileConfigMaster(Long)', '{\"id\":5}', '2022-03-26 21:39:24', 79, 0, '', 'true', NULL, '2022-03-26 21:39:24', NULL, '2022-03-26 21:39:24', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1638, '', 1, 2, '管理后台 - 文件配置', '更新文件配置为 Master', 3, '', '', 'PUT', '/admin-api/infra/file-config/update-master', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.file.FileConfigController.updateFileConfigMaster(Long)', '{\"id\":11}', '2022-03-26 21:39:26', 59, 0, '', 'true', NULL, '2022-03-26 21:39:26', NULL, '2022-03-26 21:39:26', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1639, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.file.FileController.uploadFile(MultipartFile,String)', '{\"path\":\"02.png\",\"file\":\"[ignore]\"}', '2022-03-26 21:48:04', 1230, 0, '', '\"http://test.yudao.iocoder.cn/02.png\"', NULL, '2022-03-26 21:48:05', NULL, '2022-03-26 21:48:05', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1640, '', 1, 2, '管理后台 - 文件存储', '上传文件', 2, '', '', 'POST', '/admin-api/infra/file/upload', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.file.FileController.uploadFile(MultipartFile,String)', '{\"path\":\"02.png\",\"file\":\"[ignore]\"}', '2022-03-26 21:53:19', 534, 0, '', '\"http://test.yudao.iocoder.cn/02.png\"', NULL, '2022-03-26 21:53:20', NULL, '2022-03-26 21:53:20', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1641, '', 1, 2, '管理后台 - 文件存储', '删除文件', 4, '', '', 'DELETE', '/admin-api/infra/file/delete', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.file.FileController.deleteFile(Long)', '{\"id\":11}', '2022-03-26 21:53:23', 88, 0, '', 'true', NULL, '2022-03-26 21:53:23', NULL, '2022-03-26 21:53:23', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1642, '', 1, 2, '管理后台 - 参数配置', '导出参数配置', 5, '', '', 'GET', '/admin-api/infra/config/export', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'void cn.iocoder.yudao.module.infra.controller.admin.config.ConfigController.exportSysConfig(ConfigExportReqVO,HttpServletResponse)', '{\"reqVO\":{\"name\":null,\"key\":null,\"type\":null,\"beginTime\":null,\"endTime\":null},\"response\":\"[ignore]\"}', '2022-03-26 23:04:34', 89, 0, '', 'null', NULL, '2022-03-26 23:04:34', NULL, '2022-03-26 23:04:34', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1643, '', 1, 2, '管理后台 - 文件配置', '创建文件配置', 2, '', '', 'POST', '/admin-api/infra/file-config/create', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.file.FileConfigController.createFileConfig(FileConfigCreateReqVO)', '{\"createReqVO\":{\"name\":\"S3 - 七牛云\",\"remark\":null,\"storage\":20,\"config\":{\"@class\":\"cn.iocoder.yudao.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"s3-cn-south-1.qiniucs.com\",\"domain\":\"http://test.yudao.iocoder.cn\",\"bucket\":\"ruoyi-vue-pro\",\"accessKey\":\"b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8\",\"accessSecret\":\"kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP\"}}}', '2022-03-26 23:07:01', 63, 0, '', '12', NULL, '2022-03-26 23:07:01', NULL, '2022-03-26 23:07:01', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1644, '', 1, 2, '管理后台 - 文件配置', '创建文件配置', 2, '', '', 'POST', '/admin-api/infra/file-config/create', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.file.FileConfigController.createFileConfig(FileConfigCreateReqVO)', '{\"createReqVO\":{\"name\":\"1\",\"remark\":\"2\",\"storage\":1,\"config\":{\"domain\":\"http://127.0.0.1\"}}}', '2022-03-26 23:07:39', 23, 0, '', '13', NULL, '2022-03-26 23:07:39', NULL, '2022-03-26 23:07:39', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1645, '', 1, 2, '管理后台 - 文件配置', '删除文件配置', 4, '', '', 'DELETE', '/admin-api/infra/file-config/delete', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.file.FileConfigController.deleteFileConfig(Long)', '{\"id\":13}', '2022-03-26 23:07:42', 24, 0, '', 'true', NULL, '2022-03-26 23:07:42', NULL, '2022-03-26 23:07:42', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1646, '', 1, 2, '管理后台 - 参数配置', '创建参数配置', 2, '', '', 'POST', '/admin-api/infra/config/create', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.config.ConfigController.createConfig(ConfigCreateReqVO)', '{\"reqVO\":{\"group\":\"ui\",\"name\":\"主框架页-默认皮肤样式名称\",\"value\":\"skin-blue\",\"sensitive\":false,\"remark\":\"蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow\",\"key\":\"sys.index.skinName\"}}', '2022-03-26 23:09:20', 11, 500, 'ServiceException: 参数配置 key 重复', 'null', NULL, '2022-03-26 23:09:20', NULL, '2022-03-26 23:09:20', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1647, '', 1, 2, '管理后台 - 参数配置', '创建参数配置', 2, '', '', 'POST', '/admin-api/infra/config/create', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.config.ConfigController.createConfig(ConfigCreateReqVO)', '{\"reqVO\":{\"group\":\"biz\",\"name\":\"用户管理-账号初始密码\",\"value\":\"123456\",\"sensitive\":false,\"remark\":\"初始化密码 123456\",\"key\":\"sys.user.init-password\"}}', '2022-03-26 23:09:24', 9, 500, 'ServiceException: 参数配置 key 重复', 'null', NULL, '2022-03-26 23:09:24', NULL, '2022-03-26 23:09:24', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1648, '', 1, 2, '管理后台 - 参数配置', '创建参数配置', 2, '', '', 'POST', '/admin-api/infra/config/create', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.config.ConfigController.createConfig(ConfigCreateReqVO)', '{\"reqVO\":{\"group\":\"1\",\"name\":\"2\",\"value\":\"4\",\"sensitive\":true,\"remark\":\"1\",\"key\":\"3\"}}', '2022-03-26 23:09:36', 24, 0, '', '7', NULL, '2022-03-26 23:09:36', NULL, '2022-03-26 23:09:36', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1649, '', 1, 2, '管理后台 - 参数配置', '删除参数配置', 4, '', '', 'DELETE', '/admin-api/infra/config/delete', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.config.ConfigController.deleteConfig(Long)', '{\"id\":7}', '2022-03-26 23:09:41', 23, 0, '', 'true', NULL, '2022-03-26 23:09:41', NULL, '2022-03-26 23:09:41', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1650, '', 1, 2, '管理后台 - 参数配置', '创建参数配置', 2, '', '', 'POST', '/admin-api/infra/config/create', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.config.ConfigController.createConfig(ConfigCreateReqVO)', '{\"reqVO\":{\"group\":\"ui\",\"name\":\"主框架页-默认皮肤样式名称\",\"value\":\"skin-blue\",\"sensitive\":false,\"remark\":\"蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow\",\"key\":\"sys.index.skinName\"}}', '2022-03-26 23:09:48', 10, 500, 'ServiceException: 参数配置 key 重复', 'null', NULL, '2022-03-26 23:09:48', NULL, '2022-03-26 23:09:48', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1651, '', 1, 2, '管理后台 - 参数配置', '修改参数配置', 3, '', '', 'PUT', '/admin-api/infra/config/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.config.ConfigController.updateConfig(ConfigUpdateReqVO)', '{\"reqVO\":{\"group\":\"ui\",\"name\":\"主框架页-默认皮肤样式名称\",\"value\":\"skin-blue\",\"sensitive\":false,\"remark\":\"蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow\",\"id\":1}}', '2022-03-26 23:10:31', 34, 0, '', 'true', NULL, '2022-03-26 23:10:31', NULL, '2022-03-26 23:10:31', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1652, '', 1, 2, '管理后台 - 文件配置', '创建文件配置', 2, '', '', 'POST', '/admin-api/infra/file-config/create', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.file.FileConfigController.createFileConfig(FileConfigCreateReqVO)', '{\"createReqVO\":{\"name\":\"S3 - 七牛云\",\"remark\":null,\"storage\":20,\"config\":{\"@class\":\"cn.iocoder.yudao.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"s3-cn-south-1.qiniucs.com\",\"domain\":\"http://test.yudao.iocoder.cn\",\"bucket\":\"ruoyi-vue-pro\",\"accessKey\":\"b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8\",\"accessSecret\":\"kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP\"}}}', '2022-03-26 23:10:41', 18, 0, '', '14', NULL, '2022-03-26 23:10:41', NULL, '2022-03-26 23:10:41', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1653, '', 1, 2, '管理后台 - 文件配置', '删除文件配置', 4, '', '', 'DELETE', '/admin-api/infra/file-config/delete', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.file.FileConfigController.deleteFileConfig(Long)', '{\"id\":12}', '2022-03-26 23:10:43', 26, 0, '', 'true', NULL, '2022-03-26 23:10:43', NULL, '2022-03-26 23:10:43', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1654, '', 1, 2, '管理后台 - 文件配置', '删除文件配置', 4, '', '', 'DELETE', '/admin-api/infra/file-config/delete', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.file.FileConfigController.deleteFileConfig(Long)', '{\"id\":14}', '2022-03-26 23:10:46', 24, 0, '', 'true', NULL, '2022-03-26 23:10:46', NULL, '2022-03-26 23:10:46', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1655, '', 1, 2, '管理后台 - API 访问日志', '导出API 访问日志 Excel', 5, '', '', 'GET', '/admin-api/infra/api-access-log/export-excel', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'void cn.iocoder.yudao.module.infra.controller.admin.logger.ApiAccessLogController.exportApiAccessLogExcel(ApiAccessLogExportReqVO,HttpServletResponse)', '{\"exportReqVO\":{\"userId\":null,\"userType\":null,\"applicationName\":null,\"requestUrl\":null,\"beginBeginTime\":null,\"endBeginTime\":null,\"duration\":null,\"resultCode\":null},\"response\":\"[ignore]\"}', '2022-03-26 23:16:20', 136, 0, '', 'null', NULL, '2022-03-26 23:16:20', NULL, '2022-03-26 23:16:20', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1656, '', 1, 2, '管理后台 - API 访问日志', '导出API 访问日志 Excel', 5, '', '', 'GET', '/admin-api/infra/api-access-log/export-excel', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'void cn.iocoder.yudao.module.infra.controller.admin.logger.ApiAccessLogController.exportApiAccessLogExcel(ApiAccessLogExportReqVO,HttpServletResponse)', '{\"exportReqVO\":{\"userId\":null,\"userType\":null,\"applicationName\":null,\"requestUrl\":null,\"beginBeginTime\":null,\"endBeginTime\":null,\"duration\":null,\"resultCode\":null},\"response\":\"[ignore]\"}', '2022-03-26 23:16:51', 91, 0, '', 'null', NULL, '2022-03-26 23:16:51', NULL, '2022-03-26 23:16:51', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1657, '', 1, 2, '管理后台 - API 访问日志', '导出API 访问日志 Excel', 5, '', '', 'GET', '/admin-api/infra/api-access-log/export-excel', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'void cn.iocoder.yudao.module.infra.controller.admin.logger.ApiAccessLogController.exportApiAccessLogExcel(ApiAccessLogExportReqVO,HttpServletResponse)', '{\"exportReqVO\":{\"userId\":null,\"userType\":null,\"applicationName\":null,\"requestUrl\":null,\"beginBeginTime\":null,\"endBeginTime\":null,\"duration\":null,\"resultCode\":null},\"response\":\"[ignore]\"}', '2022-03-26 23:27:54', 143, 0, '', 'null', NULL, '2022-03-26 23:27:54', NULL, '2022-03-26 23:27:54', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1658, '', 1, 2, '管理后台 - API 错误日志', '导出 API 错误日志 Excel', 5, '', '', 'GET', '/admin-api/infra/api-error-log/export-excel', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'void cn.iocoder.yudao.module.infra.controller.admin.logger.ApiErrorLogController.exportApiErrorLogExcel(ApiErrorLogExportReqVO,HttpServletResponse)', '{\"exportReqVO\":{\"userId\":null,\"userType\":null,\"applicationName\":null,\"requestUrl\":null,\"beginExceptionTime\":null,\"endExceptionTime\":null,\"processStatus\":null},\"response\":\"[ignore]\"}', '2022-03-26 23:29:01', 330, 0, '', 'null', NULL, '2022-03-26 23:29:01', NULL, '2022-03-26 23:29:01', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1659, '', 1, 2, '管理后台 - API 错误日志', '导出 API 错误日志 Excel', 5, '', '', 'GET', '/admin-api/infra/api-error-log/export-excel', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'void cn.iocoder.yudao.module.infra.controller.admin.logger.ApiErrorLogController.exportApiErrorLogExcel(ApiErrorLogExportReqVO,HttpServletResponse)', '{\"exportReqVO\":{\"userId\":null,\"userType\":null,\"applicationName\":null,\"requestUrl\":null,\"beginExceptionTime\":null,\"endExceptionTime\":null,\"processStatus\":null},\"response\":\"[ignore]\"}', '2022-03-26 23:29:15', 452, 0, '', 'null', NULL, '2022-03-26 23:29:15', NULL, '2022-03-26 23:29:15', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1660, '', 1, 2, '管理后台 - API 错误日志', '导出 API 错误日志 Excel', 5, '', '', 'GET', '/admin-api/infra/api-error-log/export-excel', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'void cn.iocoder.yudao.module.infra.controller.admin.logger.ApiErrorLogController.exportApiErrorLogExcel(ApiErrorLogExportReqVO,HttpServletResponse)', '{\"exportReqVO\":{\"userId\":null,\"userType\":null,\"applicationName\":null,\"requestUrl\":null,\"beginExceptionTime\":null,\"endExceptionTime\":null,\"processStatus\":null},\"response\":\"[ignore]\"}', '2022-03-26 23:29:25', 324, 0, '', 'null', NULL, '2022-03-26 23:29:25', NULL, '2022-03-26 23:29:25', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1661, '', 1, 2, '管理后台 - API 错误日志', '导出 API 错误日志 Excel', 5, '', '', 'GET', '/admin-api/infra/api-error-log/export-excel', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'void cn.iocoder.yudao.module.infra.controller.admin.logger.ApiErrorLogController.exportApiErrorLogExcel(ApiErrorLogExportReqVO,HttpServletResponse)', '{\"exportReqVO\":{\"userId\":null,\"userType\":null,\"applicationName\":null,\"requestUrl\":null,\"beginExceptionTime\":null,\"endExceptionTime\":null,\"processStatus\":null},\"response\":\"[ignore]\"}', '2022-03-26 23:29:29', 249, 0, '', 'null', NULL, '2022-03-26 23:29:30', NULL, '2022-03-26 23:29:30', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1662, '', 1, 2, '管理后台 - API 访问日志', '导出API 访问日志 Excel', 5, '', '', 'GET', '/admin-api/infra/api-access-log/export-excel', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'void cn.iocoder.yudao.module.infra.controller.admin.logger.ApiAccessLogController.exportApiAccessLogExcel(ApiAccessLogExportReqVO,HttpServletResponse)', '{\"exportReqVO\":{\"userId\":null,\"userType\":null,\"applicationName\":null,\"requestUrl\":null,\"beginBeginTime\":null,\"endBeginTime\":null,\"duration\":null,\"resultCode\":null},\"response\":\"[ignore]\"}', '2022-03-26 23:29:38', 139, 0, '', 'null', NULL, '2022-03-26 23:29:38', NULL, '2022-03-26 23:29:38', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1663, '', 1, 2, '管理后台 - API 访问日志', '导出API 访问日志 Excel', 5, '', '', 'GET', '/admin-api/infra/api-access-log/export-excel', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'void cn.iocoder.yudao.module.infra.controller.admin.logger.ApiAccessLogController.exportApiAccessLogExcel(ApiAccessLogExportReqVO,HttpServletResponse)', '{\"exportReqVO\":{\"userId\":null,\"userType\":null,\"applicationName\":null,\"requestUrl\":null,\"beginBeginTime\":null,\"endBeginTime\":null,\"duration\":null,\"resultCode\":null},\"response\":\"[ignore]\"}', '2022-03-26 23:30:22', 84, 0, '', 'null', NULL, '2022-03-26 23:30:22', NULL, '2022-03-26 23:30:22', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1664, '', 1, 2, '管理后台 - API 访问日志', '导出API 访问日志 Excel', 5, '', '', 'GET', '/admin-api/infra/api-access-log/export-excel', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'void cn.iocoder.yudao.module.infra.controller.admin.logger.ApiAccessLogController.exportApiAccessLogExcel(ApiAccessLogExportReqVO,HttpServletResponse)', '{\"exportReqVO\":{\"userId\":null,\"userType\":null,\"applicationName\":null,\"requestUrl\":null,\"beginBeginTime\":null,\"endBeginTime\":null,\"duration\":null,\"resultCode\":null},\"response\":\"[ignore]\"}', '2022-03-26 23:31:52', 120, 0, '', 'null', NULL, '2022-03-26 23:31:52', NULL, '2022-03-26 23:31:52', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1665, '', 1, 2, '管理后台 - 操作日志', '导出操作日志', 5, '', '', 'GET', '/admin-api/system/operate-log/export', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'void cn.iocoder.yudao.module.system.controller.admin.logger.OperateLogController.exportOperateLog(HttpServletResponse,OperateLogExportReqVO)', '{\"reqVO\":{\"module\":null,\"userNickname\":null,\"type\":null,\"success\":null,\"beginTime\":null,\"endTime\":null},\"response\":\"[ignore]\"}', '2022-03-26 23:32:47', 162, 0, '', 'null', NULL, '2022-03-26 23:32:47', NULL, '2022-03-26 23:32:47', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1666, '', 1, 2, '管理后台 - 登录日志', '导出登录日志 Excel', 5, '', '', 'GET', '/admin-api/system/login-log/export', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'void cn.iocoder.yudao.module.system.controller.admin.logger.LoginLogController.exportLoginLog(HttpServletResponse,LoginLogExportReqVO)', '{\"reqVO\":{\"userIp\":null,\"username\":null,\"status\":null,\"beginTime\":null,\"endTime\":null},\"response\":\"[ignore]\"}', '2022-03-26 23:32:51', 56, 0, '', 'null', NULL, '2022-03-26 23:32:51', NULL, '2022-03-26 23:32:51', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1667, '', 1, 2, '管理后台 - 登录日志', '导出登录日志 Excel', 5, '', '', 'GET', '/admin-api/system/login-log/export', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'void cn.iocoder.yudao.module.system.controller.admin.logger.LoginLogController.exportLoginLog(HttpServletResponse,LoginLogExportReqVO)', '{\"reqVO\":{\"userIp\":null,\"username\":null,\"status\":null,\"beginTime\":null,\"endTime\":null},\"response\":\"[ignore]\"}', '2022-03-26 23:32:54', 55, 0, '', 'null', NULL, '2022-03-26 23:32:54', NULL, '2022-03-26 23:32:54', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1668, '', 1, 2, '管理后台 - API 访问日志', '导出API 访问日志 Excel', 5, '', '', 'GET', '/admin-api/infra/api-access-log/export-excel', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'void cn.iocoder.yudao.module.infra.controller.admin.logger.ApiAccessLogController.exportApiAccessLogExcel(ApiAccessLogExportReqVO,HttpServletResponse)', '{\"exportReqVO\":{\"userId\":null,\"userType\":null,\"applicationName\":null,\"requestUrl\":null,\"beginBeginTime\":null,\"endBeginTime\":null,\"duration\":null,\"resultCode\":null},\"response\":\"[ignore]\"}', '2022-03-26 23:33:02', 126, 0, '', 'null', NULL, '2022-03-26 23:33:03', NULL, '2022-03-26 23:33:03', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1669, '', 1, 2, '管理后台 - API 错误日志', '导出 API 错误日志 Excel', 5, '', '', 'GET', '/admin-api/infra/api-error-log/export-excel', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'void cn.iocoder.yudao.module.infra.controller.admin.logger.ApiErrorLogController.exportApiErrorLogExcel(ApiErrorLogExportReqVO,HttpServletResponse)', '{\"exportReqVO\":{\"userId\":null,\"userType\":null,\"applicationName\":null,\"requestUrl\":null,\"beginExceptionTime\":null,\"endExceptionTime\":null,\"processStatus\":null},\"response\":\"[ignore]\"}', '2022-03-26 23:33:06', 258, 0, '', 'null', NULL, '2022-03-26 23:33:07', NULL, '2022-03-26 23:33:07', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1670, '', 1, 2, '管理后台 - API 访问日志', '导出API 访问日志 Excel', 5, '', '', 'GET', '/admin-api/infra/api-access-log/export-excel', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'void cn.iocoder.yudao.module.infra.controller.admin.logger.ApiAccessLogController.exportApiAccessLogExcel(ApiAccessLogExportReqVO,HttpServletResponse)', '{\"exportReqVO\":{\"userId\":null,\"userType\":null,\"applicationName\":null,\"requestUrl\":null,\"beginBeginTime\":null,\"endBeginTime\":null,\"duration\":null,\"resultCode\":null},\"response\":\"[ignore]\"}', '2022-03-26 23:33:10', 136, 0, '', 'null', NULL, '2022-03-26 23:33:10', NULL, '2022-03-26 23:33:10', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1671, '', 1, 2, '管理后台 - 参数配置', '导出参数配置', 5, '', '', 'GET', '/admin-api/infra/config/export', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'void cn.iocoder.yudao.module.infra.controller.admin.config.ConfigController.exportSysConfig(ConfigExportReqVO,HttpServletResponse)', '{\"reqVO\":{\"name\":null,\"key\":null,\"type\":null,\"beginTime\":null,\"endTime\":null},\"response\":\"[ignore]\"}', '2022-03-26 23:35:10', 287, 0, '', 'null', NULL, '2022-03-26 23:35:10', NULL, '2022-03-26 23:35:10', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1672, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"Java 监控\",\"permission\":\"\",\"type\":2,\"sort\":11,\"parentId\":2,\"path\":\"admin-server\",\"icon\":\"server\",\"component\":\"infra/server/index\",\"status\":0,\"id\":112}}', '2022-03-27 00:06:49', 55, 0, '', 'true', NULL, '2022-03-27 00:06:49', NULL, '2022-03-27 00:06:49', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1673, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"链路追踪\",\"permission\":\"\",\"type\":2,\"sort\":13,\"parentId\":2,\"path\":\"skywalking\",\"icon\":\"eye-open\",\"component\":\"infra/skywalking/index\",\"status\":0,\"id\":1077}}', '2022-03-27 00:06:56', 45, 0, '', 'true', NULL, '2022-03-27 00:06:56', NULL, '2022-03-27 00:06:56', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1674, '', 1, 2, '管理后台 - 短信渠道', '更新短信渠道', 3, '', '', 'PUT', '/admin-api/system/sms-channel/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.sms.SmsChannelController.updateSmsChannel(SmsChannelUpdateReqVO)', '{\"updateReqVO\":{\"signature\":\"测试渠道\",\"status\":0,\"remark\":\"123\",\"apiKey\":\"696b5d8ead48071237e4aa5861ff08dbadb2b4ded1c688a7b7c9afc615579859\",\"apiSecret\":\"SEC5c4e5ff888bc8a9923ae47f59e7ccd30af1f14d93c55b4e2c9cb094e35aeed67\",\"callbackUrl\":null,\"id\":4}}', '2022-03-27 20:19:09', 37, 0, '', 'true', NULL, '2022-03-27 20:19:09', NULL, '2022-03-27 20:19:09', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1675, '', 1, 2, '管理后台 - 短信渠道', '创建短信渠道', 2, '', '', 'POST', '/admin-api/system/sms-channel/create', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.sms.SmsChannelController.createSmsChannel(SmsChannelCreateReqVO)', '{\"createReqVO\":{\"signature\":\"1\",\"status\":0,\"remark\":\"3\",\"apiKey\":\"2\",\"apiSecret\":null,\"callbackUrl\":null,\"code\":\"2\"}}', '2022-03-27 20:22:34', 19, 0, '', '5', NULL, '2022-03-27 20:22:34', NULL, '2022-03-27 20:22:34', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1676, '', 1, 2, '管理后台 - 短信渠道', '删除短信渠道', 4, '', '', 'DELETE', '/admin-api/system/sms-channel/delete', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.sms.SmsChannelController.deleteSmsChannel(Long)', '{\"id\":5}', '2022-03-27 20:22:37', 50, 0, '', 'true', NULL, '2022-03-27 20:22:37', NULL, '2022-03-27 20:22:37', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1677, '', 1, 2, '管理后台 - 短信渠道', '更新短信渠道', 3, '', '', 'PUT', '/admin-api/system/sms-channel/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.sms.SmsChannelController.updateSmsChannel(SmsChannelUpdateReqVO)', '{\"updateReqVO\":{\"signature\":\"测试渠道\",\"status\":0,\"remark\":\"123\",\"apiKey\":\"696b5d8ead48071237e4aa5861ff08dbadb2b4ded1c688a7b7c9afc615579859\",\"apiSecret\":\"SEC5c4e5ff888bc8a9923ae47f59e7ccd30af1f14d93c55b4e2c9cb094e35aeed67\",\"callbackUrl\":null,\"id\":4}}', '2022-03-27 20:29:49', 30, 0, '', 'true', NULL, '2022-03-27 20:29:49', NULL, '2022-03-27 20:29:49', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1678, '', 1, 2, '管理后台 - 短信模板', '更新短信模板', 3, '', '', 'PUT', '/admin-api/system/sms-template/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.sms.SmsTemplateController.updateSmsTemplate(SmsTemplateUpdateReqVO)', '{\"updateReqVO\":{\"type\":2,\"status\":0,\"code\":\"bpm_process_instance_approve\",\"name\":\"【工作流】流程被通过\",\"content\":\"您的流程被审批通过:{processInstanceName},查看链接:{detailUrl}\",\"remark\":null,\"apiTemplateId\":\"suibian\",\"channelId\":4,\"id\":11}}', '2022-03-27 20:29:54', 63, 0, '', 'true', NULL, '2022-03-27 20:29:54', NULL, '2022-03-27 20:29:54', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1679, '', 1, 2, '管理后台 - 短信模板', '更新短信模板', 3, '', '', 'PUT', '/admin-api/system/sms-template/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.sms.SmsTemplateController.updateSmsTemplate(SmsTemplateUpdateReqVO)', '{\"updateReqVO\":{\"type\":2,\"status\":0,\"code\":\"bpm_process_instance_approve\",\"name\":\"【工作流】流程被通过\",\"content\":\"您的流程被审批通过:{processInstanceName},查看链接:{detailUrl}\",\"remark\":null,\"apiTemplateId\":\"suibian\",\"channelId\":4,\"id\":11}}', '2022-03-27 20:31:04', 44, 0, '', 'true', NULL, '2022-03-27 20:31:04', NULL, '2022-03-27 20:31:04', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1680, '', 1, 2, '管理后台 - 短信模板', '更新短信模板', 3, '', '', 'PUT', '/admin-api/system/sms-template/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.sms.SmsTemplateController.updateSmsTemplate(SmsTemplateUpdateReqVO)', '{\"updateReqVO\":{\"type\":2,\"status\":0,\"code\":\"bpm_process_instance_approve\",\"name\":\"【工作流】流程被通过\",\"content\":\"您的流程被审批通过:{processInstanceName},查看链接:{detailUrl}\",\"remark\":null,\"apiTemplateId\":\"suibian\",\"channelId\":4,\"id\":11}}', '2022-03-27 20:32:21', 41, 0, '', 'true', NULL, '2022-03-27 20:32:21', NULL, '2022-03-27 20:32:21', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1681, '', 1, 2, '管理后台 - 短信日志', '导出短信日志 Excel', 5, '', '', 'GET', '/admin-api/system/sms-log/export-excel', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', 'void cn.iocoder.yudao.module.system.controller.admin.sms.SmsLogController.exportSmsLogExcel(SmsLogExportReqVO,HttpServletResponse)', '{\"exportReqVO\":{\"channelId\":null,\"templateId\":null,\"mobile\":null,\"sendStatus\":null,\"beginSendTime\":null,\"endSendTime\":null,\"receiveStatus\":null,\"beginReceiveTime\":null,\"endReceiveTime\":null},\"response\":\"[ignore]\"}', '2022-03-27 20:44:08', 3249, 0, '', 'null', NULL, '2022-03-27 20:44:11', NULL, '2022-03-27 20:44:11', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1682, '', 1, 2, '管理后台 - 字典数据', '修改字典数据', 3, '', '', 'PUT', '/admin-api/system/dict-data/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.dict.DictDataController.updateDictData(DictDataUpdateReqVO)', '{\"reqVO\":{\"sort\":1,\"label\":\"男\",\"value\":\"1\",\"dictType\":\"system_user_sex\",\"status\":0,\"colorType\":\"default\",\"cssClass\":\"A\",\"remark\":\"性别男\",\"id\":1}}', '2022-03-29 00:14:39', 47, 0, '', 'true', NULL, '2022-03-29 00:14:39', NULL, '2022-03-29 00:14:39', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1683, '', 1, 2, '管理后台 - 短信模板', '发送短信', 2, '', '', 'POST', '/admin-api/system/sms-template/send-sms', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.sms.SmsTemplateController.sendSms(SmsTemplateSendReqVO)', '{\"sendReqVO\":{\"mobile\":\"156o0169\",\"templateCode\":\"test-04\",\"templateParams\":{\"name\":\"2\",\"code\":\"1\"}}}', '2022-03-29 00:17:13', 33, 0, '', '134', NULL, '2022-03-29 00:17:13', NULL, '2022-03-29 00:17:13', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1684, '', 1, 2, '管理后台 - 定时任务', '更新定时任务的状态', 3, '', '', 'PUT', '/admin-api/infra/job/update-status', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.job.JobController.updateJobStatus(Long,Integer)', '{\"id\":5,\"status\":1}', '2022-03-30 20:36:40', 504, 0, '', 'true', NULL, '2022-03-30 20:36:41', NULL, '2022-03-30 20:36:41', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1685, '', 1, 2, '管理后台 - 定时任务', '更新定时任务的状态', 3, '', '', 'PUT', '/admin-api/infra/job/update-status', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.job.JobController.updateJobStatus(Long,Integer)', '{\"id\":5,\"status\":2}', '2022-03-30 20:36:43', 82, 0, '', 'true', NULL, '2022-03-30 20:36:43', NULL, '2022-03-30 20:36:43', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1686, '', 1, 2, '管理后台 - 定时任务日志', '导出定时任务日志 Excel', 5, '', '', 'GET', '/admin-api/infra/job-log/export-excel', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'void cn.iocoder.yudao.module.infra.controller.admin.job.JobLogController.exportJobLogExcel(JobLogExportReqVO,HttpServletResponse)', '{\"exportReqVO\":{\"jobId\":null,\"handlerName\":null,\"beginTime\":null,\"endTime\":null,\"status\":null},\"response\":\"[ignore]\"}', '2022-03-30 20:44:27', 1170, 0, '', 'null', NULL, '2022-03-30 20:44:28', NULL, '2022-03-30 20:44:28', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1687, '', 1, 2, '管理后台 - 权限', '赋予角色菜单', 2, '', '', 'POST', '/admin-api/system/permission/assign-role-menu', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.permission.PermissionController.assignRoleMenu(PermissionAssignRoleMenuReqVO)', '{\"reqVO\":{\"roleId\":101,\"menuIds\":[2,5,1031,1032,1033,1034,1035,1050,1051,1052,1053,1054,1056,1057,1185,1058,1186,1059,1187,1060,1188,1189,1190,1191,1192,1193,1066,1194,1067,1195,1196,1197,1070,1198,1071,1199,1072,1200,1073,1201,1074,1202,1075,1076,1077,1078,1207,1208,1209,1082,1210,1083,1211,1084,1212,1085,1213,1086,1087,1215,1088,1216,1089,1217,1090,1218,1091,1219,1092,1220,1221,1222,1237,1238,1239,1240,1241,1242,1243,1116,1118,1119,1120,106,110,111,112,113,114,115,116]}}', '2022-04-01 21:34:12', 51, 500, 'BindingException: Invalid bound statement (not found): cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMenuMapper.insertBatchSomeColumn', 'null', NULL, '2022-04-01 21:34:12', NULL, '2022-04-01 21:34:12', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1688, '', 1, 2, '管理后台 - 权限', '赋予角色菜单', 2, '', '', 'POST', '/admin-api/system/permission/assign-role-menu', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.permission.PermissionController.assignRoleMenu(PermissionAssignRoleMenuReqVO)', '{\"reqVO\":{\"roleId\":101,\"menuIds\":[2,5,1031,1032,1033,1034,1035,1050,1051,1052,1053,1054,1056,1057,1185,1058,1186,1059,1187,1060,1188,1189,1190,1191,1192,1193,1066,1194,1067,1195,1196,1197,1070,1198,1071,1199,1072,1200,1073,1201,1074,1202,1075,1076,1077,1078,1207,1208,1209,1082,1210,1083,1211,1084,1212,1085,1213,1086,1087,1215,1088,1216,1089,1217,1090,1218,1091,1219,1092,1220,1221,1222,1237,1238,1239,1240,1241,1242,1243,1116,1118,1119,1120,106,110,111,112,113,114,115,116]}}', '2022-04-01 21:37:02', 154, 500, 'MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null', 'null', NULL, '2022-04-01 21:37:02', NULL, '2022-04-01 21:37:02', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1689, '', 1, 2, '管理后台 - 角色', '修改角色', 3, '', '', 'PUT', '/admin-api/system/role/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.permission.RoleController.updateRole(RoleUpdateReqVO)', '{\"reqVO\":{\"name\":\"测试账号\",\"code\":\"test\",\"sort\":0,\"remark\":\"132\",\"id\":101}}', '2022-04-01 21:37:13', 57, 0, '', 'true', NULL, '2022-04-01 21:37:13', NULL, '2022-04-01 21:37:13', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1690, '', 1, 2, '管理后台 - 权限', '赋予角色菜单', 2, '', '', 'POST', '/admin-api/system/permission/assign-role-menu', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.permission.PermissionController.assignRoleMenu(PermissionAssignRoleMenuReqVO)', '{\"reqVO\":{\"roleId\":101,\"menuIds\":[1216,1217,1218,1219,1220,1221,5,1222,1118,1119,1120,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1207,1208,1209,1210,1211,1212,1213,1215]}}', '2022-04-01 21:37:23', 41, 0, '', 'true', NULL, '2022-04-01 21:37:23', NULL, '2022-04-01 21:37:23', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1691, '', 1, 2, '管理后台 - 权限', '赋予角色菜单', 2, '', '', 'POST', '/admin-api/system/permission/assign-role-menu', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.permission.PermissionController.assignRoleMenu(PermissionAssignRoleMenuReqVO)', '{\"reqVO\":{\"roleId\":101,\"menuIds\":[2,5,1031,1032,1033,1034,1035,1050,1051,1052,1053,1054,1056,1057,1185,1058,1186,1059,1187,1060,1188,1189,1190,1191,1192,1193,1066,1194,1067,1195,1196,1197,1070,1198,1071,1199,1072,1200,1073,1201,1074,1202,1075,1076,1077,1078,1207,1208,1209,1082,1210,1083,1211,1084,1212,1085,1213,1086,1087,1215,1088,1216,1089,1217,1090,1218,1091,1219,1092,1220,1221,1222,1237,1238,1239,1240,1241,1242,1243,1116,1118,1119,1120,106,110,111,112,113,114,115,116]}}', '2022-04-01 21:37:48', 47, 500, 'MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null', 'null', NULL, '2022-04-01 21:37:48', NULL, '2022-04-01 21:37:48', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1692, '', 1, 2, '管理后台 - 权限', '赋予角色菜单', 2, '', '', 'POST', '/admin-api/system/permission/assign-role-menu', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.permission.PermissionController.assignRoleMenu(PermissionAssignRoleMenuReqVO)', '{\"reqVO\":{\"roleId\":101,\"menuIds\":[1216,1217,1218,1219,1220,1221,5,1222,1118,1119,1120,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1207,1208,1209,1210,1211,1212,1213,1215]}}', '2022-04-01 21:40:35', 42776, 0, '', 'true', NULL, '2022-04-01 21:41:21', NULL, '2022-04-01 21:41:21', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1693, '', 1, 2, '管理后台 - 权限', '赋予角色菜单', 2, '', '', 'POST', '/admin-api/system/permission/assign-role-menu', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.permission.PermissionController.assignRoleMenu(PermissionAssignRoleMenuReqVO)', '{\"reqVO\":{\"roleId\":101,\"menuIds\":[2,5,1031,1032,1033,1034,1035,1050,1051,1052,1053,1054,1056,1057,1185,1058,1186,1059,1187,1060,1188,1189,1190,1191,1192,1193,1066,1194,1067,1195,1196,1197,1070,1198,1071,1199,1072,1200,1073,1201,1074,1202,1075,1076,1077,1078,1207,1208,1209,1082,1210,1083,1211,1084,1212,1085,1213,1086,1087,1215,1088,1216,1089,1217,1090,1218,1091,1219,1092,1220,1221,1222,1237,1238,1239,1240,1241,1242,1243,1116,1118,1119,1120,106,110,111,112,113,114,115,116]}}', '2022-04-01 21:41:31', 67200, 500, 'MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null', 'null', NULL, '2022-04-01 21:42:41', NULL, '2022-04-01 21:42:41', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1694, '', 1, 2, '管理后台 - 权限', '赋予角色菜单', 2, '', '', 'POST', '/admin-api/system/permission/assign-role-menu', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.permission.PermissionController.assignRoleMenu(PermissionAssignRoleMenuReqVO)', '{\"reqVO\":{\"roleId\":101,\"menuIds\":[2,5,1031,1032,1033,1034,1035,1050,1051,1052,1053,1054,1056,1057,1185,1058,1186,1059,1187,1060,1188,1189,1190,1191,1192,1193,1066,1194,1067,1195,1196,1197,1070,1198,1071,1199,1072,1200,1073,1201,1074,1202,1075,1076,1077,1078,1207,1208,1209,1082,1210,1083,1211,1084,1212,1085,1213,1086,1087,1215,1088,1216,1089,1217,1090,1218,1091,1219,1092,1220,1221,1222,1237,1238,1239,1240,1241,1242,1243,1116,1118,1119,1120,106,110,111,112,113,114,115,116]}}', '2022-04-01 21:42:51', 2613, 500, 'MySQLIntegrityConstraintViolationException: Column \'tenant_id\' cannot be null', 'null', NULL, '2022-04-01 21:42:53', NULL, '2022-04-01 21:42:53', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1695, '', 1, 2, '管理后台 - 权限', '赋予角色菜单', 2, '', '', 'POST', '/admin-api/system/permission/assign-role-menu', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.permission.PermissionController.assignRoleMenu(PermissionAssignRoleMenuReqVO)', '{\"reqVO\":{\"roleId\":101,\"menuIds\":[2,5,1031,1032,1033,1034,1035,1050,1051,1052,1053,1054,1056,1057,1185,1058,1186,1059,1187,1060,1188,1189,1190,1191,1192,1193,1066,1194,1067,1195,1196,1197,1070,1198,1071,1199,1072,1200,1073,1201,1074,1202,1075,1076,1077,1078,1207,1208,1209,1082,1210,1083,1211,1084,1212,1085,1213,1086,1087,1215,1088,1216,1089,1217,1090,1218,1091,1219,1092,1220,1221,1222,1237,1238,1239,1240,1241,1242,1243,1116,1118,1119,1120,106,110,111,112,113,114,115,116]}}', '2022-04-01 22:21:24', 12837, 0, '', 'true', NULL, '2022-04-01 22:21:37', NULL, '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1696, '', 1, 2, '管理后台 - 权限', '赋予角色菜单', 2, '', '', 'POST', '/admin-api/system/permission/assign-role-menu', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.permission.PermissionController.assignRoleMenu(PermissionAssignRoleMenuReqVO)', '{\"reqVO\":{\"roleId\":101,\"menuIds\":[2,5,1031,1032,1033,1034,1035,1050,1051,1052,1053,1054,1056,1057,1185,1058,1186,1059,1187,1060,1188,1189,1190,1191,1192,1193,1066,1194,1067,1195,1196,1197,1070,1198,1071,1199,1072,1200,1073,1201,1074,1202,1075,1076,1077,1078,1207,1208,1209,1082,1210,1083,1211,1084,1212,1085,1213,1086,1087,1215,1088,1216,1089,1217,1090,1218,1091,1219,1092,1220,1221,1222,1237,1238,1239,1240,1241,1242,1243,1116,1118,1119,1120,106,110,111,112,113,114,115,116]}}', '2022-04-01 22:21:45', 43, 0, '', 'true', NULL, '2022-04-01 22:21:45', NULL, '2022-04-01 22:21:45', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1697, '', 1, 2, '管理后台 - 权限', '赋予角色菜单', 2, '', '', 'POST', '/admin-api/system/permission/assign-role-menu', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.permission.PermissionController.assignRoleMenu(PermissionAssignRoleMenuReqVO)', '{\"reqVO\":{\"roleId\":101,\"menuIds\":[2,5,1031,1032,1033,1034,1035,1050,1051,1052,1053,1054,1056,1057,1185,1058,1186,1059,1187,1060,1188,1189,1190,1191,1192,1193,1066,1194,1067,1195,1196,1197,1070,1198,1071,1199,1072,1200,1073,1201,1074,1202,1075,1076,1077,1078,1207,1208,1209,1082,1210,1083,1211,1084,1212,1085,1213,1086,1087,1215,1088,1216,1089,1217,1090,1218,1091,1219,1092,1220,1221,1222,1237,1238,1239,1240,1241,1242,1243,1116,1118,1119,1120,106,110,111,112,113,114,115,116]}}', '2022-04-01 22:21:48', 38, 0, '', 'true', NULL, '2022-04-01 22:21:48', NULL, '2022-04-01 22:21:48', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1698, '', 1, 2, '管理后台 - 字典类型', '更新字典类型', 3, '', '', 'PUT', '/admin-api/infra/test-demo/update', '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.test.TestDemoController.updateTestDemo(TestDemoUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"测试\",\"status\":0,\"type\":1,\"category\":1,\"remark\":null,\"id\":106}}', '2022-04-03 09:59:33', 66, 500, 'ServiceException: 测试示例不存在', 'null', NULL, '2022-04-03 09:59:33', NULL, '2022-04-03 09:59:33', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1699, '', 1, 2, '管理后台 - 字典类型', '更新字典类型', 3, '', '', 'PUT', '/admin-api/infra/test-demo/update', '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.test.TestDemoController.updateTestDemo(TestDemoUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"测试\",\"status\":0,\"type\":1,\"category\":1,\"remark\":null,\"id\":106}}', '2022-04-03 10:00:12', 10655, 500, 'ServiceException: 测试示例不存在', 'null', NULL, '2022-04-03 10:00:23', NULL, '2022-04-03 10:00:23', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1700, '', 1, 2, '管理后台 - 字典类型', '更新字典类型', 3, '', '', 'PUT', '/admin-api/infra/test-demo/update', '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.test.TestDemoController.updateTestDemo(TestDemoUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"测试\",\"status\":0,\"type\":1,\"category\":1,\"remark\":null,\"id\":106}}', '2022-04-03 10:01:10', 49, 0, '', 'true', NULL, '2022-04-03 10:01:10', NULL, '2022-04-03 10:01:10', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1701, '', 1, 2, '管理后台 - 字典类型', '更新字典类型', 3, '', '', 'PUT', '/admin-api/infra/test-demo/update', '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.test.TestDemoController.updateTestDemo(TestDemoUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"测试\",\"status\":0,\"type\":1,\"category\":1,\"remark\":null,\"id\":106}}', '2022-04-03 10:16:34', 37, 0, '', 'true', NULL, '2022-04-03 10:16:34', NULL, '2022-04-03 10:16:34', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1702, '', 1, 2, '管理后台 - 字典类型', '更新字典类型', 3, '', '', 'PUT', '/admin-api/infra/test-demo/update', '127.0.0.1', 'Apache-HttpClient/4.5.13 (Java/11.0.14.1)', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.test.TestDemoController.updateTestDemo(TestDemoUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"测试\",\"status\":0,\"type\":1,\"category\":1,\"remark\":null,\"id\":106}}', '2022-04-03 13:50:43', 34, 0, '', 'true', NULL, '2022-04-03 13:50:43', NULL, '2022-04-03 13:50:43', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1703, '', 1, 2, '管理后台 - 定时任务', '更新定时任务的状态', 3, '', '', 'PUT', '/admin-api/infra/job/update-status', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.job.JobController.updateJobStatus(Long,Integer)', '{\"id\":5,\"status\":1}', '2022-04-03 20:35:22', 145, 0, '', 'true', NULL, '2022-04-03 20:35:22', NULL, '2022-04-03 20:35:22', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1704, '', 1, 2, '管理后台 - 定时任务', '更新定时任务的状态', 3, '', '', 'PUT', '/admin-api/infra/job/update-status', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.job.JobController.updateJobStatus(Long,Integer)', '{\"id\":5,\"status\":2}', '2022-04-03 20:35:25', 55, 0, '', 'true', NULL, '2022-04-03 20:35:25', NULL, '2022-04-03 20:35:25', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1705, '', 1, 2, '管理后台 - 定时任务', '触发定时任务', 3, '', '', 'PUT', '/admin-api/infra/job/trigger', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.job.JobController.triggerJob(Long)', '{\"id\":13}', '2022-04-03 20:35:37', 78, 0, '', 'true', NULL, '2022-04-03 20:35:37', NULL, '2022-04-03 20:35:37', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1706, '', 1, 2, '管理后台 - 定时任务', '删除定时任务', 4, '', '', 'DELETE', '/admin-api/infra/job/delete', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.job.JobController.deleteJob(Long)', '{\"id\":13}', '2022-04-03 22:12:48', 109, 0, '', 'true', NULL, '2022-04-03 22:12:48', NULL, '2022-04-03 22:12:48', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1707, '', 1, 2, '管理后台 - 定时任务', '创建定时任务', 2, '', '', 'POST', '/admin-api/infra/job/create', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.job.JobController.createJob(JobCreateReqVO)', '{\"createReqVO\":{\"name\":\"用户 Session 超时 Job\",\"handlerParam\":null,\"cronExpression\":\"* * * * * ?\",\"retryCount\":0,\"retryInterval\":0,\"monitorTimeout\":60,\"handlerName\":\"userSessionTimeoutJob\"}}', '2022-04-03 22:15:33', 65, 0, '', '14', NULL, '2022-04-03 22:15:33', NULL, '2022-04-03 22:15:33', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1708, '', 1, 2, '管理后台 - 定时任务', '更新定时任务', 3, '', '', 'PUT', '/admin-api/infra/job/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.job.JobController.updateJob(JobUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"用户 Session 超时 Job\",\"handlerParam\":null,\"cronExpression\":\"* * * * * ?\",\"retryCount\":0,\"retryInterval\":0,\"monitorTimeout\":60,\"id\":14}}', '2022-04-03 22:16:05', 50, 0, '', 'true', NULL, '2022-04-03 22:16:05', NULL, '2022-04-03 22:16:05', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1709, '', 1, 2, '管理后台 - 定时任务', '删除定时任务', 4, '', '', 'DELETE', '/admin-api/infra/job/delete', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.job.JobController.deleteJob(Long)', '{\"id\":14}', '2022-04-03 22:16:09', 55, 0, '', 'true', NULL, '2022-04-03 22:16:09', NULL, '2022-04-03 22:16:09', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1710, '', 1, 2, '管理后台 - 定时任务', '创建定时任务', 2, '', '', 'POST', '/admin-api/infra/job/create', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.job.JobController.createJob(JobCreateReqVO)', '{\"createReqVO\":{\"name\":\"用户 Session 超时 Job\",\"handlerParam\":null,\"cronExpression\":\"0 * * * * ?\",\"retryCount\":0,\"retryInterval\":0,\"monitorTimeout\":60000,\"handlerName\":\"userSessionTimeoutJob\"}}', '2022-04-03 22:18:14', 50, 0, '', '15', NULL, '2022-04-03 22:18:14', NULL, '2022-04-03 22:18:14', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1711, '', 1, 2, '管理后台 - 定时任务', '触发定时任务', 3, '', '', 'PUT', '/admin-api/infra/job/trigger', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.job.JobController.triggerJob(Long)', '{\"id\":15}', '2022-04-03 22:19:56', 38, 0, '', 'true', NULL, '2022-04-03 22:19:56', NULL, '2022-04-03 22:19:56', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1712, '', 1, 2, '管理后台 - 定时任务', '触发定时任务', 3, '', '', 'PUT', '/admin-api/infra/job/trigger', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.job.JobController.triggerJob(Long)', '{\"id\":15}', '2022-04-03 22:22:01', 51, 0, '', 'true', NULL, '2022-04-03 22:22:01', NULL, '2022-04-03 22:22:01', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1713, '', 1, 2, '管理后台 - 定时任务', '触发定时任务', 3, '', '', 'PUT', '/admin-api/infra/job/trigger', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.job.JobController.triggerJob(Long)', '{\"id\":15}', '2022-04-03 22:22:33', 35, 0, '', 'true', NULL, '2022-04-03 22:22:33', NULL, '2022-04-03 22:22:33', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1714, '', 1, 2, '管理后台 - 定时任务', '触发定时任务', 3, '', '', 'PUT', '/admin-api/infra/job/trigger', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.job.JobController.triggerJob(Long)', '{\"id\":15}', '2022-04-03 22:22:36', 34, 0, '', 'true', NULL, '2022-04-03 22:22:36', NULL, '2022-04-03 22:22:36', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1715, '', 1, 2, '管理后台 - 定时任务', '触发定时任务', 3, '', '', 'PUT', '/admin-api/infra/job/trigger', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.job.JobController.triggerJob(Long)', '{\"id\":15}', '2022-04-03 22:23:17', 36, 0, '', 'true', NULL, '2022-04-03 22:23:17', NULL, '2022-04-03 22:23:17', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1716, '', 1, 2, '管理后台 - 定时任务', '触发定时任务', 3, '', '', 'PUT', '/admin-api/infra/job/trigger', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.job.JobController.triggerJob(Long)', '{\"id\":15}', '2022-04-03 22:23:29', 35, 0, '', 'true', NULL, '2022-04-03 22:23:29', NULL, '2022-04-03 22:23:29', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1717, '', 1, 2, '管理后台 - 参数配置', '修改参数配置', 3, '', '', 'PUT', '/admin-api/infra/config/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.config.ConfigController.updateConfig(ConfigUpdateReqVO)', '{\"reqVO\":{\"group\":\"biz\",\"name\":\"登陆验证码的开关\",\"value\":\"false\",\"sensitive\":true,\"remark\":null,\"id\":6}}', '2022-04-04 12:48:49', 60, 0, '', 'true', NULL, '2022-04-04 12:48:49', NULL, '2022-04-04 12:48:49', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1718, '', 1, 2, '管理后台 - 参数配置', '修改参数配置', 3, '', '', 'PUT', '/admin-api/infra/config/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.config.ConfigController.updateConfig(ConfigUpdateReqVO)', '{\"reqVO\":{\"group\":\"biz\",\"name\":\"登陆验证码的开关\",\"value\":\"true\",\"sensitive\":true,\"remark\":null,\"id\":6}}', '2022-04-04 12:51:40', 31, 0, '', 'true', NULL, '2022-04-04 12:51:40', NULL, '2022-04-04 12:51:40', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1719, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list-from-db', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.codegen.CodegenController.createCodegenListFromDB(List)', '{\"tableNames\":[\"system_dict_type\"]}', '2022-04-04 23:04:57', 174, 0, '', '[68]', NULL, '2022-04-04 23:04:57', NULL, '2022-04-04 23:04:57', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1720, '', 1, 2, '管理后台 - 代码生成器', '基于数据库的表结构,创建代码生成器的表和字段定义', 2, '', '', 'POST', '/admin-api/infra/codegen/create-list-from-db', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.codegen.CodegenController.createCodegenListFromDB(List)', '{\"tableNames\":[\"system_sensitive_word\"]}', '2022-04-08 00:53:24', 165, 0, '', '[69]', NULL, '2022-04-08 00:53:24', NULL, '2022-04-08 00:53:24', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1721, '', 1, 2, '管理后台 - 代码生成器', '更新数据库的表和字段定义', 3, '', '', 'PUT', '/admin-api/infra/codegen/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.infra.controller.admin.codegen.CodegenController.updateCodegen(CodegenUpdateReqVO)', '{\"updateReqVO\":{\"table\":{\"importType\":1,\"scene\":1,\"tableName\":\"system_sensitive_word\",\"tableComment\":\"敏感词\",\"remark\":null,\"moduleName\":\"system\",\"businessName\":\"sensitiveWord\",\"className\":\"SensitiveWord\",\"classComment\":\"敏感词\",\"author\":\"芋道源码\",\"templateType\":1,\"parentMenuId\":1,\"id\":69,\"parentMenuIdValid\":true},\"columns\":[{\"tableId\":69,\"columnName\":\"id\",\"columnType\":\"bigint\",\"columnComment\":\"编号\",\"nullable\":false,\"primaryKey\":true,\"autoIncrement\":\"true\",\"ordinalPosition\":1,\"javaType\":\"Long\",\"javaField\":\"id\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":true,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":814},{\"tableId\":69,\"columnName\":\"name\",\"columnType\":\"varchar(255)\",\"columnComment\":\"敏感词\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":2,\"javaType\":\"String\",\"javaField\":\"name\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"LIKE\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":815},{\"tableId\":69,\"columnName\":\"description\",\"columnType\":\"varchar(512)\",\"columnComment\":\"描述\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":3,\"javaType\":\"String\",\"javaField\":\"description\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"editor\",\"id\":816},{\"tableId\":69,\"columnName\":\"tags\",\"columnType\":\"varchar(255)\",\"columnComment\":\"标签数组\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":4,\"javaType\":\"String\",\"javaField\":\"tags\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"input\",\"id\":817},{\"tableId\":69,\"columnName\":\"status\",\"columnType\":\"tinyint\",\"columnComment\":\"状态\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":5,\"javaType\":\"Integer\",\"javaField\":\"status\",\"dictType\":\"\",\"example\":null,\"createOperation\":true,\"updateOperation\":true,\"listOperation\":true,\"listOperationCondition\":\"=\",\"listOperationResult\":true,\"htmlType\":\"radio\",\"id\":818},{\"tableId\":69,\"columnName\":\"creator\",\"columnType\":\"varchar(64)\",\"columnComment\":\"创建者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":6,\"javaType\":\"String\",\"javaField\":\"creator\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":819},{\"tableId\":69,\"columnName\":\"create_time\",\"columnType\":\"datetime\",\"columnComment\":\"创建时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":7,\"javaType\":\"Date\",\"javaField\":\"createTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":true,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":true,\"htmlType\":\"datetime\",\"id\":820},{\"tableId\":69,\"columnName\":\"updater\",\"columnType\":\"varchar(64)\",\"columnComment\":\"更新者\",\"nullable\":true,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":8,\"javaType\":\"String\",\"javaField\":\"updater\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"input\",\"id\":821},{\"tableId\":69,\"columnName\":\"update_time\",\"columnType\":\"datetime\",\"columnComment\":\"更新时间\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":9,\"javaType\":\"Date\",\"javaField\":\"updateTime\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"BETWEEN\",\"listOperationResult\":false,\"htmlType\":\"datetime\",\"id\":822},{\"tableId\":69,\"columnName\":\"deleted\",\"columnType\":\"bit(1)\",\"columnComment\":\"是否删除\",\"nullable\":false,\"primaryKey\":false,\"autoIncrement\":\"false\",\"ordinalPosition\":10,\"javaType\":\"Boolean\",\"javaField\":\"deleted\",\"dictType\":\"\",\"example\":null,\"createOperation\":false,\"updateOperation\":false,\"listOperation\":false,\"listOperationCondition\":\"=\",\"listOperationResult\":false,\"htmlType\":\"radio\",\"id\":823}]}}', '2022-04-08 00:54:14', 129, 0, '', 'true', NULL, '2022-04-08 00:54:14', NULL, '2022-04-08 00:54:14', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1722, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"敏感词管理\",\"permission\":\"\",\"type\":2,\"sort\":13,\"parentId\":1,\"path\":\"sensitive-word\",\"icon\":\"\",\"component\":\"system/sensitiveWord/index\",\"status\":0,\"id\":1247}}', '2022-04-08 00:55:30', 59, 0, '', 'true', NULL, '2022-04-08 00:55:30', NULL, '2022-04-08 00:55:30', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1723, '', 1, 2, '管理后台 - 菜单', '修改菜单', 3, '', '', 'PUT', '/admin-api/system/menu/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.permission.MenuController.updateMenu(MenuUpdateReqVO)', '{\"reqVO\":{\"name\":\"敏感词管理\",\"permission\":\"\",\"type\":2,\"sort\":13,\"parentId\":1,\"path\":\"sensitive-word\",\"icon\":\"education\",\"component\":\"system/sensitiveWord/index\",\"status\":0,\"id\":1247}}', '2022-04-08 19:25:09', 37, 0, '', 'true', NULL, '2022-04-08 19:25:09', NULL, '2022-04-08 19:25:09', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1724, '', 1, 2, '管理后台 - 敏感词', '创建敏感词', 2, '', '', 'POST', '/admin-api/system/sensitive-word/create', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController.createSensitiveWord(SensitiveWordCreateReqVO)', '{\"createReqVO\":{\"name\":\"测试\",\"tags\":[\"论坛\"],\"status\":0,\"description\":\"啊哈哈\"}}', '2022-04-08 19:51:45', 48, 0, '', '1', NULL, '2022-04-08 19:51:45', NULL, '2022-04-08 19:51:45', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1725, '', 1, 2, '管理后台 - 敏感词', '判断传入text是否含有敏感词', 0, '', '', 'GET', '/admin-api/system/sensitive-word/is-sensitive-word-by-text', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController.isSensitiveWordByText(String)', '{\"text\":\"31213\"}', '2022-04-08 19:55:11', 10, 0, '', 'false', NULL, '2022-04-08 19:55:11', NULL, '2022-04-08 19:55:11', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1726, '', 1, 2, '管理后台 - 敏感词', '判断传入text是否含有敏感词', 0, '', '', 'GET', '/admin-api/system/sensitive-word/is-sensitive-word-by-text', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController.isSensitiveWordByText(String)', '{\"text\":\"31213\"}', '2022-04-08 19:55:12', 8, 0, '', 'false', NULL, '2022-04-08 19:55:12', NULL, '2022-04-08 19:55:12', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1727, '', 1, 2, '管理后台 - 敏感词', '创建敏感词', 2, '', '', 'POST', '/admin-api/system/sensitive-word/create', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController.createSensitiveWord(SensitiveWordCreateReqVO)', '{\"createReqVO\":{\"name\":\"测试\",\"tags\":[\"论坛\"],\"status\":0,\"description\":\"哈哈\"}}', '2022-04-08 20:10:27', 21, 0, '', '2', NULL, '2022-04-08 20:10:27', NULL, '2022-04-08 20:10:27', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1728, '', 1, 2, '管理后台 - 敏感词', '更新敏感词', 3, '', '', 'PUT', '/admin-api/system/sensitive-word/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController.updateSensitiveWord(SensitiveWordUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"测试\",\"tags\":[\"论坛\",\"吃瓜\"],\"status\":0,\"description\":\"啊哈哈\",\"id\":1}}', '2022-04-08 20:10:42', 30, 500, 'ServiceException: 系统敏感词已在标签中存在', 'null', NULL, '2022-04-08 20:10:42', NULL, '2022-04-08 20:10:42', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1729, '', 1, 2, '管理后台 - 敏感词', '删除敏感词', 4, '', '', 'DELETE', '/admin-api/system/sensitive-word/delete', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController.deleteSensitiveWord(Long)', '{\"id\":1}', '2022-04-08 20:10:45', 27, 0, '', 'true', NULL, '2022-04-08 20:10:45', NULL, '2022-04-08 20:10:45', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1730, '', 1, 2, '管理后台 - 敏感词', '更新敏感词', 3, '', '', 'PUT', '/admin-api/system/sensitive-word/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController.updateSensitiveWord(SensitiveWordUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"测试\",\"tags\":[\"论坛\",\"吃瓜\"],\"status\":0,\"description\":\"哈哈\",\"id\":2}}', '2022-04-08 20:10:49', 25, 500, 'ServiceException: 系统敏感词已在标签中存在', 'null', NULL, '2022-04-08 20:10:49', NULL, '2022-04-08 20:10:49', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1731, '', 1, 2, '管理后台 - 敏感词', '更新敏感词', 3, '', '', 'PUT', '/admin-api/system/sensitive-word/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController.updateSensitiveWord(SensitiveWordUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"测试\",\"tags\":[\"论坛\",\"吃瓜\"],\"status\":0,\"description\":\"哈哈\",\"id\":2}}', '2022-04-08 20:10:52', 24, 500, 'ServiceException: 系统敏感词已在标签中存在', 'null', NULL, '2022-04-08 20:10:52', NULL, '2022-04-08 20:10:52', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1732, '', 1, 2, '管理后台 - 敏感词', '创建敏感词', 2, '', '', 'POST', '/admin-api/system/sensitive-word/create', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController.createSensitiveWord(SensitiveWordCreateReqVO)', '{\"createReqVO\":{\"name\":\"土豆\",\"tags\":[\"蔬菜\"],\"status\":0,\"description\":\"好呀\"}}', '2022-04-08 21:07:12', 43, 0, '', '3', NULL, '2022-04-08 21:07:12', NULL, '2022-04-08 21:07:12', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1733, '', 1, 2, '管理后台 - 敏感词', '更新敏感词', 3, '', '', 'PUT', '/admin-api/system/sensitive-word/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController.updateSensitiveWord(SensitiveWordUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"测试\",\"tags\":[\"论坛\",\"吃瓜\",\"蔬菜\"],\"status\":0,\"description\":\"哈哈\",\"id\":2}}', '2022-04-08 21:11:20', 141, 0, '', 'true', NULL, '2022-04-08 21:11:21', NULL, '2022-04-08 21:11:21', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1734, '', 1, 2, '管理后台 - 敏感词', '删除敏感词', 4, '', '', 'DELETE', '/admin-api/system/sensitive-word/delete', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController.deleteSensitiveWord(Long)', '{\"id\":2}', '2022-04-08 21:13:52', 21, 0, '', 'true', NULL, '2022-04-08 21:13:52', NULL, '2022-04-08 21:13:52', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1735, '', 1, 2, '管理后台 - 敏感词', '更新敏感词', 3, '', '', 'PUT', '/admin-api/system/sensitive-word/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController.updateSensitiveWord(SensitiveWordUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"土豆\",\"tags\":[\"蔬菜\"],\"status\":0,\"description\":\"好呀\",\"id\":3}}', '2022-04-08 21:20:40', 52, 0, '', 'true', NULL, '2022-04-08 21:20:43', NULL, '2022-04-08 21:20:43', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1736, '', 1, 2, '管理后台 - 敏感词', '创建敏感词', 2, '', '', 'POST', '/admin-api/system/sensitive-word/create', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController.createSensitiveWord(SensitiveWordCreateReqVO)', '{\"createReqVO\":{\"name\":\"XXX\",\"tags\":[\"短信\"],\"status\":0,\"description\":null}}', '2022-04-08 21:27:49', 47, 0, '', '4', NULL, '2022-04-08 21:27:49', NULL, '2022-04-08 21:27:49', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1737, '', 1, 2, '管理后台 - 敏感词', '更新敏感词', 3, '', '', 'PUT', '/admin-api/system/sensitive-word/update', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'CommonResult cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController.updateSensitiveWord(SensitiveWordUpdateReqVO)', '{\"updateReqVO\":{\"name\":\"土豆\",\"tags\":[\"蔬菜\",\"短信\"],\"status\":0,\"description\":\"好呀\",\"id\":3}}', '2022-04-09 10:28:14', 41, 0, '', 'true', NULL, '2022-04-09 10:28:14', NULL, '2022-04-09 10:28:14', b'0', 1); +INSERT INTO `system_operate_log` VALUES (1738, '', 1, 2, '管理后台 - 敏感词', '导出敏感词 Excel', 5, '', '', 'GET', '/admin-api/system/sensitive-word/export-excel', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', 'void cn.iocoder.yudao.module.system.controller.admin.sensitiveword.SensitiveWordController.exportSensitiveWordExcel(SensitiveWordExportReqVO,HttpServletResponse)', '{\"exportReqVO\":{\"name\":null,\"tag\":null,\"status\":null,\"beginCreateTime\":null,\"endCreateTime\":null},\"response\":\"[ignore]\"}', '2022-04-09 10:32:58', 1853, 500, 'InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not \"opens java.lang\" to unnamed module @6be968ce', 'null', NULL, '2022-04-09 10:32:59', NULL, '2022-04-09 10:32:59', b'0', 1); COMMIT; -- ---------------------------- @@ -3961,7 +4537,7 @@ CREATE TABLE `system_role` ( BEGIN; INSERT INTO `system_role` VALUES (1, '超级管理员', 'super_admin', 1, 1, '', 0, 1, '超级管理员', 'admin', '2021-01-05 17:03:48', '', '2022-02-22 05:08:21', b'0', 1); INSERT INTO `system_role` VALUES (2, '普通角色', 'common', 2, 2, '', 0, 1, '普通角色', 'admin', '2021-01-05 17:03:48', '', '2022-02-22 05:08:20', b'0', 1); -INSERT INTO `system_role` VALUES (101, '测试账号', 'test', 0, 1, '[]', 0, 2, '132', '', '2021-01-06 13:49:35', '1', '2022-03-19 22:00:41', b'0', 1); +INSERT INTO `system_role` VALUES (101, '测试账号', 'test', 0, 1, '[]', 0, 2, '132', '', '2021-01-06 13:49:35', '1', '2022-04-01 21:37:13', b'0', 1); INSERT INTO `system_role` VALUES (109, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2022-02-22 00:56:14', '1', '2022-02-22 00:56:14', b'0', 121); INSERT INTO `system_role` VALUES (110, '测试角色', 'test', 0, 1, '[]', 0, 2, '嘿嘿', '110', '2022-02-23 00:14:34', '110', '2022-02-23 13:14:58', b'0', 121); INSERT INTO `system_role` VALUES (111, '租户管理员', 'tenant_admin', 0, 1, '', 0, 1, '系统自动生成', '1', '2022-03-07 21:37:58', '1', '2022-03-07 21:37:58', b'0', 122); @@ -3982,7 +4558,7 @@ CREATE TABLE `system_role_menu` ( `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', PRIMARY KEY (`id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=1641 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色和菜单关联表'; +) ENGINE=InnoDB AUTO_INCREMENT=1695 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色和菜单关联表'; -- ---------------------------- -- Records of system_role_menu @@ -5368,6 +5944,88 @@ INSERT INTO `system_role_menu` VALUES (1637, 101, 1211, '1', '2022-03-19 21:45:5 INSERT INTO `system_role_menu` VALUES (1638, 101, 1212, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); INSERT INTO `system_role_menu` VALUES (1639, 101, 1213, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); INSERT INTO `system_role_menu` VALUES (1640, 101, 1215, '1', '2022-03-19 21:45:52', '1', '2022-03-19 21:45:52', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1641, 101, 2, '1', '2022-04-01 22:21:24', '1', '2022-04-01 22:21:24', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1642, 101, 1031, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1643, 101, 1032, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1644, 101, 1033, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1645, 101, 1034, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1646, 101, 1035, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1647, 101, 1050, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1648, 101, 1051, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1649, 101, 1052, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1650, 101, 1053, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1651, 101, 1054, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1652, 101, 1056, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1653, 101, 1057, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1654, 101, 1058, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1655, 101, 1059, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1656, 101, 1060, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1657, 101, 1066, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1658, 101, 1067, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1659, 101, 1070, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1660, 101, 1071, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1661, 101, 1072, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1662, 101, 1073, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1663, 101, 1074, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1664, 101, 1075, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1665, 101, 1076, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1666, 101, 1077, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1667, 101, 1078, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1668, 101, 1082, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1669, 101, 1083, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1670, 101, 1084, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1671, 101, 1085, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1672, 101, 1086, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1673, 101, 1087, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1674, 101, 1088, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1675, 101, 1089, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1676, 101, 1090, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1677, 101, 1091, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1678, 101, 1092, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1679, 101, 1237, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1680, 101, 1238, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1681, 101, 1239, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1682, 101, 1240, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1683, 101, 1241, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1684, 101, 1242, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1685, 101, 1243, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1686, 101, 1116, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1687, 101, 106, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1688, 101, 110, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1689, 101, 111, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1690, 101, 112, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1691, 101, 113, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1692, 101, 114, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1693, 101, 115, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +INSERT INTO `system_role_menu` VALUES (1694, 101, 116, '1', '2022-04-01 22:21:37', '1', '2022-04-01 22:21:37', b'0', 1); +COMMIT; + +-- ---------------------------- +-- Table structure for system_sensitive_word +-- ---------------------------- +DROP TABLE IF EXISTS `system_sensitive_word`; +CREATE TABLE `system_sensitive_word` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '敏感词', + `description` varchar(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '描述', + `tags` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '标签数组', + `status` tinyint NOT NULL COMMENT '状态', + `creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci 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=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='敏感词'; + +-- ---------------------------- +-- Records of system_sensitive_word +-- ---------------------------- +BEGIN; +INSERT INTO `system_sensitive_word` VALUES (1, '测试', '啊哈哈', '论坛,吃瓜', 0, '1', '2022-04-08 19:51:45', '1', '2022-04-08 12:10:45', b'1'); +INSERT INTO `system_sensitive_word` VALUES (2, '测试', '哈哈', '论坛,吃瓜,蔬菜', 0, '1', '2022-04-08 20:10:27', '1', '2022-04-08 13:13:52', b'1'); +INSERT INTO `system_sensitive_word` VALUES (3, '土豆', '好呀', '蔬菜,短信', 0, '1', '2022-04-08 21:07:12', '1', '2022-04-09 10:28:14', b'0'); +INSERT INTO `system_sensitive_word` VALUES (4, 'XXX', NULL, '短信', 0, '1', '2022-04-08 21:27:49', '1', '2022-04-08 21:27:49', b'0'); COMMIT; -- ---------------------------- @@ -5389,7 +6047,7 @@ CREATE TABLE `system_sms_channel` ( `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=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='短信渠道'; +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='短信渠道'; -- ---------------------------- -- Records of system_sms_channel @@ -5398,7 +6056,8 @@ BEGIN; INSERT INTO `system_sms_channel` VALUES (1, '芋道', 'YUN_PIAN', 0, '呵呵呵哒', '1555a14277cb8a608cf45a9e6a80d510', NULL, 'http://vdwapu.natappfree.cc/admin-api/system/sms/callback/yunpian', '', '2021-03-31 06:12:20', '1', '2022-02-23 16:48:44', b'0'); INSERT INTO `system_sms_channel` VALUES (2, 'Ballcat', 'ALIYUN', 0, '啦啦啦', 'LTAI5tCnKso2uG3kJ5gRav88', 'fGJ5SNXL7P1NHNRmJ7DJaMJGPyE55C', NULL, '', '2021-03-31 11:53:10', '1', '2021-04-14 00:08:37', b'0'); INSERT INTO `system_sms_channel` VALUES (3, '测试', 'YUN_PIAN', 0, '哈哈哈', '23132', NULL, 'http://www.baidu.com', '1', '2021-04-05 21:10:34', '1', '2021-04-11 16:21:58', b'1'); -INSERT INTO `system_sms_channel` VALUES (4, '测试渠道', 'DEBUG_DING_TALK', 0, '123', '696b5d8ead48071237e4aa5861ff08dbadb2b4ded1c688a7b7c9afc615579859', 'SEC5c4e5ff888bc8a9923ae47f59e7ccd30af1f14d93c55b4e2c9cb094e35aeed67', NULL, '1', '2021-04-13 00:23:14', '1', '2021-04-14 00:07:10', b'0'); +INSERT INTO `system_sms_channel` VALUES (4, '测试渠道', 'DEBUG_DING_TALK', 0, '123', '696b5d8ead48071237e4aa5861ff08dbadb2b4ded1c688a7b7c9afc615579859', 'SEC5c4e5ff888bc8a9923ae47f59e7ccd30af1f14d93c55b4e2c9cb094e35aeed67', NULL, '1', '2021-04-13 00:23:14', '1', '2022-03-27 20:29:49', b'0'); +INSERT INTO `system_sms_channel` VALUES (5, '1', '2', 0, '3', '2', NULL, NULL, '1', '2022-03-27 20:22:34', '1', '2022-03-27 12:22:36', b'1'); COMMIT; -- ---------------------------- @@ -5466,7 +6125,7 @@ CREATE TABLE `system_sms_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=134 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='短信日志'; +) ENGINE=InnoDB AUTO_INCREMENT=135 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='短信日志'; -- ---------------------------- -- Records of system_sms_log @@ -5478,6 +6137,7 @@ INSERT INTO `system_sms_log` VALUES (129, 4, 'DEBUG_DING_TALK', 11, 'bpm_process INSERT INTO `system_sms_log` VALUES (130, 4, 'DEBUG_DING_TALK', 9, 'bpm_task_assigned', 2, '您收到了一条新的待办任务:通用表单-部门领导审批,申请人:芋道源码,处理链接:http://dashboard.yudao.iocoder.cn/bpm/process-instance/detail?id=6be9f198-a787-11ec-96d6-8e557beca7ad', '{\"startUserNickname\":\"芋道源码\",\"taskName\":\"部门领导审批\",\"detailUrl\":\"http://dashboard.yudao.iocoder.cn/bpm/process-instance/detail?id=6be9f198-a787-11ec-96d6-8e557beca7ad\",\"processInstanceName\":\"通用表单\"}', 'suibian', '15612345678', 1, 2, 10, '2022-03-19 21:21:03', 0, '成功', '0', NULL, NULL, '93d3803d-6a95-4d6f-91a1-89416764b34d', 0, NULL, NULL, NULL, '1', '2022-03-19 21:21:02', NULL, '2022-03-19 21:21:03', b'0'); INSERT INTO `system_sms_log` VALUES (131, 4, 'DEBUG_DING_TALK', 9, 'bpm_task_assigned', 2, '您收到了一条新的待办任务:通用表单-HR 审批,申请人:芋道源码,处理链接:http://dashboard.yudao.iocoder.cn/bpm/process-instance/detail?id=6be9f198-a787-11ec-96d6-8e557beca7ad', '{\"startUserNickname\":\"芋道源码\",\"taskName\":\"HR 审批\",\"detailUrl\":\"http://dashboard.yudao.iocoder.cn/bpm/process-instance/detail?id=6be9f198-a787-11ec-96d6-8e557beca7ad\",\"processInstanceName\":\"通用表单\"}', 'suibian', '15612345678', 1, 2, 10, '2022-03-19 22:00:46', 0, '成功', '0', NULL, NULL, '97635216-89f0-4a97-9459-33f60473a6bb', 0, NULL, NULL, NULL, '104', '2022-03-19 22:00:45', NULL, '2022-03-19 22:00:46', b'0'); INSERT INTO `system_sms_log` VALUES (132, 4, 'DEBUG_DING_TALK', 11, 'bpm_process_instance_approve', 2, '您的流程被审批通过:通用表单,查看链接:http://dashboard.yudao.iocoder.cn/bpm/process-instance/detail?id=6be9f198-a787-11ec-96d6-8e557beca7ad', '{\"detailUrl\":\"http://dashboard.yudao.iocoder.cn/bpm/process-instance/detail?id=6be9f198-a787-11ec-96d6-8e557beca7ad\",\"processInstanceName\":\"通用表单\"}', 'suibian', '15612345678', 1, 2, 10, '2022-03-19 22:16:00', 0, '成功', '0', NULL, NULL, '1fbb5236-85bc-472a-b6a3-37dee594c162', 0, NULL, NULL, NULL, '114', '2022-03-19 22:16:00', NULL, '2022-03-19 22:16:00', b'0'); +INSERT INTO `system_sms_log` VALUES (134, 4, 'DEBUG_DING_TALK', 7, 'test-04', 3, '老鸡2,牛逼1', '{\"name\":\"2\",\"code\":\"1\"}', 'suibian', '156o0169', NULL, 2, 10, '2022-03-29 00:17:15', 0, '成功', '0', NULL, NULL, 'b651f69a-ec60-46b0-9094-86407dbc7a75', 0, NULL, NULL, NULL, '1', '2022-03-29 00:17:13', NULL, '2022-03-29 00:17:15', b'0'); COMMIT; -- ---------------------------- @@ -5515,7 +6175,7 @@ INSERT INTO `system_sms_template` VALUES (7, 3, 0, 'test-04', '测试下', '老 INSERT INTO `system_sms_template` VALUES (8, 1, 0, 'user-sms-login', '前台用户短信登录', '您的验证码是{code}', '[\"code\"]', NULL, '4372216', 1, 'YUN_PIAN', '1', '2021-10-11 08:10:00', '1', '2021-10-11 08:10:00', b'0'); INSERT INTO `system_sms_template` VALUES (9, 2, 0, 'bpm_task_assigned', '【工作流】任务被分配', '您收到了一条新的待办任务:{processInstanceName}-{taskName},申请人:{startUserNickname},处理链接:{detailUrl}', '[\"processInstanceName\",\"taskName\",\"startUserNickname\",\"detailUrl\"]', NULL, 'suibian', 4, 'DEBUG_DING_TALK', '1', '2022-01-21 22:31:19', '1', '2022-01-22 00:03:36', b'0'); INSERT INTO `system_sms_template` VALUES (10, 2, 0, 'bpm_process_instance_reject', '【工作流】流程被不通过', '您的流程被审批不通过:{processInstanceName},原因:{comment},查看链接:{detailUrl}', '[\"processInstanceName\",\"comment\",\"detailUrl\"]', NULL, 'suibian', 4, 'DEBUG_DING_TALK', '1', '2022-01-22 00:03:31', '1', '2022-01-22 00:24:31', b'0'); -INSERT INTO `system_sms_template` VALUES (11, 2, 0, 'bpm_process_instance_approve', '【工作流】流程被通过', '您的流程被审批通过:{processInstanceName},查看链接:{detailUrl}', '[\"processInstanceName\",\"detailUrl\"]', NULL, 'suibian', 4, 'DEBUG_DING_TALK', '1', '2022-01-22 00:04:31', '1', '2022-01-22 00:24:23', b'0'); +INSERT INTO `system_sms_template` VALUES (11, 2, 0, 'bpm_process_instance_approve', '【工作流】流程被通过', '您的流程被审批通过:{processInstanceName},查看链接:{detailUrl}', '[\"processInstanceName\",\"detailUrl\"]', NULL, 'suibian', 4, 'DEBUG_DING_TALK', '1', '2022-01-22 00:04:31', '1', '2022-03-27 20:32:21', b'0'); COMMIT; -- ---------------------------- @@ -5633,14 +6293,15 @@ CREATE TABLE `system_user` ( `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', `tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号', - PRIMARY KEY (`id`) USING BTREE + PRIMARY KEY (`id`) USING BTREE, + UNIQUE KEY `idx_username` (`username`,`update_time`,`tenant_id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=115 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户信息表'; -- ---------------------------- -- Records of system_user -- ---------------------------- BEGIN; -INSERT INTO `system_user` VALUES (1, 'admin', '$2a$10$0acJOIk2D25/oC87nyclE..0lzeu9DtQ/n3geP4fkun/zIVRhHJIO', '芋道源码', '管理员', 103, '[1]', 'aoteman@126.com', '15612345678', 1, 'http://test.yudao.iocoder.cn/a294ecb2-73dd-4353-bf40-296b8931d0bf', 0, '127.0.0.1', '2022-03-19 18:27:50', 'admin', '2021-01-05 17:03:47', NULL, '2022-03-19 18:27:50', b'0', 1); +INSERT INTO `system_user` VALUES (1, 'admin', '$2a$10$0acJOIk2D25/oC87nyclE..0lzeu9DtQ/n3geP4fkun/zIVRhHJIO', '芋道源码', '管理员', 103, '[1]', 'aoteman@126.com', '15612345678', 1, 'http://test.yudao.iocoder.cn/48934f2f-92d4-4250-b917-d10d2b262c6a', 0, '127.0.0.1', '2022-04-09 10:21:19', 'admin', '2021-01-05 17:03:47', NULL, '2022-04-09 10:21:19', b'0', 1); INSERT INTO `system_user` VALUES (100, 'yudao', '$2a$10$11U48RhyJ5pSBYWSn12AD./ld671.ycSzJHbyrtpeoMeYiw31eo8a', '芋道', '不要吓我', 104, '[1]', 'yudao@iocoder.cn', '15601691300', 1, '', 1, '', NULL, '', '2021-01-07 09:07:17', '104', '2021-12-16 09:26:10', b'0', 1); INSERT INTO `system_user` VALUES (103, 'yuanma', '$2a$10$wWoPT7sqriM2O1YXRL.je.GiL538OR6ZTN8aQZr9JAGdnpCH2tpYe', '源码', NULL, 106, NULL, 'yuanma@iocoder.cn', '15601701300', 0, '', 0, '127.0.0.1', '2022-01-18 00:33:40', '', '2021-01-13 23:50:35', NULL, '2022-01-18 00:33:40', b'0', 1); INSERT INTO `system_user` VALUES (104, 'test', '$2a$10$e5RpuDCC0GYSt0Hvd2.CjujIXwgGct4SnXi6dVGxdgFsnqgEryk5a', '测试号', NULL, 107, '[]', '111@qq.com', '15601691200', 1, '', 0, '127.0.0.1', '2022-03-19 21:46:19', '', '2021-01-21 02:13:53', NULL, '2022-03-19 21:46:19', b'0', 1); @@ -5718,30 +6379,62 @@ CREATE TABLE `system_user_session` ( -- Records of system_user_session -- ---------------------------- BEGIN; -INSERT INTO `system_user_session` VALUES ('084a5a2a737b42e3bb13604a2ff6d4fe', 1, 2, '2022-03-13 18:01:54', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-12 18:01:54', NULL, '2022-03-12 18:01:54', b'0', 1); +INSERT INTO `system_user_session` VALUES ('084a5a2a737b42e3bb13604a2ff6d4fe', 1, 2, '2022-03-13 18:01:54', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-12 18:01:54', NULL, '2022-04-03 14:21:23', b'1', 1); +INSERT INTO `system_user_session` VALUES ('09df5aaf4a7a4a9ab42722c8adea0767', 1, 2, '2022-04-03 22:04:37', 'admin', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-02 22:04:37', NULL, '2022-04-03 14:21:23', b'1', 1); +INSERT INTO `system_user_session` VALUES ('0c04639e800e4c75a52af71239146512', 1, 2, '2022-03-28 10:14:05', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-03-26 19:36:22', NULL, '2022-04-03 14:21:23', b'1', 1); INSERT INTO `system_user_session` VALUES ('0d7a900b4a5e4089a48a54a71bca83e6', 1, 2, '2022-02-28 11:56:22', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36', NULL, '2022-02-27 11:56:22', NULL, '2022-02-27 08:25:28', b'1', 1); -INSERT INTO `system_user_session` VALUES ('101dc01ff37b4ceaa60a63e1c1005bbf', 1, 2, '2022-03-08 21:47:01', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-07 21:47:01', NULL, '2022-03-07 21:47:01', b'0', 1); -INSERT INTO `system_user_session` VALUES ('116ed46314c64d528cadcdc4e5a74710', 1, 2, '2022-03-20 18:27:50', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-19 18:27:50', NULL, '2022-03-19 18:27:50', b'0', 1); -INSERT INTO `system_user_session` VALUES ('2759180f76414d3d9807c47026b6f5a5', 1, 2, '2022-03-17 21:27:25', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-15 00:19:03', NULL, '2022-03-16 21:27:25', b'0', 1); -INSERT INTO `system_user_session` VALUES ('2935322c671b43fbbe7eb5532800bbcf', 110, 2, '2022-02-24 19:36:28', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36', NULL, '2022-02-23 19:36:28', NULL, '2022-02-23 19:36:28', b'0', 121); +INSERT INTO `system_user_session` VALUES ('101dc01ff37b4ceaa60a63e1c1005bbf', 1, 2, '2022-03-08 21:47:01', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-07 21:47:01', NULL, '2022-04-03 14:21:23', b'1', 1); +INSERT INTO `system_user_session` VALUES ('116ed46314c64d528cadcdc4e5a74710', 1, 2, '2022-03-20 18:27:50', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-19 18:27:50', NULL, '2022-04-03 14:21:23', b'1', 1); +INSERT INTO `system_user_session` VALUES ('1a86e1d5fda341d3baec7274c2887302', 1, 2, '2022-03-20 21:54:52', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-20 21:51:39', NULL, '2022-03-20 13:54:36', b'1', 1); +INSERT INTO `system_user_session` VALUES ('1cdf10987a5646de96197157e8f02f96', 1, 2, '2022-03-24 22:57:07', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-03-23 22:57:07', NULL, '2022-04-03 14:21:23', b'1', 1); +INSERT INTO `system_user_session` VALUES ('22b68303f9d34683b2ae24a9c23f7163', 1, 2, '2022-04-08 00:16:10', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-07 00:16:10', NULL, '2022-04-07 00:16:10', b'0', 1); +INSERT INTO `system_user_session` VALUES ('26a38c69374145b5920e991f155142cc', 1, 2, '2022-03-24 12:29:14', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-03-23 12:29:14', NULL, '2022-04-03 14:21:23', b'1', 1); +INSERT INTO `system_user_session` VALUES ('270d340ddd2b468c843627d7be53bbf4', 1, 2, '2022-04-01 20:53:05', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-03-31 20:53:05', NULL, '2022-04-03 14:21:23', b'1', 1); +INSERT INTO `system_user_session` VALUES ('2759180f76414d3d9807c47026b6f5a5', 1, 2, '2022-03-17 21:27:25', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-15 00:19:03', NULL, '2022-04-03 14:21:23', b'1', 1); +INSERT INTO `system_user_session` VALUES ('2935322c671b43fbbe7eb5532800bbcf', 110, 2, '2022-02-24 19:36:28', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36', NULL, '2022-02-23 19:36:28', NULL, '2022-04-03 14:21:23', b'1', 121); +INSERT INTO `system_user_session` VALUES ('2fd60d0a2797450aa20f6fa5cb703ba2', 1, 2, '2022-03-21 21:50:09', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-20 21:50:09', NULL, '2022-03-20 13:51:32', b'1', 1); +INSERT INTO `system_user_session` VALUES ('348813371e76453196b99db0fab7539a', 1, 2, '2022-03-24 23:30:34', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-03-23 23:30:34', NULL, '2022-04-03 14:21:23', b'1', 1); INSERT INTO `system_user_session` VALUES ('34fafe141291443ab0da27e1bc12a011', 1, 2, '2022-03-13 16:25:02', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-12 16:25:02', NULL, '2022-03-12 09:55:31', b'1', 1); -INSERT INTO `system_user_session` VALUES ('3bb5bae78cc24cb5a1c1df9c479b50ad', 1, 2, '2022-02-21 23:57:11', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36', NULL, '2022-02-20 23:57:11', NULL, '2022-02-20 23:57:11', b'0', 1); +INSERT INTO `system_user_session` VALUES ('3bb5bae78cc24cb5a1c1df9c479b50ad', 1, 2, '2022-02-21 23:57:11', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36', NULL, '2022-02-20 23:57:11', NULL, '2022-04-03 14:21:23', b'1', 1); INSERT INTO `system_user_session` VALUES ('3bc770291bc44fcfad0bf91e5bfded0e', 104, 2, '2022-03-20 21:46:19', 'test', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-19 21:46:19', NULL, '2022-03-19 14:13:05', b'1', 1); -INSERT INTO `system_user_session` VALUES ('4a97fd8f3721416ebe6c682ca9d70743', 1, 2, '2022-03-12 00:24:08', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-11 00:24:08', NULL, '2022-03-11 00:24:08', b'0', 1); -INSERT INTO `system_user_session` VALUES ('7b0c15457686444bb17fb810807859f0', 114, 2, '2022-03-20 22:15:43', 'hrmgr', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-19 22:15:43', NULL, '2022-03-19 22:15:43', b'0', 1); -INSERT INTO `system_user_session` VALUES ('8951e01e18774a92b0382a76dfa5aab9', 1, 2, '2022-03-13 14:30:59', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-11 00:16:29', NULL, '2022-03-12 14:30:59', b'0', 1); +INSERT INTO `system_user_session` VALUES ('488dbb3d30144e6fa290319fbf778a9c', 1, 2, '2022-04-02 21:33:52', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-01 21:33:52', NULL, '2022-04-03 14:21:23', b'1', 1); +INSERT INTO `system_user_session` VALUES ('498a1559218b4d91bec6474ada2332cf', 1, 2, '2022-03-28 20:16:50', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-03-26 20:06:48', NULL, '2022-04-03 14:21:23', b'1', 1); +INSERT INTO `system_user_session` VALUES ('4a97fd8f3721416ebe6c682ca9d70743', 1, 2, '2022-03-12 00:24:08', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-11 00:24:08', NULL, '2022-04-03 14:21:23', b'1', 1); +INSERT INTO `system_user_session` VALUES ('55eac5d72b7a4679a78bd63ad6507544', 1, 2, '2022-04-09 19:24:13', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-08 19:24:13', NULL, '2022-04-08 19:24:13', b'0', 1); +INSERT INTO `system_user_session` VALUES ('5d6327fb8ecd4c71a51f14424211d419', 1, 2, '2022-04-08 00:15:10', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-07 00:15:10', NULL, '2022-04-07 00:15:10', b'0', 1); +INSERT INTO `system_user_session` VALUES ('66ad83da20944e4484aac92add3c9b03', 1, 2, '2022-04-01 20:46:52', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-03-31 20:46:52', NULL, '2022-04-03 14:21:23', b'1', 1); +INSERT INTO `system_user_session` VALUES ('70318f99805840219b3654b6a3f3f807', 1, 2, '2022-03-25 20:24:10', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-03-24 20:24:10', NULL, '2022-04-03 14:21:23', b'1', 1); +INSERT INTO `system_user_session` VALUES ('791bc552e91942dba54367fba060354f', 1, 2, '2022-03-21 22:03:38', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-20 22:03:38', NULL, '2022-03-20 15:45:21', b'1', 1); +INSERT INTO `system_user_session` VALUES ('7b0c15457686444bb17fb810807859f0', 114, 2, '2022-03-20 22:15:43', 'hrmgr', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-19 22:15:43', NULL, '2022-04-03 14:21:23', b'1', 1); +INSERT INTO `system_user_session` VALUES ('8951e01e18774a92b0382a76dfa5aab9', 1, 2, '2022-03-13 14:30:59', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-11 00:16:29', NULL, '2022-04-03 14:21:23', b'1', 1); +INSERT INTO `system_user_session` VALUES ('8b00bcd875da48348da7868d8bacdcb3', 1, 2, '2022-03-24 22:35:44', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-03-23 22:35:44', NULL, '2022-04-03 14:21:23', b'1', 1); +INSERT INTO `system_user_session` VALUES ('8c95c9324e4047428e4656a191257e7a', 1, 2, '2022-03-21 23:45:27', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-20 23:45:27', NULL, '2022-03-20 15:45:31', b'1', 1); +INSERT INTO `system_user_session` VALUES ('94dc2ccf74e648e6bdd51f1304969d33', 1, 2, '2022-03-30 00:12:30', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-03-29 00:12:30', NULL, '2022-04-03 14:21:23', b'1', 1); INSERT INTO `system_user_session` VALUES ('95e6336e75794bffbd5b6b7617d24c52', 1, 2, '2022-03-08 21:36:53', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-07 21:36:53', NULL, '2022-03-07 13:42:52', b'1', 1); +INSERT INTO `system_user_session` VALUES ('9c04a9ad1aab45729d9c3f131286a87b', 1, 2, '2022-04-04 20:35:06', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-03 20:35:06', NULL, '2022-04-03 20:35:06', b'0', 1); INSERT INTO `system_user_session` VALUES ('9c93fd1cd23a43e3854451b781420aed', 1, 2, '2022-02-28 16:27:05', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36', NULL, '2022-02-27 16:27:05', NULL, '2022-02-27 16:27:05', b'0', 0); -INSERT INTO `system_user_session` VALUES ('a0cd3f0adcaa4bb3951b24969990f235', 1, 2, '2022-03-08 21:08:36', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-07 21:08:36', NULL, '2022-03-07 21:08:36', b'0', 1); -INSERT INTO `system_user_session` VALUES ('b1bd95d813024acab14dd171ca887a94', 1, 2, '2022-02-28 10:52:17', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36', NULL, '2022-02-27 10:52:17', NULL, '2022-02-27 10:52:17', b'0', 1); +INSERT INTO `system_user_session` VALUES ('9f15722e27f84063acc272d14608c7a7', 1, 2, '2022-03-27 23:58:21', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-03-26 23:58:21', NULL, '2022-04-03 14:21:23', b'1', 1); +INSERT INTO `system_user_session` VALUES ('a0cd3f0adcaa4bb3951b24969990f235', 1, 2, '2022-03-08 21:08:36', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-07 21:08:36', NULL, '2022-04-03 14:21:23', b'1', 1); +INSERT INTO `system_user_session` VALUES ('a9162a1862ac44a8839f984e4192e9b0', 1, 2, '2022-04-09 00:52:17', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-08 00:52:17', NULL, '2022-04-08 00:52:17', b'0', 1); +INSERT INTO `system_user_session` VALUES ('b1bd95d813024acab14dd171ca887a94', 1, 2, '2022-02-28 10:52:17', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36', NULL, '2022-02-27 10:52:17', NULL, '2022-04-03 14:21:23', b'1', 1); +INSERT INTO `system_user_session` VALUES ('b2fe20b6073a43f9bfd843fab55e20f0', 1, 2, '2022-03-20 21:55:12', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-20 21:54:42', NULL, '2022-04-03 14:21:23', b'1', 1); INSERT INTO `system_user_session` VALUES ('cb97d665c2bd4525b2fbfe9a399f5926', 104, 2, '2022-03-13 17:55:44', 'test', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-12 17:55:44', NULL, '2022-03-12 10:01:46', b'1', 1); -INSERT INTO `system_user_session` VALUES ('daadfe0f94f34d60b1f83088612cf3e9', 1, 2, '2022-03-18 18:36:04', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-16 23:46:20', NULL, '2022-03-17 18:36:04', b'0', 1); -INSERT INTO `system_user_session` VALUES ('db48c609bd2840bca7499bddb43eeabe', 113, 2, '2022-03-20 18:38:51', 'aoteman', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-19 18:38:51', NULL, '2022-03-19 18:38:51', b'0', 122); +INSERT INTO `system_user_session` VALUES ('d85d3922978a48c1aed7b19665712883', 1, 2, '2022-04-04 20:07:18', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-02 23:05:51', NULL, '2022-04-03 16:04:42', b'1', 1); +INSERT INTO `system_user_session` VALUES ('daadfe0f94f34d60b1f83088612cf3e9', 1, 2, '2022-03-18 18:36:04', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-16 23:46:20', NULL, '2022-04-03 14:21:23', b'1', 1); +INSERT INTO `system_user_session` VALUES ('db48c609bd2840bca7499bddb43eeabe', 113, 2, '2022-03-20 18:38:51', 'aoteman', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-19 18:38:51', NULL, '2022-04-03 14:21:23', b'1', 122); INSERT INTO `system_user_session` VALUES ('db777da72b0b4a528915d80c7b272141', 113, 2, '2022-03-08 21:43:59', 'aoteman', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-07 21:43:59', NULL, '2022-03-07 13:45:02', b'1', 122); -INSERT INTO `system_user_session` VALUES ('df7083510c63407489688a800a55d97b', 1, 2, '2022-03-21 02:25:33', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-18 22:24:46', NULL, '2022-03-20 02:25:33', b'0', 1); -INSERT INTO `system_user_session` VALUES ('e769a8511c4043a886f68d1d6c39bddd', 104, 2, '2022-02-28 11:10:07', 'test', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36', NULL, '2022-02-27 11:10:07', NULL, '2022-02-27 11:10:07', b'0', 1); -INSERT INTO `system_user_session` VALUES ('ec60e16dfd2546e1a118eef7a42c07ef', 1, 2, '2022-02-24 22:33:28', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36', NULL, '2022-02-22 00:44:08', NULL, '2022-02-23 22:33:28', b'0', 1); +INSERT INTO `system_user_session` VALUES ('dd7a19cd44474a01bd98d3a40cc5fbf4', 1, 2, '2022-03-31 20:29:14', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-03-30 20:29:14', NULL, '2022-04-03 14:21:23', b'1', 1); +INSERT INTO `system_user_session` VALUES ('dd814fe542a446a4958dfb8bd9b0b248', 1, 2, '2022-03-25 09:59:06', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-03-23 23:33:02', NULL, '2022-04-03 14:21:23', b'1', 1); +INSERT INTO `system_user_session` VALUES ('df7083510c63407489688a800a55d97b', 1, 2, '2022-03-21 18:19:06', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-18 22:24:46', NULL, '2022-04-03 14:21:23', b'1', 1); +INSERT INTO `system_user_session` VALUES ('e24d367e497e4cf1af0129f9877fd747', 1, 2, '2022-04-05 23:04:28', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-04 00:07:21', NULL, '2022-04-04 23:04:28', b'0', 1); +INSERT INTO `system_user_session` VALUES ('e4309a512fdf4b6483ad31c399b50f05', 1, 2, '2022-04-10 10:06:46', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-09 02:06:37', NULL, '2022-04-09 10:06:46', b'0', 1); +INSERT INTO `system_user_session` VALUES ('e769a8511c4043a886f68d1d6c39bddd', 104, 2, '2022-02-28 11:10:07', 'test', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36', NULL, '2022-02-27 11:10:07', NULL, '2022-04-03 14:21:23', b'1', 1); +INSERT INTO `system_user_session` VALUES ('ec60e16dfd2546e1a118eef7a42c07ef', 1, 2, '2022-02-24 22:33:28', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36', NULL, '2022-02-22 00:44:08', NULL, '2022-04-03 14:21:23', b'1', 1); INSERT INTO `system_user_session` VALUES ('f088b33f48e640a293b2353a07f67371', 104, 2, '2022-03-20 21:45:14', 'test', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-19 21:45:14', NULL, '2022-03-19 13:46:11', b'1', 1); +INSERT INTO `system_user_session` VALUES ('f91c33179ded4c6b98f93568614412f0', 1, 2, '2022-03-24 23:30:49', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-03-23 23:30:49', NULL, '2022-04-03 14:21:23', b'1', 1); +INSERT INTO `system_user_session` VALUES ('fa2980cb42524137a1bbde303cc71b38', 1, 2, '2022-03-22 00:10:05', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36', NULL, '2022-03-21 00:10:05', NULL, '2022-04-03 14:21:23', b'1', 1); +INSERT INTO `system_user_session` VALUES ('fb282be32fdd4d81b08dbef7a7c4d2ce', 1, 2, '2022-03-24 12:29:19', 'admin', '127.0.0.1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36', NULL, '2022-03-23 12:29:19', NULL, '2022-04-03 14:21:23', b'1', 1); +INSERT INTO `system_user_session` VALUES ('ffe28d833fea4e76a0b2b6bcde9236c2', 1, 2, '2022-04-03 22:03:16', 'admin', '0:0:0:0:0:0:0:1', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.83 Safari/537.36', NULL, '2022-04-02 22:03:16', NULL, '2022-04-03 14:21:23', b'1', 1); COMMIT; SET FOREIGN_KEY_CHECKS = 1; diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/http/HttpUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/http/HttpUtils.java index 2fa6e3ef8..2eb4f34eb 100644 --- a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/http/HttpUtils.java +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/http/HttpUtils.java @@ -1,9 +1,7 @@ package cn.iocoder.yudao.framework.common.util.http; -import cn.hutool.core.io.FileUtil; import cn.hutool.core.map.TableMap; import cn.hutool.core.net.url.UrlBuilder; -import cn.hutool.core.util.ReferenceUtil; import cn.hutool.core.util.ReflectUtil; import java.nio.charset.Charset; diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/io/IoUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/io/IoUtils.java index 89660acaf..4a19f479d 100644 --- a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/io/IoUtils.java +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/io/IoUtils.java @@ -2,7 +2,6 @@ package cn.iocoder.yudao.framework.common.util.io; import cn.hutool.core.io.IORuntimeException; import cn.hutool.core.io.IoUtil; -import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.StrUtil; import java.io.InputStream; diff --git a/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/ftp/FtpFileClient.java b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/ftp/FtpFileClient.java index c02b469ff..d50bc8501 100644 --- a/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/ftp/FtpFileClient.java +++ b/yudao-framework/yudao-spring-boot-starter-file/src/main/java/cn/iocoder/yudao/framework/file/core/client/ftp/FtpFileClient.java @@ -44,7 +44,7 @@ public class FtpFileClient extends AbstractFileClient { String dir = StrUtil.removeSuffix(filePath, fileName); boolean success = ftp.upload(dir, fileName, new ByteArrayInputStream(content)); if (!success) { - throw new FtpException(StrUtil.format("上海文件到目标目录 ({}) 失败", filePath)); + throw new FtpException(StrUtil.format("上传文件到目标目录 ({}) 失败", filePath)); } // 拼接返回路径 return super.formatFileUrl(config.getDomain(), path); diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/mapper/BaseMapperX.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/mapper/BaseMapperX.java index 4ca5becb3..fb4af6d69 100644 --- a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/mapper/BaseMapperX.java +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/mapper/BaseMapperX.java @@ -75,12 +75,20 @@ public interface BaseMapperX extends BaseMapper { return selectList(new LambdaQueryWrapper().in(field, values)); } + /** + * 逐条插入,适合少量数据插入,或者对性能要求不高的场景 + * + * 如果大量,请使用 {@link com.baomidou.mybatisplus.extension.service.impl.ServiceImpl#saveBatch(Collection)} 方法 + * 使用示例,可见 RoleMenuBatchInsertMapper、UserRoleBatchInsertMapper 类 + * + * @param entities 实体们 + */ default void insertBatch(Collection entities) { - // TODO 芋艿:修改成支持批量的 entities.forEach(this::insert); } default void updateBatch(T update) { update(update, new QueryWrapper<>()); } + } diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/type/StringLiSTTypeHandler.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/type/StringLiSTTypeHandler.java new file mode 100644 index 000000000..f9811c418 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/type/StringLiSTTypeHandler.java @@ -0,0 +1,58 @@ +package cn.iocoder.yudao.framework.mybatis.core.type; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import org.apache.ibatis.type.JdbcType; +import org.apache.ibatis.type.MappedJdbcTypes; +import org.apache.ibatis.type.MappedTypes; +import org.apache.ibatis.type.TypeHandler; + +import java.sql.CallableStatement; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +/** + * List 的类型转换器实现类,对应数据库的 varchar 类型 + * + * @author 永不言败 + * @since 2022 3/23 12:50:15 + */ +@MappedJdbcTypes(JdbcType.VARCHAR) +@MappedTypes(List.class) +public class StringLiSTTypeHandler implements TypeHandler> { + + private static final String COMMA = ","; + + @Override + public void setParameter(PreparedStatement ps, int i, List strings, JdbcType jdbcType) throws SQLException { + // 设置占位符 + ps.setString(i, CollUtil.join(strings, COMMA)); + } + + @Override + public List getResult(ResultSet rs, String columnName) throws SQLException { + String value = rs.getString(columnName); + return getResult(value); + } + + @Override + public List getResult(ResultSet rs, int columnIndex) throws SQLException { + String value = rs.getString(columnIndex); + return getResult(value); + } + + @Override + public List getResult(CallableStatement cs, int columnIndex) throws SQLException { + String value = cs.getString(columnIndex); + return getResult(value); + } + + private List getResult(String value) { + if (value == null) { + return null; + } + return StrUtil.splitTrim(value, COMMA); + } +} diff --git a/yudao-framework/yudao-spring-boot-starter-redis/pom.xml b/yudao-framework/yudao-spring-boot-starter-redis/pom.xml index a1140ac06..750cd4881 100644 --- a/yudao-framework/yudao-spring-boot-starter-redis/pom.xml +++ b/yudao-framework/yudao-spring-boot-starter-redis/pom.xml @@ -26,6 +26,12 @@ org.redisson redisson-spring-boot-starter + + + org.springframework.boot + spring-boot-starter-cache + + diff --git a/yudao-framework/yudao-spring-boot-starter-redis/src/main/java/cn/iocoder/yudao/framework/redis/config/YudaoCacheAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-redis/src/main/java/cn/iocoder/yudao/framework/redis/config/YudaoCacheAutoConfiguration.java new file mode 100644 index 000000000..e8c716203 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-redis/src/main/java/cn/iocoder/yudao/framework/redis/config/YudaoCacheAutoConfiguration.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.framework.redis.config; + +import org.springframework.boot.autoconfigure.cache.CacheProperties; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.data.redis.cache.RedisCacheConfiguration; +import org.springframework.data.redis.serializer.RedisSerializationContext; +import org.springframework.data.redis.serializer.RedisSerializer; + +/** + * Cache 配置类,基于 Redis 实现 + */ +@Configuration +@EnableCaching +public class YudaoCacheAutoConfiguration { + + /** + * RedisCacheConfiguration Bean + * + * 参考 org.springframework.boot.autoconfigure.cache.RedisCacheConfiguration 的 createConfiguration 方法 + */ + @Bean + @Primary + public RedisCacheConfiguration redisCacheConfiguration(CacheProperties cacheProperties) { + // 设置使用 JSON 序列化方式 + RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig(); + config = config.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(RedisSerializer.json())); + + // 设置 CacheProperties.Redis 的属性 + CacheProperties.Redis redisProperties = cacheProperties.getRedis(); + if (redisProperties.getTimeToLive() != null) { + config = config.entryTtl(redisProperties.getTimeToLive()); + } + if (redisProperties.getKeyPrefix() != null) { + config = config.prefixCacheNameWith(redisProperties.getKeyPrefix()); + } + if (!redisProperties.isCacheNullValues()) { + config = config.disableCachingNullValues(); + } + if (!redisProperties.isUseKeyPrefix()) { + config = config.disableKeyPrefix(); + } + return config; + } + +} diff --git a/yudao-framework/yudao-spring-boot-starter-redis/src/main/java/cn/iocoder/yudao/framework/redis/config/YudaoRedisAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-redis/src/main/java/cn/iocoder/yudao/framework/redis/config/YudaoRedisAutoConfiguration.java index 8f4b5ad6c..5a74a2bb2 100644 --- a/yudao-framework/yudao-spring-boot-starter-redis/src/main/java/cn/iocoder/yudao/framework/redis/config/YudaoRedisAutoConfiguration.java +++ b/yudao-framework/yudao-spring-boot-starter-redis/src/main/java/cn/iocoder/yudao/framework/redis/config/YudaoRedisAutoConfiguration.java @@ -1,6 +1,5 @@ package cn.iocoder.yudao.framework.redis.config; -import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; @@ -11,7 +10,6 @@ import org.springframework.data.redis.serializer.RedisSerializer; * Redis 配置类 */ @Configuration -@Slf4j public class YudaoRedisAutoConfiguration { /** diff --git a/yudao-framework/yudao-spring-boot-starter-redis/src/main/resources/META-INF/spring.factories b/yudao-framework/yudao-spring-boot-starter-redis/src/main/resources/META-INF/spring.factories index c76daf1a7..e4cefbab1 100644 --- a/yudao-framework/yudao-spring-boot-starter-redis/src/main/resources/META-INF/spring.factories +++ b/yudao-framework/yudao-spring-boot-starter-redis/src/main/resources/META-INF/spring.factories @@ -1,2 +1,3 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ - cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration + cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration,\ + cn.iocoder.yudao.framework.redis.config.YudaoCacheAutoConfiguration diff --git a/yudao-framework/yudao-spring-boot-starter-redis/《芋道 Spring Boot Cache 入门》.md b/yudao-framework/yudao-spring-boot-starter-redis/《芋道 Spring Boot Cache 入门》.md new file mode 100644 index 000000000..5c2708316 --- /dev/null +++ b/yudao-framework/yudao-spring-boot-starter-redis/《芋道 Spring Boot Cache 入门》.md @@ -0,0 +1 @@ + diff --git a/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/LoginUser.java b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/LoginUser.java index 3612e4905..84c7f94c4 100644 --- a/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/LoginUser.java +++ b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/LoginUser.java @@ -6,7 +6,6 @@ import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.userdetails.UserDetails; import java.util.*; @@ -61,10 +60,6 @@ public class LoginUser implements UserDetails { * 部门编号 */ private Long deptId; - /** - * 所属岗位 - */ - private Set postIds; // ========== 上下文 ========== /** diff --git a/yudao-framework/yudao-spring-boot-starter-test/pom.xml b/yudao-framework/yudao-spring-boot-starter-test/pom.xml index 0d3db8b76..04576fee6 100644 --- a/yudao-framework/yudao-spring-boot-starter-test/pom.xml +++ b/yudao-framework/yudao-spring-boot-starter-test/pom.xml @@ -21,6 +21,17 @@ yudao-common + + + cn.iocoder.boot + yudao-spring-boot-starter-mybatis + + + + cn.iocoder.boot + yudao-spring-boot-starter-redis + + org.mockito diff --git a/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/test/BaseDbAndRedisUnitTest.java b/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/ut/BaseDbAndRedisUnitTest.java similarity index 98% rename from yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/test/BaseDbAndRedisUnitTest.java rename to yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/ut/BaseDbAndRedisUnitTest.java index 8db24d555..1ee8dfef2 100644 --- a/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/test/BaseDbAndRedisUnitTest.java +++ b/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/ut/BaseDbAndRedisUnitTest.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.pay.test; +package cn.iocoder.yudao.framework.test.core.ut; import cn.iocoder.yudao.framework.datasource.config.YudaoDataSourceAutoConfiguration; import cn.iocoder.yudao.framework.mybatis.config.YudaoMybatisAutoConfiguration; diff --git a/yudao-module-bpm/yudao-module-bpm-base/src/test/java/cn/iocoder/yudao/module/bpm/test/BaseDbUnitTest.java b/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/ut/BaseDbUnitTest.java similarity index 97% rename from yudao-module-bpm/yudao-module-bpm-base/src/test/java/cn/iocoder/yudao/module/bpm/test/BaseDbUnitTest.java rename to yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/ut/BaseDbUnitTest.java index 615bdbc59..6a9a3ffcb 100644 --- a/yudao-module-bpm/yudao-module-bpm-base/src/test/java/cn/iocoder/yudao/module/bpm/test/BaseDbUnitTest.java +++ b/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/ut/BaseDbUnitTest.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.bpm.test; +package cn.iocoder.yudao.framework.test.core.ut; import cn.iocoder.yudao.framework.datasource.config.YudaoDataSourceAutoConfiguration; import cn.iocoder.yudao.framework.mybatis.config.YudaoMybatisAutoConfiguration; diff --git a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/test/BaseRedisUnitTest.java b/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/ut/BaseRedisUnitTest.java similarity index 96% rename from yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/test/BaseRedisUnitTest.java rename to yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/ut/BaseRedisUnitTest.java index 7dc6c1a40..7a112e05d 100644 --- a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/test/BaseRedisUnitTest.java +++ b/yudao-framework/yudao-spring-boot-starter-test/src/main/java/cn/iocoder/yudao/framework/test/core/ut/BaseRedisUnitTest.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.system.test; +package cn.iocoder.yudao.framework.test.core.ut; import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration; import cn.iocoder.yudao.framework.test.config.RedisTestConfiguration; diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/filter/ApiAccessLogFilter.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/filter/ApiAccessLogFilter.java index 3295e34c1..a0bdf64c8 100644 --- a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/filter/ApiAccessLogFilter.java +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/filter/ApiAccessLogFilter.java @@ -2,21 +2,18 @@ package cn.iocoder.yudao.framework.apilog.core.filter; import cn.hutool.core.exceptions.ExceptionUtil; import cn.hutool.core.map.MapUtil; -import cn.hutool.core.util.StrUtil; import cn.hutool.extra.servlet.ServletUtil; -import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants; -import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.apilog.core.service.ApiAccessLogFrameworkService; import cn.iocoder.yudao.framework.apilog.core.service.dto.ApiAccessLogCreateReqDTO; -import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils; -import cn.iocoder.yudao.framework.web.config.WebProperties; -import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; +import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.util.date.DateUtils; -import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils; import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; -import lombok.RequiredArgsConstructor; +import cn.iocoder.yudao.framework.web.config.WebProperties; +import cn.iocoder.yudao.framework.web.core.filter.ApiRequestFilter; +import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.filter.OncePerRequestFilter; import javax.servlet.FilterChain; import javax.servlet.ServletException; @@ -26,27 +23,24 @@ import java.io.IOException; import java.util.Date; import java.util.Map; -import static cn.iocoder.yudao.framework.common.util.json.JsonUtils.*; +import static cn.iocoder.yudao.framework.common.util.json.JsonUtils.toJsonString; /** * API 访问日志 Filter * * @author 芋道源码 */ -@RequiredArgsConstructor @Slf4j -public class ApiAccessLogFilter extends OncePerRequestFilter { +public class ApiAccessLogFilter extends ApiRequestFilter { - private final WebProperties webProperties; private final String applicationName; private final ApiAccessLogFrameworkService apiAccessLogFrameworkService; - @Override - protected boolean shouldNotFilter(HttpServletRequest request) { - // 只过滤 API 请求的地址 - return !StrUtil.startWithAny(request.getRequestURI(), webProperties.getAppApi().getPrefix(), - webProperties.getAppApi().getPrefix()); + public ApiAccessLogFilter(WebProperties webProperties, String applicationName, ApiAccessLogFrameworkService apiAccessLogFrameworkService) { + super(webProperties); + this.applicationName = applicationName; + this.apiAccessLogFrameworkService = apiAccessLogFrameworkService; } @Override diff --git a/yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmProcessDefinitionExtMapper.java b/yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmProcessDefinitionExtMapper.java index d857e145c..3ff53f2d9 100644 --- a/yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmProcessDefinitionExtMapper.java +++ b/yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmProcessDefinitionExtMapper.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.bpm.dal.mysql.definition; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionExtDO; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import org.apache.ibatis.annotations.Mapper; diff --git a/yudao-module-bpm/yudao-module-bpm-base/src/test/java/cn/iocoder/yudao/module/bpm/service/definition/BpmFormServiceTest.java b/yudao-module-bpm/yudao-module-bpm-base/src/test/java/cn/iocoder/yudao/module/bpm/service/definition/BpmFormServiceTest.java index 51073e865..bdd88afea 100644 --- a/yudao-module-bpm/yudao-module-bpm-base/src/test/java/cn/iocoder/yudao/module/bpm/service/definition/BpmFormServiceTest.java +++ b/yudao-module-bpm/yudao-module-bpm-base/src/test/java/cn/iocoder/yudao/module/bpm/service/definition/BpmFormServiceTest.java @@ -1,15 +1,15 @@ package cn.iocoder.yudao.module.bpm.service.definition; import cn.hutool.core.util.RandomUtil; -import cn.iocoder.yudao.module.bpm.test.BaseDbUnitTest; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.BpmFormCreateReqVO; import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.BpmFormPageReqVO; import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.BpmFormUpdateReqVO; import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO; import cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmFormMapper; import cn.iocoder.yudao.module.bpm.service.definition.dto.BpmFormFieldRespDTO; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.util.json.JsonUtils; import org.junit.jupiter.api.Test; import org.springframework.context.annotation.Import; @@ -18,12 +18,12 @@ import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; -import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.FORM_NOT_EXISTS; import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId; import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo; +import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.FORM_NOT_EXISTS; import static org.junit.jupiter.api.Assertions.*; /** diff --git a/yudao-module-bpm/yudao-module-bpm-base/src/test/java/cn/iocoder/yudao/module/bpm/service/definition/BpmUserGroupServiceTest.java b/yudao-module-bpm/yudao-module-bpm-base/src/test/java/cn/iocoder/yudao/module/bpm/service/definition/BpmUserGroupServiceTest.java index 713e74ed2..78e388700 100644 --- a/yudao-module-bpm/yudao-module-bpm-base/src/test/java/cn/iocoder/yudao/module/bpm/service/definition/BpmUserGroupServiceTest.java +++ b/yudao-module-bpm/yudao-module-bpm-base/src/test/java/cn/iocoder/yudao/module/bpm/service/definition/BpmUserGroupServiceTest.java @@ -1,24 +1,24 @@ package cn.iocoder.yudao.module.bpm.service.definition; -import cn.iocoder.yudao.module.bpm.test.BaseDbUnitTest; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.date.DateUtils; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; +import cn.iocoder.yudao.framework.test.core.util.AssertUtils; +import cn.iocoder.yudao.framework.test.core.util.RandomUtils; import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupCreateReqVO; import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupPageReqVO; import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupUpdateReqVO; import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmUserGroupDO; import cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmUserGroupMapper; -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.util.date.DateUtils; -import cn.iocoder.yudao.framework.test.core.util.AssertUtils; -import cn.iocoder.yudao.framework.test.core.util.RandomUtils; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.context.annotation.Import; import javax.annotation.Resource; -import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.USER_GROUP_NOT_EXISTS; import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; +import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.USER_GROUP_NOT_EXISTS; /** * {@link BpmUserGroupServiceImpl} 的单元测试类 diff --git a/yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmModelServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmModelServiceImpl.java index 319f732d7..bbeadd6b5 100644 --- a/yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmModelServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmModelServiceImpl.java @@ -215,6 +215,9 @@ public class BpmModelServiceImpl implements BpmModelService { if (oldDefinition == null) { return; } + if(oldDefinition.isSuspended()) { + return; + } processDefinitionService.updateProcessDefinitionState(oldDefinition.getId(), SuspensionState.SUSPENDED.getStateCode()); } diff --git a/yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmProcessDefinitionServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmProcessDefinitionServiceImpl.java index 5d41da654..011a948b6 100644 --- a/yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmProcessDefinitionServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-impl-activiti/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmProcessDefinitionServiceImpl.java @@ -103,6 +103,9 @@ public class BpmProcessDefinitionServiceImpl implements BpmProcessDefinitionServ } // 执行查询 List processDefinitions = definitionQuery.list(); + if (CollUtil.isEmpty(processDefinitions)) { + return Collections.emptyList(); + } // 获得 BpmProcessDefinitionDO Map List processDefinitionDOs = processDefinitionMapper.selectListByProcessDefinitionIds( diff --git a/yudao-module-bpm/yudao-module-bpm-impl-activiti/src/test/java/cn/iocoder/yudao/module/bpm/test/BaseDbUnitTest.java b/yudao-module-bpm/yudao-module-bpm-impl-activiti/src/test/java/cn/iocoder/yudao/module/bpm/test/BaseDbUnitTest.java deleted file mode 100644 index a25958bfd..000000000 --- a/yudao-module-bpm/yudao-module-bpm-impl-activiti/src/test/java/cn/iocoder/yudao/module/bpm/test/BaseDbUnitTest.java +++ /dev/null @@ -1,39 +0,0 @@ -package cn.iocoder.yudao.module.bpm.test; - -import cn.iocoder.yudao.framework.datasource.config.YudaoDataSourceAutoConfiguration; -import cn.iocoder.yudao.framework.mybatis.config.YudaoMybatisAutoConfiguration; -import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; -import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.Import; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.jdbc.Sql; - -/** - * 依赖内存 DB 的单元测试 - * - * 注意,Service 层同样适用。对于 Service 层的单元测试,我们针对自己模块的 Mapper 走的是 H2 内存数据库,针对别的模块的 Service 走的是 Mock 方法 - * - * @author 芋道源码 - */ -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = BaseDbUnitTest.Application.class) -@ActiveProfiles("unit-test") // 设置使用 application-unit-test 配置文件 -@Sql(scripts = "/sql/clean.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) // 每个单元测试结束后,清理 DB -public class BaseDbUnitTest { - - @Import({ - // DB 配置类 - YudaoDataSourceAutoConfiguration.class, // 自己的 DB 配置类 - DataSourceAutoConfiguration.class, // Spring DB 自动配置类 - DataSourceTransactionManagerAutoConfiguration.class, // Spring 事务自动配置类 - DruidDataSourceAutoConfigure.class, // Druid 自动配置类 - // MyBatis 配置类 - YudaoMybatisAutoConfiguration.class, // 自己的 MyBatis 配置类 - MybatisPlusAutoConfiguration.class, // MyBatis 的自动配置类 - }) - public static class Application { - } - -} diff --git a/yudao-module-bpm/yudao-module-bpm-impl-flowable/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmProcessDefinitionServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-impl-flowable/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmProcessDefinitionServiceImpl.java index a6591bd93..b54e95813 100644 --- a/yudao-module-bpm/yudao-module-bpm-impl-flowable/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmProcessDefinitionServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-impl-flowable/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmProcessDefinitionServiceImpl.java @@ -236,6 +236,9 @@ public class BpmProcessDefinitionServiceImpl implements BpmProcessDefinitionServ } // 执行查询 List processDefinitions = definitionQuery.list(); + if (CollUtil.isEmpty(processDefinitions)) { + return Collections.emptyList(); + } // 获得 BpmProcessDefinitionDO Map List processDefinitionDOs = processDefinitionMapper.selectListByProcessDefinitionIds( diff --git a/yudao-module-bpm/yudao-module-bpm-impl-flowable/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmTaskAssignRuleServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-impl-flowable/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmTaskAssignRuleServiceImpl.java index 6d6430da8..7ed096cc0 100644 --- a/yudao-module-bpm/yudao-module-bpm-impl-flowable/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmTaskAssignRuleServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-impl-flowable/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmTaskAssignRuleServiceImpl.java @@ -21,7 +21,6 @@ import cn.iocoder.yudao.module.system.api.permission.RoleApi; import cn.iocoder.yudao.module.system.api.user.AdminUserApi; import lombok.extern.slf4j.Slf4j; import org.flowable.bpmn.model.BpmnModel; -import org.flowable.bpmn.model.FlowElement; import org.flowable.bpmn.model.UserTask; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; diff --git a/yudao-module-infra/yudao-module-infra-impl/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/test/TestDemoController.http b/yudao-module-infra/yudao-module-infra-impl/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/test/TestDemoController.http new file mode 100644 index 000000000..ed65d0b86 --- /dev/null +++ b/yudao-module-infra/yudao-module-infra-impl/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/test/TestDemoController.http @@ -0,0 +1,19 @@ +### 请求 /infra/test-demo/get 接口 => 成功 +GET {{baseUrl}}/infra/test-demo/get?id=106 +Authorization: Bearer {{token}} +tenant-id: {{adminTenentId}} + +### 请求 /infra/test-demo/update 接口 => 成功 +PUT {{baseUrl}}/infra/test-demo/update +Authorization: Bearer {{token}} +tenant-id: {{adminTenentId}} +Content-Type: application/json + + +{ + "id": 106, + "name": "测试", + "status": "0", + "type": 1, + "category": 1 +} diff --git a/yudao-module-infra/yudao-module-infra-impl/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/test/TestDemoController.java b/yudao-module-infra/yudao-module-infra-impl/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/test/TestDemoController.java index 352cb35b7..a534b7daf 100755 --- a/yudao-module-infra/yudao-module-infra-impl/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/test/TestDemoController.java +++ b/yudao-module-infra/yudao-module-infra-impl/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/test/TestDemoController.java @@ -1,30 +1,29 @@ package cn.iocoder.yudao.module.infra.controller.admin.test; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; import cn.iocoder.yudao.module.infra.controller.admin.test.vo.*; import cn.iocoder.yudao.module.infra.convert.test.TestDemoConvert; import cn.iocoder.yudao.module.infra.dal.dataobject.test.TestDemoDO; -import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.annotations.*; - -import javax.validation.*; -import javax.servlet.http.*; -import java.util.*; -import java.io.IOException; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; - -import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; - -import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; -import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*; - -import cn.iocoder.yudao.module.infra.controller.admin.test.vo.*; import cn.iocoder.yudao.module.infra.service.test.TestDemoService; +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.Collection; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Api(tags = "管理后台 - 字典类型") @RestController @@ -37,13 +36,15 @@ public class TestDemoController { @PostMapping("/create") @ApiOperation("创建字典类型") - @PreAuthorize("@ss.hasPermission('infra:test-demo:create')") public CommonResult createTestDemo(@Valid @RequestBody TestDemoCreateReqVO createReqVO) { + @PreAuthorize("@ss.hasPermission('infra:test-demo:create')") + public CommonResult createTestDemo(@Valid @RequestBody TestDemoCreateReqVO createReqVO) { return success(testDemoService.createTestDemo(createReqVO)); } @PutMapping("/update") @ApiOperation("更新字典类型") - @PreAuthorize("@ss.hasPermission('infra:test-demo:update')") public CommonResult updateTestDemo(@Valid @RequestBody TestDemoUpdateReqVO updateReqVO) { + @PreAuthorize("@ss.hasPermission('infra:test-demo:update')") + public CommonResult updateTestDemo(@Valid @RequestBody TestDemoUpdateReqVO updateReqVO) { testDemoService.updateTestDemo(updateReqVO); return success(true); } diff --git a/yudao-module-infra/yudao-module-infra-impl/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenBuilder.java b/yudao-module-infra/yudao-module-infra-impl/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenBuilder.java index 2a4281e50..fe07df7a7 100644 --- a/yudao-module-infra/yudao-module-infra-impl/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenBuilder.java +++ b/yudao-module-infra/yudao-module-infra-impl/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenBuilder.java @@ -160,8 +160,9 @@ public class CodegenBuilder { // 处理 javaField 字段 column.setJavaField(toCamelCase(column.getColumnName())); // 处理 dictType 字段,暂无 - // 处理 javaType 字段 - String dbType = subBefore(column.getColumnType(), '(', false); + // 处理 javaType 字段(兼容无符号类型) + String dbType = replaceIgnoreCase(subBefore(column.getColumnType(), '(', false), + " UNSIGNED", ""); javaTypeMappings.entrySet().stream() .filter(entry -> entry.getValue().contains(dbType)) .findFirst().ifPresent(entry -> column.setJavaType(entry.getKey())); diff --git a/yudao-module-infra/yudao-module-infra-impl/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenEngine.java b/yudao-module-infra/yudao-module-infra-impl/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenEngine.java index 8fb104318..6fdddd6bd 100644 --- a/yudao-module-infra/yudao-module-infra-impl/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenEngine.java +++ b/yudao-module-infra/yudao-module-infra-impl/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenEngine.java @@ -217,7 +217,7 @@ public class CodegenEngine { private static String mapperXmlFilePath() { return "yudao-module-${table.moduleName}/" + // 顶级模块 "yudao-module-${table.moduleName}-impl/" + // 子模块 - "src/resources/mapper/${table.businessName}/${table.className}Mapper.xml"; + "src/main/java/resources/mapper/${table.businessName}/${table.className}Mapper.xml"; } private static String vueTemplatePath(String path) { diff --git a/yudao-module-infra/yudao-module-infra-impl/src/main/java/cn/iocoder/yudao/module/infra/service/test/TestDemoServiceImpl.java b/yudao-module-infra/yudao-module-infra-impl/src/main/java/cn/iocoder/yudao/module/infra/service/test/TestDemoServiceImpl.java index 3014ad464..92153b022 100755 --- a/yudao-module-infra/yudao-module-infra-impl/src/main/java/cn/iocoder/yudao/module/infra/service/test/TestDemoServiceImpl.java +++ b/yudao-module-infra/yudao-module-infra-impl/src/main/java/cn/iocoder/yudao/module/infra/service/test/TestDemoServiceImpl.java @@ -8,6 +8,8 @@ import cn.iocoder.yudao.module.infra.controller.admin.test.vo.TestDemoUpdateReqV import cn.iocoder.yudao.module.infra.convert.test.TestDemoConvert; import cn.iocoder.yudao.module.infra.dal.dataobject.test.TestDemoDO; import cn.iocoder.yudao.module.infra.dal.mysql.test.TestDemoMapper; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -40,6 +42,7 @@ public class TestDemoServiceImpl implements TestDemoService { } @Override + @CacheEvict(value = "test", key = "#updateReqVO.id") public void updateTestDemo(TestDemoUpdateReqVO updateReqVO) { // 校验存在 this.validateTestDemoExists(updateReqVO.getId()); @@ -49,6 +52,7 @@ public class TestDemoServiceImpl implements TestDemoService { } @Override + @CacheEvict(value = "test", key = "#id") public void deleteTestDemo(Long id) { // 校验存在 this.validateTestDemoExists(id); @@ -63,6 +67,7 @@ public class TestDemoServiceImpl implements TestDemoService { } @Override + @Cacheable(cacheNames = "test", key = "#id") public TestDemoDO getTestDemo(Long id) { return testDemoMapper.selectById(id); } diff --git a/yudao-module-infra/yudao-module-infra-impl/src/main/resources/codegen/java/test/serviceTest.vm b/yudao-module-infra/yudao-module-infra-impl/src/main/resources/codegen/java/test/serviceTest.vm index 67ea47d2c..6cf0c6196 100644 --- a/yudao-module-infra/yudao-module-infra-impl/src/main/resources/codegen/java/test/serviceTest.vm +++ b/yudao-module-infra/yudao-module-infra-impl/src/main/resources/codegen/java/test/serviceTest.vm @@ -6,7 +6,7 @@ import org.springframework.boot.test.mock.mockito.MockBean; import javax.annotation.Resource; -import ${basePackage}.module.${table.moduleName}.test.BaseDbUnitTest;## 每个项目,默认有一个基础 DB Test 基类 +import ${baseFrameworkPackage}.test.core.ut.BaseDbUnitTest; import ${basePackage}.module.${table.moduleName}.controller.${sceneEnum.basePackage}.${table.businessName}.vo.*; import ${basePackage}.module.${table.moduleName}.dal.dataobject.${table.businessName}.${table.className}DO; diff --git a/yudao-module-infra/yudao-module-infra-impl/src/main/resources/codegen/vue/views/index.vue.vm b/yudao-module-infra/yudao-module-infra-impl/src/main/resources/codegen/vue/views/index.vue.vm index 53ed842cc..aac0c27b6 100644 --- a/yudao-module-infra/yudao-module-infra-impl/src/main/resources/codegen/vue/views/index.vue.vm +++ b/yudao-module-infra/yudao-module-infra-impl/src/main/resources/codegen/vue/views/index.vue.vm @@ -2,7 +2,7 @@
- + #foreach($column in $columns) #if ($column.listOperation) #set ($dictType=$column.dictType) @@ -11,7 +11,7 @@ #set ($comment=$column.columnComment) #if ($column.htmlType == "input") - + #elseif ($column.htmlType == "select" || $column.htmlType == "radio") @@ -27,11 +27,11 @@ #elseif($column.htmlType == "datetime") #if ($column.listOperationCondition != "BETWEEN")## 非范围 - + #else## 范围 - #end @@ -39,8 +39,8 @@ #end #end - 搜索 - 重置 + 搜索 + 重置 @@ -160,7 +160,7 @@ #elseif($column.htmlType == "datetime")## 时间框 - + #elseif($column.htmlType == "textarea")## 文本框 diff --git a/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/config/ConfigServiceTest.java b/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/config/ConfigServiceTest.java index 1eeae4199..4481dbedb 100644 --- a/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/config/ConfigServiceTest.java +++ b/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/config/ConfigServiceTest.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.infra.service.config; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import cn.iocoder.yudao.framework.test.core.util.RandomUtils; import cn.iocoder.yudao.module.infra.controller.admin.config.vo.ConfigCreateReqVO; import cn.iocoder.yudao.module.infra.controller.admin.config.vo.ConfigExportReqVO; @@ -12,7 +13,6 @@ import cn.iocoder.yudao.module.infra.dal.dataobject.config.ConfigDO; import cn.iocoder.yudao.module.infra.dal.mysql.config.ConfigMapper; import cn.iocoder.yudao.module.infra.enums.config.ConfigTypeEnum; import cn.iocoder.yudao.module.infra.mq.producer.config.ConfigProducer; -import cn.iocoder.yudao.module.infra.test.BaseDbUnitTest; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; diff --git a/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/file/FileConfigServiceImplTest.java b/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/file/FileConfigServiceImplTest.java index 33e85f03b..9eb3a70f1 100755 --- a/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/file/FileConfigServiceImplTest.java +++ b/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/file/FileConfigServiceImplTest.java @@ -7,13 +7,13 @@ import cn.iocoder.yudao.framework.file.core.client.FileClientConfig; import cn.iocoder.yudao.framework.file.core.client.FileClientFactory; import cn.iocoder.yudao.framework.file.core.client.local.LocalFileClientConfig; import cn.iocoder.yudao.framework.file.core.enums.FileStorageEnum; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import cn.iocoder.yudao.module.infra.controller.admin.file.vo.config.FileConfigCreateReqVO; import cn.iocoder.yudao.module.infra.controller.admin.file.vo.config.FileConfigPageReqVO; import cn.iocoder.yudao.module.infra.controller.admin.file.vo.config.FileConfigUpdateReqVO; import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileConfigDO; import cn.iocoder.yudao.module.infra.dal.mysql.file.FileConfigMapper; import cn.iocoder.yudao.module.infra.mq.producer.file.FileConfigProducer; -import cn.iocoder.yudao.module.infra.test.BaseDbUnitTest; import lombok.Data; import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; diff --git a/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/file/FileServiceTest.java b/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/file/FileServiceTest.java index 4682bfbd9..da377e79b 100644 --- a/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/file/FileServiceTest.java +++ b/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/file/FileServiceTest.java @@ -4,11 +4,11 @@ import cn.hutool.core.io.resource.ResourceUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; import cn.iocoder.yudao.framework.file.core.client.FileClient; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import cn.iocoder.yudao.framework.test.core.util.AssertUtils; import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FilePageReqVO; import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileDO; import cn.iocoder.yudao.module.infra.dal.mysql.file.FileMapper; -import cn.iocoder.yudao.module.infra.test.BaseDbUnitTest; import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Import; @@ -18,7 +18,7 @@ import javax.annotation.Resource; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; -import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.*; +import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.FILE_NOT_EXISTS; import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.same; import static org.mockito.Mockito.*; diff --git a/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/job/JobLogServiceTest.java b/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/job/JobLogServiceTest.java index 27bda4965..2b7fc0528 100644 --- a/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/job/JobLogServiceTest.java +++ b/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/job/JobLogServiceTest.java @@ -1,30 +1,26 @@ package cn.iocoder.yudao.module.infra.service.job; -import static cn.hutool.core.util.RandomUtil.randomEle; -import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId; -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo; -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomString; -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; - -import java.util.ArrayList; -import java.util.List; - -import javax.annotation.Resource; - +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; +import cn.iocoder.yudao.module.infra.controller.admin.job.vo.log.JobLogExportReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.job.vo.log.JobLogPageReqVO; import cn.iocoder.yudao.module.infra.dal.dataobject.job.JobLogDO; -import cn.iocoder.yudao.module.infra.test.BaseDbUnitTest; +import cn.iocoder.yudao.module.infra.dal.mysql.job.JobLogMapper; +import cn.iocoder.yudao.module.infra.enums.job.JobLogStatusEnum; import org.junit.jupiter.api.Test; import org.springframework.context.annotation.Import; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.infra.controller.admin.job.vo.log.JobLogExportReqVO; -import cn.iocoder.yudao.module.infra.controller.admin.job.vo.log.JobLogPageReqVO; -import cn.iocoder.yudao.module.infra.dal.mysql.job.JobLogMapper; -import cn.iocoder.yudao.module.infra.enums.job.JobLogStatusEnum; -import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +import static cn.hutool.core.util.RandomUtil.randomEle; +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; +import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; +import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; @Import(JobLogServiceImpl.class) public class JobLogServiceTest extends BaseDbUnitTest { diff --git a/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/job/JobServiceTest.java b/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/job/JobServiceTest.java index cfbeb307b..1cfcae998 100644 --- a/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/job/JobServiceTest.java +++ b/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/job/JobServiceTest.java @@ -1,40 +1,36 @@ package cn.iocoder.yudao.module.infra.service.job; -import static cn.hutool.core.util.RandomUtil.randomEle; -import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.*; -import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; -import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo; -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomString; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertNull; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; - -import java.util.ArrayList; -import java.util.List; - -import javax.annotation.Resource; - +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; +import cn.iocoder.yudao.framework.quartz.core.scheduler.SchedulerManager; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobCreateReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobExportReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobPageReqVO; import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobUpdateReqVO; import cn.iocoder.yudao.module.infra.convert.job.JobConvert; import cn.iocoder.yudao.module.infra.dal.dataobject.job.JobDO; -import cn.iocoder.yudao.module.infra.test.BaseDbUnitTest; +import cn.iocoder.yudao.module.infra.dal.mysql.job.JobMapper; +import cn.iocoder.yudao.module.infra.enums.job.JobStatusEnum; import org.junit.jupiter.api.Test; import org.quartz.SchedulerException; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Import; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.quartz.core.scheduler.SchedulerManager; -import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobExportReqVO; -import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobPageReqVO; -import cn.iocoder.yudao.module.infra.dal.mysql.job.JobMapper; -import cn.iocoder.yudao.module.infra.enums.job.JobStatusEnum; -import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +import static cn.hutool.core.util.RandomUtil.randomEle; +import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; +import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; +import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo; +import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomString; +import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.*; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; @Import(JobServiceImpl.class) public class JobServiceTest extends BaseDbUnitTest { diff --git a/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/logger/ApiAccessLogServiceImplTest.java b/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/logger/ApiAccessLogServiceImplTest.java index 0b1b3d932..7ae75d9c4 100644 --- a/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/logger/ApiAccessLogServiceImplTest.java +++ b/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/logger/ApiAccessLogServiceImplTest.java @@ -6,12 +6,12 @@ import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import cn.iocoder.yudao.framework.test.core.util.RandomUtils; import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogExportReqVO; import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogPageReqVO; import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiAccessLogDO; import cn.iocoder.yudao.module.infra.dal.mysql.logger.ApiAccessLogMapper; -import cn.iocoder.yudao.module.infra.test.BaseDbUnitTest; import org.junit.jupiter.api.Test; import org.springframework.context.annotation.Import; diff --git a/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/logger/ApiErrorLogServiceImplTest.java b/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/logger/ApiErrorLogServiceImplTest.java index 9b24d5987..6c08af886 100644 --- a/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/logger/ApiErrorLogServiceImplTest.java +++ b/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/logger/ApiErrorLogServiceImplTest.java @@ -5,13 +5,13 @@ import cn.iocoder.yudao.framework.apilog.core.service.dto.ApiErrorLogCreateReqDT import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import cn.iocoder.yudao.framework.test.core.util.RandomUtils; import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogExportReqVO; import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogPageReqVO; import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiErrorLogDO; import cn.iocoder.yudao.module.infra.dal.mysql.logger.ApiErrorLogMapper; import cn.iocoder.yudao.module.infra.enums.logger.ApiErrorLogProcessStatusEnum; -import cn.iocoder.yudao.module.infra.test.BaseDbUnitTest; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.context.annotation.Import; diff --git a/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/test/TestDemoServiceImplTest.java b/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/test/TestDemoServiceImplTest.java index c5852a266..be02b0ed6 100755 --- a/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/test/TestDemoServiceImplTest.java +++ b/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/service/test/TestDemoServiceImplTest.java @@ -3,13 +3,13 @@ package cn.iocoder.yudao.module.infra.service.test; import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.date.DateUtils; -import cn.iocoder.yudao.module.infra.controller.admin.test.vo.TestDemoExportReqVO; -import cn.iocoder.yudao.module.infra.dal.dataobject.test.TestDemoDO; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import cn.iocoder.yudao.module.infra.controller.admin.test.vo.TestDemoCreateReqVO; +import cn.iocoder.yudao.module.infra.controller.admin.test.vo.TestDemoExportReqVO; import cn.iocoder.yudao.module.infra.controller.admin.test.vo.TestDemoPageReqVO; import cn.iocoder.yudao.module.infra.controller.admin.test.vo.TestDemoUpdateReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.test.TestDemoDO; import cn.iocoder.yudao.module.infra.dal.mysql.test.TestDemoMapper; -import cn.iocoder.yudao.module.infra.test.BaseDbUnitTest; import org.junit.jupiter.api.Test; import org.springframework.context.annotation.Import; diff --git a/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/test/BaseDbAndRedisUnitTest.java b/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/test/BaseDbAndRedisUnitTest.java deleted file mode 100644 index 4b860ed15..000000000 --- a/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/test/BaseDbAndRedisUnitTest.java +++ /dev/null @@ -1,51 +0,0 @@ -package cn.iocoder.yudao.module.infra.test; - -import cn.iocoder.yudao.framework.datasource.config.YudaoDataSourceAutoConfiguration; -import cn.iocoder.yudao.framework.mybatis.config.YudaoMybatisAutoConfiguration; -import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration; -import cn.iocoder.yudao.framework.test.config.RedisTestConfiguration; -import cn.iocoder.yudao.framework.test.config.SqlInitializationTestConfiguration; -import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; -import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration; -import org.redisson.spring.starter.RedissonAutoConfiguration; -import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.Import; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.jdbc.Sql; - -/** - * 依赖内存 DB + Redis 的单元测试 - * - * 相比 {@link BaseDbUnitTest} 来说,额外增加了内存 Redis - * - * @author 芋道源码 - */ -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = BaseDbAndRedisUnitTest.Application.class) -@ActiveProfiles("unit-test") // 设置使用 application-unit-test 配置文件 -@Sql(scripts = "/sql/clean.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) // 每个单元测试结束后,清理 DB -public class BaseDbAndRedisUnitTest { - - @Import({ - // DB 配置类 - YudaoDataSourceAutoConfiguration.class, // 自己的 DB 配置类 - DataSourceAutoConfiguration.class, // Spring DB 自动配置类 - DataSourceTransactionManagerAutoConfiguration.class, // Spring 事务自动配置类 - DruidDataSourceAutoConfigure.class, // Druid 自动配置类 - SqlInitializationTestConfiguration.class, // SQL 初始化 - // MyBatis 配置类 - YudaoMybatisAutoConfiguration.class, // 自己的 MyBatis 配置类 - MybatisPlusAutoConfiguration.class, // MyBatis 的自动配置类 - - // Redis 配置类 - RedisTestConfiguration.class, // Redis 测试配置类,用于启动 RedisServer - RedisAutoConfiguration.class, // Spring Redis 自动配置类 - YudaoRedisAutoConfiguration.class, // 自己的 Redis 配置类 - RedissonAutoConfiguration.class, // Redisson 自动高配置类 - }) - public static class Application { - } - -} diff --git a/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/test/BaseDbUnitTest.java b/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/test/BaseDbUnitTest.java deleted file mode 100644 index b2ec9325c..000000000 --- a/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/test/BaseDbUnitTest.java +++ /dev/null @@ -1,41 +0,0 @@ -package cn.iocoder.yudao.module.infra.test; - -import cn.iocoder.yudao.framework.datasource.config.YudaoDataSourceAutoConfiguration; -import cn.iocoder.yudao.framework.mybatis.config.YudaoMybatisAutoConfiguration; -import cn.iocoder.yudao.framework.test.config.SqlInitializationTestConfiguration; -import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; -import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.Import; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.jdbc.Sql; - -/** - * 依赖内存 DB 的单元测试 - * - * 注意,Service 层同样适用。对于 Service 层的单元测试,我们针对自己模块的 Mapper 走的是 H2 内存数据库,针对别的模块的 Service 走的是 Mock 方法 - * - * @author 芋道源码 - */ -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = BaseDbUnitTest.Application.class) -@ActiveProfiles("unit-test") // 设置使用 application-unit-test 配置文件 -@Sql(scripts = "/sql/clean.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) // 每个单元测试结束后,清理 DB -public class BaseDbUnitTest { - - @Import({ - // DB 配置类 - YudaoDataSourceAutoConfiguration.class, // 自己的 DB 配置类 - DataSourceAutoConfiguration.class, // Spring DB 自动配置类 - DataSourceTransactionManagerAutoConfiguration.class, // Spring 事务自动配置类 - DruidDataSourceAutoConfigure.class, // Druid 自动配置类 - SqlInitializationTestConfiguration.class, // SQL 初始化 - // MyBatis 配置类 - YudaoMybatisAutoConfiguration.class, // 自己的 MyBatis 配置类 - MybatisPlusAutoConfiguration.class, // MyBatis 的自动配置类 - }) - public static class Application { - } - -} diff --git a/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/test/QuartzTestConfiguration.java b/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/test/QuartzTestConfiguration.java deleted file mode 100644 index 2dd12f1a6..000000000 --- a/yudao-module-infra/yudao-module-infra-impl/src/test/java/cn/iocoder/yudao/module/infra/test/QuartzTestConfiguration.java +++ /dev/null @@ -1,16 +0,0 @@ -package cn.iocoder.yudao.module.infra.test; - -import org.mockito.Mockito; -import org.quartz.Scheduler; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -@Configuration -public class QuartzTestConfiguration { - - @Bean - public Scheduler scheduler() { - return Mockito.mock(Scheduler.class); - } - -} diff --git a/yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/convert/auth/AuthConvert.java b/yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/convert/auth/AuthConvert.java index f443765cd..133c997d3 100644 --- a/yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/convert/auth/AuthConvert.java +++ b/yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/convert/auth/AuthConvert.java @@ -33,6 +33,6 @@ public interface AuthConvert { SmsCodeSendReqDTO convert(AppAuthSendSmsReqVO reqVO); SmsCodeUseReqDTO convert(AppAuthResetPasswordReqVO reqVO, SmsSceneEnum scene, String usedIp); - SmsCodeUseReqDTO convert(AppAuthSmsLoginReqVO reqVO, Integer scene, String userIp); + SmsCodeUseReqDTO convert(AppAuthSmsLoginReqVO reqVO, Integer scene, String usedIp); } diff --git a/yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthServiceImpl.java b/yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthServiceImpl.java index 107c23b63..f28af5081 100644 --- a/yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthServiceImpl.java +++ b/yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthServiceImpl.java @@ -87,7 +87,7 @@ public class MemberAuthServiceImpl implements MemberAuthService { LoginUser loginUser = this.login0(reqVO.getMobile(), reqVO.getPassword()); // 缓存登录用户到 Redis 中,返回 sessionId 编号 - return userSessionApi.createUserSession(loginUser, userIp, userAgent); + return createUserSessionAfterLoginSuccess(loginUser, LoginLogTypeEnum.LOGIN_USERNAME, userIp, userAgent); } @Override @@ -101,11 +101,10 @@ public class MemberAuthServiceImpl implements MemberAuthService { Assert.notNull(user, "获取用户失败,结果为空"); // 执行登陆 - this.createLoginLog(user.getMobile(), LoginLogTypeEnum.LOGIN_SMS, LoginResultEnum.SUCCESS); LoginUser loginUser = AuthConvert.INSTANCE.convert(user); // 缓存登录用户到 Redis 中,返回 sessionId 编号 - return userSessionApi.createUserSession(loginUser, userIp, userAgent); + return createUserSessionAfterLoginSuccess(loginUser, LoginLogTypeEnum.LOGIN_SMS, userIp, userAgent); } @Override @@ -122,7 +121,6 @@ public class MemberAuthServiceImpl implements MemberAuthService { if (user == null) { throw exception(USER_NOT_EXISTS); } - this.createLoginLog(user.getMobile(), LoginLogTypeEnum.LOGIN_SOCIAL, LoginResultEnum.SUCCESS); // 创建 LoginUser 对象 LoginUser loginUser = AuthConvert.INSTANCE.convert(user); @@ -131,7 +129,7 @@ public class MemberAuthServiceImpl implements MemberAuthService { socialUserApi.bindSocialUser(AuthConvert.INSTANCE.convert(loginUser.getId(), getUserType().getValue(), reqVO)); // 缓存登录用户到 Redis 中,返回 sessionId 编号 - return userSessionApi.createUserSession(loginUser, userIp, userAgent); + return createUserSessionAfterLoginSuccess(loginUser, LoginLogTypeEnum.LOGIN_SOCIAL, userIp, userAgent); } @Override @@ -150,6 +148,13 @@ public class MemberAuthServiceImpl implements MemberAuthService { return sessionId; } + private String createUserSessionAfterLoginSuccess(LoginUser loginUser, LoginLogTypeEnum logType, String userIp, String userAgent) { + // 插入登陆日志 + createLoginLog(loginUser.getUsername(), logType, LoginResultEnum.SUCCESS); + // 缓存登录用户到 Redis 中,返回 sessionId 编号 + return userSessionApi.createUserSession(loginUser, userIp, userAgent); + } + @Override public void socialBind(Long userId, AppAuthSocialBindReqVO reqVO) { // 绑定社交用户(新增) @@ -186,9 +191,7 @@ public class MemberAuthServiceImpl implements MemberAuthService { this.createLoginLog(username, logType, LoginResultEnum.UNKNOWN_ERROR); throw exception(AUTH_LOGIN_FAIL_UNKNOWN); } - // 登录成功的日志 Assert.notNull(authentication.getPrincipal(), "Principal 不会为空"); - this.createLoginLog(username, logType, LoginResultEnum.SUCCESS); return (LoginUser) authentication.getPrincipal(); } diff --git a/yudao-module-member/yudao-module-member-impl/src/test/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthServiceTest.java b/yudao-module-member/yudao-module-member-impl/src/test/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthServiceTest.java index 3b17af712..a982f9625 100644 --- a/yudao-module-member/yudao-module-member-impl/src/test/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthServiceTest.java +++ b/yudao-module-member/yudao-module-member-impl/src/test/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthServiceTest.java @@ -3,12 +3,12 @@ package cn.iocoder.yudao.module.member.service.auth; import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbAndRedisUnitTest; import cn.iocoder.yudao.module.member.controller.app.auth.vo.AppAuthResetPasswordReqVO; import cn.iocoder.yudao.module.member.controller.app.auth.vo.AppAuthUpdatePasswordReqVO; import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper; import cn.iocoder.yudao.module.member.service.user.MemberUserService; -import cn.iocoder.yudao.module.member.test.BaseDbAndRedisUnitTest; import cn.iocoder.yudao.module.system.api.auth.UserSessionApi; import cn.iocoder.yudao.module.system.api.logger.LoginLogApi; import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi; diff --git a/yudao-module-member/yudao-module-member-impl/src/test/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImplTest.java b/yudao-module-member/yudao-module-member-impl/src/test/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImplTest.java index dc642f9b4..3077a84d9 100644 --- a/yudao-module-member/yudao-module-member-impl/src/test/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImplTest.java +++ b/yudao-module-member/yudao-module-member-impl/src/test/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImplTest.java @@ -4,12 +4,12 @@ import cn.hutool.core.util.RandomUtil; import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbAndRedisUnitTest; import cn.iocoder.yudao.module.infra.api.file.FileApi; import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserUpdateMobileReqVO; import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper; import cn.iocoder.yudao.module.member.service.auth.MemberAuthServiceImpl; -import cn.iocoder.yudao.module.member.test.BaseDbAndRedisUnitTest; import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi; import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; @@ -25,7 +25,8 @@ import static cn.hutool.core.util.RandomUtil.*; import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo; import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomString; import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.when; // TODO @芋艿:单测的 review,等逻辑都达成一致后 /** diff --git a/yudao-module-member/yudao-module-member-impl/src/test/java/cn/iocoder/yudao/module/member/test/BaseDbAndRedisUnitTest.java b/yudao-module-member/yudao-module-member-impl/src/test/java/cn/iocoder/yudao/module/member/test/BaseDbAndRedisUnitTest.java deleted file mode 100644 index aa1cdaac9..000000000 --- a/yudao-module-member/yudao-module-member-impl/src/test/java/cn/iocoder/yudao/module/member/test/BaseDbAndRedisUnitTest.java +++ /dev/null @@ -1,51 +0,0 @@ -package cn.iocoder.yudao.module.member.test; - -import cn.iocoder.yudao.framework.datasource.config.YudaoDataSourceAutoConfiguration; -import cn.iocoder.yudao.framework.mybatis.config.YudaoMybatisAutoConfiguration; -import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration; -import cn.iocoder.yudao.framework.test.config.RedisTestConfiguration; -import cn.iocoder.yudao.framework.test.config.SqlInitializationTestConfiguration; -import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; -import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration; -import org.redisson.spring.starter.RedissonAutoConfiguration; -import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.Import; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.jdbc.Sql; - -/** - * 依赖内存 DB + Redis 的单元测试 - * - * 相比 {@link BaseDbUnitTest} 来说,额外增加了内存 Redis - * - * @author 芋道源码 - */ -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = BaseDbAndRedisUnitTest.Application.class) -@ActiveProfiles("unit-test") // 设置使用 application-unit-test 配置文件 -@Sql(scripts = "/sql/clean.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) // 每个单元测试结束后,清理 DB -public class BaseDbAndRedisUnitTest { - - @Import({ - // DB 配置类 - YudaoDataSourceAutoConfiguration.class, // 自己的 DB 配置类 - DataSourceAutoConfiguration.class, // Spring DB 自动配置类 - DataSourceTransactionManagerAutoConfiguration.class, // Spring 事务自动配置类 - DruidDataSourceAutoConfigure.class, // Druid 自动配置类 - SqlInitializationTestConfiguration.class, // SQL 初始化 - // MyBatis 配置类 - YudaoMybatisAutoConfiguration.class, // 自己的 MyBatis 配置类 - MybatisPlusAutoConfiguration.class, // MyBatis 的自动配置类 - - // Redis 配置类 - RedisTestConfiguration.class, // Redis 测试配置类,用于启动 RedisServer - RedisAutoConfiguration.class, // Spring Redis 自动配置类 - YudaoRedisAutoConfiguration.class, // 自己的 Redis 配置类 - RedissonAutoConfiguration.class, // Redisson 自动高配置类 - }) - public static class Application { - } - -} diff --git a/yudao-module-member/yudao-module-member-impl/src/test/java/cn/iocoder/yudao/module/member/test/BaseDbUnitTest.java b/yudao-module-member/yudao-module-member-impl/src/test/java/cn/iocoder/yudao/module/member/test/BaseDbUnitTest.java deleted file mode 100644 index e1aa40d06..000000000 --- a/yudao-module-member/yudao-module-member-impl/src/test/java/cn/iocoder/yudao/module/member/test/BaseDbUnitTest.java +++ /dev/null @@ -1,41 +0,0 @@ -package cn.iocoder.yudao.module.member.test; - -import cn.iocoder.yudao.framework.datasource.config.YudaoDataSourceAutoConfiguration; -import cn.iocoder.yudao.framework.mybatis.config.YudaoMybatisAutoConfiguration; -import cn.iocoder.yudao.framework.test.config.SqlInitializationTestConfiguration; -import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; -import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.Import; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.jdbc.Sql; - -/** - * 依赖内存 DB 的单元测试 - * - * 注意,Service 层同样适用。对于 Service 层的单元测试,我们针对自己模块的 Mapper 走的是 H2 内存数据库,针对别的模块的 Service 走的是 Mock 方法 - * - * @author 芋道源码 - */ -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = BaseDbUnitTest.Application.class) -@ActiveProfiles("unit-test") // 设置使用 application-unit-test 配置文件 -@Sql(scripts = "/sql/clean.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) // 每个单元测试结束后,清理 DB -public class BaseDbUnitTest { - - @Import({ - // DB 配置类 - YudaoDataSourceAutoConfiguration.class, // 自己的 DB 配置类 - DataSourceAutoConfiguration.class, // Spring DB 自动配置类 - DataSourceTransactionManagerAutoConfiguration.class, // Spring 事务自动配置类 - DruidDataSourceAutoConfigure.class, // Druid 自动配置类 - SqlInitializationTestConfiguration.class, // SQL 初始化 - // MyBatis 配置类 - YudaoMybatisAutoConfiguration.class, // 自己的 MyBatis 配置类 - MybatisPlusAutoConfiguration.class, // MyBatis 的自动配置类 - }) - public static class Application { - } - -} diff --git a/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/service/merchant/PayAppServiceTest.java b/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/service/merchant/PayAppServiceTest.java index a0da136bc..cc378a367 100644 --- a/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/service/merchant/PayAppServiceTest.java +++ b/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/service/merchant/PayAppServiceTest.java @@ -1,7 +1,9 @@ package cn.iocoder.yudao.module.pay.service.merchant; import cn.hutool.core.util.RandomUtil; -import cn.iocoder.yudao.framework.pay.core.client.PayClientFactory; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app.PayAppCreateReqVO; import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app.PayAppExportReqVO; import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app.PayAppPageReqVO; @@ -10,9 +12,6 @@ import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayAppDO; import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayMerchantDO; import cn.iocoder.yudao.module.pay.dal.mysql.merchant.PayAppMapper; import cn.iocoder.yudao.module.pay.dal.mysql.merchant.PayMerchantMapper; -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.pay.test.BaseDbUnitTest; import org.junit.jupiter.api.Test; import org.mockito.Mockito; import org.springframework.boot.test.mock.mockito.MockBean; @@ -28,7 +27,7 @@ import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEq import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId; import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo; -import static cn.iocoder.yudao.module.pay.enums.ErrorCodeConstants.*; +import static cn.iocoder.yudao.module.pay.enums.ErrorCodeConstants.PAY_APP_NOT_FOUND; import static org.junit.jupiter.api.Assertions.*; @Import(PayAppServiceImpl.class) diff --git a/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/service/merchant/PayChannelServiceTest.java b/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/service/merchant/PayChannelServiceTest.java index f6335d091..ebf4b0680 100644 --- a/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/service/merchant/PayChannelServiceTest.java +++ b/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/service/merchant/PayChannelServiceTest.java @@ -6,13 +6,13 @@ import cn.iocoder.yudao.framework.pay.core.client.PayClientFactory; import cn.iocoder.yudao.framework.pay.core.client.impl.alipay.AlipayPayClientConfig; import cn.iocoder.yudao.framework.pay.core.client.impl.wx.WXPayClientConfig; import cn.iocoder.yudao.framework.pay.core.enums.PayChannelEnum; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel.PayChannelCreateReqVO; import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel.PayChannelExportReqVO; import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel.PayChannelPageReqVO; import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel.PayChannelUpdateReqVO; import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayChannelDO; import cn.iocoder.yudao.module.pay.dal.mysql.merchant.PayChannelMapper; -import cn.iocoder.yudao.module.pay.test.BaseDbUnitTest; import com.alibaba.fastjson.JSON; import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; diff --git a/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/service/merchant/PayMerchantServiceTest.java b/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/service/merchant/PayMerchantServiceTest.java index 08d097083..2a0adf22d 100644 --- a/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/service/merchant/PayMerchantServiceTest.java +++ b/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/service/merchant/PayMerchantServiceTest.java @@ -1,15 +1,15 @@ package cn.iocoder.yudao.module.pay.service.merchant; import cn.hutool.core.util.RandomUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant.PayMerchantCreateReqVO; import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant.PayMerchantExportReqVO; import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant.PayMerchantPageReqVO; import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant.PayMerchantUpdateReqVO; import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayMerchantDO; import cn.iocoder.yudao.module.pay.dal.mysql.merchant.PayMerchantMapper; -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.module.pay.test.BaseDbUnitTest; import org.junit.jupiter.api.Test; import org.springframework.context.annotation.Import; @@ -22,7 +22,7 @@ import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEq import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId; import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo; -import static cn.iocoder.yudao.module.pay.enums.ErrorCodeConstants.*; +import static cn.iocoder.yudao.module.pay.enums.ErrorCodeConstants.PAY_MERCHANT_NOT_EXISTS; import static org.junit.jupiter.api.Assertions.*; /** diff --git a/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/service/order/PayOrderServiceTest.java b/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/service/order/PayOrderServiceTest.java index cacee1681..c0219018d 100755 --- a/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/service/order/PayOrderServiceTest.java +++ b/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/service/order/PayOrderServiceTest.java @@ -7,6 +7,7 @@ import cn.iocoder.yudao.framework.common.util.date.DateUtils; import cn.iocoder.yudao.framework.pay.config.PayProperties; import cn.iocoder.yudao.framework.pay.core.client.PayClientFactory; import cn.iocoder.yudao.framework.pay.core.enums.PayChannelEnum; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import cn.iocoder.yudao.module.pay.controller.admin.order.vo.PayOrderExportReqVO; import cn.iocoder.yudao.module.pay.controller.admin.order.vo.PayOrderPageReqVO; import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderDO; @@ -17,7 +18,6 @@ import cn.iocoder.yudao.module.pay.enums.refund.PayRefundTypeEnum; import cn.iocoder.yudao.module.pay.service.merchant.PayAppService; import cn.iocoder.yudao.module.pay.service.merchant.PayChannelService; import cn.iocoder.yudao.module.pay.service.notify.PayNotifyService; -import cn.iocoder.yudao.module.pay.test.BaseDbUnitTest; import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Import; diff --git a/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/service/package-info.java b/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/service/package-info.java deleted file mode 100644 index 2cad91eba..000000000 --- a/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/service/package-info.java +++ /dev/null @@ -1 +0,0 @@ -package cn.iocoder.yudao.module.pay.service; diff --git a/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/service/refund/PayRefundServiceTest.java b/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/service/refund/PayRefundServiceTest.java index 844c0ca00..18bfb6aa5 100755 --- a/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/service/refund/PayRefundServiceTest.java +++ b/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/service/refund/PayRefundServiceTest.java @@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.date.DateUtils; import cn.iocoder.yudao.framework.pay.core.client.PayClientFactory; import cn.iocoder.yudao.framework.pay.core.enums.PayChannelEnum; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import cn.iocoder.yudao.module.pay.controller.admin.refund.vo.PayRefundExportReqVO; import cn.iocoder.yudao.module.pay.controller.admin.refund.vo.PayRefundPageReqVO; import cn.iocoder.yudao.module.pay.dal.dataobject.refund.PayRefundDO; @@ -16,7 +17,6 @@ import cn.iocoder.yudao.module.pay.service.merchant.PayChannelService; import cn.iocoder.yudao.module.pay.service.notify.PayNotifyService; import cn.iocoder.yudao.module.pay.service.order.PayOrderExtensionService; import cn.iocoder.yudao.module.pay.service.order.PayOrderService; -import cn.iocoder.yudao.module.pay.test.BaseDbUnitTest; import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Import; diff --git a/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/test/BaseDbUnitTest.java b/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/test/BaseDbUnitTest.java deleted file mode 100644 index c232bb642..000000000 --- a/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/test/BaseDbUnitTest.java +++ /dev/null @@ -1,41 +0,0 @@ -package cn.iocoder.yudao.module.pay.test; - -import cn.iocoder.yudao.framework.datasource.config.YudaoDataSourceAutoConfiguration; -import cn.iocoder.yudao.framework.mybatis.config.YudaoMybatisAutoConfiguration; -import cn.iocoder.yudao.framework.test.config.SqlInitializationTestConfiguration; -import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; -import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.Import; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.jdbc.Sql; - -/** - * 依赖内存 DB 的单元测试 - * - * 注意,Service 层同样适用。对于 Service 层的单元测试,我们针对自己模块的 Mapper 走的是 H2 内存数据库,针对别的模块的 Service 走的是 Mock 方法 - * - * @author 芋道源码 - */ -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = BaseDbUnitTest.Application.class) -@ActiveProfiles("unit-test") // 设置使用 application-unit-test 配置文件 -@Sql(scripts = "/sql/clean.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) // 每个单元测试结束后,清理 DB -public class BaseDbUnitTest { - - @Import({ - // DB 配置类 - YudaoDataSourceAutoConfiguration.class, // 自己的 DB 配置类 - DataSourceAutoConfiguration.class, // Spring DB 自动配置类 - DataSourceTransactionManagerAutoConfiguration.class, // Spring 事务自动配置类 - DruidDataSourceAutoConfigure.class, // Druid 自动配置类 - SqlInitializationTestConfiguration.class, // SQL 初始化 - // MyBatis 配置类 - YudaoMybatisAutoConfiguration.class, // 自己的 MyBatis 配置类 - MybatisPlusAutoConfiguration.class, // MyBatis 的自动配置类 - }) - public static class Application { - } - -} diff --git a/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/test/BaseRedisUnitTest.java b/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/test/BaseRedisUnitTest.java deleted file mode 100644 index 500456307..000000000 --- a/yudao-module-pay/yudao-module-pay-impl/src/test/java/cn/iocoder/yudao/module/pay/test/BaseRedisUnitTest.java +++ /dev/null @@ -1,32 +0,0 @@ -package cn.iocoder.yudao.module.pay.test; - -import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration; -import cn.iocoder.yudao.framework.test.config.RedisTestConfiguration; -import org.redisson.spring.starter.RedissonAutoConfiguration; -import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.Import; -import org.springframework.test.context.ActiveProfiles; - -/** - * 依赖内存 Redis 的单元测试 - * - * 相比 {@link BaseDbUnitTest} 来说,从内存 DB 改成了内存 Redis - * - * @author 芋道源码 - */ -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = BaseRedisUnitTest.Application.class) -@ActiveProfiles("unit-test") // 设置使用 application-unit-test 配置文件 -public class BaseRedisUnitTest { - - @Import({ - // Redis 配置类 - RedisTestConfiguration.class, // Redis 测试配置类,用于启动 RedisServer - RedisAutoConfiguration.class, // Spring Redis 自动配置类 - YudaoRedisAutoConfiguration.class, // 自己的 Redis 配置类 - RedissonAutoConfiguration.class, // Redisson 自动高配置类 - }) - public static class Application { - } - -} diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sensitiveword/SensitiveWordApi.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sensitiveword/SensitiveWordApi.java new file mode 100644 index 000000000..951cfbc6f --- /dev/null +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/sensitiveword/SensitiveWordApi.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.system.api.sensitiveword; + +import java.util.List; + +/** + * 敏感词 API 接口 + * + * @author 永不言败 + */ +public interface SensitiveWordApi { + + /** + * 获得文本所包含的不合法的敏感词数组 + * + * @param text 文本 + * @param tags 标签数组 + * @return 不合法的敏感词数组 + */ + List validateText(String text, List tags); + + /** + * 判断文本是否包含敏感词 + * + * @param text 文本 + * @param tags 表述数组 + * @return 是否包含 + */ + boolean isTextValid(String text, List tags); + +} diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/DictTypeConstants.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/DictTypeConstants.java index c49524245..c0e342383 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/DictTypeConstants.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/DictTypeConstants.java @@ -14,16 +14,16 @@ public interface DictTypeConstants { String USER_SEX = "system_user_sex"; // 用户性别 - String OPERATE_TYPE = "sys_operate_type"; // 操作类型 + String OPERATE_TYPE = "system_operate_type"; // 操作类型 - String LOGIN_TYPE = "sys_login_type"; // 登录日志的类型 - String LOGIN_RESULT = "sys_login_result"; // 登录结果 + String LOGIN_TYPE = "system_login_type"; // 登录日志的类型 + String LOGIN_RESULT = "system_login_result"; // 登录结果 String ERROR_CODE_TYPE = "system_error_code_type"; // 错误码的类型枚举 - String SMS_CHANNEL_CODE = "sys_sms_channel_code"; // 短信渠道编码 - String SMS_TEMPLATE_TYPE = "sys_sms_template_type"; // 短信模板类型 - String SMS_SEND_STATUS = "sys_sms_send_status"; // 短信发送状态 - String SMS_RECEIVE_STATUS = "sys_sms_receive_status"; // 短信接收状态 + String SMS_CHANNEL_CODE = "system_sms_channel_code"; // 短信渠道编码 + String SMS_TEMPLATE_TYPE = "system_sms_template_type"; // 短信模板类型 + String SMS_SEND_STATUS = "system_sms_send_status"; // 短信发送状态 + String SMS_RECEIVE_STATUS = "system_sms_receive_status"; // 短信接收状态 } diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java index 6b44615ce..e72c75e6e 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java @@ -119,4 +119,8 @@ public interface ErrorCodeConstants { ErrorCode SOCIAL_USER_UNBIND_NOT_SELF = new ErrorCode(1002018001, "社交解绑失败,非当前用户绑定"); ErrorCode SOCIAL_USER_NOT_FOUND = new ErrorCode(1002018002, "社交授权失败,找不到对应的用户"); + // ========== 系统铭感词 1002019000 ========= + ErrorCode SENSITIVE_WORD_NOT_EXISTS = new ErrorCode(1002019000, "系统敏感词在所有标签中都不存在"); + ErrorCode SENSITIVE_WORD_EXISTS = new ErrorCode(1002019001, "系统敏感词已在标签中存在"); + } diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/api/sensitiveword/SensitiveWordApiImpl.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/api/sensitiveword/SensitiveWordApiImpl.java new file mode 100644 index 000000000..a6d5b52fd --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/api/sensitiveword/SensitiveWordApiImpl.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.system.api.sensitiveword; + +import cn.iocoder.yudao.module.system.service.sensitiveword.SensitiveWordService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 敏感词 API 实现类 + * + * @author 永不言败 + */ +@Service +public class SensitiveWordApiImpl implements SensitiveWordApi { + + @Resource + private SensitiveWordService sensitiveWordService; + + @Override + public List validateText(String text, List tags) { + return sensitiveWordService.validateText(text, tags); + } + + @Override + public boolean isTextValid(String text, List tags) { + return sensitiveWordService.isTextValid(text, tags); + } +} diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/SensitiveWordController.http b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/SensitiveWordController.http new file mode 100644 index 000000000..cd97d2de5 --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/SensitiveWordController.http @@ -0,0 +1,4 @@ +### 请求 /system/sensitive-word/validate-text 接口 => 成功 +GET {{baseUrl}}/system/sensitive-word/validate-text?text=XXX&tags=短信&tags=蔬菜 +Authorization: Bearer {{token}} +tenant-id: {{adminTenentId}} diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/SensitiveWordController.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/SensitiveWordController.java new file mode 100644 index 000000000..e9536ad9a --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/SensitiveWordController.java @@ -0,0 +1,104 @@ +package cn.iocoder.yudao.module.system.controller.admin.sensitiveword; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo.*; +import cn.iocoder.yudao.module.system.convert.sensitiveword.SensitiveWordConvert; +import cn.iocoder.yudao.module.system.dal.dataobject.sensitiveword.SensitiveWordDO; +import cn.iocoder.yudao.module.system.service.sensitiveword.SensitiveWordService; +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 java.util.Set; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; + +@Api(tags = "管理后台 - 敏感词") +@RestController +@RequestMapping("/system/sensitive-word") +@Validated +public class SensitiveWordController { + + @Resource + private SensitiveWordService sensitiveWordService; + + @PostMapping("/create") + @ApiOperation("创建敏感词") + @PreAuthorize("@ss.hasPermission('system:sensitive-word:create')") + public CommonResult createSensitiveWord(@Valid @RequestBody SensitiveWordCreateReqVO createReqVO) { + return success(sensitiveWordService.createSensitiveWord(createReqVO)); + } + + @PutMapping("/update") + @ApiOperation("更新敏感词") + @PreAuthorize("@ss.hasPermission('system:sensitive-word:update')") + public CommonResult updateSensitiveWord(@Valid @RequestBody SensitiveWordUpdateReqVO updateReqVO) { + sensitiveWordService.updateSensitiveWord(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @ApiOperation("删除敏感词") + @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class) + @PreAuthorize("@ss.hasPermission('system:sensitive-word:delete')") + public CommonResult deleteSensitiveWord(@RequestParam("id") Long id) { + sensitiveWordService.deleteSensitiveWord(id); + return success(true); + } + + @GetMapping("/get") + @ApiOperation("获得敏感词") + @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) + @PreAuthorize("@ss.hasPermission('system:sensitive-word:query')") + public CommonResult getSensitiveWord(@RequestParam("id") Long id) { + SensitiveWordDO sensitiveWord = sensitiveWordService.getSensitiveWord(id); + return success(SensitiveWordConvert.INSTANCE.convert(sensitiveWord)); + } + + @GetMapping("/page") + @ApiOperation("获得敏感词分页") + @PreAuthorize("@ss.hasPermission('system:sensitive-word:query')") + public CommonResult> getSensitiveWordPage(@Valid SensitiveWordPageReqVO pageVO) { + PageResult pageResult = sensitiveWordService.getSensitiveWordPage(pageVO); + return success(SensitiveWordConvert.INSTANCE.convertPage(pageResult)); + } + + @GetMapping("/export-excel") + @ApiOperation("导出敏感词 Excel") + @PreAuthorize("@ss.hasPermission('system:sensitive-word:export')") + @OperateLog(type = EXPORT) + public void exportSensitiveWordExcel(@Valid SensitiveWordExportReqVO exportReqVO, + HttpServletResponse response) throws IOException { + List list = sensitiveWordService.getSensitiveWordList(exportReqVO); + // 导出 Excel + List datas = SensitiveWordConvert.INSTANCE.convertList02(list); + ExcelUtils.write(response, "敏感词.xls", "数据", SensitiveWordExcelVO.class, datas); + } + + @GetMapping("/get-tags") + @ApiOperation("获取所有敏感词的标签数组") + @PreAuthorize("@ss.hasPermission('system:sensitive-word:query')") + public CommonResult> getSensitiveWordTags() throws IOException { + return success(sensitiveWordService.getSensitiveWordTags()); + } + + @GetMapping("/validate-text") + @ApiOperation("获得文本所包含的不合法的敏感词数组") + public CommonResult> validateText(@RequestParam("text") String text, + @RequestParam(value = "tags", required = false) List tags) { + return success(sensitiveWordService.validateText(text, tags)); + } + +} diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordBaseVO.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordBaseVO.java new file mode 100644 index 000000000..770a22b92 --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordBaseVO.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +/** +* 敏感词 Base VO,提供给添加、修改、详细的子 VO 使用 +* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 +*/ +@Data +public class SensitiveWordBaseVO { + + @ApiModelProperty(value = "敏感词", required = true, example = "敏感词") + @NotNull(message = "敏感词不能为空") + private String name; + + @ApiModelProperty(value = "标签", required = true, example = "短信,评论") + @NotNull(message = "标签不能为空") + private List tags; + + @ApiModelProperty(value = "状态", required = true, example = "1", notes = "参见 CommonStatusEnum 枚举类") + @NotNull(message = "状态不能为空") + private Integer status; + + @ApiModelProperty(value = "描述", example = "污言秽语") + private String description; + +} diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordCreateReqVO.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordCreateReqVO.java new file mode 100644 index 000000000..bb206652b --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordCreateReqVO.java @@ -0,0 +1,14 @@ +package cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo; + +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@ApiModel("管理后台 - 敏感词创建 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class SensitiveWordCreateReqVO extends SensitiveWordBaseVO { + +} diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordExcelVO.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordExcelVO.java new file mode 100644 index 000000000..f259f1f31 --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordExcelVO.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * 敏感词 Excel VO + * + * @author 永不言败 + */ +@Data +public class SensitiveWordExcelVO { + + @ExcelProperty("编号") + private Long id; + + @ExcelProperty("敏感词") + private String name; + + @ExcelProperty("标签") + private List tags; + + @ExcelProperty("状态,true-启用,false-禁用") + private Integer status; + + @ExcelProperty("描述") + private String description; + + @ExcelProperty("创建时间") + private Date createTime; + +} diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordExportReqVO.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordExportReqVO.java new file mode 100644 index 000000000..3c9076989 --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordExportReqVO.java @@ -0,0 +1,33 @@ +package cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@ApiModel(value = "管理后台 - 敏感词 Excel 导出 Request VO", description = "参数和 SensitiveWordPageReqVO 是一致的") +@Data +public class SensitiveWordExportReqVO { + + @ApiModelProperty(value = "敏感词", example = "敏感词") + private String name; + + @ApiModelProperty(value = "标签", example = "短信,评论") + private String tag; + + @ApiModelProperty(value = "状态", example = "true-启用,false-禁用") + private Integer status; + + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @ApiModelProperty(value = "开始创建时间") + private Date beginCreateTime; + + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @ApiModelProperty(value = "结束创建时间") + private Date endCreateTime; + +} diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordPageReqVO.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordPageReqVO.java new file mode 100644 index 000000000..1a4d7861f --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordPageReqVO.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@ApiModel("管理后台 - 敏感词分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class SensitiveWordPageReqVO extends PageParam { + + @ApiModelProperty(value = "敏感词", example = "敏感词") + private String name; + + @ApiModelProperty(value = "标签", example = "短信,评论") + private String tag; + + @ApiModelProperty(value = "状态", example = "true-启用,true-禁用") + private Integer status; + + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @ApiModelProperty(value = "开始创建时间") + private Date beginCreateTime; + + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @ApiModelProperty(value = "结束创建时间") + private Date endCreateTime; + +} diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordRespVO.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordRespVO.java new file mode 100644 index 000000000..35fb8c2c9 --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordRespVO.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.util.Date; + +@ApiModel("管理后台 - 敏感词 Response VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class SensitiveWordRespVO extends SensitiveWordBaseVO { + + @ApiModelProperty(value = "编号", required = true, example = "1") + private Long id; + + @ApiModelProperty(value = "创建时间", required = true) + private Date createTime; + +} diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordUpdateReqVO.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordUpdateReqVO.java new file mode 100644 index 000000000..f87aa3a62 --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sensitiveword/vo/SensitiveWordUpdateReqVO.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import javax.validation.constraints.NotNull; + +@ApiModel("管理后台 - 敏感词更新 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class SensitiveWordUpdateReqVO extends SensitiveWordBaseVO { + + @ApiModelProperty(value = "编号", required = true, example = "1") + @NotNull(message = "编号不能为空") + private Long id; + +} diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/logger/OperateLogConvert.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/logger/OperateLogConvert.java index 21584c9fc..21f7a4948 100644 --- a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/logger/OperateLogConvert.java +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/logger/OperateLogConvert.java @@ -30,7 +30,7 @@ public interface OperateLogConvert { default List convertList(List list, Map userMap) { return list.stream().map(operateLog -> { OperateLogExcelVO excelVO = convert02(operateLog); - MapUtils.findAndThen(userMap, operateLog.getId(), user -> excelVO.setUserNickname(user.getNickname())); + MapUtils.findAndThen(userMap, operateLog.getUserId(), user -> excelVO.setUserNickname(user.getNickname())); excelVO.setSuccessStr(SUCCESS.getCode().equals(operateLog.getResultCode()) ? "成功" : "失败"); return excelVO; }).collect(Collectors.toList()); diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/sensitiveword/SensitiveWordConvert.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/sensitiveword/SensitiveWordConvert.java new file mode 100644 index 000000000..fde03dbf3 --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/sensitiveword/SensitiveWordConvert.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.system.convert.sensitiveword; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo.SensitiveWordCreateReqVO; +import cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo.SensitiveWordExcelVO; +import cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo.SensitiveWordRespVO; +import cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo.SensitiveWordUpdateReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.sensitiveword.SensitiveWordDO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 敏感词 Convert + * + * @author 永不言败 + */ +@Mapper +public interface SensitiveWordConvert { + + SensitiveWordConvert INSTANCE = Mappers.getMapper(SensitiveWordConvert.class); + + SensitiveWordDO convert(SensitiveWordCreateReqVO bean); + + SensitiveWordDO convert(SensitiveWordUpdateReqVO bean); + + SensitiveWordRespVO convert(SensitiveWordDO bean); + + List convertList(List list); + + PageResult convertPage(PageResult page); + + List convertList02(List list); + +} diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/package-info.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/package-info.java deleted file mode 100644 index 000c252fc..000000000 --- a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/package-info.java +++ /dev/null @@ -1 +0,0 @@ -package cn.iocoder.yudao.module.system.dal.dataobject; diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sensitiveword/SensitiveWordDO.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sensitiveword/SensitiveWordDO.java new file mode 100644 index 000000000..dfa729fa7 --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sensitiveword/SensitiveWordDO.java @@ -0,0 +1,56 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.sensitiveword; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.framework.mybatis.core.type.StringLiSTTypeHandler; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +import java.util.List; + +/** + * 敏感词 DO + * + * @author 永不言败 + */ +@TableName(value = "system_sensitive_word", autoResultMap = true) +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SensitiveWordDO extends BaseDO { + + /** + * 编号 + */ + @TableId + private Long id; + /** + * 敏感词 + */ + private String name; + /** + * 描述 + */ + private String description; + /** + * 标签数组 + * + * 用于实现不同的业务场景下,需要使用不同标签的敏感词。 + * 例如说,tag 有短信、论坛两种,敏感词 "推广" 在短信下是敏感词,在论坛下不是敏感词。 + * 此时,我们会存储一条敏感词记录,它的 name 为"推广",tag 为短信。 + */ + @TableField(typeHandler = StringLiSTTypeHandler.class) + private List tags; + /** + * 状态 + * + * 枚举 {@link CommonStatusEnum} + */ + private Integer status; + +} diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/DeptMapper.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/DeptMapper.java index 56f6bdf4d..398ca3c8c 100644 --- a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/DeptMapper.java +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/DeptMapper.java @@ -15,12 +15,14 @@ import java.util.List; public interface DeptMapper extends BaseMapperX { default List selectList(DeptListReqVO reqVO) { - return selectList(new LambdaQueryWrapperX().likeIfPresent(DeptDO::getName, reqVO.getName()) + return selectList(new LambdaQueryWrapperX() + .likeIfPresent(DeptDO::getName, reqVO.getName()) .eqIfPresent(DeptDO::getStatus, reqVO.getStatus())); } default DeptDO selectByParentIdAndName(Long parentId, String name) { - return selectOne(new LambdaQueryWrapper().eq(DeptDO::getParentId, parentId) + return selectOne(new LambdaQueryWrapper() + .eq(DeptDO::getParentId, parentId) .eq(DeptDO::getName, name)); } diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMenuBatchInsertMapper.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMenuBatchInsertMapper.java new file mode 100644 index 000000000..69ddfaf90 --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMenuBatchInsertMapper.java @@ -0,0 +1,14 @@ +package cn.iocoder.yudao.module.system.dal.mysql.permission; + +import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleMenuDO; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Repository; + +/** + * 实体 {@link RoleMenuDO} 的批量插入 Mapper + * + * @author 芋道源码 + */ +@Repository +public class RoleMenuBatchInsertMapper extends ServiceImpl { +} diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMenuMapper.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMenuMapper.java index f519b4ee9..8fb84d3bf 100644 --- a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMenuMapper.java +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMenuMapper.java @@ -3,8 +3,10 @@ package cn.iocoder.yudao.module.system.dal.mysql.permission; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleMenuDO; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; +import org.springframework.stereotype.Repository; import java.util.Collection; import java.util.Date; @@ -14,18 +16,12 @@ import java.util.stream.Collectors; @Mapper public interface RoleMenuMapper extends BaseMapperX { - default List selectListByRoleId(Long roleId) { - return selectList(new QueryWrapper().eq("role_id", roleId)); + @Repository + class BatchInsertMapper extends ServiceImpl { } - default void insertList(Long roleId, Collection menuIds) { - List list = menuIds.stream().map(menuId -> { - RoleMenuDO entity = new RoleMenuDO(); - entity.setRoleId(roleId); - entity.setMenuId(menuId); - return entity; - }).collect(Collectors.toList()); - insertBatch(list); + default List selectListByRoleId(Long roleId) { + return selectList(new QueryWrapper().eq("role_id", roleId)); } default void deleteListByRoleIdAndMenuIds(Long roleId, Collection menuIds) { diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/UserRoleBatchInsertMapper.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/UserRoleBatchInsertMapper.java new file mode 100644 index 000000000..474bdb2c1 --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/UserRoleBatchInsertMapper.java @@ -0,0 +1,14 @@ +package cn.iocoder.yudao.module.system.dal.mysql.permission; + +import cn.iocoder.yudao.module.system.dal.dataobject.permission.UserRoleDO; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Repository; + +/** + * 实体 {@link UserRoleDO} 的批量插入 Mapper + * + * @author 芋道源码 + */ +@Repository +public class UserRoleBatchInsertMapper extends ServiceImpl { +} diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/UserRoleMapper.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/UserRoleMapper.java index bc1d36cf2..e2ab6ce20 100644 --- a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/UserRoleMapper.java +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/UserRoleMapper.java @@ -7,7 +7,6 @@ import org.apache.ibatis.annotations.Mapper; import java.util.Collection; import java.util.List; -import java.util.stream.Collectors; @Mapper public interface UserRoleMapper extends BaseMapperX { @@ -20,17 +19,6 @@ public interface UserRoleMapper extends BaseMapperX { return selectList(new QueryWrapper().eq("role_id", roleId)); } - - default void insertList(Long userId, Collection roleIds) { - List list = roleIds.stream().map(roleId -> { - UserRoleDO entity = new UserRoleDO(); - entity.setUserId(userId); - entity.setRoleId(roleId); - return entity; - }).collect(Collectors.toList()); - insertBatch(list); - } - default void deleteListByUserIdAndRoleIdIds(Long userId, Collection roleIds) { delete(new QueryWrapper().eq("user_id", userId) .in("role_id", roleIds)); diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sensitiveword/SensitiveWordMapper.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sensitiveword/SensitiveWordMapper.java new file mode 100644 index 000000000..9360e7fbe --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sensitiveword/SensitiveWordMapper.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.system.dal.mysql.sensitiveword; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo.SensitiveWordExportReqVO; +import cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo.SensitiveWordPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.sensitiveword.SensitiveWordDO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; + +import java.util.Date; +import java.util.List; + +/** + * 敏感词 Mapper + * + * @author 永不言败 + */ +@Mapper +public interface SensitiveWordMapper extends BaseMapperX { + + default PageResult selectPage(SensitiveWordPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(SensitiveWordDO::getName, reqVO.getName()) + .likeIfPresent(SensitiveWordDO::getTags, reqVO.getTag()) + .eqIfPresent(SensitiveWordDO::getStatus, reqVO.getStatus()) + .betweenIfPresent(SensitiveWordDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime()) + .orderByDesc(SensitiveWordDO::getId)); + } + + default List selectList(SensitiveWordExportReqVO reqVO) { + return selectList(new LambdaQueryWrapperX() + .likeIfPresent(SensitiveWordDO::getName, reqVO.getName()) + .likeIfPresent(SensitiveWordDO::getTags, reqVO.getTag()) + .eqIfPresent(SensitiveWordDO::getStatus, reqVO.getStatus()) + .betweenIfPresent(SensitiveWordDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime()) + .orderByDesc(SensitiveWordDO::getId)); + } + + default SensitiveWordDO selectByName(String name) { + return selectOne(SensitiveWordDO::getName, name); + } + + @Select("SELECT id FROM system_sensitive_word WHERE update_time > #{maxUpdateTime} LIMIT 1") + SensitiveWordDO selectExistsByUpdateTimeAfter(Date maxUpdateTime); +} diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/redis/auth/LoginUserRedisDAO.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/redis/auth/LoginUserRedisDAO.java index 8132a882e..735015917 100644 --- a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/redis/auth/LoginUserRedisDAO.java +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/redis/auth/LoginUserRedisDAO.java @@ -41,7 +41,7 @@ public class LoginUserRedisDAO { } private static String formatKey(String sessionId) { - return String.format(LOGIN_USER.getKeyTemplate(), sessionId); + return LOGIN_USER.formatKey(sessionId); } } diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/mq/consumer/sensitiveword/SensitiveWordRefreshConsumer.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/mq/consumer/sensitiveword/SensitiveWordRefreshConsumer.java new file mode 100644 index 000000000..dc3a06236 --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/mq/consumer/sensitiveword/SensitiveWordRefreshConsumer.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.system.mq.consumer.sensitiveword; + +import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessageListener; +import cn.iocoder.yudao.module.system.mq.message.sensitiveword.SensitiveWordRefreshMessage; +import cn.iocoder.yudao.module.system.service.sensitiveword.SensitiveWordService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * 针对 {@link SensitiveWordRefreshMessage} 的消费者 + * + * @author 芋道源码 + */ +@Component +@Slf4j +public class SensitiveWordRefreshConsumer extends AbstractChannelMessageListener { + + @Resource + private SensitiveWordService sensitiveWordService; + + @Override + public void onMessage(SensitiveWordRefreshMessage message) { + log.info("[onMessage][收到 SensitiveWord 刷新消息]"); + sensitiveWordService.initLocalCache(); + } + +} diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/mq/message/sensitiveword/SensitiveWordRefreshMessage.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/mq/message/sensitiveword/SensitiveWordRefreshMessage.java new file mode 100644 index 000000000..13ebf425f --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/mq/message/sensitiveword/SensitiveWordRefreshMessage.java @@ -0,0 +1,19 @@ +package cn.iocoder.yudao.module.system.mq.message.sensitiveword; + +import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessage; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 敏感词的刷新 Message + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class SensitiveWordRefreshMessage extends AbstractChannelMessage { + + @Override + public String getChannel() { + return "system.sensitive-word.refresh"; + } + +} diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/mq/producer/sensitiveword/SensitiveWordProducer.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/mq/producer/sensitiveword/SensitiveWordProducer.java new file mode 100644 index 000000000..3c43eca3b --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/mq/producer/sensitiveword/SensitiveWordProducer.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.system.mq.producer.sensitiveword; + +import cn.iocoder.yudao.framework.mq.core.RedisMQTemplate; +import cn.iocoder.yudao.module.system.mq.message.sensitiveword.SensitiveWordRefreshMessage; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * 敏感词相关的 Producer + */ +@Component +public class SensitiveWordProducer { + + @Resource + private RedisMQTemplate redisMQTemplate; + + /** + * 发送 {@link SensitiveWordRefreshMessage} 消息 + */ + public void sendSensitiveWordRefreshMessage() { + SensitiveWordRefreshMessage message = new SensitiveWordRefreshMessage(); + redisMQTemplate.send(message); + } + +} diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java index 38018c460..0d3303d8d 100644 --- a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java @@ -107,7 +107,7 @@ public class AdminAuthServiceImpl implements AdminAuthService { LoginUser loginUser = this.login0(reqVO.getUsername(), reqVO.getPassword()); // 缓存登陆用户到 Redis 中,返回 sessionId 编号 - return userSessionService.createUserSession(loginUser, userIp, userAgent); + return createUserSessionAfterLoginSuccess(loginUser, LoginLogTypeEnum.LOGIN_USERNAME, userIp, userAgent); } private void verifyCaptcha(AuthLoginReqVO reqVO) { @@ -155,9 +155,7 @@ public class AdminAuthServiceImpl implements AdminAuthService { this.createLoginLog(username, logTypeEnum, LoginResultEnum.UNKNOWN_ERROR); throw exception(AUTH_LOGIN_FAIL_UNKNOWN); } - // 登录成功的日志 Assert.notNull(authentication.getPrincipal(), "Principal 不会为空"); - this.createLoginLog(username, logTypeEnum, LoginResultEnum.SUCCESS); return (LoginUser) authentication.getPrincipal(); } @@ -207,7 +205,6 @@ public class AdminAuthServiceImpl implements AdminAuthService { if (user == null) { throw exception(USER_NOT_EXISTS); } - this.createLoginLog(user.getUsername(), LoginLogTypeEnum.LOGIN_SOCIAL, LoginResultEnum.SUCCESS); // 创建 LoginUser 对象 LoginUser loginUser = this.buildLoginUser(user); @@ -216,7 +213,7 @@ public class AdminAuthServiceImpl implements AdminAuthService { socialUserService.bindSocialUser(AuthConvert.INSTANCE.convert(loginUser.getId(), getUserType().getValue(), reqVO)); // 缓存登录用户到 Redis 中,返回 sessionId 编号 - return userSessionService.createUserSession(loginUser, userIp, userAgent); + return createUserSessionAfterLoginSuccess(loginUser, LoginLogTypeEnum.LOGIN_SOCIAL, userIp, userAgent); } @Override @@ -231,6 +228,13 @@ public class AdminAuthServiceImpl implements AdminAuthService { // 绑定社交用户(新增) socialUserService.bindSocialUser(AuthConvert.INSTANCE.convert(loginUser.getId(), getUserType().getValue(), reqVO)); + // 缓存登录用户到 Redis 中,返回 sessionId 编号 + return createUserSessionAfterLoginSuccess(loginUser, LoginLogTypeEnum.LOGIN_SOCIAL, userIp, userAgent); + } + + private String createUserSessionAfterLoginSuccess(LoginUser loginUser, LoginLogTypeEnum logType, String userIp, String userAgent) { + // 插入登陆日志 + createLoginLog(loginUser.getUsername(), logType, LoginResultEnum.SUCCESS); // 缓存登录用户到 Redis 中,返回 sessionId 编号 return userSessionService.createUserSession(loginUser, userIp, userAgent); } diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java index 15c4396bd..4f93879a7 100644 --- a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java @@ -8,7 +8,6 @@ import cn.iocoder.yudao.framework.common.util.collection.MapUtils; import cn.iocoder.yudao.framework.common.util.json.JsonUtils; import cn.iocoder.yudao.framework.datapermission.core.dept.service.dto.DeptDataPermissionRespDTO; import cn.iocoder.yudao.framework.security.core.LoginUser; -import cn.iocoder.yudao.module.system.enums.permission.DataScopeEnum; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore; import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO; @@ -16,8 +15,11 @@ import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleMenuDO; import cn.iocoder.yudao.module.system.dal.dataobject.permission.UserRoleDO; +import cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMenuBatchInsertMapper; import cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMenuMapper; +import cn.iocoder.yudao.module.system.dal.mysql.permission.UserRoleBatchInsertMapper; import cn.iocoder.yudao.module.system.dal.mysql.permission.UserRoleMapper; +import cn.iocoder.yudao.module.system.enums.permission.DataScopeEnum; import cn.iocoder.yudao.module.system.mq.producer.permission.PermissionProducer; import cn.iocoder.yudao.module.system.service.dept.DeptService; import com.google.common.collect.ImmutableMultimap; @@ -79,7 +81,11 @@ public class PermissionServiceImpl implements PermissionService { @Resource private RoleMenuMapper roleMenuMapper; @Resource + private RoleMenuBatchInsertMapper roleMenuBatchInsertMapper; + @Resource private UserRoleMapper userRoleMapper; + @Resource + private UserRoleBatchInsertMapper userRoleBatchInsertMapper; @Resource private RoleService roleService; @@ -202,7 +208,12 @@ public class PermissionServiceImpl implements PermissionService { Collection deleteMenuIds = CollUtil.subtract(dbMenuIds, menuIds); // 执行新增和删除。对于已经授权的菜单,不用做任何处理 if (!CollectionUtil.isEmpty(createMenuIds)) { - roleMenuMapper.insertList(roleId, createMenuIds); + roleMenuBatchInsertMapper.saveBatch(CollectionUtils.convertList(createMenuIds, menuId -> { + RoleMenuDO entity = new RoleMenuDO(); + entity.setRoleId(roleId); + entity.setMenuId(menuId); + return entity; + })); } if (!CollectionUtil.isEmpty(deleteMenuIds)) { roleMenuMapper.deleteListByRoleIdAndMenuIds(roleId, deleteMenuIds); @@ -240,7 +251,12 @@ public class PermissionServiceImpl implements PermissionService { Collection deleteMenuIds = CollUtil.subtract(dbRoleIds, roleIds); // 执行新增和删除。对于已经授权的角色,不用做任何处理 if (!CollectionUtil.isEmpty(createRoleIds)) { - userRoleMapper.insertList(userId, createRoleIds); + userRoleBatchInsertMapper.saveBatch(CollectionUtils.convertList(createRoleIds, roleId -> { + UserRoleDO entity = new UserRoleDO(); + entity.setUserId(userId); + entity.setRoleId(roleId); + return entity; + })); } if (!CollectionUtil.isEmpty(deleteMenuIds)) { userRoleMapper.deleteListByUserIdAndRoleIdIds(userId, deleteMenuIds); diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java index 713b7e4db..6bd7af2c6 100644 --- a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java @@ -126,6 +126,7 @@ public class RoleServiceImpl implements RoleService { } @Override + @Transactional public Long createRole(RoleCreateReqVO reqVO, Integer type) { // 校验角色 checkDuplicateRole(reqVO.getName(), reqVO.getCode(), null); diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/sensitiveword/SensitiveWordService.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/sensitiveword/SensitiveWordService.java new file mode 100644 index 000000000..29cd55e6e --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/sensitiveword/SensitiveWordService.java @@ -0,0 +1,104 @@ +package cn.iocoder.yudao.module.system.service.sensitiveword; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo.SensitiveWordCreateReqVO; +import cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo.SensitiveWordExportReqVO; +import cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo.SensitiveWordPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo.SensitiveWordUpdateReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.sensitiveword.SensitiveWordDO; + +import javax.validation.Valid; +import java.util.List; +import java.util.Set; + +/** + * 敏感词 Service 接口 + * + * @author 永不言败 + */ +public interface SensitiveWordService { + + /** + * 初始化本地缓存 + */ + void initLocalCache(); + + /** + * 创建敏感词 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createSensitiveWord(@Valid SensitiveWordCreateReqVO createReqVO); + + /** + * 更新敏感词 + * + * @param updateReqVO 更新信息 + */ + void updateSensitiveWord(@Valid SensitiveWordUpdateReqVO updateReqVO); + + /** + * 删除敏感词 + * + * @param id 编号 + */ + void deleteSensitiveWord(Long id); + + /** + * 获得敏感词 + * + * @param id 编号 + * @return 敏感词 + */ + SensitiveWordDO getSensitiveWord(Long id); + + /** + * 获得敏感词列表 + * + * @return 敏感词列表 + */ + List getSensitiveWordList(); + + /** + * 获得敏感词分页 + * + * @param pageReqVO 分页查询 + * @return 敏感词分页 + */ + PageResult getSensitiveWordPage(SensitiveWordPageReqVO pageReqVO); + + /** + * 获得敏感词列表, 用于 Excel 导出 + * + * @param exportReqVO 查询条件 + * @return 敏感词列表 + */ + List getSensitiveWordList(SensitiveWordExportReqVO exportReqVO); + + /** + * 获得所有敏感词的标签数组 + * + * @return 标签数组 + */ + Set getSensitiveWordTags(); + + /** + * 获得文本所包含的不合法的敏感词数组 + * + * @param text 文本 + * @param tags 标签数组 + * @return 不合法的敏感词数组 + */ + List validateText(String text, List tags); + + /** + * 判断文本是否包含敏感词 + * + * @param text 文本 + * @param tags 表述数组 + * @return 是否包含 + */ + boolean isTextValid(String text, List tags); + +} diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/sensitiveword/SensitiveWordServiceImpl.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/sensitiveword/SensitiveWordServiceImpl.java new file mode 100644 index 000000000..886a489ba --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/sensitiveword/SensitiveWordServiceImpl.java @@ -0,0 +1,265 @@ +package cn.iocoder.yudao.module.system.service.sensitiveword; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo.SensitiveWordCreateReqVO; +import cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo.SensitiveWordExportReqVO; +import cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo.SensitiveWordPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo.SensitiveWordUpdateReqVO; +import cn.iocoder.yudao.module.system.convert.sensitiveword.SensitiveWordConvert; +import cn.iocoder.yudao.module.system.dal.dataobject.sensitiveword.SensitiveWordDO; +import cn.iocoder.yudao.module.system.dal.mysql.sensitiveword.SensitiveWordMapper; +import cn.iocoder.yudao.module.system.mq.producer.sensitiveword.SensitiveWordProducer; +import cn.iocoder.yudao.module.system.util.collection.SimpleTrie; +import com.google.common.collect.HashMultimap; +import com.google.common.collect.Multimap; +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.PostConstruct; +import javax.annotation.Resource; +import java.util.*; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.SENSITIVE_WORD_EXISTS; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.SENSITIVE_WORD_NOT_EXISTS; + +/** + * 敏感词 Service 实现类 + * + * @author 永不言败 + */ +@Service +@Slf4j +@Validated +public class SensitiveWordServiceImpl implements SensitiveWordService { + + /** + * 定时执行 {@link #schedulePeriodicRefresh()} 的周期 + * 因为已经通过 Redis Pub/Sub 机制,所以频率不需要高 + */ + private static final long SCHEDULER_PERIOD = 5 * 60 * 1000L; + + /** + * 敏感词标签缓存 + * key:敏感词编号 {@link SensitiveWordDO#getId()} + *

+ * 这里声明 volatile 修饰的原因是,每次刷新时,直接修改指向 + */ + @Getter + private volatile Set sensitiveWordTagsCache = Collections.emptySet(); + + /** + * 缓存敏感词的最大更新时间,用于后续的增量轮询,判断是否有更新 + */ + @Getter + private volatile Date maxUpdateTime; + + @Resource + private SensitiveWordMapper sensitiveWordMapper; + + @Resource + private SensitiveWordProducer sensitiveWordProducer; + + /** + * 默认的敏感词的字典树,包含所有敏感词 + */ + @Getter + private volatile SimpleTrie defaultSensitiveWordTrie = new SimpleTrie(Collections.emptySet()); + /** + * 标签与敏感词的字段数的映射 + */ + @Getter + private volatile Map tagSensitiveWordTries = Collections.emptyMap(); + + /** + * 初始化缓存 + */ + @Override + @PostConstruct + public void initLocalCache() { + // 获取敏感词列表,如果有更新 + List sensitiveWordList = loadSensitiveWordIfUpdate(maxUpdateTime); + if (CollUtil.isEmpty(sensitiveWordList)) { + return; + } + + // 写入 sensitiveWordTagsCache 缓存 + Set tags = new HashSet<>(); + sensitiveWordList.forEach(word -> tags.addAll(word.getTags())); + sensitiveWordTagsCache = tags; + // 写入 defaultSensitiveWordTrie、tagSensitiveWordTries 缓存 + initSensitiveWordTrie(sensitiveWordList); + // 写入 maxUpdateTime 最大更新时间 + maxUpdateTime = CollectionUtils.getMaxValue(sensitiveWordList, SensitiveWordDO::getUpdateTime); + log.info("[initLocalCache][初始化 敏感词 数量为 {}]", sensitiveWordList.size()); + } + + private void initSensitiveWordTrie(List wordDOs) { + // 过滤禁用的敏感词 + wordDOs = CollectionUtils.filterList(wordDOs, word -> word.getStatus().equals(CommonStatusEnum.ENABLE.getStatus())); + + // 初始化默认的 defaultSensitiveWordTrie + this.defaultSensitiveWordTrie = new SimpleTrie(CollectionUtils.convertList(wordDOs, SensitiveWordDO::getName)); + + // 初始化 tagSensitiveWordTries + Multimap tagWords = HashMultimap.create(); + for (SensitiveWordDO word : wordDOs) { + if (CollUtil.isEmpty(word.getTags())) { + continue; + } + word.getTags().forEach(tag -> tagWords.put(tag, word.getName())); + } + // 添加到 tagSensitiveWordTries 中 + Map tagSensitiveWordTries = new HashMap<>(); + tagWords.asMap().forEach((tag, words) -> tagSensitiveWordTries.put(tag, new SimpleTrie(words))); + this.tagSensitiveWordTries = tagSensitiveWordTries; + } + + @Scheduled(fixedDelay = SCHEDULER_PERIOD, initialDelay = SCHEDULER_PERIOD) + public void schedulePeriodicRefresh() { + initLocalCache(); + } + + /** + * 如果敏感词发生变化,从数据库中获取最新的全量敏感词。 + * 如果未发生变化,则返回空 + * + * @param maxUpdateTime 当前敏感词的最大更新时间 + * @return 敏感词列表 + */ + private List loadSensitiveWordIfUpdate(Date maxUpdateTime) { + // 第一步,判断是否要更新。 + // 如果更新时间为空,说明 DB 一定有新数据 + if (maxUpdateTime == null) { + log.info("[loadSensitiveWordIfUpdate][首次加载全量敏感词]"); + } else { // 判断数据库中是否有更新的敏感词 + if (sensitiveWordMapper.selectExistsByUpdateTimeAfter(maxUpdateTime) == null) { + return null; + } + log.info("[loadSensitiveWordIfUpdate][增量加载全量敏感词]"); + } + // 第二步,如果有更新,则从数据库加载所有敏感词 + return sensitiveWordMapper.selectList(); + } + + @Override + public Long createSensitiveWord(SensitiveWordCreateReqVO createReqVO) { + // 校验唯一性 + checkSensitiveWordNameUnique(null, createReqVO.getName()); + // 插入 + SensitiveWordDO sensitiveWord = SensitiveWordConvert.INSTANCE.convert(createReqVO); + sensitiveWordMapper.insert(sensitiveWord); + // 发送消息,刷新缓存 + sensitiveWordProducer.sendSensitiveWordRefreshMessage(); + return sensitiveWord.getId(); + } + + @Override + public void updateSensitiveWord(SensitiveWordUpdateReqVO updateReqVO) { + // 校验唯一性 + checkSensitiveWordExists(updateReqVO.getId()); + checkSensitiveWordNameUnique(updateReqVO.getId(), updateReqVO.getName()); + // 更新 + SensitiveWordDO updateObj = SensitiveWordConvert.INSTANCE.convert(updateReqVO); + sensitiveWordMapper.updateById(updateObj); + // 发送消息,刷新缓存 + sensitiveWordProducer.sendSensitiveWordRefreshMessage(); + } + + @Override + public void deleteSensitiveWord(Long id) { + // 校验存在 + checkSensitiveWordExists(id); + // 删除 + sensitiveWordMapper.deleteById(id); + // 发送消息,刷新缓存 + sensitiveWordProducer.sendSensitiveWordRefreshMessage(); + } + + private void checkSensitiveWordNameUnique(Long id, String name) { + SensitiveWordDO word = sensitiveWordMapper.selectByName(name); + if (word == null) { + return; + } + // 如果 id 为空,说明不用比较是否为相同 id 的敏感词 + if (id == null) { + throw exception(SENSITIVE_WORD_EXISTS); + } + if (!word.getId().equals(id)) { + throw exception(SENSITIVE_WORD_EXISTS); + } + } + + private void checkSensitiveWordExists(Long id) { + if (sensitiveWordMapper.selectById(id) == null) { + throw exception(SENSITIVE_WORD_NOT_EXISTS); + } + } + + @Override + public SensitiveWordDO getSensitiveWord(Long id) { + return sensitiveWordMapper.selectById(id); + } + + @Override + public List getSensitiveWordList() { + return sensitiveWordMapper.selectList(); + } + + @Override + public PageResult getSensitiveWordPage(SensitiveWordPageReqVO pageReqVO) { + return sensitiveWordMapper.selectPage(pageReqVO); + } + + @Override + public List getSensitiveWordList(SensitiveWordExportReqVO exportReqVO) { + return sensitiveWordMapper.selectList(exportReqVO); + } + + @Override + public Set getSensitiveWordTags() { + return sensitiveWordTagsCache; + } + + @Override + public List validateText(String text, List tags) { + if (CollUtil.isEmpty(tags)) { + return defaultSensitiveWordTrie.validate(text); + } + // 有标签的情况 + Set result = new HashSet<>(); + tags.forEach(tag -> { + SimpleTrie trie = tagSensitiveWordTries.get(tag); + if (trie == null) { + return; + } + result.addAll(trie.validate(text)); + }); + return new ArrayList<>(result); + } + + @Override + public boolean isTextValid(String text, List tags) { + if (CollUtil.isEmpty(tags)) { + return defaultSensitiveWordTrie.isValid(text); + } + // 有标签的情况 + for (String tag : tags) { + SimpleTrie trie = tagSensitiveWordTries.get(tag); + if (trie == null) { + continue; + } + if (!trie.isValid(text)) { + return false; + } + } + return true; + } + +} diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/util/collection/SimpleTrie.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/util/collection/SimpleTrie.java new file mode 100644 index 000000000..817eee355 --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/util/collection/SimpleTrie.java @@ -0,0 +1,145 @@ +package cn.iocoder.yudao.module.system.util.collection; + +import cn.hutool.core.collection.CollUtil; + +import java.util.*; + +/** + * 基于前缀树,实现敏感词的校验 + *

+ * 相比 Apache Common 提供的 PatriciaTrie 来说,性能可能会更加好一些。 + * + * @author 芋道源码 + */ +@SuppressWarnings("unchecked") +public class SimpleTrie { + + /** + * 一个敏感词结束后对应的 key + */ + private static final Character CHARACTER_END = '\0'; + + /** + * 使用敏感词,构建的前缀树 + */ + private final Map children; + + /** + * 基于字符串,构建前缀树 + * + * @param strs 字符串数组 + */ + public SimpleTrie(Collection strs) { + children = new HashMap<>(); + // 构建树 + CollUtil.sort(strs, String::compareTo); // 排序,优先使用较短的前缀 + for (String str : strs) { + Map child = children; + // 遍历每个字符 + for (Character c : str.toCharArray()) { + // 如果已经到达结束,就没必要在添加更长的敏感词。 + // 例如说,有两个敏感词是:吃饭啊、吃饭。输入一句话是 “我要吃饭啊”,则只要匹配到 “吃饭” 这个敏感词即可。 + if (child.containsKey(CHARACTER_END)) { + break; + } + if (!child.containsKey(c)) { + child.put(c, new HashMap<>()); + } + child = (Map) child.get(c); + } + // 结束 + child.put(CHARACTER_END, null); + } + } + + /** + * 验证文本是否合法,即不包含敏感词 + * + * @param text 文本 + * @return 是否 ok + */ + public boolean isValid(String text) { + // 遍历 text,使用每一个 [i, n) 段的字符串,使用 children 前缀树匹配,是否包含敏感词 + for (int i = 0; i < text.length() - 1; i++) { + Map child = (Map) children.get(text.charAt(i)); + if (child == null) { + continue; + } + boolean ok = recursion(text, i + 1, child); + if (!ok) { + return false; + } + } + return true; + } + + /** + * 验证文本从指定位置开始,是否包含某个敏感词 + * + * @param text 文本 + * @param index 开始位置 + * @param child 节点(当前遍历到的) + * @return 是否包含 + */ + private boolean recursion(String text, int index, Map child) { + if (index == text.length()) { + return true; + } + child = (Map) child.get(text.charAt(index)); + return child == null || !child.containsKey(CHARACTER_END) && recursion(text, ++index, child); + } + + /** + * 获得文本所包含的不合法的敏感词 + * + * 注意,才当即最短匹配原则。例如说:当敏感词存在 “煞笔”,“煞笔二货 ”时,只会返回 “煞笔”。 + * + * @param text 文本 + * @return 匹配的敏感词 + */ + public List validate(String text) { + Set results = new HashSet<>(); + for (int i = 0; i < text.length() - 1; i++) { + Character c = text.charAt(i); + Map child = (Map) children.get(c); + if (child == null) { + continue; + } + StringBuilder result = new StringBuilder().append(c); + boolean ok = recursionWithResult(text, i + 1, child, result); + if (!ok) { + results.add(result.toString()); + } + } + return new ArrayList<>(results); + } + + /** + * 返回文本从 index 开始的敏感词,并使用 StringBuilder 参数进行返回 + * + * 逻辑和 {@link #recursion(String, int, Map)} 是一致,只是多了 result 返回结果 + * + * @param text 文本 + * @param index 开始未知 + * @param child 节点(当前遍历到的) + * @param result 返回敏感词 + * @return 是否有敏感词 + */ + @SuppressWarnings("unchecked") + private static boolean recursionWithResult(String text, int index, Map child, StringBuilder result) { + if (index == text.length()) { + return true; + } + Character c = text.charAt(index); + child = (Map) child.get(c); + if (child == null) { + return true; + } + if (child.containsKey(CHARACTER_END)) { + result.append(c); + return false; + } + return recursionWithResult(text, ++index, child, result.append(c)); + } + +} diff --git a/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/util/package-info.java b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/util/package-info.java new file mode 100644 index 000000000..97ca1f1a6 --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/util/package-info.java @@ -0,0 +1,4 @@ +/** + * 每个模块的 util 包,放专属当前模块的 Utils 工具类 + */ +package cn.iocoder.yudao.module.system.util; diff --git a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/auth/AuthServiceImplTest.java b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/auth/AuthServiceImplTest.java index 0cb822237..20814d321 100644 --- a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/auth/AuthServiceImplTest.java +++ b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/auth/AuthServiceImplTest.java @@ -13,7 +13,7 @@ import cn.iocoder.yudao.module.system.service.social.SocialUserService; import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.security.core.LoginUser; import cn.iocoder.yudao.framework.test.core.util.AssertUtils; -import cn.iocoder.yudao.module.system.test.BaseDbUnitTest; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; diff --git a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/auth/UserSessionServiceImplTest.java b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/auth/UserSessionServiceImplTest.java index 1862c68c8..357f16673 100644 --- a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/auth/UserSessionServiceImplTest.java +++ b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/auth/UserSessionServiceImplTest.java @@ -15,7 +15,7 @@ import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; -import cn.iocoder.yudao.module.system.test.BaseDbAndRedisUnitTest; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbAndRedisUnitTest; import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Import; diff --git a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/common/CaptchaServiceTest.java b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/common/CaptchaServiceTest.java index 79fb65f43..1948538d3 100644 --- a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/common/CaptchaServiceTest.java +++ b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/common/CaptchaServiceTest.java @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.system.service.common; import cn.iocoder.yudao.module.system.controller.admin.common.vo.CaptchaImageRespVO; import cn.iocoder.yudao.module.system.dal.redis.common.CaptchaRedisDAO; import cn.iocoder.yudao.module.system.framework.captcha.config.CaptchaProperties; -import cn.iocoder.yudao.module.system.test.BaseRedisUnitTest; +import cn.iocoder.yudao.framework.test.core.ut.BaseRedisUnitTest; import org.junit.jupiter.api.Test; import org.springframework.context.annotation.Import; diff --git a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceTest.java b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceTest.java index 3f78cec2f..1fd06cbfa 100644 --- a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceTest.java +++ b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceTest.java @@ -10,7 +10,7 @@ import cn.iocoder.yudao.module.system.enums.dept.DeptIdEnum; import cn.iocoder.yudao.module.system.mq.producer.dept.DeptProducer; import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; -import cn.iocoder.yudao.module.system.test.BaseDbUnitTest; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import com.google.common.collect.Multimap; import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; diff --git a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/dept/PostServiceTest.java b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/dept/PostServiceTest.java index 19850d0c7..30e546f66 100644 --- a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/dept/PostServiceTest.java +++ b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/dept/PostServiceTest.java @@ -10,7 +10,7 @@ import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostExportRe import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostUpdateReqVO; import cn.iocoder.yudao.module.system.dal.mysql.dept.PostMapper; -import cn.iocoder.yudao.module.system.test.BaseDbUnitTest; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import org.junit.jupiter.api.Test; import org.springframework.context.annotation.Import; diff --git a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/dict/DictDataServiceTest.java b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/dict/DictDataServiceTest.java index 94691d484..b20b33aaf 100644 --- a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/dict/DictDataServiceTest.java +++ b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/dict/DictDataServiceTest.java @@ -12,7 +12,7 @@ import cn.iocoder.yudao.module.system.dal.mysql.dict.DictDataMapper; import cn.iocoder.yudao.module.system.mq.producer.dict.DictDataProducer; import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; -import cn.iocoder.yudao.module.system.test.BaseDbUnitTest; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import com.google.common.collect.ImmutableTable; import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; diff --git a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/dict/DictTypeServiceTest.java b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/dict/DictTypeServiceTest.java index 0c5045258..127e602ea 100644 --- a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/dict/DictTypeServiceTest.java +++ b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/dict/DictTypeServiceTest.java @@ -10,7 +10,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO; import cn.iocoder.yudao.module.system.dal.mysql.dict.DictTypeMapper; import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; -import cn.iocoder.yudao.module.system.test.BaseDbUnitTest; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Import; diff --git a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/errorcode/ErrorCodeServiceTest.java b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/errorcode/ErrorCodeServiceTest.java index 0026b478b..37d542c14 100644 --- a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/errorcode/ErrorCodeServiceTest.java +++ b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/errorcode/ErrorCodeServiceTest.java @@ -11,7 +11,7 @@ import cn.iocoder.yudao.module.system.dal.mysql.errorcode.ErrorCodeMapper; import cn.iocoder.yudao.module.system.enums.errorcode.ErrorCodeTypeEnum; import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; -import cn.iocoder.yudao.module.system.test.BaseDbUnitTest; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import org.assertj.core.util.Lists; import org.junit.jupiter.api.Test; import org.springframework.context.annotation.Import; diff --git a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/logger/LoginLogServiceImplTest.java b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/logger/LoginLogServiceImplTest.java index 1d59a64d0..b42a7db96 100644 --- a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/logger/LoginLogServiceImplTest.java +++ b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/logger/LoginLogServiceImplTest.java @@ -13,7 +13,7 @@ import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum; import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum; import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO; -import cn.iocoder.yudao.module.system.test.BaseDbUnitTest; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import org.junit.jupiter.api.Test; import org.springframework.context.annotation.Import; diff --git a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/logger/OperateLogServiceImplTest.java b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/logger/OperateLogServiceImplTest.java index a63ed8929..8e6d742c2 100644 --- a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/logger/OperateLogServiceImplTest.java +++ b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/logger/OperateLogServiceImplTest.java @@ -17,7 +17,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; import cn.iocoder.yudao.module.system.dal.mysql.logger.OperateLogMapper; import cn.iocoder.yudao.module.system.enums.common.SexEnum; import cn.iocoder.yudao.module.system.service.user.AdminUserService; -import cn.iocoder.yudao.module.system.test.BaseDbUnitTest; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Import; diff --git a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/notice/NoticeServiceImplTest.java b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/notice/NoticeServiceImplTest.java index ed0a707b5..a2af9545b 100644 --- a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/notice/NoticeServiceImplTest.java +++ b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/notice/NoticeServiceImplTest.java @@ -9,7 +9,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.notice.NoticeDO; import cn.iocoder.yudao.module.system.dal.mysql.notice.NoticeMapper; import cn.iocoder.yudao.module.system.enums.notice.NoticeTypeEnum; import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; -import cn.iocoder.yudao.module.system.test.BaseDbUnitTest; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import org.junit.jupiter.api.Test; import org.springframework.context.annotation.Import; diff --git a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/permission/MenuServiceTest.java b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/permission/MenuServiceTest.java index 9ad61b18e..5d206409b 100644 --- a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/permission/MenuServiceTest.java +++ b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/permission/MenuServiceTest.java @@ -13,7 +13,7 @@ import cn.iocoder.yudao.module.system.dal.mysql.permission.MenuMapper; import cn.iocoder.yudao.module.system.enums.permission.MenuTypeEnum; import cn.iocoder.yudao.module.system.mq.producer.permission.MenuProducer; import cn.iocoder.yudao.module.system.service.tenant.TenantService; -import cn.iocoder.yudao.module.system.test.BaseDbUnitTest; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import com.google.common.collect.Multimap; import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; diff --git a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceTest.java b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceTest.java index 9e2e95e1e..7ac339f54 100644 --- a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceTest.java +++ b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceTest.java @@ -5,14 +5,16 @@ import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO; import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleMenuDO; import cn.iocoder.yudao.module.system.dal.dataobject.permission.UserRoleDO; +import cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMenuBatchInsertMapper; import cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMenuMapper; +import cn.iocoder.yudao.module.system.dal.mysql.permission.UserRoleBatchInsertMapper; import cn.iocoder.yudao.module.system.dal.mysql.permission.UserRoleMapper; import cn.iocoder.yudao.module.system.mq.producer.permission.PermissionProducer; import cn.iocoder.yudao.module.system.service.dept.DeptService; import cn.iocoder.yudao.framework.datapermission.core.dept.service.dto.DeptDataPermissionRespDTO; import cn.iocoder.yudao.framework.security.core.LoginUser; import cn.iocoder.yudao.module.system.enums.permission.DataScopeEnum; -import cn.iocoder.yudao.module.system.test.BaseDbUnitTest; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Import; @@ -30,7 +32,8 @@ import static org.mockito.ArgumentMatchers.same; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -@Import(PermissionServiceImpl.class) +@Import({PermissionServiceImpl.class, + RoleMenuBatchInsertMapper.class, UserRoleBatchInsertMapper.class}) public class PermissionServiceTest extends BaseDbUnitTest { @Resource @@ -39,7 +42,11 @@ public class PermissionServiceTest extends BaseDbUnitTest { @Resource private RoleMenuMapper roleMenuMapper; @Resource + private RoleMenuBatchInsertMapper roleMenuBatchInsertMapper; + @Resource private UserRoleMapper userRoleMapper; + @Resource + private UserRoleBatchInsertMapper userRoleBatchInsertMapper; @MockBean private RoleService roleService; diff --git a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceTest.java b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceTest.java index 21f46b8bb..74ef697e3 100644 --- a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceTest.java +++ b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceTest.java @@ -11,7 +11,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; import cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMapper; import cn.iocoder.yudao.module.system.enums.permission.RoleTypeEnum; import cn.iocoder.yudao.module.system.mq.producer.permission.RoleProducer; -import cn.iocoder.yudao.module.system.test.BaseDbUnitTest; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Import; diff --git a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/sensitiveword/SensitiveWordServiceImplTest.java b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/sensitiveword/SensitiveWordServiceImplTest.java new file mode 100644 index 000000000..09edfb910 --- /dev/null +++ b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/sensitiveword/SensitiveWordServiceImplTest.java @@ -0,0 +1,246 @@ +package cn.iocoder.yudao.module.system.service.sensitiveword; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.collection.SetUtils; +import cn.iocoder.yudao.framework.common.util.date.DateUtils; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; +import cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo.SensitiveWordCreateReqVO; +import cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo.SensitiveWordExportReqVO; +import cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo.SensitiveWordPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.sensitiveword.vo.SensitiveWordUpdateReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.sensitiveword.SensitiveWordDO; +import cn.iocoder.yudao.module.system.dal.mysql.sensitiveword.SensitiveWordMapper; +import cn.iocoder.yudao.module.system.mq.producer.sensitiveword.SensitiveWordProducer; +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.Arrays; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; +import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.max; +import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; +import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; +import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId; +import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.SENSITIVE_WORD_NOT_EXISTS; +import static java.util.Collections.singletonList; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.verify; + +/** + * {@link SensitiveWordServiceImpl} 的单元测试类 + * + * @author 永不言败 + */ +@Import(SensitiveWordServiceImpl.class) +public class SensitiveWordServiceImplTest extends BaseDbUnitTest { + + @Resource + private SensitiveWordServiceImpl sensitiveWordService; + + @Resource + private SensitiveWordMapper sensitiveWordMapper; + + @MockBean + private SensitiveWordProducer sensitiveWordProducer; + + @Test + public void testInitLocalCache() { + SensitiveWordDO wordDO1 = randomPojo(SensitiveWordDO.class, o -> o.setName("傻瓜") + .setTags(singletonList("论坛")).setStatus(CommonStatusEnum.ENABLE.getStatus())); + sensitiveWordMapper.insert(wordDO1); + SensitiveWordDO wordDO2 = randomPojo(SensitiveWordDO.class, o -> o.setName("笨蛋") + .setTags(singletonList("蔬菜")).setStatus(CommonStatusEnum.ENABLE.getStatus())); + sensitiveWordMapper.insert(wordDO2); + + // 调用 + sensitiveWordService.initLocalCache(); + // 断言 maxUpdateTime 缓存 + assertEquals(max(wordDO1.getUpdateTime(), wordDO2.getUpdateTime()), sensitiveWordService.getMaxUpdateTime()); + // 断言 sensitiveWordTagsCache 缓存 + assertEquals(SetUtils.asSet("论坛", "蔬菜"), sensitiveWordService.getSensitiveWordTags()); + // 断言 tagSensitiveWordTries 缓存 + assertNotNull(sensitiveWordService.getDefaultSensitiveWordTrie()); + assertEquals(2, sensitiveWordService.getTagSensitiveWordTries().size()); + assertNotNull(sensitiveWordService.getTagSensitiveWordTries().get("论坛")); + assertNotNull(sensitiveWordService.getTagSensitiveWordTries().get("蔬菜")); + } + + @Test + public void testCreateSensitiveWord_success() { + // 准备参数 + SensitiveWordCreateReqVO reqVO = randomPojo(SensitiveWordCreateReqVO.class); + + // 调用 + Long sensitiveWordId = sensitiveWordService.createSensitiveWord(reqVO); + // 断言 + assertNotNull(sensitiveWordId); + // 校验记录的属性是否正确 + SensitiveWordDO sensitiveWord = sensitiveWordMapper.selectById(sensitiveWordId); + assertPojoEquals(reqVO, sensitiveWord); + verify(sensitiveWordProducer).sendSensitiveWordRefreshMessage(); + } + + @Test + public void testUpdateSensitiveWord_success() { + // mock 数据 + SensitiveWordDO dbSensitiveWord = randomPojo(SensitiveWordDO.class); + sensitiveWordMapper.insert(dbSensitiveWord);// @Sql: 先插入出一条存在的数据 + // 准备参数 + SensitiveWordUpdateReqVO reqVO = randomPojo(SensitiveWordUpdateReqVO.class, o -> { + o.setId(dbSensitiveWord.getId()); // 设置更新的 ID + }); + + // 调用 + sensitiveWordService.updateSensitiveWord(reqVO); + // 校验是否更新正确 + SensitiveWordDO sensitiveWord = sensitiveWordMapper.selectById(reqVO.getId()); // 获取最新的 + assertPojoEquals(reqVO, sensitiveWord); + verify(sensitiveWordProducer).sendSensitiveWordRefreshMessage(); + } + + @Test + public void testUpdateSensitiveWord_notExists() { + // 准备参数 + SensitiveWordUpdateReqVO reqVO = randomPojo(SensitiveWordUpdateReqVO.class); + + // 调用, 并断言异常 + assertServiceException(() -> sensitiveWordService.updateSensitiveWord(reqVO), SENSITIVE_WORD_NOT_EXISTS); + } + + @Test + public void testDeleteSensitiveWord_success() { + // mock 数据 + SensitiveWordDO dbSensitiveWord = randomPojo(SensitiveWordDO.class); + sensitiveWordMapper.insert(dbSensitiveWord);// @Sql: 先插入出一条存在的数据 + // 准备参数 + Long id = dbSensitiveWord.getId(); + + // 调用 + sensitiveWordService.deleteSensitiveWord(id); + // 校验数据不存在了 + assertNull(sensitiveWordMapper.selectById(id)); + verify(sensitiveWordProducer).sendSensitiveWordRefreshMessage(); + } + + @Test + public void testDeleteSensitiveWord_notExists() { + // 准备参数 + Long id = randomLongId(); + + // 调用, 并断言异常 + assertServiceException(() -> sensitiveWordService.deleteSensitiveWord(id), SENSITIVE_WORD_NOT_EXISTS); + } + + @Test + public void testGetSensitiveWordPage() { + // mock 数据 + SensitiveWordDO dbSensitiveWord = randomPojo(SensitiveWordDO.class, o -> { // 等会查询到 + o.setName("笨蛋"); + o.setTags(Arrays.asList("论坛", "蔬菜")); + o.setStatus(CommonStatusEnum.ENABLE.getStatus()); + o.setCreateTime(DateUtils.buildTime(2022, 2, 8)); + }); + sensitiveWordMapper.insert(dbSensitiveWord); + // 测试 name 不匹配 + sensitiveWordMapper.insert(cloneIgnoreId(dbSensitiveWord, o -> o.setName("傻瓜"))); + // 测试 tags 不匹配 + sensitiveWordMapper.insert(cloneIgnoreId(dbSensitiveWord, o -> o.setTags(Arrays.asList("短信", "日用品")))); + // 测试 createTime 不匹配 + sensitiveWordMapper.insert(cloneIgnoreId(dbSensitiveWord, o -> o.setCreateTime(DateUtils.buildTime(2022, 2, 16)))); + // 准备参数 + SensitiveWordPageReqVO reqVO = new SensitiveWordPageReqVO(); + reqVO.setName("笨"); + reqVO.setTag("论坛"); + reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); + reqVO.setBeginCreateTime(DateUtils.buildTime(2022, 2, 1)); + reqVO.setEndCreateTime(DateUtils.buildTime(2022, 2, 12)); + + // 调用 + PageResult pageResult = sensitiveWordService.getSensitiveWordPage(reqVO); + // 断言 + assertEquals(1, pageResult.getTotal()); + assertEquals(1, pageResult.getList().size()); + assertPojoEquals(dbSensitiveWord, pageResult.getList().get(0)); + } + + @Test + public void testGetSensitiveWordList() { + // mock 数据 + SensitiveWordDO dbSensitiveWord = randomPojo(SensitiveWordDO.class, o -> { // 等会查询到 + o.setName("笨蛋"); + o.setTags(Arrays.asList("论坛", "蔬菜")); + o.setStatus(CommonStatusEnum.ENABLE.getStatus()); + o.setCreateTime(DateUtils.buildTime(2022, 2, 8)); + }); + sensitiveWordMapper.insert(dbSensitiveWord); + // 测试 name 不匹配 + sensitiveWordMapper.insert(cloneIgnoreId(dbSensitiveWord, o -> o.setName("傻瓜"))); + // 测试 tags 不匹配 + sensitiveWordMapper.insert(cloneIgnoreId(dbSensitiveWord, o -> o.setTags(Arrays.asList("短信", "日用品")))); + // 测试 createTime 不匹配 + sensitiveWordMapper.insert(cloneIgnoreId(dbSensitiveWord, o -> o.setCreateTime(DateUtils.buildTime(2022, 2, 16)))); + // 准备参数 + SensitiveWordExportReqVO reqVO = new SensitiveWordExportReqVO(); + reqVO.setName("笨"); + reqVO.setTag("论坛"); + reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); + reqVO.setBeginCreateTime(DateUtils.buildTime(2022, 2, 1)); + reqVO.setEndCreateTime(DateUtils.buildTime(2022, 2, 12)); + + // 调用 + List list = sensitiveWordService.getSensitiveWordList(reqVO); + // 断言 + assertEquals(1, list.size()); + assertPojoEquals(dbSensitiveWord, list.get(0)); + } + + @Test + public void testValidateText_noTag() { + testInitLocalCache(); + // 准备参数 + String text = "你是傻瓜,你是笨蛋"; + + // 调用 + List result = sensitiveWordService.validateText(text, null); + // 断言 + assertEquals(Arrays.asList("傻瓜", "笨蛋"), result); + } + + @Test + public void testValidateText_hasTag() { + testInitLocalCache(); + // 准备参数 + String text = "你是傻瓜,你是笨蛋"; + + // 调用 + List result = sensitiveWordService.validateText(text, singletonList("论坛")); + // 断言 + assertEquals(singletonList("傻瓜"), result); + } + + @Test + public void testIsTestValid_noTag() { + testInitLocalCache(); + // 准备参数 + String text = "你是傻瓜,你是笨蛋"; + + // 调用,断言 + assertFalse(sensitiveWordService.isTextValid(text, null)); + } + + @Test + public void testIsTestValid_hasTag() { + testInitLocalCache(); + // 准备参数 + String text = "你是傻瓜,你是笨蛋"; + + // 调用,断言 + assertFalse(sensitiveWordService.isTextValid(text, singletonList("论坛"))); + } + +} diff --git a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelServiceTest.java b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelServiceTest.java index 8ff9683a6..a53a06fab 100644 --- a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelServiceTest.java +++ b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelServiceTest.java @@ -12,7 +12,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; import cn.iocoder.yudao.framework.sms.core.client.SmsClientFactory; -import cn.iocoder.yudao.module.system.test.BaseDbUnitTest; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Import; diff --git a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsLogServiceTest.java b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsLogServiceTest.java index de6a6bd0c..c4205f538 100644 --- a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsLogServiceTest.java +++ b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsLogServiceTest.java @@ -14,7 +14,7 @@ import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; -import cn.iocoder.yudao.module.system.test.BaseDbUnitTest; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import org.junit.jupiter.api.Test; import org.springframework.context.annotation.Import; diff --git a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceTest.java b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceTest.java index a3acac897..50f1b3fd8 100644 --- a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceTest.java +++ b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceTest.java @@ -18,7 +18,7 @@ import cn.iocoder.yudao.framework.sms.core.client.SmsClient; import cn.iocoder.yudao.framework.sms.core.client.SmsClientFactory; import cn.iocoder.yudao.framework.sms.core.client.SmsCommonResult; import cn.iocoder.yudao.framework.sms.core.client.dto.SmsTemplateRespDTO; -import cn.iocoder.yudao.module.system.test.BaseDbUnitTest; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import com.google.common.collect.Lists; import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; diff --git a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/social/SocialUserServiceTest.java b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/social/SocialUserServiceTest.java index 8fb527baa..7be8feae3 100644 --- a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/social/SocialUserServiceTest.java +++ b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/social/SocialUserServiceTest.java @@ -5,7 +5,7 @@ import cn.iocoder.yudao.module.system.dal.mysql.social.SocialUserMapper; import cn.iocoder.yudao.module.system.dal.redis.social.SocialAuthUserRedisDAO; import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum; import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; -import cn.iocoder.yudao.module.system.test.BaseDbAndRedisUnitTest; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbAndRedisUnitTest; import com.xkcoding.justauth.AuthRequestFactory; import me.zhyd.oauth.model.AuthUser; import org.junit.jupiter.api.Test; diff --git a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/tenant/TenantPackageServiceImplTest.java b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/tenant/TenantPackageServiceImplTest.java index 2f21fc08a..32ed34972 100755 --- a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/tenant/TenantPackageServiceImplTest.java +++ b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/tenant/TenantPackageServiceImplTest.java @@ -8,7 +8,7 @@ import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.packages.Tenant import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantDO; import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantPackageDO; import cn.iocoder.yudao.module.system.dal.mysql.tenant.TenantPackageMapper; -import cn.iocoder.yudao.module.system.test.BaseDbUnitTest; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Import; diff --git a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImplTest.java b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImplTest.java index 075298e1e..37ff97fda 100644 --- a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImplTest.java +++ b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImplTest.java @@ -23,7 +23,7 @@ import cn.iocoder.yudao.module.system.service.permission.RoleService; import cn.iocoder.yudao.module.system.service.tenant.handler.TenantInfoHandler; import cn.iocoder.yudao.module.system.service.tenant.handler.TenantMenuHandler; import cn.iocoder.yudao.module.system.service.user.AdminUserService; -import cn.iocoder.yudao.module.system.test.BaseDbUnitTest; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.boot.test.mock.mockito.MockBean; diff --git a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/user/UserServiceImplTest.java b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/user/UserServiceImplTest.java index 5197d422b..34ea78359 100644 --- a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/user/UserServiceImplTest.java +++ b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/user/UserServiceImplTest.java @@ -21,7 +21,7 @@ import cn.iocoder.yudao.module.system.service.dept.DeptService; import cn.iocoder.yudao.module.system.service.dept.PostService; import cn.iocoder.yudao.module.system.service.permission.PermissionService; import cn.iocoder.yudao.module.system.service.tenant.TenantService; -import cn.iocoder.yudao.module.system.test.BaseDbUnitTest; +import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; import org.junit.jupiter.api.Test; import org.mockito.stubbing.Answer; import org.springframework.boot.test.mock.mockito.MockBean; diff --git a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/test/BaseDbAndRedisUnitTest.java b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/test/BaseDbAndRedisUnitTest.java deleted file mode 100644 index f870d4ff4..000000000 --- a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/test/BaseDbAndRedisUnitTest.java +++ /dev/null @@ -1,51 +0,0 @@ -package cn.iocoder.yudao.module.system.test; - -import cn.iocoder.yudao.framework.datasource.config.YudaoDataSourceAutoConfiguration; -import cn.iocoder.yudao.framework.mybatis.config.YudaoMybatisAutoConfiguration; -import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration; -import cn.iocoder.yudao.framework.test.config.RedisTestConfiguration; -import cn.iocoder.yudao.framework.test.config.SqlInitializationTestConfiguration; -import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; -import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration; -import org.redisson.spring.starter.RedissonAutoConfiguration; -import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.Import; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.jdbc.Sql; - -/** - * 依赖内存 DB + Redis 的单元测试 - * - * 相比 {@link BaseDbUnitTest} 来说,额外增加了内存 Redis - * - * @author 芋道源码 - */ -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = BaseDbAndRedisUnitTest.Application.class) -@ActiveProfiles("unit-test") // 设置使用 application-unit-test 配置文件 -@Sql(scripts = "/sql/clean.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) // 每个单元测试结束后,清理 DB -public class BaseDbAndRedisUnitTest { - - @Import({ - // DB 配置类 - YudaoDataSourceAutoConfiguration.class, // 自己的 DB 配置类 - DataSourceAutoConfiguration.class, // Spring DB 自动配置类 - DataSourceTransactionManagerAutoConfiguration.class, // Spring 事务自动配置类 - DruidDataSourceAutoConfigure.class, // Druid 自动配置类 - SqlInitializationTestConfiguration.class, // SQL 初始化 - // MyBatis 配置类 - YudaoMybatisAutoConfiguration.class, // 自己的 MyBatis 配置类 - MybatisPlusAutoConfiguration.class, // MyBatis 的自动配置类 - - // Redis 配置类 - RedisTestConfiguration.class, // Redis 测试配置类,用于启动 RedisServer - RedisAutoConfiguration.class, // Spring Redis 自动配置类 - YudaoRedisAutoConfiguration.class, // 自己的 Redis 配置类 - RedissonAutoConfiguration.class, // Redisson 自动高配置类 - }) - public static class Application { - } - -} diff --git a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/test/BaseDbUnitTest.java b/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/test/BaseDbUnitTest.java deleted file mode 100644 index 519dfddb0..000000000 --- a/yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/test/BaseDbUnitTest.java +++ /dev/null @@ -1,41 +0,0 @@ -package cn.iocoder.yudao.module.system.test; - -import cn.iocoder.yudao.framework.datasource.config.YudaoDataSourceAutoConfiguration; -import cn.iocoder.yudao.framework.mybatis.config.YudaoMybatisAutoConfiguration; -import cn.iocoder.yudao.framework.test.config.SqlInitializationTestConfiguration; -import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; -import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.Import; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.jdbc.Sql; - -/** - * 依赖内存 DB 的单元测试 - * - * 注意,Service 层同样适用。对于 Service 层的单元测试,我们针对自己模块的 Mapper 走的是 H2 内存数据库,针对别的模块的 Service 走的是 Mock 方法 - * - * @author 芋道源码 - */ -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = BaseDbUnitTest.Application.class) -@ActiveProfiles("unit-test") // 设置使用 application-unit-test 配置文件 -@Sql(scripts = "/sql/clean.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD) // 每个单元测试结束后,清理 DB -public class BaseDbUnitTest { - - @Import({ - // DB 配置类 - YudaoDataSourceAutoConfiguration.class, // 自己的 DB 配置类 - DataSourceAutoConfiguration.class, // Spring DB 自动配置类 - DataSourceTransactionManagerAutoConfiguration.class, // Spring 事务自动配置类 - DruidDataSourceAutoConfigure.class, // Druid 自动配置类 - SqlInitializationTestConfiguration.class, // SQL 初始化 - // MyBatis 配置类 - YudaoMybatisAutoConfiguration.class, // 自己的 MyBatis 配置类 - MybatisPlusAutoConfiguration.class, // MyBatis 的自动配置类 - }) - public static class Application { - } - -} diff --git a/yudao-module-system/yudao-module-system-impl/src/test/resources/sql/clean.sql b/yudao-module-system/yudao-module-system-impl/src/test/resources/sql/clean.sql index c709513b1..6f0e9d384 100644 --- a/yudao-module-system/yudao-module-system-impl/src/test/resources/sql/clean.sql +++ b/yudao-module-system/yudao-module-system-impl/src/test/resources/sql/clean.sql @@ -17,3 +17,4 @@ DELETE FROM "system_error_code"; DELETE FROM "system_social_user"; DELETE FROM "system_tenant"; DELETE FROM "system_tenant_package"; +DELETE FROM "system_sensitive_word"; diff --git a/yudao-module-system/yudao-module-system-impl/src/test/resources/sql/create_tables.sql b/yudao-module-system/yudao-module-system-impl/src/test/resources/sql/create_tables.sql index 5db3692e5..6b00fb1b5 100644 --- a/yudao-module-system/yudao-module-system-impl/src/test/resources/sql/create_tables.sql +++ b/yudao-module-system/yudao-module-system-impl/src/test/resources/sql/create_tables.sql @@ -426,3 +426,17 @@ CREATE TABLE IF NOT EXISTS "system_tenant_package" ( "deleted" bit NOT NULL DEFAULT FALSE, PRIMARY KEY ("id") ) COMMENT '租户套餐表'; + +CREATE TABLE IF NOT EXISTS "system_sensitive_word" ( + "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, + "name" varchar(255) NOT NULL, + "tags" varchar(1024) NOT NULL, + "status" bit NOT NULL DEFAULT FALSE, + "description" varchar(512), + "creator" varchar(64) DEFAULT '', + "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updater" varchar(64) DEFAULT '', + "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + "deleted" bit NOT NULL DEFAULT FALSE, + PRIMARY KEY ("id") +) COMMENT '系统敏感词'; diff --git a/yudao-server/src/main/resources/admin-ui/static/js/12.js b/yudao-server/src/main/resources/admin-ui/static/js/12.js index 472badc4c..f95e0fad4 100644 --- a/yudao-server/src/main/resources/admin-ui/static/js/12.js +++ b/yudao-server/src/main/resources/admin-ui/static/js/12.js @@ -8,7 +8,7 @@ /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/interopRequireDefault.js */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\").default;\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _login = __webpack_require__(/*! @/api/login */ \"./src/api/login.js\");\n\nvar _tenant = __webpack_require__(/*! @/api/system/tenant */ \"./src/api/system/tenant.js\");\n\nvar _jsCookie = _interopRequireDefault(__webpack_require__(/*! js-cookie */ \"./node_modules/js-cookie/dist/js.cookie.js\"));\n\nvar _jsencrypt = __webpack_require__(/*! @/utils/jsencrypt */ \"./src/utils/jsencrypt.js\");\n\nvar _constants = __webpack_require__(/*! @/utils/constants */ \"./src/utils/constants.js\");\n\nvar _ruoyi = __webpack_require__(/*! @/utils/ruoyi */ \"./src/utils/ruoyi.js\");\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n name: \"Login\",\n data: function data() {\n return {\n codeUrl: \"\",\n captchaEnable: true,\n tenantEnable: true,\n loginForm: {\n username: \"admin\",\n password: \"admin123\",\n rememberMe: false,\n code: \"\",\n uuid: \"\",\n tenantName: \"芋道源码\"\n },\n loginRules: {\n username: [{\n required: true,\n trigger: \"blur\",\n message: \"用户名不能为空\"\n }],\n password: [{\n required: true,\n trigger: \"blur\",\n message: \"密码不能为空\"\n }],\n code: [{\n required: true,\n trigger: \"change\",\n message: \"验证码不能为空\"\n }],\n tenantName: [{\n required: true,\n trigger: \"blur\",\n message: \"租户不能为空\"\n }, {\n validator: function validator(rule, value, callback) {\n // debugger\n (0, _tenant.getTenantIdByName)(value).then(function (res) {\n var tenantId = res.data;\n\n if (tenantId >= 0) {\n // 设置租户\n _jsCookie.default.set(\"tenantId\", tenantId);\n\n callback();\n } else {\n callback('租户不存在');\n }\n });\n },\n trigger: 'blur'\n }]\n },\n loading: false,\n redirect: undefined,\n // 枚举\n SysUserSocialTypeEnum: _constants.SystemUserSocialTypeEnum\n };\n },\n // watch: {\n // $route: {\n // handler: function(route) {\n // this.redirect = route.query && route.query.redirect;\n // },\n // immediate: true\n // }\n // },\n created: function created() {\n // 租户开关\n this.tenantEnable = (0, _ruoyi.getTenantEnable)(); // 重定向地址\n\n this.redirect = this.$route.query.redirect;\n this.getCode();\n this.getCookie();\n },\n methods: {\n getCode: function getCode() {\n var _this = this;\n\n // 只有开启的状态,才加载验证码。默认开启\n if (!this.captchaEnable) {\n return;\n } // 请求远程,获得验证码\n\n\n (0, _login.getCodeImg)().then(function (res) {\n res = res.data;\n _this.captchaEnable = res.enable;\n\n if (_this.captchaEnable) {\n _this.codeUrl = \"data:image/gif;base64,\" + res.img;\n _this.loginForm.uuid = res.uuid;\n }\n });\n },\n getCookie: function getCookie() {\n var username = _jsCookie.default.get(\"username\");\n\n var password = _jsCookie.default.get(\"password\");\n\n var rememberMe = _jsCookie.default.get('rememberMe');\n\n var tenantName = _jsCookie.default.get('tenantName');\n\n this.loginForm = {\n username: username === undefined ? this.loginForm.username : username,\n password: password === undefined ? this.loginForm.password : (0, _jsencrypt.decrypt)(password),\n rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),\n tenantName: tenantName === undefined ? this.loginForm.tenantName : tenantName\n };\n },\n handleLogin: function handleLogin() {\n var _this2 = this;\n\n this.$refs.loginForm.validate(function (valid) {\n if (valid) {\n _this2.loading = true; // 设置 Cookie\n\n if (_this2.loginForm.rememberMe) {\n _jsCookie.default.set(\"username\", _this2.loginForm.username, {\n expires: 30\n });\n\n _jsCookie.default.set(\"password\", (0, _jsencrypt.encrypt)(_this2.loginForm.password), {\n expires: 30\n });\n\n _jsCookie.default.set('rememberMe', _this2.loginForm.rememberMe, {\n expires: 30\n });\n\n _jsCookie.default.set('tenantName', _this2.loginForm.tenantName, {\n expires: 30\n });\n } else {\n _jsCookie.default.remove(\"username\");\n\n _jsCookie.default.remove(\"password\");\n\n _jsCookie.default.remove('rememberMe');\n\n _jsCookie.default.remove('tenantName');\n } // 发起登陆\n\n\n _this2.$store.dispatch(\"Login\", _this2.loginForm).then(function () {\n _this2.$router.push({\n path: _this2.redirect || \"/\"\n }).catch(function () {});\n }).catch(function () {\n _this2.loading = false;\n\n _this2.getCode();\n });\n }\n });\n },\n doSocialLogin: function doSocialLogin(socialTypeEnum) {\n // console.log(\"开始Oauth登录...%o\", socialTypeEnum.code);\n // 设置登录中\n this.loading = true; // 计算 redirectUri\n\n var redirectUri = location.origin + '/social-login?type=' + socialTypeEnum.type + '&redirect=' + (this.redirect || \"/\"); // 重定向不能丢\n // const redirectUri = 'http://127.0.0.1:48080/api/gitee/callback';\n // const redirectUri = 'http://127.0.0.1:48080/api/dingtalk/callback';\n // 进行跳转\n\n (0, _login.socialAuthRedirect)(socialTypeEnum.type, encodeURIComponent(redirectUri)).then(function (res) {\n // console.log(res.url);\n window.location.href = res.data;\n });\n }\n }\n};\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/views/login.vue?./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); +eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/interopRequireDefault.js */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\").default;\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _login = __webpack_require__(/*! @/api/login */ \"./src/api/login.js\");\n\nvar _tenant = __webpack_require__(/*! @/api/system/tenant */ \"./src/api/system/tenant.js\");\n\nvar _jsCookie = _interopRequireDefault(__webpack_require__(/*! js-cookie */ \"./node_modules/js-cookie/dist/js.cookie.js\"));\n\nvar _jsencrypt = __webpack_require__(/*! @/utils/jsencrypt */ \"./src/utils/jsencrypt.js\");\n\nvar _constants = __webpack_require__(/*! @/utils/constants */ \"./src/utils/constants.js\");\n\nvar _ruoyi = __webpack_require__(/*! @/utils/ruoyi */ \"./src/utils/ruoyi.js\");\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n name: \"Login\",\n data: function data() {\n return {\n codeUrl: \"\",\n captchaEnable: true,\n tenantEnable: true,\n loginForm: {\n username: \"admin\",\n password: \"admin123\",\n rememberMe: false,\n code: \"\",\n uuid: \"\",\n tenantName: \"芋道源码\"\n },\n loginRules: {\n username: [{\n required: true,\n trigger: \"blur\",\n message: \"用户名不能为空\"\n }],\n password: [{\n required: true,\n trigger: \"blur\",\n message: \"密码不能为空\"\n }],\n code: [{\n required: true,\n trigger: \"change\",\n message: \"验证码不能为空\"\n }],\n tenantName: [{\n required: true,\n trigger: \"blur\",\n message: \"租户不能为空\"\n }, {\n validator: function validator(rule, value, callback) {\n // debugger\n (0, _tenant.getTenantIdByName)(value).then(function (res) {\n var tenantId = res.data;\n\n if (tenantId && tenantId >= 0) {\n // 设置租户\n _jsCookie.default.set(\"tenantId\", tenantId);\n\n callback();\n } else {\n callback('租户不存在');\n }\n });\n },\n trigger: 'blur'\n }]\n },\n loading: false,\n redirect: undefined,\n // 枚举\n SysUserSocialTypeEnum: _constants.SystemUserSocialTypeEnum\n };\n },\n // watch: {\n // $route: {\n // handler: function(route) {\n // this.redirect = route.query && route.query.redirect;\n // },\n // immediate: true\n // }\n // },\n created: function created() {\n // 租户开关\n this.tenantEnable = (0, _ruoyi.getTenantEnable)(); // 重定向地址\n\n this.redirect = this.$route.query.redirect;\n this.getCode();\n this.getCookie();\n },\n methods: {\n getCode: function getCode() {\n var _this = this;\n\n // 只有开启的状态,才加载验证码。默认开启\n if (!this.captchaEnable) {\n return;\n } // 请求远程,获得验证码\n\n\n (0, _login.getCodeImg)().then(function (res) {\n res = res.data;\n _this.captchaEnable = res.enable;\n\n if (_this.captchaEnable) {\n _this.codeUrl = \"data:image/gif;base64,\" + res.img;\n _this.loginForm.uuid = res.uuid;\n }\n });\n },\n getCookie: function getCookie() {\n var username = _jsCookie.default.get(\"username\");\n\n var password = _jsCookie.default.get(\"password\");\n\n var rememberMe = _jsCookie.default.get('rememberMe');\n\n var tenantName = _jsCookie.default.get('tenantName');\n\n this.loginForm = {\n username: username === undefined ? this.loginForm.username : username,\n password: password === undefined ? this.loginForm.password : (0, _jsencrypt.decrypt)(password),\n rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),\n tenantName: tenantName === undefined ? this.loginForm.tenantName : tenantName\n };\n },\n handleLogin: function handleLogin() {\n var _this2 = this;\n\n this.$refs.loginForm.validate(function (valid) {\n if (valid) {\n _this2.loading = true; // 设置 Cookie\n\n if (_this2.loginForm.rememberMe) {\n _jsCookie.default.set(\"username\", _this2.loginForm.username, {\n expires: 30\n });\n\n _jsCookie.default.set(\"password\", (0, _jsencrypt.encrypt)(_this2.loginForm.password), {\n expires: 30\n });\n\n _jsCookie.default.set('rememberMe', _this2.loginForm.rememberMe, {\n expires: 30\n });\n\n _jsCookie.default.set('tenantName', _this2.loginForm.tenantName, {\n expires: 30\n });\n } else {\n _jsCookie.default.remove(\"username\");\n\n _jsCookie.default.remove(\"password\");\n\n _jsCookie.default.remove('rememberMe');\n\n _jsCookie.default.remove('tenantName');\n } // 发起登陆\n\n\n _this2.$store.dispatch(\"Login\", _this2.loginForm).then(function () {\n _this2.$router.push({\n path: _this2.redirect || \"/\"\n }).catch(function () {});\n }).catch(function () {\n _this2.loading = false;\n\n _this2.getCode();\n });\n }\n });\n },\n doSocialLogin: function doSocialLogin(socialTypeEnum) {\n // console.log(\"开始Oauth登录...%o\", socialTypeEnum.code);\n // 设置登录中\n this.loading = true; // 计算 redirectUri\n\n var redirectUri = location.origin + '/social-login?type=' + socialTypeEnum.type + '&redirect=' + (this.redirect || \"/\"); // 重定向不能丢\n // const redirectUri = 'http://127.0.0.1:48080/api/gitee/callback';\n // const redirectUri = 'http://127.0.0.1:48080/api/dingtalk/callback';\n // 进行跳转\n\n (0, _login.socialAuthRedirect)(socialTypeEnum.type, encodeURIComponent(redirectUri)).then(function (res) {\n // console.log(res.url);\n window.location.href = res.data;\n });\n }\n }\n};\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/views/login.vue?./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), diff --git a/yudao-server/src/main/resources/admin-ui/static/js/12.js.gz b/yudao-server/src/main/resources/admin-ui/static/js/12.js.gz index 78f2812b8..51c4f9b78 100644 Binary files a/yudao-server/src/main/resources/admin-ui/static/js/12.js.gz and b/yudao-server/src/main/resources/admin-ui/static/js/12.js.gz differ diff --git a/yudao-server/src/main/resources/admin-ui/static/js/14.js b/yudao-server/src/main/resources/admin-ui/static/js/14.js index 6d5d563ee..8c3038d51 100644 --- a/yudao-server/src/main/resources/admin-ui/static/js/14.js +++ b/yudao-server/src/main/resources/admin-ui/static/js/14.js @@ -4,11 +4,11 @@ /*!***************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/socialLogin.vue?vue&type=script&lang=js& ***! \***************************************************************************************************************************************************************************************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/interopRequireDefault.js */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\").default;\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _login = __webpack_require__(/*! @/api/login */ \"./src/api/login.js\");\n\nvar _jsCookie = _interopRequireDefault(__webpack_require__(/*! js-cookie */ \"./node_modules/js-cookie/dist/js.cookie.js\"));\n\nvar _jsencrypt = __webpack_require__(/*! @/utils/jsencrypt */ \"./src/utils/jsencrypt.js\");\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nvar _default = {\n name: \"ThirdLogin\",\n data: function data() {\n return {\n loginForm: {\n username: \"admin\",\n password: \"admin123\",\n rememberMe: false // TODO 芋艿:后面看情况,去掉这块\n\n },\n loginRules: {\n username: [{\n required: true,\n trigger: \"blur\",\n message: \"用户名不能为空\"\n }],\n password: [{\n required: true,\n trigger: \"blur\",\n message: \"密码不能为空\"\n }]\n },\n loading: false,\n redirect: undefined,\n // 社交登录相关\n type: undefined,\n code: undefined,\n state: undefined\n };\n },\n // watch: {\n // $route: {\n // handler: function(route) {\n // this.redirect = route.query && route.query.redirect;\n // },\n // immediate: true\n // }\n // },\n created: function created() {\n var _this = this;\n\n this.getCookie(); // 重定向地址\n\n this.redirect = this.$route.query.redirect; // 社交登录相关\n\n this.type = this.$route.query.type;\n this.code = this.$route.query.code;\n this.state = this.$route.query.state;\n this.$store.dispatch(\"SocialLogin\", {\n code: this.code,\n state: this.state,\n type: this.type\n }).then(function () {\n _this.$router.push({\n path: _this.redirect || \"/\"\n }).catch(function () {});\n }).catch(function () {\n _this.loading = false;\n });\n },\n methods: {\n getCookie: function getCookie() {\n var username = _jsCookie.default.get(\"username\");\n\n var password = _jsCookie.default.get(\"password\");\n\n var rememberMe = _jsCookie.default.get('rememberMe');\n\n this.loginForm = {\n username: username === undefined ? this.loginForm.username : username,\n password: password === undefined ? this.loginForm.password : (0, _jsencrypt.decrypt)(password),\n rememberMe: rememberMe === undefined ? false : Boolean(rememberMe)\n };\n },\n handleLogin: function handleLogin() {\n var _this2 = this;\n\n this.$refs.loginForm.validate(function (valid) {\n if (valid) {\n _this2.loading = true;\n\n if (_this2.loginForm.rememberMe) {\n _jsCookie.default.set(\"username\", _this2.loginForm.username, {\n expires: 30\n });\n\n _jsCookie.default.set(\"password\", (0, _jsencrypt.encrypt)(_this2.loginForm.password), {\n expires: 30\n });\n } else {\n _jsCookie.default.remove(\"username\");\n\n _jsCookie.default.remove(\"password\");\n }\n\n _this2.$store.dispatch(\"SocialLogin2\", {\n code: _this2.code,\n state: _this2.state,\n type: _this2.type,\n username: _this2.loginForm.username,\n password: _this2.loginForm.password\n }).then(function () {\n _this2.$router.push({\n path: _this2.redirect || \"/\"\n }).catch(function () {});\n }).catch(function () {\n _this2.loading = false;\n });\n }\n });\n }\n }\n};\nexports.default = _default;\n\n//# sourceURL=webpack:///./src/views/socialLogin.vue?./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var js_cookie__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! js-cookie */ \"./node_modules/js-cookie/dist/js.cookie.js\");\n/* harmony import */ var js_cookie__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(js_cookie__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_jsencrypt__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/utils/jsencrypt */ \"./src/utils/jsencrypt.js\");\n/* harmony import */ var _utils_jsencrypt__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_utils_jsencrypt__WEBPACK_IMPORTED_MODULE_1__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"ThirdLogin\",\n data: function data() {\n return {\n loginForm: {\n username: \"admin\",\n password: \"admin123\",\n rememberMe: false // TODO 芋艿:后面看情况,去掉这块\n\n },\n loginRules: {\n username: [{\n required: true,\n trigger: \"blur\",\n message: \"用户名不能为空\"\n }],\n password: [{\n required: true,\n trigger: \"blur\",\n message: \"密码不能为空\"\n }]\n },\n loading: false,\n redirect: undefined,\n // 社交登录相关\n type: undefined,\n code: undefined,\n state: undefined\n };\n },\n // watch: {\n // $route: {\n // handler: function(route) {\n // this.redirect = route.query && route.query.redirect;\n // },\n // immediate: true\n // }\n // },\n created: function created() {\n var _this = this;\n\n this.getCookie(); // 重定向地址\n\n this.redirect = this.$route.query.redirect; // 社交登录相关\n\n this.type = this.$route.query.type;\n this.code = this.$route.query.code;\n this.state = this.$route.query.state;\n this.$store.dispatch(\"SocialLogin\", {\n code: this.code,\n state: this.state,\n type: this.type\n }).then(function () {\n _this.$router.push({\n path: _this.redirect || \"/\"\n }).catch(function () {});\n }).catch(function () {\n _this.loading = false;\n });\n },\n methods: {\n getCookie: function getCookie() {\n var username = js_cookie__WEBPACK_IMPORTED_MODULE_0___default.a.get(\"username\");\n var password = js_cookie__WEBPACK_IMPORTED_MODULE_0___default.a.get(\"password\");\n var rememberMe = js_cookie__WEBPACK_IMPORTED_MODULE_0___default.a.get('rememberMe');\n this.loginForm = {\n username: username === undefined ? this.loginForm.username : username,\n password: password === undefined ? this.loginForm.password : Object(_utils_jsencrypt__WEBPACK_IMPORTED_MODULE_1__[\"decrypt\"])(password),\n rememberMe: rememberMe === undefined ? false : Boolean(rememberMe)\n };\n },\n handleLogin: function handleLogin() {\n var _this2 = this;\n\n this.$refs.loginForm.validate(function (valid) {\n if (valid) {\n _this2.loading = true;\n\n if (_this2.loginForm.rememberMe) {\n js_cookie__WEBPACK_IMPORTED_MODULE_0___default.a.set(\"username\", _this2.loginForm.username, {\n expires: 30\n });\n js_cookie__WEBPACK_IMPORTED_MODULE_0___default.a.set(\"password\", Object(_utils_jsencrypt__WEBPACK_IMPORTED_MODULE_1__[\"encrypt\"])(_this2.loginForm.password), {\n expires: 30\n });\n } else {\n js_cookie__WEBPACK_IMPORTED_MODULE_0___default.a.remove(\"username\");\n js_cookie__WEBPACK_IMPORTED_MODULE_0___default.a.remove(\"password\");\n }\n\n _this2.$store.dispatch(\"SocialLogin2\", {\n code: _this2.code,\n state: _this2.state,\n type: _this2.type,\n username: _this2.loginForm.username,\n password: _this2.loginForm.password\n }).then(function () {\n _this2.$router.push({\n path: _this2.redirect || \"/\"\n }).catch(function () {});\n }).catch(function () {\n _this2.loading = false;\n });\n }\n });\n }\n }\n});\n\n//# sourceURL=webpack:///./src/views/socialLogin.vue?./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), @@ -50,11 +50,11 @@ eval("// style-loader: Adds some css to the DOM by adding a