This commit is contained in:
2023-07-10 17:40:14 +08:00
parent d52133394c
commit 373754c2bb
41 changed files with 413 additions and 239 deletions

View File

@ -11,7 +11,7 @@
Target Server Version : 50742
File Encoding : 65001
Date: 07/07/2023 17:51:17
Date: 10/07/2023 17:39:11
*/
SET NAMES utf8mb4;
@ -92,9 +92,9 @@ INSERT INTO `generator_table_column` VALUES (1676757962507010049, '1676757962154
DROP TABLE IF EXISTS `sys_config`;
CREATE TABLE `sys_config` (
`config_id` bigint(20) NOT NULL COMMENT '参数主键',
`config_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '参数名称',
`config_key` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '参数键名',
`config_value` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '参数键值',
`config_name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '参数名称',
`config_key` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '参数键名',
`config_value` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '参数键值',
`config_type` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT 'N' COMMENT '系统内置Y是 N否',
`create_user` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
@ -130,7 +130,7 @@ CREATE TABLE `sys_dept` (
`dept_name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '部门名称',
`order_num` int(11) NULL DEFAULT 0 COMMENT '显示顺序',
`leader` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '负责人ID',
`phone` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '手机号',
`phone` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '手机号',
`email` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '邮箱',
`status` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '部门状态1正常 0停用',
`create_user` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '创建者',
@ -161,9 +161,9 @@ DROP TABLE IF EXISTS `sys_dict_data`;
CREATE TABLE `sys_dict_data` (
`dict_code` bigint(20) NOT NULL COMMENT '字典编码',
`dict_sort` int(11) NULL DEFAULT 0 COMMENT '字典排序',
`dict_label` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '字典标签',
`dict_value` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '字典键值',
`dict_type` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '字典类型',
`dict_label` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '字典标签',
`dict_value` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '字典键值',
`dict_type` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '字典类型',
`css_class` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '样式属性(其他样式扩展)',
`list_class` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '表格回显样式',
`status` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '状态0正常 1停用',
@ -189,8 +189,8 @@ INSERT INTO `sys_dict_data` VALUES (1676129808423702529, 3, '未知', '3', 'dict
DROP TABLE IF EXISTS `sys_dict_type`;
CREATE TABLE `sys_dict_type` (
`dict_id` bigint(20) NOT NULL COMMENT '字典主键',
`dict_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '字典名称',
`dict_type` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '字典类型',
`dict_name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '字典名称',
`dict_type` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '字典类型',
`status` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '状态0正常 1停用',
`create_user` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
@ -237,6 +237,9 @@ INSERT INTO `sys_login_log` VALUES (1677244196215947265, '02d96e130ca945b8af2a59
INSERT INTO `sys_login_log` VALUES (1677251105694265345, '2eeea51df0234e4ab9e8ec4e3998c13a', 'admin', '小王', '192.168.0.201', '0|0|0|内网IP|内网IP', 'Chrome|114.0.0.0', 'Windows 10 or Windows Server 2016', '2023-07-07 17:40:00', '', NULL, '', NULL, NULL, 1);
INSERT INTO `sys_login_log` VALUES (1677251274879905793, '3b2bd9c401d14b76a6b310d2bee66df6', 'admin', '小王', '192.168.0.201', '0|0|0|内网IP|内网IP', 'Chrome|114.0.0.0', 'Windows 10 or Windows Server 2016', '2023-07-07 17:40:40', '', NULL, '', NULL, NULL, 1);
INSERT INTO `sys_login_log` VALUES (1677252021637984257, '10c302a859204d9482ce107dc6cf345d', 'admin', '小王', '192.168.0.201', '0|0|0|内网IP|内网IP', 'Chrome|114.0.0.0', 'Windows 10 or Windows Server 2016', '2023-07-07 17:43:38', '', NULL, '', NULL, NULL, 1);
INSERT INTO `sys_login_log` VALUES (1678205404947537921, 'cb80f07af11740e8aaf215f212911ac0', 'admin', '小王', '192.168.0.201', '0|0|0|内网IP|内网IP', 'Chrome|114.0.0.0', 'Windows 10 or Windows Server 2016', '2023-07-10 08:52:03', '', NULL, '', NULL, NULL, 1);
INSERT INTO `sys_login_log` VALUES (1678206680972255234, '1a8775debaa043b285057422d1178d45', 'admin', '小王', '192.168.0.201', '0|0|0|内网IP|内网IP', 'Chrome|114.0.0.0', 'Windows 10 or Windows Server 2016', '2023-07-10 08:57:07', '', NULL, '', NULL, NULL, 1);
INSERT INTO `sys_login_log` VALUES (1678310447323394049, '611a69a132a5466b9f2bc95c96abe191', 'admin', '小王', '192.168.0.200', '0|0|0|内网IP|内网IP', 'Firefox|114.0', 'OSX', '2023-07-10 15:49:27', '', NULL, '', NULL, NULL, 1);
-- ----------------------------
-- Table structure for sys_menu
@ -244,14 +247,14 @@ INSERT INTO `sys_login_log` VALUES (1677252021637984257, '10c302a859204d9482ce10
DROP TABLE IF EXISTS `sys_menu`;
CREATE TABLE `sys_menu` (
`menu_id` bigint(20) NOT NULL COMMENT '菜单ID',
`menu_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '菜单名称',
`menu_name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '菜单名称',
`parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父菜单ID',
`order_num` int(11) NULL DEFAULT 0 COMMENT '显示顺序',
`path` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '路由地址',
`component` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '组件路径',
`query` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '路由参数',
`is_frame` int(11) NULL DEFAULT 1 COMMENT '是否为外链1是 0否',
`is_cache` int(11) NULL DEFAULT 0 COMMENT '是否缓存1缓存 0不缓存',
`path` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '路由地址',
`component` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '组件路径',
`query` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '路由参数',
`is_frame` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '1' COMMENT '是否为外链1是 0否',
`is_cache` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '是否缓存1缓存 0不缓存',
`menu_type` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '菜单类型M目录 C菜单 F按钮',
`is_visible` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '菜单状态1显示 0隐藏',
`perms` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '权限标识',
@ -268,79 +271,79 @@ CREATE TABLE `sys_menu` (
-- ----------------------------
-- Records of sys_menu
-- ----------------------------
INSERT INTO `sys_menu` VALUES (1, '系统管理', 0, 1, 'system', NULL, '', 0, 0, 'M', '1', '', 'system', 'admin', '2023-04-23 14:35:29', '', NULL, '系统管理目录', 1);
INSERT INTO `sys_menu` VALUES (2, '系统监控', 0, 2, 'monitor', NULL, '', 0, 0, 'M', '1', '', 'monitor', 'admin', '2023-05-27 22:25:03', '', NULL, '系统监控目录', 1);
INSERT INTO `sys_menu` VALUES (3, '开发工具', 0, 4, 'tool', NULL, NULL, 0, 0, 'M', '1', NULL, 'tool', 'admin', '2023-07-03 21:53:02', 'admin', '2023-07-05 13:02:53', '', 1);
INSERT INTO `sys_menu` VALUES (100, '用户管理', 1, 1, 'user', 'system/user/index', '', 0, 0, 'C', '1', 'system:user:list', 'user', 'admin', '2023-04-23 14:35:29', '', NULL, '用户管理菜单', 1);
INSERT INTO `sys_menu` VALUES (101, '角色管理', 1, 2, 'role', 'system/role/index', '', 0, 0, 'C', '1', 'system:role:list', 'peoples', 'admin', '2023-04-23 14:35:29', '', NULL, '角色管理菜单', 1);
INSERT INTO `sys_menu` VALUES (102, '菜单管理', 1, 3, 'menu', 'system/menu/index', '', 0, 0, 'C', '1', 'system:menu:list', 'tree-table', 'admin', '2023-04-23 14:35:29', '', NULL, '菜单管理菜单', 1);
INSERT INTO `sys_menu` VALUES (103, '部门管理', 1, 4, 'dept', 'system/dept/index', '', 0, 0, 'C', '1', 'system:dept:list', 'tree', 'admin', '2023-04-23 14:35:29', '', NULL, '部门管理菜单', 1);
INSERT INTO `sys_menu` VALUES (104, '岗位管理', 1, 5, 'post', 'system/post/index', '', 0, 0, 'C', '1', 'system:post:list', 'post', 'admin', '2023-04-23 14:35:29', '', NULL, '岗位管理菜单', 1);
INSERT INTO `sys_menu` VALUES (105, '字典管理', 1, 6, 'dict', 'system/dict/index', '', 0, 0, 'C', '1', 'system:dict:list', 'documentation', 'admin', '2022-08-15 18:01:28', 'admin', '2023-05-31 11:15:14', '字典管理菜单', 1);
INSERT INTO `sys_menu` VALUES (106, '参数设置', 1, 7, 'config', 'system/config/index', '', 0, 0, 'C', '1', 'system:config:list', 'edit', 'admin', '2022-08-15 18:01:28', 'admin', '2023-05-24 21:13:11', '参数设置菜单', 1);
INSERT INTO `sys_menu` VALUES (109, '在线用户', 2, 1, 'online', 'monitor/online/index', '', 0, 0, 'C', '1', 'monitor:online:list', 'online', 'admin', '2023-05-27 22:22:18', 'admin', '2023-06-19 15:29:03', '在线用户菜单', 1);
INSERT INTO `sys_menu` VALUES (116, '代码生成', 3, 1, 'gen', 'tool/gen/index', '', 0, 0, 'C', '1', 'tool:gen:list', 'code', 'admin', '2023-07-03 09:05:56', 'admin', '2023-07-03 21:53:13', '代码生成菜单', 1);
INSERT INTO `sys_menu` VALUES (500, '操作日志', 2, 3, 'operlog', 'monitor/use_log/index', '', 0, 0, 'C', '1', 'monitor:use-log:list', 'log', 'admin', '2022-08-15 18:01:28', 'admin', '2023-07-05 15:19:25', '操作日志菜单', 1);
INSERT INTO `sys_menu` VALUES (1000, '用户查询', 100, 1, '', '', '', 0, 0, 'F', '1', 'system:user:query', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1001, '用户新增', 100, 2, '', '', '', 0, 0, 'F', '1', 'system:user:add', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1002, '用户修改', 100, 3, '', '', '', 0, 0, 'F', '1', 'system:user:edit', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1003, '用户删除', 100, 4, '', '', '', 0, 0, 'F', '1', 'system:user:remove', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1004, '用户导出', 100, 5, '', '', '', 0, 0, 'F', '1', 'system:user:export', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1005, '用户导入', 100, 6, '', '', '', 0, 0, 'F', '1', 'system:user:import', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1006, '重置密码', 100, 7, '', '', '', 0, 0, 'F', '1', 'system:user:resetPwd', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1007, '角色查询', 101, 1, '', '', '', 0, 0, 'F', '1', 'system:role:query', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1008, '角色新增', 101, 2, '', '', '', 0, 0, 'F', '1', 'system:role:add', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1009, '角色修改', 101, 3, '', '', '', 0, 0, 'F', '1', 'system:role:edit', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1010, '角色删除', 101, 4, '', '', '', 0, 0, 'F', '1', 'system:role:remove', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1011, '角色导出', 101, 5, '', '', '', 0, 0, 'F', '1', 'system:role:export', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1012, '菜单查询', 102, 1, '', '', '', 0, 0, 'F', '1', 'system:menu:query', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1013, '菜单新增', 102, 2, '', '', '', 0, 0, 'F', '1', 'system:menu:add', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1014, '菜单修改', 102, 3, '', '', '', 0, 0, 'F', '1', 'system:menu:edit', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1015, '菜单删除', 102, 4, '', '', '', 0, 0, 'F', '1', 'system:menu:remove', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1016, '部门查询', 103, 1, '', '', '', 0, 0, 'F', '1', 'system:dept:query', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1017, '部门新增', 103, 2, '', '', '', 0, 0, 'F', '1', 'system:dept:add', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1018, '部门修改', 103, 3, '', '', '', 0, 0, 'F', '1', 'system:dept:edit', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1019, '部门删除', 103, 4, '', '', '', 0, 0, 'F', '1', 'system:dept:remove', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1020, '岗位查询', 104, 1, '', '', '', 0, 0, 'F', '1', 'system:post:query', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1021, '岗位新增', 104, 2, '', '', '', 0, 0, 'F', '1', 'system:post:add', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1022, '岗位修改', 104, 3, '', '', '', 0, 0, 'F', '1', 'system:post:edit', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1023, '岗位删除', 104, 4, '', '', '', 0, 0, 'F', '1', 'system:post:remove', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1024, '岗位导出', 104, 5, '', '', '', 0, 0, 'F', '1', 'system:post:export', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1025, '字典查询', 105, 1, '#', '', '', 0, 0, 'F', '1', 'system:dict:query', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1026, '字典新增', 105, 2, '#', '', '', 0, 0, 'F', '1', 'system:dict:add', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1027, '字典修改', 105, 3, '#', '', '', 0, 0, 'F', '1', 'system:dict:edit', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1028, '字典删除', 105, 4, '#', '', '', 0, 0, 'F', '1', 'system:dict:remove', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1029, '字典导出', 105, 5, '#', '', '', 0, 0, 'F', '1', 'system:dict:export', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1030, '参数查询', 106, 1, '#', '', '', 0, 0, 'F', '1', 'system:config:query', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1031, '参数新增', 106, 2, '#', '', '', 0, 0, 'F', '1', 'system:config:add', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1032, '参数修改', 106, 3, '#', '', '', 0, 0, 'F', '1', 'system:config:edit', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1033, '参数删除', 106, 4, '#', '', '', 0, 0, 'F', '1', 'system:config:remove', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1039, '操作查询', 500, 1, '#', '', '', 0, 0, 'F', '1', 'monitor:use-log:query', '#', 'admin', '2022-08-15 18:01:28', 'admin', '2023-07-05 15:15:09', '', 1);
INSERT INTO `sys_menu` VALUES (1040, '操作删除', 500, 2, '#', '', '', 0, 0, 'F', '1', 'monitor:use-log:remove', '#', 'admin', '2022-08-15 18:01:28', 'admin', '2023-07-05 15:15:15', '', 1);
INSERT INTO `sys_menu` VALUES (1041, '日志导出', 500, 3, '#', '', '', 0, 0, 'F', '1', 'monitor:use-log:export', '#', 'admin', '2022-08-15 18:01:28', 'admin', '2023-07-05 15:15:21', '', 1);
INSERT INTO `sys_menu` VALUES (1046, '在线查询', 109, 1, '#', '', '', 0, 0, 'F', '1', 'monitor:online:query', '#', 'admin', '2023-05-27 22:22:59', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1047, '批量强退', 109, 2, '#', '', '', 0, 0, 'F', '1', 'monitor:online:batchLogout', '#', 'admin', '2023-05-27 22:22:59', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1048, '单条强退', 109, 3, '#', '', '', 0, 0, 'F', '1', 'monitor:online:forceLogout', '#', 'admin', '2023-05-27 22:22:59', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1055, '生成查询', 116, 1, '#', '', '', 0, 0, 'F', '1', 'tool:gen:query', '#', 'admin', '2023-07-03 09:07:41', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1056, '生成修改', 116, 2, '#', '', '', 0, 0, 'F', '1', 'tool:gen:edit', '#', 'admin', '2023-07-03 09:07:41', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1057, '生成删除', 116, 3, '#', '', '', 0, 0, 'F', '1', 'tool:gen:remove', '#', 'admin', '2023-07-03 09:07:41', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1058, '导入代码', 116, 4, '#', '', '', 0, 0, 'F', '1', 'tool:gen:import', '#', 'admin', '2023-07-03 09:07:41', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1059, '预览代码', 116, 5, '#', '', '', 0, 0, 'F', '1', 'tool:gen:preview', '#', 'admin', '2023-07-03 09:07:41', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1060, '生成代码', 116, 6, '#', '', '', 0, 0, 'F', '1', 'tool:gen:code', '#', 'admin', '2023-07-03 09:07:41', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1663431933531869184, '租户管理', 0, 3, 'tenant', NULL, NULL, 0, 0, 'M', '1', NULL, 'component', 'admin', '2023-06-13 16:58:53', 'admin', '2023-06-13 17:03:42', '', 1);
INSERT INTO `sys_menu` VALUES (1663431933531869185, '租户管理', 1663431933531869184, 1, 'tenant', 'tenant/index', NULL, 0, 0, 'C', '1', 'tenant:list', 'logininfor', 'admin', '2023-05-30 14:27:33', 'admin', '2023-06-13 17:03:52', '', 1);
INSERT INTO `sys_menu` VALUES (1663432090671468545, '新建租户', 1663431933531869185, 1, '', NULL, NULL, 0, 0, 'F', '1', 'tenant:add', '#', 'admin', '2023-05-30 14:28:10', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1663432193243172865, '修改租户', 1663431933531869185, 2, '', NULL, NULL, 0, 0, 'F', '1', 'tenant:edit', '#', 'admin', '2023-05-30 14:28:35', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1663446141111689218, '查询详情', 1663431933531869185, 3, '', NULL, NULL, 0, 0, 'F', '1', 'tenant:query', '#', 'admin', '2023-05-30 15:24:00', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1666365593968984065, '新增数据源', 1663431933531869185, 5, '', NULL, NULL, 0, 0, 'F', '1', 'tenant:datasource:add', '#', 'admin', '2023-06-07 16:44:52', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1666365690861600770, '修改数据源', 1663431933531869185, 6, '', NULL, NULL, 0, 0, 'F', '1', 'tenant:datasource:edit', '#', 'admin', '2023-06-07 16:45:15', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1666365815403069442, '删除数据源', 1663431933531869185, 7, '', NULL, NULL, 0, 0, 'F', '1', 'tenant:datasource:remove', '#', 'admin', '2023-06-07 16:45:45', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1666365996601196545, '数据源列表', 1663431933531869185, 8, '', NULL, NULL, 0, 0, 'F', '1', 'tenant:datasource:list', '#', 'admin', '2023-06-07 16:46:28', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1666366412382552066, '删除租户', 1663431933531869185, 4, '', NULL, NULL, 0, 0, 'F', '1', 'tenant:remove', '#', 'admin', '2023-06-07 16:48:07', 'admin', '2023-06-13 16:52:20', '', 1);
INSERT INTO `sys_menu` VALUES (1668544169384468481, '租户初始化', 1663431933531869184, 2, 'initialize', 'tenant/initialize', NULL, 0, 0, 'C', '0', NULL, '#', 'admin', '2023-06-13 17:01:45', 'admin', '2023-06-21 15:32:27', '', 1);
INSERT INTO `sys_menu` VALUES (1670708064303742978, '登录日志', 2, 2, 'login-log', 'monitor/login_log/index', NULL, 0, 0, 'C', '1', 'monitor:login-log:list', 'logininfor', 'admin', '2023-06-19 16:20:17', 'admin', '2023-07-05 14:47:47', '', 1);
INSERT INTO `sys_menu` VALUES (1670719944372002817, '日志导出', 1670708064303742978, 1, '', NULL, NULL, 0, 0, 'F', '1', 'monitor:login-log:export', '#', 'admin', '2023-06-19 17:07:30', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1670720034851528706, '日志清空', 1670708064303742978, 2, '', NULL, NULL, 0, 0, 'F', '1', 'monitor:login-log:remove', '#', 'admin', '2023-06-19 17:07:51', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1, '系统管理', 0, 1, 'system', NULL, '', '0', '0', 'M', '1', '', 'system', 'admin', '2023-04-23 14:35:29', '', NULL, '系统管理目录', 1);
INSERT INTO `sys_menu` VALUES (2, '系统监控', 0, 2, 'monitor', NULL, '', '0', '0', 'M', '1', '', 'monitor', 'admin', '2023-05-27 22:25:03', '', NULL, '系统监控目录', 1);
INSERT INTO `sys_menu` VALUES (3, '开发工具', 0, 4, 'tool', NULL, NULL, '0', '0', 'M', '1', NULL, 'tool', 'admin', '2023-07-03 21:53:02', 'admin', '2023-07-05 13:02:53', '', 1);
INSERT INTO `sys_menu` VALUES (100, '用户管理', 1, 1, 'user', 'system/user/index', '', '0', '0', 'C', '1', 'system:user:list', 'user', 'admin', '2023-04-23 14:35:29', '', NULL, '用户管理菜单', 1);
INSERT INTO `sys_menu` VALUES (101, '角色管理', 1, 2, 'role', 'system/role/index', '', '0', '0', 'C', '1', 'system:role:list', 'peoples', 'admin', '2023-04-23 14:35:29', '', NULL, '角色管理菜单', 1);
INSERT INTO `sys_menu` VALUES (102, '菜单管理', 1, 3, 'menu', 'system/menu/index', '', '0', '0', 'C', '1', 'system:menu:list', 'tree-table', 'admin', '2023-04-23 14:35:29', '', NULL, '菜单管理菜单', 1);
INSERT INTO `sys_menu` VALUES (103, '部门管理', 1, 4, 'dept', 'system/dept/index', '', '0', '0', 'C', '1', 'system:dept:list', 'tree', 'admin', '2023-04-23 14:35:29', '', NULL, '部门管理菜单', 1);
INSERT INTO `sys_menu` VALUES (104, '岗位管理', 1, 5, 'post', 'system/post/index', '', '0', '0', 'C', '1', 'system:post:list', 'post', 'admin', '2023-04-23 14:35:29', '', NULL, '岗位管理菜单', 1);
INSERT INTO `sys_menu` VALUES (105, '字典管理', 1, 6, 'dict', 'system/dict/index', '', '0', '0', 'C', '1', 'system:dict:list', 'documentation', 'admin', '2022-08-15 18:01:28', 'admin', '2023-05-31 11:15:14', '字典管理菜单', 1);
INSERT INTO `sys_menu` VALUES (106, '参数设置', 1, 7, 'config', 'system/config/index', '', '0', '0', 'C', '1', 'system:config:list', 'edit', 'admin', '2022-08-15 18:01:28', 'admin', '2023-05-24 21:13:11', '参数设置菜单', 1);
INSERT INTO `sys_menu` VALUES (109, '在线用户', 2, 1, 'online', 'monitor/online/index', '', '0', '0', 'C', '1', 'monitor:online:list', 'online', 'admin', '2023-05-27 22:22:18', 'admin', '2023-06-19 15:29:03', '在线用户菜单', 1);
INSERT INTO `sys_menu` VALUES (116, '代码生成', 3, 1, 'gen', 'tool/gen/index', '', '0', '0', 'C', '1', 'tool:gen:list', 'code', 'admin', '2023-07-03 09:05:56', 'admin', '2023-07-03 21:53:13', '代码生成菜单', 1);
INSERT INTO `sys_menu` VALUES (500, '操作日志', 2, 3, 'operlog', 'monitor/use_log/index', '', '0', '0', 'C', '1', 'monitor:use-log:list', 'log', 'admin', '2022-08-15 18:01:28', 'admin', '2023-07-05 15:19:25', '操作日志菜单', 1);
INSERT INTO `sys_menu` VALUES (1000, '用户查询', 100, 1, '', '', '', '0', '0', 'F', '1', 'system:user:query', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1001, '用户新增', 100, 2, '', '', '', '0', '0', 'F', '1', 'system:user:add', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1002, '用户修改', 100, 3, '', '', '', '0', '0', 'F', '1', 'system:user:edit', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1003, '用户删除', 100, 4, '', '', '', '0', '0', 'F', '1', 'system:user:remove', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1004, '用户导出', 100, 5, '', '', '', '0', '0', 'F', '1', 'system:user:export', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1005, '用户导入', 100, 6, '', '', '', '0', '0', 'F', '1', 'system:user:import', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1006, '重置密码', 100, 7, '', '', '', '0', '0', 'F', '1', 'system:user:resetPwd', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1007, '角色查询', 101, 1, '', '', '', '0', '0', 'F', '1', 'system:role:query', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1008, '角色新增', 101, 2, '', '', '', '0', '0', 'F', '1', 'system:role:add', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1009, '角色修改', 101, 3, '', '', '', '0', '0', 'F', '1', 'system:role:edit', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1010, '角色删除', 101, 4, '', '', '', '0', '0', 'F', '1', 'system:role:remove', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1011, '角色导出', 101, 5, '', '', '', '0', '0', 'F', '1', 'system:role:export', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1012, '菜单查询', 102, 1, '', '', '', '0', '0', 'F', '1', 'system:menu:query', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1013, '菜单新增', 102, 2, '', '', '', '0', '0', 'F', '1', 'system:menu:add', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1014, '菜单修改', 102, 3, '', '', '', '0', '0', 'F', '1', 'system:menu:edit', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1015, '菜单删除', 102, 4, '', '', '', '0', '0', 'F', '1', 'system:menu:remove', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1016, '部门查询', 103, 1, '', '', '', '0', '0', 'F', '1', 'system:dept:query', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1017, '部门新增', 103, 2, '', '', '', '0', '0', 'F', '1', 'system:dept:add', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1018, '部门修改', 103, 3, '', '', '', '0', '0', 'F', '1', 'system:dept:edit', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1019, '部门删除', 103, 4, '', '', '', '0', '0', 'F', '1', 'system:dept:remove', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1020, '岗位查询', 104, 1, '', '', '', '0', '0', 'F', '1', 'system:post:query', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1021, '岗位新增', 104, 2, '', '', '', '0', '0', 'F', '1', 'system:post:add', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1022, '岗位修改', 104, 3, '', '', '', '0', '0', 'F', '1', 'system:post:edit', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1023, '岗位删除', 104, 4, '', '', '', '0', '0', 'F', '1', 'system:post:remove', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1024, '岗位导出', 104, 5, '', '', '', '0', '0', 'F', '1', 'system:post:export', '#', 'admin', '2023-04-23 14:35:29', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1025, '字典查询', 105, 1, '#', '', '', '0', '0', 'F', '1', 'system:dict:query', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1026, '字典新增', 105, 2, '#', '', '', '0', '0', 'F', '1', 'system:dict:add', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1027, '字典修改', 105, 3, '#', '', '', '0', '0', 'F', '1', 'system:dict:edit', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1028, '字典删除', 105, 4, '#', '', '', '0', '0', 'F', '1', 'system:dict:remove', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1029, '字典导出', 105, 5, '#', '', '', '0', '0', 'F', '1', 'system:dict:export', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1030, '参数查询', 106, 1, '#', '', '', '0', '0', 'F', '1', 'system:config:query', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1031, '参数新增', 106, 2, '#', '', '', '0', '0', 'F', '1', 'system:config:add', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1032, '参数修改', 106, 3, '#', '', '', '0', '0', 'F', '1', 'system:config:edit', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1033, '参数删除', 106, 4, '#', '', '', '0', '0', 'F', '1', 'system:config:remove', '#', 'admin', '2022-08-15 18:01:28', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1039, '操作查询', 500, 1, '#', '', '', '0', '0', 'F', '1', 'monitor:use-log:query', '#', 'admin', '2022-08-15 18:01:28', 'admin', '2023-07-05 15:15:09', '', 1);
INSERT INTO `sys_menu` VALUES (1040, '操作删除', 500, 2, '#', '', '', '0', '0', 'F', '1', 'monitor:use-log:remove', '#', 'admin', '2022-08-15 18:01:28', 'admin', '2023-07-05 15:15:15', '', 1);
INSERT INTO `sys_menu` VALUES (1041, '日志导出', 500, 3, '#', '', '', '0', '0', 'F', '1', 'monitor:use-log:export', '#', 'admin', '2022-08-15 18:01:28', 'admin', '2023-07-05 15:15:21', '', 1);
INSERT INTO `sys_menu` VALUES (1046, '在线查询', 109, 1, '#', '', '', '0', '0', 'F', '1', 'monitor:online:query', '#', 'admin', '2023-05-27 22:22:59', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1047, '批量强退', 109, 2, '#', '', '', '0', '0', 'F', '1', 'monitor:online:batchLogout', '#', 'admin', '2023-05-27 22:22:59', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1048, '单条强退', 109, 3, '#', '', '', '0', '0', 'F', '1', 'monitor:online:forceLogout', '#', 'admin', '2023-05-27 22:22:59', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1055, '生成查询', 116, 1, '#', '', '', '0', '0', 'F', '1', 'tool:gen:query', '#', 'admin', '2023-07-03 09:07:41', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1056, '生成修改', 116, 2, '#', '', '', '0', '0', 'F', '1', 'tool:gen:edit', '#', 'admin', '2023-07-03 09:07:41', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1057, '生成删除', 116, 3, '#', '', '', '0', '0', 'F', '1', 'tool:gen:remove', '#', 'admin', '2023-07-03 09:07:41', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1058, '导入代码', 116, 4, '#', '', '', '0', '0', 'F', '1', 'tool:gen:import', '#', 'admin', '2023-07-03 09:07:41', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1059, '预览代码', 116, 5, '#', '', '', '0', '0', 'F', '1', 'tool:gen:preview', '#', 'admin', '2023-07-03 09:07:41', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1060, '生成代码', 116, 6, '#', '', '', '0', '0', 'F', '1', 'tool:gen:code', '#', 'admin', '2023-07-03 09:07:41', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1663431933531869184, '租户管理', 0, 3, 'tenant', NULL, NULL, '0', '0', 'M', '1', NULL, 'component', 'admin', '2023-06-13 16:58:53', 'admin', '2023-06-13 17:03:42', '', 1);
INSERT INTO `sys_menu` VALUES (1663431933531869185, '租户管理', 1663431933531869184, 1, 'tenant', 'tenant/index', NULL, '0', '0', 'C', '1', 'tenant:list', 'logininfor', 'admin', '2023-05-30 14:27:33', 'admin', '2023-06-13 17:03:52', '', 1);
INSERT INTO `sys_menu` VALUES (1663432090671468545, '新建租户', 1663431933531869185, 1, '', NULL, NULL, '0', '0', 'F', '1', 'tenant:add', '#', 'admin', '2023-05-30 14:28:10', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1663432193243172865, '修改租户', 1663431933531869185, 2, '', NULL, NULL, '0', '0', 'F', '1', 'tenant:edit', '#', 'admin', '2023-05-30 14:28:35', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1663446141111689218, '查询详情', 1663431933531869185, 3, '', NULL, NULL, '0', '0', 'F', '1', 'tenant:query', '#', 'admin', '2023-05-30 15:24:00', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1666365593968984065, '新增数据源', 1663431933531869185, 5, '', NULL, NULL, '0', '0', 'F', '1', 'tenant:datasource:add', '#', 'admin', '2023-06-07 16:44:52', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1666365690861600770, '修改数据源', 1663431933531869185, 6, '', NULL, NULL, '0', '0', 'F', '1', 'tenant:datasource:edit', '#', 'admin', '2023-06-07 16:45:15', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1666365815403069442, '删除数据源', 1663431933531869185, 7, '', NULL, NULL, '0', '0', 'F', '1', 'tenant:datasource:remove', '#', 'admin', '2023-06-07 16:45:45', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1666365996601196545, '数据源列表', 1663431933531869185, 8, '', NULL, NULL, '0', '0', 'F', '1', 'tenant:datasource:list', '#', 'admin', '2023-06-07 16:46:28', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1666366412382552066, '删除租户', 1663431933531869185, 4, '', NULL, NULL, '0', '0', 'F', '1', 'tenant:remove', '#', 'admin', '2023-06-07 16:48:07', 'admin', '2023-06-13 16:52:20', '', 1);
INSERT INTO `sys_menu` VALUES (1668544169384468481, '租户初始化', 1663431933531869184, 2, 'initialize', 'tenant/initialize', NULL, '0', '0', 'C', '0', NULL, '#', 'admin', '2023-06-13 17:01:45', 'admin', '2023-06-21 15:32:27', '', 1);
INSERT INTO `sys_menu` VALUES (1670708064303742978, '登录日志', 2, 2, 'login-log', 'monitor/login_log/index', NULL, '0', '0', 'C', '1', 'monitor:login-log:list', 'logininfor', 'admin', '2023-06-19 16:20:17', 'admin', '2023-07-05 14:47:47', '', 1);
INSERT INTO `sys_menu` VALUES (1670719944372002817, '日志导出', 1670708064303742978, 1, '', NULL, NULL, '0', '0', 'F', '1', 'monitor:login-log:export', '#', 'admin', '2023-06-19 17:07:30', '', NULL, '', 1);
INSERT INTO `sys_menu` VALUES (1670720034851528706, '日志清空', 1670708064303742978, 2, '', NULL, NULL, '0', '0', 'F', '1', 'monitor:login-log:remove', '#', 'admin', '2023-06-19 17:07:51', '', NULL, '', 1);
-- ----------------------------
-- Table structure for sys_post
@ -348,7 +351,7 @@ INSERT INTO `sys_menu` VALUES (1670720034851528706, '日志清空', 167070806430
DROP TABLE IF EXISTS `sys_post`;
CREATE TABLE `sys_post` (
`post_id` bigint(20) NOT NULL COMMENT '岗位ID',
`post_code` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '岗位编码',
`post_code` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '岗位编码',
`post_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '岗位名称',
`post_sort` int(11) NOT NULL COMMENT '显示顺序',
`status` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '状态1正常 0停用',
@ -376,7 +379,7 @@ DROP TABLE IF EXISTS `sys_role`;
CREATE TABLE `sys_role` (
`role_id` bigint(20) NOT NULL COMMENT '角色ID',
`role_name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '角色名称',
`role_key` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '角色权限字符串',
`role_key` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '角色权限字符串',
`role_sort` int(11) NOT NULL COMMENT '显示顺序',
`data_scope` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '1' COMMENT '数据范围1全部数据权限 2自定数据权限 3本部门数据权限 4本部门及以下数据权限',
`status` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '角色状态1正常 0停用',
@ -573,7 +576,7 @@ CREATE TABLE `sys_tenant` (
-- Records of sys_tenant
-- ----------------------------
INSERT INTO `sys_tenant` VALUES (1, '主系统', '111', '111', '11', '11122', '111', NULL, '2099-05-30 23:59:59', 111, '1', '3', '0', 'admin', '2023-05-30 15:18:04', 'admin', '2023-06-13 16:04:04', '111');
INSERT INTO `sys_tenant` VALUES (1676519873008209922, '121', '313', '4143', '313', '52353', '313', NULL, '2023-07-05 17:14:19', 121, '1', '3', '1', 'admin', '2023-07-05 17:14:21', 'admin', '2023-07-07 17:36:54', '313');
INSERT INTO `sys_tenant` VALUES (1676519873008209922, '121', '313', '4143', '313', '52353', '313', NULL, '2023-07-11 17:14:19', 121, '1', '3', '1', 'admin', '2023-07-05 17:14:21', 'admin', '2023-07-10 08:57:24', '313');
-- ----------------------------
-- Table structure for sys_tenant_datasource
@ -643,6 +646,7 @@ INSERT INTO `sys_use_log` VALUES (1677241378390183938, '新增租户', 1, 'com.q
INSERT INTO `sys_use_log` VALUES (1677241463454863362, '新增租户', 1, 'com.qiaoba.module.tenant.controller.SysTenantController.add()', 'POST', 1, 'admin', '', '/tenant', '192.168.0.201', '0|0|0|内网IP|内网IP', '{\"companyName\":\"121\"}', '', 0, '未找到租户信息', '2023-07-07 17:01:41', 1);
INSERT INTO `sys_use_log` VALUES (1677241720502845441, '新增租户', 1, 'com.qiaoba.module.tenant.controller.SysTenantController.add()', 'POST', 1, 'admin', '', '/tenant', '192.168.0.201', '0|0|0|内网IP|内网IP', '{\"companyName\":\"121\"}', '', 0, '公司名称已存在', '2023-07-07 17:02:42', 1);
INSERT INTO `sys_use_log` VALUES (1677241736013381633, '新增租户', 1, 'com.qiaoba.module.tenant.controller.SysTenantController.add()', 'POST', 1, 'admin', '', '/tenant', '192.168.0.201', '0|0|0|内网IP|内网IP', '{\"tenantId\":\"1677241735971438594\",\"companyName\":\"1211\",\"status\":\"1\",\"initialized\":\"0\",\"createUser\":\"admin\",\"createTime\":1688720566151}', '{\"msg\":\"操作成功\",\"code\":200}', 1, '', '2023-07-07 17:02:46', 1);
INSERT INTO `sys_use_log` VALUES (1678206751222652930, '修改租户', 2, 'com.qiaoba.module.tenant.controller.SysTenantController.edit()', 'PUT', 1, 'admin', '', '/tenant', '192.168.0.201', '0|0|0|内网IP|内网IP', '{\"tenantId\":\"1676519873008209922\",\"companyName\":\"121\",\"contactName\":\"313\",\"contactPhone\":\"4143\",\"address\":\"313\",\"profile\":\"52353\",\"licenseNumber\":\"313\",\"remark\":\"313\",\"expireTime\":1689066859000,\"accountCount\":121,\"status\":\"1\",\"mode\":\"3\",\"initialized\":\"1\",\"createUser\":\"admin\",\"createTime\":1688548461000,\"updateUser\":\"admin\",\"updateTime\":1688950643673}', '{\"msg\":\"操作成功\",\"code\":200}', 1, '', '2023-07-10 08:57:24', 1);
-- ----------------------------
-- Table structure for sys_user
@ -651,8 +655,8 @@ DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user` (
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`dept_id` bigint(20) NULL DEFAULT NULL COMMENT '部门ID',
`username` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户账号',
`nickname` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户昵称',
`username` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户账号',
`nickname` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户昵称',
`email` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '用户邮箱',
`phone` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '手机号码',
`gender` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '用户性别0男 1女 2未知',
@ -709,33 +713,4 @@ CREATE TABLE `sys_user_role` (
INSERT INTO `sys_user_role` VALUES (1, 1, 1);
INSERT INTO `sys_user_role` VALUES (1660830718629277697, 1660535591067213826, 1);
-- ----------------------------
-- Table structure for test_user
-- ----------------------------
DROP TABLE IF EXISTS `test_user`;
CREATE TABLE `test_user` (
`user_id` bigint(200) NOT NULL COMMENT '用户ID123',
`dept_id` bigint(20) NULL DEFAULT NULL COMMENT '部门ID',
`username` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户账号',
`nickname` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户昵称',
`email` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '用户邮箱',
`phone` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '手机号码',
`gender` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '用户性别0男 1女 2未知',
`avatar` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '头像地址',
`password` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '密码',
`status` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '帐号状态1正常 0停用',
`create_user` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_user` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '更新者',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
`tenant_id` bigint(20) NULL DEFAULT NULL COMMENT '租户ID',
PRIMARY KEY (`user_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户信息表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of test_user
-- ----------------------------
INSERT INTO `test_user` VALUES (1, 1659443064624918529, 'admin', '小王', '4567@163.com', '18800001124', '1', '/resource/2023/05/19/blob/37f932d6ae4541d7b9688de6ab0b9f50.blob', '$2a$10$otwytPwmUHPy04dCf8S6I.Za7D.xGQ5MJOdEQk8fWTHCWDJCayur.', '1', 'admin', '2023-05-08 15:16:53', 'admin', '2023-05-23 10:11:24', 1);
INSERT INTO `test_user` VALUES (1660830718629277697, 1659443256656932865, 'admin1', 'qq', '', '', '0', '', '$2a$10$J4OOu6bmc6rXF1cH8JKxH.nXfeglU1Wq9Y5iL07P2VFlxLMSDCMVq', '1', 'admin', '2023-05-23 10:11:15', 'admin', '2023-06-15 16:06:06', 1);
SET FOREIGN_KEY_CHECKS = 1;

View File

@ -119,12 +119,6 @@
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatisplus-spring-boot.version}</version>
</dependency>
<!-- 数据校验 -->
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
<version>${jakarta.version}</version>
</dependency>
<!-- ip离线库 -->
<dependency>
<groupId>org.lionsoul</groupId>

View File

@ -20,10 +20,6 @@
<groupId>com.qiaoba</groupId>
<artifactId>qiaoba-common-doc</artifactId>
</dependency>
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
</dependency>
<dependency>
<groupId>com.qiaoba</groupId>
<artifactId>qiaoba-common-poi</artifactId>

View File

@ -4,9 +4,15 @@ import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.qiaoba.common.base.entity.BaseEntity;
import com.qiaoba.common.base.validate.AddGroup;
import com.qiaoba.common.base.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/**
* 系统配置 sys_config
*
@ -21,20 +27,30 @@ public class SysConfig extends BaseEntity {
private static final long serialVersionUID = 1L;
@Excel(name = "参数主键", width = 20)
@Excel(name = "主键", width = 20)
@TableId
@NotNull(message = "主键不能为空", groups = {EditGroup.class})
@Size(max = 20, message = "主键不能超过{max}个字符", groups = {EditGroup.class})
private String configId;
@Excel(name = "参数名称", width = 25)
@NotBlank(message = "参数名称不能为空", groups = {AddGroup.class, EditGroup.class})
@Size(max = 30, message = "参数名称不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String configName;
@Excel(name = "参数键名", width = 30)
@NotBlank(message = "参数键名不能为空", groups = {AddGroup.class, EditGroup.class})
@Size(max = 50, message = "参数键名不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String configKey;
@Excel(name = "参数键值")
@NotBlank(message = "参数键值不能为空", groups = {AddGroup.class, EditGroup.class})
@Size(max = 30, message = "参数键值不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String configValue;
@Excel(name = "系统内置", width = 20, replace = {"是_Y", "否_N"})
@NotBlank(message = "系统内置不能为空", groups = {AddGroup.class, EditGroup.class})
@Size(max = 1, message = "系统内置不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String configType;
}

View File

@ -3,12 +3,14 @@ package com.qiaoba.api.system.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.qiaoba.common.base.entity.BaseEntity;
import com.qiaoba.common.base.validate.AddGroup;
import com.qiaoba.common.base.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/**
@ -29,12 +31,14 @@ public class SysDept extends BaseEntity {
* 部门ID
*/
@TableId
@NotNull(message = "主键不能为空", groups = {EditGroup.class})
@Size(max = 20, message = "主键不能超过{max}个字符", groups = {EditGroup.class})
private String deptId;
/**
* 父部门ID
*/
@NotBlank(message = "parentId不能为空")
@Size(max = 20, message = "父部门ID不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String parentId;
/**
@ -45,27 +49,26 @@ public class SysDept extends BaseEntity {
/**
* 部门名称
*/
@NotBlank(message = "部门名称不能为空")
@Size(max = 20, message = "部门名称最大长度: {max}")
@NotBlank(message = "部门名称不能为空", groups = {AddGroup.class, EditGroup.class})
@Size(max = 30, message = "部门名称不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String deptName;
/**
* 显示顺序
*/
@Min(value = 1, message = "排序最小允许: {value}")
@Max(value = Integer.MAX_VALUE, message = "排序最大允许: {value}")
@Min(value = 1, message = "排序最小允许: {value}", groups = {AddGroup.class, EditGroup.class})
private Integer orderNum;
/**
* 负责人
*/
@Size(max = 20, message = "负责人名称过长")
@Size(max = 20, message = "负责人名称不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String leader;
/**
* 联系电话
*/
@Size(max = 20, message = "手机号过长")
@Size(max = 11, message = "手机号不合法")
private String phone;
/**
@ -77,7 +80,8 @@ public class SysDept extends BaseEntity {
/**
* 部门状态:0停用,1正常
*/
@NotBlank(message = "状态不能为空")
@NotBlank(message = "状态不能为空", groups = {AddGroup.class, EditGroup.class})
@Size(max = 1, message = "状态不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String status;
}

View File

@ -4,9 +4,15 @@ import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.qiaoba.common.base.entity.BaseEntity;
import com.qiaoba.common.base.validate.AddGroup;
import com.qiaoba.common.base.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/**
* 字典数据 sys_dict_data
*
@ -23,15 +29,23 @@ public class SysDictData extends BaseEntity {
@Excel(name = "字典编码", width = 20)
@TableId
@NotNull(message = "主键不能为空", groups = {EditGroup.class})
@Size(max = 20, message = "主键不能超过{max}个字符", groups = {EditGroup.class})
private String dictCode;
@Excel(name = "字典标签", width = 20)
@NotBlank(message = "字典标签不能为空", groups = {AddGroup.class, EditGroup.class})
@Size(max = 30, message = "字典标签不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String dictLabel;
@Excel(name = "字典键值", width = 20)
@NotBlank(message = "字典键值不能为空", groups = {AddGroup.class, EditGroup.class})
@Size(max = 30, message = "字典键值不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String dictValue;
@Excel(name = "字典类型", width = 20)
@NotBlank(message = "字典类型不能为空", groups = {AddGroup.class, EditGroup.class})
@Size(max = 30, message = "字典类型不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String dictType;
private String cssClass;
@ -39,6 +53,8 @@ public class SysDictData extends BaseEntity {
private String listClass;
@Excel(name = "状态", width = 20, replace = {"正常_1", "停用_0"})
@NotBlank(message = "状态不能为空", groups = {AddGroup.class, EditGroup.class})
@Size(max = 1, message = "状态不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String status;
@Excel(name = "字典排序", width = 20)

View File

@ -4,9 +4,15 @@ import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.qiaoba.common.base.entity.BaseEntity;
import com.qiaoba.common.base.validate.AddGroup;
import com.qiaoba.common.base.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/**
* 字典类型 sys_dict_type
*
@ -23,15 +29,23 @@ public class SysDictType extends BaseEntity {
@Excel(name = "字典主键", width = 20)
@TableId
@NotNull(message = "主键不能为空", groups = {EditGroup.class})
@Size(max = 20, message = "主键不能超过{max}个字符", groups = {EditGroup.class})
private String dictId;
@Excel(name = "字典名称", width = 20)
@NotBlank(message = "字典名称不能为空", groups = {AddGroup.class, EditGroup.class})
@Size(max = 30, message = "字典名称不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String dictName;
@Excel(name = "字典类型", width = 20)
@NotBlank(message = "字典类型不能为空", groups = {AddGroup.class, EditGroup.class})
@Size(max = 30, message = "字典类型不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String dictType;
@Excel(name = "状态", width = 20, replace = {"正常_1", "停用_0"})
@NotBlank(message = "状态不能为空", groups = {AddGroup.class, EditGroup.class})
@Size(max = 1, message = "状态不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String status;
}

View File

@ -3,8 +3,14 @@ package com.qiaoba.api.system.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.qiaoba.common.base.entity.BaseEntity;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import com.qiaoba.common.base.validate.AddGroup;
import com.qiaoba.common.base.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -26,68 +32,81 @@ public class SysMenu extends BaseEntity {
* 菜单ID
*/
@TableId
@NotNull(message = "主键不能为空", groups = {EditGroup.class})
@Size(max = 20, message = "主键不能超过{max}个字符", groups = {EditGroup.class})
private String menuId;
/**
* 菜单名称
*/
@NotBlank(message = "菜单名称不能为空")
@Size(min = 0, max = 10, message = "菜单名称长度不能超过{max}个字符")
@NotBlank(message = "菜单名称不能为空", groups = {AddGroup.class, EditGroup.class})
@Size(max = 30, message = "菜单名称不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String menuName;
/**
* 父菜单ID
*/
@Size(max = 20, message = "父ID不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String parentId;
/**
* 显示顺序
*/
@Min(value = 1, message = "排序最小允许: {value}", groups = {AddGroup.class, EditGroup.class})
private Integer orderNum;
/**
* 路由地址
*/
@Size(max = 50, message = "路由地址不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String path;
/**
* 组件路径
*/
@Size(max = 50, message = "路由地址不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String component;
/**
* 路由参数
*/
@Size(max = 100, message = "路由地址不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String query;
/**
* 是否为外链0否 1是
*/
@Size(max = 1, message = "外链不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String isFrame;
/**
* 是否缓存0不缓存 1缓存
*/
@Size(max = 1, message = "缓存不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String isCache;
/**
* 类型M目录 C菜单 F按钮
*/
@Size(max = 1, message = "类型不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String menuType;
/**
* 显示状态0隐藏 1显示
*/
@Size(max = 1, message = "显示状态不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String isVisible;
/**
* 权限字符串
*/
@Size(max = 50, message = "权限字符串不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String perms;
/**
* 菜单图标
*/
@Size(max = 30, message = "菜单图标不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String icon;

View File

@ -4,11 +4,12 @@ import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.qiaoba.common.base.entity.BaseEntity;
import com.qiaoba.common.base.validate.AddGroup;
import com.qiaoba.common.base.validate.EditGroup;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
@ -33,25 +34,25 @@ public class SysPost extends BaseEntity {
@Excel(name = "岗位名称", width = 20)
@Schema(description = "岗位名称")
@NotBlank(message = "岗位名称不能为空")
@Size(max = 20, message = "岗位名称最大长度: {max}")
@NotBlank(message = "岗位名称不能为空", groups = {AddGroup.class, EditGroup.class})
@Size(max = 50, message = "岗位名称不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String postName;
@Excel(name = "岗位编码", width = 20)
@Schema(description = "岗位编码")
@NotBlank(message = "岗位编码不能为空")
@Size(max = 20, message = "岗位编码最大长度: {max}")
@NotBlank(message = "岗位编码不能为空", groups = {AddGroup.class, EditGroup.class})
@Size(max = 50, message = "岗位编码不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String postCode;
@Excel(name = "岗位排序", width = 20)
@Schema(description = "岗位排序")
@Min(value = 1, message = "排序最小允许: {value}")
@Max(value = Integer.MAX_VALUE, message = "排序最大允许: {value}")
@Min(value = 1, message = "排序最小允许: {value}", groups = {AddGroup.class, EditGroup.class})
private Integer postSort;
@Excel(name = "状态", width = 20, replace = {"正常_1", "异常_0"})
@Schema(description = "状态(0->禁用,1->正常)")
@NotBlank(message = "状态不能为空")
@NotBlank(message = "状态不能为空", groups = {AddGroup.class, EditGroup.class})
@Size(max = 1, message = "状态不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String status;
}

View File

@ -1,7 +1,7 @@
package com.qiaoba.api.system.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import jakarta.validation.constraints.NotBlank;
import javax.validation.constraints.NotBlank;
import lombok.Data;
import lombok.EqualsAndHashCode;

View File

@ -3,6 +3,8 @@ package com.qiaoba.api.system.entity.dto;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
/**
@ -21,10 +23,14 @@ public class ResetPasswordDto implements Serializable {
/**
* 用户ID
*/
@NotNull(message = "主键不能为空")
@Size(max = 20, message = "主键不能超过{max}个字符")
private String userId;
/**
* 新密码
*/
@NotNull(message = "密码不能为空")
@Size(min = 5, max = 20, message = "密码{min}-{max}个字符")
private String password;
}

View File

@ -3,6 +3,8 @@ package com.qiaoba.api.system.entity.dto;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
/**
@ -21,10 +23,14 @@ public class ResetUserStatusDto implements Serializable {
/**
* 用户ID
*/
@NotNull(message = "主键不能为空")
@Size(max = 20, message = "主键不能超过{max}个字符")
private String userId;
/**
* 状态
*/
@NotNull(message = "状态不能为空")
@Size(max = 1, message = "状态不能超过{max}个字符")
private String status;
}

View File

@ -1,9 +1,15 @@
package com.qiaoba.api.system.entity.dto;
import com.qiaoba.common.base.validate.AddGroup;
import com.qiaoba.common.base.validate.EditGroup;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Set;
@ -21,21 +27,30 @@ public class SysRoleDto implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "角色ID")
@NotNull(message = "主键不能为空", groups = {EditGroup.class})
@Size(max = 20, message = "主键不能超过{max}个字符", groups = {EditGroup.class})
private String roleId;
@Schema(description = "角色名称")
@NotBlank(message = "角色名称不能为空", groups = {AddGroup.class, EditGroup.class})
@Size(max = 30, message = "角色名称不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String roleName;
@Schema(description = "权限字符")
@NotBlank(message = "权限字符不能为空", groups = {AddGroup.class, EditGroup.class})
@Size(max = 30, message = "权限字符不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String roleKey;
@Schema(description = "角色排序")
@Min(value = 1, message = "排序最小允许: {value}", groups = {AddGroup.class, EditGroup.class})
private Integer roleSort;
@Schema(description = "备注")
@Size(max = 500, message = "备注不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String remark;
@Schema(description = "状态(0->禁用,1->正常)")
@Size(max = 1, message = "状态不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String status;
@Schema(description = "部门组(数据权限)")

View File

@ -1,8 +1,13 @@
package com.qiaoba.api.system.entity.dto;
import com.qiaoba.common.base.validate.AddGroup;
import com.qiaoba.common.base.validate.EditGroup;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Set;
@ -19,24 +24,47 @@ public class SysUserDto implements Serializable {
private static final long serialVersionUID = 1L;
@NotNull(message = "主键不能为空", groups = {EditGroup.class})
@Size(max = 20, message = "主键不能超过{max}个字符", groups = {EditGroup.class})
private String userId;
@Schema(description = "姓名")
@NotNull(message = "姓名不能为空", groups = {AddGroup.class, EditGroup.class})
@Size(min = 1, max = 20, message = "登录账号: {min}-{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String nickname;
@Schema(description = "部门ID")
@Size(max = 20, message = "部门ID不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String deptId;
@Schema(description = "手机号")
@Size(max = 11, message = "手机号不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String phone;
@Schema(description = "邮箱")
@Size(max = 50, message = "邮箱不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String email;
@Schema(description = "登录账号")
@NotNull(message = "登录账号不能为空", groups = AddGroup.class)
@Size(min = 6, max = 20, message = "登录账号: {min}-{max}个字符", groups = AddGroup.class)
private String username;
@Schema(description = "密码")
@NotNull(message = "密码不能为空", groups = AddGroup.class)
@Size(min = 5, max = 20, message = "密码{min}-{max}个字符", groups = AddGroup.class)
private String password;
@Schema(description = "性别")
@Size(max = 1, message = "性别不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String gender;
@Schema(description = "状态(0->禁用,1->正常)")
@Size(max = 1, message = "状态不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String status;
@Schema(description = "备注")
@Size(max = 500, message = "备注不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String remark;
/**

View File

@ -3,6 +3,7 @@ package com.qiaoba.api.system.entity.param;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.Size;
import java.io.Serializable;
/**
@ -18,9 +19,12 @@ public class SysConfigParam implements Serializable {
private static final long serialVersionUID = 1L;
@Size(max = 30, message = "参数名称不能超过{max}个字符")
private String configName;
@Size(max = 50, message = "参数键值不能超过{max}个字符")
private String configKey;
@Size(max = 1, message = "参数类型不能超过{max}个字符")
private String configType;
}

View File

@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.Size;
import java.io.Serializable;
/**
@ -20,7 +21,9 @@ public class SysDeptParam implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "部门名称")
@Size(max = 30, message = "部门名称不能超过{max}个字符")
private String deptName;
@Schema(description = "状态(0->禁用,1->正常)")
@Size(max = 1, message = "状态不能超过{max}个字符")
private String status;
}

View File

@ -4,6 +4,8 @@ import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.Size;
/**
* 字典数据 查询参数
*
@ -16,10 +18,13 @@ import lombok.Setter;
@NoArgsConstructor
public class SysDictDataParam {
@Size(max = 30, message = "字段类型不能超过{max}个字符")
private String dictType;
@Size(max = 30, message = "字典标签不能超过{max}个字符")
private String dictLabel;
@Size(max = 1, message = "状态不能超过{max}个字符")
private String status;
public SysDictDataParam(String dictType) {

View File

@ -3,6 +3,7 @@ package com.qiaoba.api.system.entity.param;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.Size;
import java.io.Serializable;
/**
@ -18,10 +19,13 @@ public class SysDictTypeParam implements Serializable {
private static final long serialVersionUID = 1L;
@Size(max = 30, message = "字典名称不能超过{max}个字符")
private String dictName;
@Size(max = 30, message = "字典类型不能超过{max}个字符")
private String dictType;
@Size(max = 1, message = "状态不能超过{max}个字符")
private String status;
}

View File

@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.Size;
import java.io.Serializable;
/**
@ -20,10 +21,12 @@ public class SysMenuParam implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "菜单名称")
@Size(max = 30, message = "菜单名称不能超过{max}个字符")
private String menuName;
/**
* 显示状态0隐藏 1显示
*/
@Size(max = 1, message = "显示状态不能超过{max}个字符")
private String isVisible;
}

View File

@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.Size;
import java.io.Serializable;
/**
@ -20,12 +21,15 @@ public class SysPostParam implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "岗位名称")
@Size(max = 50, message = "岗位名称不能超过{max}个字符")
private String postName;
@Schema(description = "岗位编码")
@Size(max = 50, message = "岗位编码不能超过{max}个字符")
private String postCode;
@Schema(description = "状态(0->禁用,1->正常)")
@Size(max = 1, message = "状态不能超过{max}个字符")
private String status;
public SysPostParam() {

View File

@ -5,6 +5,7 @@ import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Date;
@ -22,12 +23,15 @@ public class SysRoleParam implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "角色名称")
@Size(max = 30, message = "角色名称不能超过{max}个字符")
private String roleName;
@Schema(description = "权限字符")
@Size(max = 30, message = "权限字符不能超过{max}个字符")
private String roleKey;
@Schema(description = "状态(0->禁用,1->正常)")
@Size(max = 1, message = "状态不能超过{max}个字符")
private String status;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")

View File

@ -6,8 +6,8 @@ import com.qiaoba.common.base.entity.BaseEntity;
import com.qiaoba.common.base.validate.AddGroup;
import com.qiaoba.common.base.validate.EditGroup;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

View File

@ -6,8 +6,8 @@ import com.qiaoba.common.base.entity.BaseEntity;
import com.qiaoba.common.base.validate.AddGroup;
import com.qiaoba.common.base.validate.EditGroup;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;

View File

@ -1,8 +1,11 @@
package com.qiaoba.common.base.entity;
import com.qiaoba.common.base.validate.AddGroup;
import com.qiaoba.common.base.validate.EditGroup;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Date;
@ -43,6 +46,7 @@ public class BaseEntity implements Serializable {
/**
* 备注
*/
@Size(max = 500, message = "备注不能超过{max}个字符", groups = {AddGroup.class, EditGroup.class})
private String remark;
}

View File

@ -9,6 +9,7 @@ import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.validation.ConstraintViolationException;
import java.util.Objects;
/**
@ -69,4 +70,17 @@ public class ExceptionAdvice {
public AjaxResult handlerValidException(BindException e) {
return AjaxResult.error(Objects.isNull(e.getBindingResult().getFieldError()) ? e.getMessage() : e.getBindingResult().getFieldError().getDefaultMessage());
}
/**
* 参数校验
*
* @param e ConstraintViolationException
* @return AjaxResult
*/
@ExceptionHandler({ConstraintViolationException.class})
@ResponseBody
public AjaxResult handlerValidException(ConstraintViolationException e) {
return AjaxResult.error(e.getMessage());
}
}

View File

@ -3,6 +3,8 @@ package com.qiaoba.module.system.controller;
import com.qiaoba.api.system.entity.SysConfig;
import com.qiaoba.api.system.entity.param.SysConfigParam;
import com.qiaoba.common.base.result.AjaxResult;
import com.qiaoba.common.base.validate.AddGroup;
import com.qiaoba.common.base.validate.EditGroup;
import com.qiaoba.common.database.entity.PageQuery;
import com.qiaoba.common.database.entity.TableDataInfo;
import com.qiaoba.common.poi.utils.ExcelUtil;
@ -15,6 +17,7 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.Size;
import java.util.List;
/**
@ -24,6 +27,7 @@ import java.util.List;
* @version 1.0
* @since 2022-09-22 04:20:28
*/
@Validated
@RestController
@RequestMapping("/system/config")
@RequiredArgsConstructor
@ -35,14 +39,14 @@ public class SysConfigController {
@PreAuthorize("hasAuthority('system:config:list')")
@GetMapping("/list")
@Operation(summary = "获取列表")
public TableDataInfo list(SysConfigParam param, PageQuery pageQuery) {
public TableDataInfo list(@Validated SysConfigParam param, PageQuery pageQuery) {
return sysConfigService.selectPageList(param, pageQuery);
}
@PreAuthorize("hasAuthority('system:config:export')")
@PostMapping("/export")
@Operation(summary = "导出数据")
public void export(HttpServletResponse response, SysConfigParam param) throws Exception {
public void export(@Validated HttpServletResponse response, SysConfigParam param) {
List<SysConfig> list = sysConfigService.selectList(param);
ExcelUtil.exportExcel(list, SysConfig.class, "参数数据", response);
}
@ -50,7 +54,7 @@ public class SysConfigController {
@PreAuthorize("hasAuthority('system:config:query')")
@GetMapping(value = "/{configId}")
@Operation(summary = "获取详情")
public AjaxResult getInfo(@PathVariable String configId) {
public AjaxResult getInfo(@Size(min = 19, max = 20, message = "ID不合法") @PathVariable String configId) {
return AjaxResult.success(sysConfigService.selectById(configId));
}
@ -63,14 +67,14 @@ public class SysConfigController {
@PreAuthorize("hasAuthority('system:config:add')")
@PostMapping
@Operation(summary = "新增配置")
public AjaxResult add(@Validated @RequestBody SysConfig config) {
public AjaxResult add(@Validated(AddGroup.class) @RequestBody SysConfig config) {
return AjaxResult.toAjax(sysConfigService.insert(config));
}
@PreAuthorize("hasAuthority('system:config:edit')")
@PutMapping
@Operation(summary = "修改配置")
public AjaxResult edit(@Validated @RequestBody SysConfig config) {
public AjaxResult edit(@Validated(EditGroup.class) @RequestBody SysConfig config) {
return AjaxResult.toAjax(sysConfigService.updateById(config));
}

View File

@ -3,6 +3,8 @@ package com.qiaoba.module.system.controller;
import com.qiaoba.api.system.entity.SysDept;
import com.qiaoba.api.system.entity.param.SysDeptParam;
import com.qiaoba.common.base.result.AjaxResult;
import com.qiaoba.common.base.validate.AddGroup;
import com.qiaoba.common.base.validate.EditGroup;
import com.qiaoba.module.system.service.SysDeptService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@ -11,6 +13,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.Size;
import java.util.List;
/**
@ -20,6 +23,7 @@ import java.util.List;
* @version 1.0
* @since 2023/5/6 15:06
*/
@Validated
@RestController
@RequestMapping("/system/dept")
@Tag(name = "部门管理")
@ -31,10 +35,38 @@ public class SysDeptController {
@PreAuthorize("hasAuthority('system:dept:list')")
@GetMapping("/list")
@Operation(summary = "获取列表")
public AjaxResult list(SysDeptParam param) {
public AjaxResult list(@Validated SysDeptParam param) {
return AjaxResult.success(sysDeptService.selectList(param));
}
@PreAuthorize("hasAuthority('system:dept:query')")
@GetMapping(value = "/{deptId}")
@Operation(summary = "获取详情")
public AjaxResult getInfo(@Size(min = 19, max = 20, message = "ID不合法") @PathVariable String deptId) {
return AjaxResult.success(sysDeptService.selectById(deptId));
}
@PreAuthorize("hasAuthority('system:dept:add')")
@PostMapping
@Operation(summary = "新增部门")
public AjaxResult add(@Validated(AddGroup.class) @RequestBody SysDept dept) {
return AjaxResult.toAjax(sysDeptService.insert(dept));
}
@PreAuthorize("hasAuthority('system:dept:edit')")
@PutMapping
@Operation(summary = "修改部门")
public AjaxResult edit(@Validated(EditGroup.class) @RequestBody SysDept dept) {
return AjaxResult.toAjax(sysDeptService.updateById(dept));
}
@PreAuthorize("hasAuthority('system:dept:remove')")
@DeleteMapping("/{id}")
@Operation(summary = "删除部门")
public AjaxResult remove(@PathVariable String id) {
return AjaxResult.toAjax(sysDeptService.deleteById(id));
}
@PreAuthorize("hasAuthority('system:dept:list')")
@GetMapping("/list/exclude/{deptId}")
@Operation(summary = "查询部门列表(排除节点)")
@ -42,13 +74,6 @@ public class SysDeptController {
return AjaxResult.success(sysDeptService.excludeChild(deptId));
}
@PreAuthorize("hasAuthority('system:dept:query')")
@GetMapping(value = "/{deptId}")
@Operation(summary = "获取详情")
public AjaxResult getInfo(@PathVariable String deptId) {
return AjaxResult.success(sysDeptService.selectById(deptId));
}
@GetMapping("/dept-tree")
@Operation(summary = "构建部门树")
public AjaxResult deptTree(SysDeptParam param) {
@ -65,24 +90,4 @@ public class SysDeptController {
return ajax;
}
@PreAuthorize("hasAuthority('system:dept:add')")
@PostMapping
@Operation(summary = "新增部门")
public AjaxResult add(@Validated @RequestBody SysDept dept) {
return AjaxResult.toAjax(sysDeptService.insert(dept));
}
@PreAuthorize("hasAuthority('system:dept:edit')")
@PutMapping
@Operation(summary = "修改部门")
public AjaxResult edit(@Validated @RequestBody SysDept dept) {
return AjaxResult.toAjax(sysDeptService.updateById(dept));
}
@PreAuthorize("hasAuthority('system:dept:remove')")
@DeleteMapping("/{id}")
@Operation(summary = "删除部门")
public AjaxResult remove(@PathVariable String id) {
return AjaxResult.toAjax(sysDeptService.deleteById(id));
}
}

View File

@ -3,6 +3,8 @@ package com.qiaoba.module.system.controller;
import com.qiaoba.api.system.entity.SysDictData;
import com.qiaoba.api.system.entity.param.SysDictDataParam;
import com.qiaoba.common.base.result.AjaxResult;
import com.qiaoba.common.base.validate.AddGroup;
import com.qiaoba.common.base.validate.EditGroup;
import com.qiaoba.common.database.entity.PageQuery;
import com.qiaoba.common.database.entity.TableDataInfo;
import com.qiaoba.common.poi.utils.ExcelUtil;
@ -13,6 +15,7 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.Size;
import java.util.List;
/**
@ -22,6 +25,7 @@ import java.util.List;
* @version 1.0
* @since 2022-09-22 04:20:28
*/
@Validated
@RestController
@RequestMapping("/system/dict/data")
@RequiredArgsConstructor
@ -31,37 +35,37 @@ public class SysDictDataController {
@PreAuthorize("hasAuthority('system:dict:list')")
@GetMapping("/list")
public TableDataInfo list(SysDictDataParam param, PageQuery pageQuery) {
public TableDataInfo list(@Validated SysDictDataParam param, PageQuery pageQuery) {
return sysDictDataService.selectPageList(param, pageQuery);
}
@PreAuthorize("hasAuthority('system:dict:export')")
@PostMapping("/export")
public void export(HttpServletResponse response, SysDictDataParam param) {
public void export(HttpServletResponse response, @Validated SysDictDataParam param) {
List<SysDictData> list = sysDictDataService.selectList(param);
ExcelUtil.exportExcel(list, SysDictData.class, "字典数据", response);
}
@PreAuthorize("hasAuthority('system:dict:query')")
@GetMapping(value = "/{dictCode}")
public AjaxResult getInfo(@PathVariable String dictCode) {
public AjaxResult getInfo(@Size(max = 30, message = "dictCode不合法") @PathVariable String dictCode) {
return AjaxResult.success(sysDictDataService.selectById(dictCode));
}
@GetMapping(value = "/type/{dictType}")
public AjaxResult dictType(@PathVariable String dictType) {
public AjaxResult dictType(@Size(max = 30, message = "dictType不合法") @PathVariable String dictType) {
return AjaxResult.success(sysDictDataService.selectFromCache(dictType));
}
@PreAuthorize("hasAuthority('system:dict:add')")
@PostMapping
public AjaxResult add(@Validated @RequestBody SysDictData sysDictData) {
public AjaxResult add(@Validated(AddGroup.class) @RequestBody SysDictData sysDictData) {
return AjaxResult.toAjax(sysDictDataService.insert(sysDictData));
}
@PreAuthorize("hasAuthority('system:dict:edit')")
@PutMapping
public AjaxResult edit(@Validated @RequestBody SysDictData sysDictData) {
public AjaxResult edit(@Validated(EditGroup.class) @RequestBody SysDictData sysDictData) {
return AjaxResult.toAjax(sysDictDataService.update(sysDictData));
}

View File

@ -3,6 +3,8 @@ package com.qiaoba.module.system.controller;
import com.qiaoba.api.system.entity.SysDictType;
import com.qiaoba.api.system.entity.param.SysDictTypeParam;
import com.qiaoba.common.base.result.AjaxResult;
import com.qiaoba.common.base.validate.AddGroup;
import com.qiaoba.common.base.validate.EditGroup;
import com.qiaoba.common.database.entity.PageQuery;
import com.qiaoba.common.database.entity.TableDataInfo;
import com.qiaoba.common.poi.utils.ExcelUtil;
@ -10,9 +12,11 @@ import com.qiaoba.module.system.service.SysDictDataService;
import com.qiaoba.module.system.service.SysDictTypeService;
import lombok.RequiredArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.Size;
import java.util.List;
/**
@ -22,6 +26,7 @@ import java.util.List;
* @version 1.0
* @since 2022-09-22 04:20:28
*/
@Validated
@RestController
@RequestMapping("/system/dict/type")
@RequiredArgsConstructor
@ -33,32 +38,32 @@ public class SysDictTypeController {
@PreAuthorize("hasAuthority('system:dict:list')")
@GetMapping("/list")
public TableDataInfo list(SysDictTypeParam param, PageQuery pageQuery) {
public TableDataInfo list(@Validated SysDictTypeParam param, PageQuery pageQuery) {
return sysDictTypeService.selectPageList(param, pageQuery);
}
@PreAuthorize("hasAuthority('system:dict:export')")
@PostMapping("/export")
public void export(HttpServletResponse response, SysDictTypeParam param) throws Exception {
public void export(HttpServletResponse response, @Validated SysDictTypeParam param) {
List<SysDictType> list = sysDictTypeService.selectList(param);
ExcelUtil.exportExcel(list, SysDictType.class, "字典类型", response);
}
@PreAuthorize("hasAuthority('system:dict:query')")
@GetMapping(value = "/{dictId}")
public AjaxResult getInfo(@PathVariable String dictId) {
public AjaxResult getInfo(@Size(min = 19, max = 20, message = "ID不合法") @PathVariable String dictId) {
return AjaxResult.success(sysDictTypeService.selectById(dictId));
}
@PreAuthorize("hasAuthority('system:dict:add')")
@PostMapping
public AjaxResult add(@RequestBody SysDictType sysDictType) {
public AjaxResult add(@Validated(AddGroup.class) @RequestBody SysDictType sysDictType) {
return AjaxResult.toAjax(sysDictTypeService.insert(sysDictType));
}
@PreAuthorize("hasAuthority('system:dict:edit')")
@PutMapping
public AjaxResult edit(@RequestBody SysDictType sysDictType) {
public AjaxResult edit(@Validated(EditGroup.class) @RequestBody SysDictType sysDictType) {
return AjaxResult.toAjax(sysDictTypeService.update(sysDictType));
}

View File

@ -3,6 +3,8 @@ package com.qiaoba.module.system.controller;
import com.qiaoba.api.system.entity.SysMenu;
import com.qiaoba.api.system.entity.param.SysMenuParam;
import com.qiaoba.common.base.result.AjaxResult;
import com.qiaoba.common.base.validate.AddGroup;
import com.qiaoba.common.base.validate.EditGroup;
import com.qiaoba.module.system.service.SysMenuService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@ -11,6 +13,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.Size;
import java.util.List;
/**
@ -20,6 +23,7 @@ import java.util.List;
* @version 1.0
* @since 2023/5/5 10:06
*/
@Validated
@RestController
@RequestMapping("/system/menu")
@RequiredArgsConstructor
@ -30,7 +34,7 @@ public class SysMenuController {
@GetMapping("/list")
@Operation(summary = "获取列表")
public AjaxResult list(SysMenuParam param) {
public AjaxResult list(@Validated SysMenuParam param) {
List<SysMenu> menus = sysMenuService.selectList(param);
return AjaxResult.success(menus);
}
@ -38,21 +42,21 @@ public class SysMenuController {
@PreAuthorize("hasAuthority('system:menu:query')")
@GetMapping(value = "/{menuId}")
@Operation(summary = "获取详情")
public AjaxResult getInfo(@PathVariable String menuId) {
public AjaxResult getInfo(@Size(min = 19, max = 20, message = "ID不合法")@PathVariable String menuId) {
return AjaxResult.success(sysMenuService.selectById(menuId));
}
@PreAuthorize("hasAuthority('system:menu:add')")
@PostMapping
@Operation(summary = "添加菜单")
public AjaxResult add(@Validated @RequestBody SysMenu menu) {
public AjaxResult add(@Validated(AddGroup.class) @RequestBody SysMenu menu) {
return AjaxResult.toAjax(sysMenuService.insert(menu));
}
@PreAuthorize("hasAuthority('system:menu:edit')")
@PutMapping
@Operation(summary = "修改菜单")
public AjaxResult edit(@Validated @RequestBody SysMenu menu) {
public AjaxResult edit(@Validated(EditGroup.class) @RequestBody SysMenu menu) {
return AjaxResult.toAjax(sysMenuService.updateById(menu));
}

View File

@ -3,6 +3,8 @@ package com.qiaoba.module.system.controller;
import com.qiaoba.api.system.entity.SysPost;
import com.qiaoba.api.system.entity.param.SysPostParam;
import com.qiaoba.common.base.result.AjaxResult;
import com.qiaoba.common.base.validate.AddGroup;
import com.qiaoba.common.base.validate.EditGroup;
import com.qiaoba.common.database.entity.PageQuery;
import com.qiaoba.common.database.entity.TableDataInfo;
import com.qiaoba.common.poi.utils.ExcelUtil;
@ -15,6 +17,7 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.Size;
import java.util.List;
/**
@ -24,6 +27,7 @@ import java.util.List;
* @version 1.0
* @since 2022-09-22 04:20:28
*/
@Validated
@RestController
@RequestMapping("/system/post")
@RequiredArgsConstructor
@ -35,14 +39,14 @@ public class SysPostController {
@GetMapping("/list")
@PreAuthorize("hasAuthority('system:post:list')")
@Operation(summary = "获取列表")
public TableDataInfo<SysPost> list(SysPostParam param, PageQuery pageQuery) {
public TableDataInfo<SysPost> list(@Validated SysPostParam param, PageQuery pageQuery) {
return sysPostService.selectPageList(param, pageQuery);
}
@PostMapping("/export")
@PreAuthorize("hasAuthority('system:post:export')")
@Operation(summary = "导出岗位")
public void export(HttpServletResponse response, SysPostParam param) {
public void export(HttpServletResponse response, @Validated SysPostParam param) {
List<SysPost> list = sysPostService.selectList(param);
ExcelUtil.exportExcel(list, SysPost.class, "岗位数据", response);
}
@ -50,21 +54,21 @@ public class SysPostController {
@GetMapping(value = "/{postId}")
@PreAuthorize("hasAuthority('system:post:query')")
@Operation(summary = "获取详情")
public AjaxResult getInfo(@PathVariable("postId") String postId) {
public AjaxResult getInfo(@Size(min = 19, max = 20, message = "ID不合法") @PathVariable("postId") String postId) {
return AjaxResult.success(sysPostService.selectById(postId));
}
@PostMapping
@PreAuthorize("hasAuthority('system:post:add')")
@Operation(summary = "新增岗位")
public AjaxResult add(@Validated @RequestBody SysPost post) {
public AjaxResult add(@Validated(AddGroup.class) @RequestBody SysPost post) {
return AjaxResult.toAjax(sysPostService.insert(post));
}
@PutMapping
@PreAuthorize("hasAuthority('system:post:edit')")
@Operation(summary = "修改岗位")
public AjaxResult edit(@Validated @RequestBody SysPost post) {
public AjaxResult edit(@Validated(EditGroup.class) @RequestBody SysPost post) {
return AjaxResult.toAjax(sysPostService.updateById(post));
}

View File

@ -6,6 +6,8 @@ import com.qiaoba.api.system.entity.dto.SysRoleDto;
import com.qiaoba.api.system.entity.param.SysRoleParam;
import com.qiaoba.api.system.entity.param.SysUserParam;
import com.qiaoba.common.base.result.AjaxResult;
import com.qiaoba.common.base.validate.AddGroup;
import com.qiaoba.common.base.validate.EditGroup;
import com.qiaoba.common.database.entity.PageQuery;
import com.qiaoba.common.database.entity.TableDataInfo;
import com.qiaoba.common.poi.utils.ExcelUtil;
@ -20,6 +22,7 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.Size;
import java.util.List;
/**
@ -29,6 +32,7 @@ import java.util.List;
* @version 1.0
* @since 2022-09-22 04:20:28
*/
@Validated
@RestController
@RequestMapping("/system/role")
@RequiredArgsConstructor
@ -42,14 +46,14 @@ public class SysRoleController {
@PreAuthorize("hasAuthority('system:role:list')")
@GetMapping("/list")
@Operation(summary = "获取列表")
public TableDataInfo<SysRole> list(SysRoleParam param, PageQuery pageQuery) {
public TableDataInfo<SysRole> list(@Validated SysRoleParam param, PageQuery pageQuery) {
return sysRoleService.selectPageList(param, pageQuery);
}
@PreAuthorize("hasAuthority('system:role:export')")
@PostMapping("/export")
@Operation(summary = "导出列表")
public void export(HttpServletResponse response, SysRoleParam param) throws Exception {
public void export(HttpServletResponse response, @Validated SysRoleParam param) {
List<SysRole> list = sysRoleService.selectList(param);
ExcelUtil.exportExcel(list, SysRole.class, "角色数据", response);
}
@ -57,14 +61,14 @@ public class SysRoleController {
@PreAuthorize("hasAuthority('system:role:query')")
@GetMapping(value = "/{roleId}")
@Operation(summary = "获取详情")
public AjaxResult getInfo(@PathVariable String roleId) {
public AjaxResult getInfo(@Size(min = 19, max = 20, message = "ID不合法") @PathVariable String roleId) {
return AjaxResult.success(sysRoleService.selectById(roleId));
}
@PreAuthorize("hasAuthority('system:role:add')")
@PostMapping
@Operation(summary = "添加角色")
public AjaxResult add(@Validated @RequestBody SysRoleDto roleDto) {
public AjaxResult add(@Validated(AddGroup.class) @RequestBody SysRoleDto roleDto) {
return AjaxResult.toAjax(sysRoleService.insert(roleDto));
}
@ -72,7 +76,7 @@ public class SysRoleController {
@PreAuthorize("hasAuthority('system:role:edit')")
@PutMapping
@Operation(summary = "修改角色")
public AjaxResult edit(@Validated @RequestBody SysRoleDto roleDto) {
public AjaxResult edit(@Validated(EditGroup.class) @RequestBody SysRoleDto roleDto) {
return AjaxResult.toAjax(sysRoleService.updateById(roleDto));
}

View File

@ -14,6 +14,8 @@ import com.qiaoba.api.system.entity.vo.SysUserVo;
import com.qiaoba.api.auth.utils.SecurityUtil;
import com.qiaoba.common.base.enums.BaseEnum;
import com.qiaoba.common.base.result.AjaxResult;
import com.qiaoba.common.base.validate.AddGroup;
import com.qiaoba.common.base.validate.EditGroup;
import com.qiaoba.common.database.entity.PageQuery;
import com.qiaoba.common.database.entity.TableDataInfo;
import com.qiaoba.common.poi.utils.ExcelUtil;
@ -41,6 +43,7 @@ import java.util.stream.Collectors;
* @version 1.0
* @since 2023-04-23 20:51:26
*/
@Validated
@RestController
@RequestMapping("/system/user")
@Tag(name = "用户管理")
@ -57,21 +60,21 @@ public class SysUserController {
@PreAuthorize("hasAuthority('system:user:add')")
@PostMapping
@Operation(summary = "新增用户")
public AjaxResult add(@Validated @RequestBody SysUserDto dto) {
public AjaxResult add(@Validated(AddGroup.class) @RequestBody SysUserDto dto) {
return AjaxResult.toAjax(sysUserService.saveOrUpdate(dto, false));
}
@PreAuthorize("hasAuthority('system:user:edit')")
@PutMapping
@Operation(summary = "修改用户")
public AjaxResult edit(@Validated @RequestBody SysUserDto dto) {
public AjaxResult edit(@Validated(EditGroup.class) @RequestBody SysUserDto dto) {
return AjaxResult.toAjax(sysUserService.saveOrUpdate(dto, true));
}
@PreAuthorize("hasAuthority('system:user:resetPwd')")
@PutMapping("/resetPwd")
@Operation(summary = "重置密码")
public AjaxResult resetPwd(@RequestBody ResetPasswordDto dto) {
public AjaxResult resetPwd(@Validated @RequestBody ResetPasswordDto dto) {
SysUser sysUser = BeanUtil.copyProperties(dto, SysUser.class);
sysUser.setPassword(SecurityUtil.encryptPassword(dto.getPassword()));
return AjaxResult.toAjax(sysUserService.updateById(sysUser));

View File

@ -22,7 +22,7 @@ public interface SysDeptMapper extends BaseMapper<SysDept> {
* @return 结果
*/
@SelectOneRow
int checkDeptNameUnique(SysDept dept);
String checkDeptNameUnique(SysDept dept);
/**
* 根据角色ID查询部门树信息

View File

@ -27,7 +27,7 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
* @return count
*/
@SelectOneRow
int checkUsernameUnique(SysUser sysUser);
String checkUsernameUnique(SysUser sysUser);
/**
* 校验手机号码是否唯一
@ -36,7 +36,7 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
* @return count
*/
@SelectOneRow
int checkPhoneUnique(SysUser sysUser);
String checkPhoneUnique(SysUser sysUser);
/**
* 校验email是否唯一
@ -45,7 +45,7 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
* @return count
*/
@SelectOneRow
int checkEmailUnique(SysUser sysUser);
String checkEmailUnique(SysUser sysUser);
/**
* 分页查询用户列表

View File

@ -53,6 +53,8 @@ public class SysConfigServiceImpl implements SysConfigService {
@Override
public int updateById(SysConfig sysConfig) {
checkKeyIsExist(sysConfig);
// key 禁止修改
sysConfig.setConfigKey(null);
sysConfig.setUpdateTime(new Date());
sysConfig.setUpdateUser(SecurityUtil.getLoginUsername());
int result = sysConfigMapper.updateById(sysConfig);
@ -118,6 +120,7 @@ public class SysConfigServiceImpl implements SysConfigService {
private QueryWrapper<SysConfig> param2Wrapper(SysConfigParam param) {
QueryWrapper<SysConfig> wrapper = new QueryWrapper<>();
wrapper.lambda()
.orderByDesc(SysConfig::getCreateTime)
.like(StrUtil.isNotBlank(param.getConfigName()), SysConfig::getConfigName, param.getConfigName())
.like(StrUtil.isNotBlank(param.getConfigKey()), SysConfig::getConfigKey, param.getConfigKey())
.eq(StrUtil.isNotBlank(param.getConfigType()), SysConfig::getConfigType, param.getConfigType());

View File

@ -137,7 +137,7 @@ public class SysDeptServiceImpl implements SysDeptService {
}
private boolean checkDeptNameNotUnique(SysDept dept) {
return sysDeptMapper.checkDeptNameUnique(dept) > 0;
return StrUtil.isNotBlank(sysDeptMapper.checkDeptNameUnique(dept));
}
/**

View File

@ -85,6 +85,7 @@ public class SysDictTypeServiceImpl implements SysDictTypeService {
private QueryWrapper<SysDictType> param2Wrapper(SysDictTypeParam param) {
QueryWrapper<SysDictType> wrapper = new QueryWrapper<>();
wrapper.lambda()
.orderByDesc(SysDictType::getCreateTime)
.like(StrUtil.isNotBlank(param.getDictName()), SysDictType::getDictName, param.getDictName())
.like(StrUtil.isNotBlank(param.getDictType()), SysDictType::getDictType, param.getDictType())
.eq(StrUtil.isNotBlank(param.getStatus()), SysDictType::getStatus, param.getStatus());

View File

@ -6,14 +6,14 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qiaoba.api.auth.annotation.DataScope;
import com.qiaoba.api.auth.utils.SecurityUtil;
import com.qiaoba.api.system.entity.SysUser;
import com.qiaoba.api.system.entity.SysUserPost;
import com.qiaoba.api.system.entity.SysUserRole;
import com.qiaoba.api.system.entity.dto.SysUserDto;
import com.qiaoba.api.system.entity.param.SysUserParam;
import com.qiaoba.api.system.entity.vo.SysUserVo;
import com.qiaoba.api.auth.annotation.DataScope;
import com.qiaoba.api.auth.utils.SecurityUtil;
import com.qiaoba.common.base.exceptions.ServiceException;
import com.qiaoba.common.database.entity.PageQuery;
import com.qiaoba.common.database.entity.TableDataInfo;
@ -171,6 +171,8 @@ public class SysUserServiceImpl implements SysUserService {
}
SysUser sysUser = BeanUtil.copyProperties(dto, SysUser.class);
if (isUpdate) {
sysUser.setUsername(null);
sysUser.setPassword(null);
sysUser.setUpdateTime(new Date());
sysUser.setUpdateUser(SecurityUtil.getLoginUsername());
} else {
@ -200,7 +202,7 @@ public class SysUserServiceImpl implements SysUserService {
* @return 结果
*/
private boolean checkUsernameNotUnique(SysUser sysUser) {
return sysUserMapper.checkUsernameUnique(sysUser) > 0;
return StrUtil.isNotBlank(sysUserMapper.checkUsernameUnique(sysUser));
}
/**
@ -210,7 +212,7 @@ public class SysUserServiceImpl implements SysUserService {
* @return 结果
*/
private boolean checkPhoneNotUnique(SysUser sysUser) {
return sysUserMapper.checkPhoneUnique(sysUser) > 0;
return StrUtil.isNotBlank(sysUserMapper.checkPhoneUnique(sysUser));
}
/**
@ -220,7 +222,7 @@ public class SysUserServiceImpl implements SysUserService {
* @return 结果
*/
private boolean checkEmailNotUnique(SysUser sysUser) {
return sysUserMapper.checkEmailUnique(sysUser) > 0;
return StrUtil.isNotBlank(sysUserMapper.checkEmailUnique(sysUser));
}

View File

@ -4,8 +4,8 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qiaoba.module.system.mapper.SysDeptMapper">
<select id="checkDeptNameUnique" resultType="int">
select count(1) from sys_dept
<select id="checkDeptNameUnique" resultType="string">
select dept_name from sys_dept
where dept_name = #{deptName} and parent_id = #{parentId}
<if test="deptId != null and deptId != ''">and dept_id != #{deptId}</if>
</select>

View File

@ -147,18 +147,18 @@
<select id="selectVoList" resultMap="SysUserVoResult">
<include refid="selectUserVo"/>
</select>
<select id="checkUsernameUnique" resultType="int">
select count(*) from sys_user where username = #{username}
<select id="checkUsernameUnique" resultType="string">
select username from sys_user where username = #{username}
<if test="userId != null and userId != ''">and user_id != #{userId}</if>
</select>
<select id="checkPhoneUnique" resultType="int">
select count(*) from sys_user where phone = #{phone}
<select id="checkPhoneUnique" resultType="string">
select phone from sys_user where phone = #{phone}
<if test="userId != null and userId != ''">and user_id != #{userId}</if>
</select>
<select id="checkEmailUnique" resultType="int">
select count(*) from sys_user where email = #{email}
<select id="checkEmailUnique" resultType="string">
select email from sys_user where email = #{email}
<if test="userId != null and userId != ''">and user_id != #{userId}</if>
</select>