权限管理表清单

#删除数据库
drop database product;#创建数据库
create database product;#进入数据库
use product;-- ----------------------------
-- 1.创建用户表
-- ----------------------------
DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user` (`id` varchar(32) NOT NULL  COMMENT '用户id',`user_name` varchar(50) NOT NULL COMMENT '用户账号',`nick_name` varchar(150) DEFAULT NULL COMMENT '昵称',user_type  varchar(2)  default '00'  comment '用户类型(00系统用户)',`avatar` varchar(150) DEFAULT NULL COMMENT '头像',sex     char(1)  default '0'   comment '用户性别(0男 1女 2未知)',age  int  DEFAULT NULL COMMENT '年龄',`password` varchar(100) DEFAULT NULL COMMENT '密码',`salt` varchar(40) DEFAULT NULL COMMENT '加密盐',`email` varchar(100) DEFAULT NULL COMMENT '邮箱',`mobile` varchar(100) DEFAULT NULL COMMENT '手机号',`status` tinyint(4) DEFAULT NULL COMMENT '状态  0:禁用   1:正常',`dept_id` bigint(20) DEFAULT NULL COMMENT '部门ID',login_ip     varchar(128)    default ''      comment '最后登录IP',login_date   datetime                        comment '最后登录时间',`create_by` varchar(50) DEFAULT NULL COMMENT '创建人',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`last_update_by` varchar(50) DEFAULT NULL COMMENT '更新人',`last_update_time` datetime DEFAULT NULL COMMENT '更新时间',`del_flag` tinyint(4) DEFAULT '0' COMMENT '是否删除  -1:已删除  0:正常',UNIQUE KEY  `id`(`id`),UNIQUE KEY `name` (`user_name`)
) ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=utf8 COMMENT='用户管理';-- ----------------------------
-- 添加用户基础数据
-- ----------------------------
INSERT INTO `sys_user` (id, user_name, nick_name, user_type, avatar, sex, age, password, salt, email, mobile, status, dept_id, login_ip, login_date, create_by, create_time, last_update_by, last_update_time, del_flag)VALUES ('1', 'admin', '超级管理员', 00, '', 1,20,'', '','admin@qq.com', '13612345678', '1', '4', 'admin', '2018-08-14 11:11:11', 'admin', '2018-08-14 11:11:11', '',now(),0);-- ----------------------------
-- 2.创建部门表
-- ----------------------------
DROP TABLE IF EXISTS `sys_dept`;
CREATE TABLE `sys_dept` (`dept_id` varchar(32) NOT NULL  COMMENT '部门id',`name` varchar(50) DEFAULT NULL COMMENT '部门名称',`parent_id` bigint(20) DEFAULT NULL COMMENT '上级机构ID,一级机构为0',ancestors   varchar(50)   default ''   comment '祖级列表',`order_num` int(11) DEFAULT NULL COMMENT '排序',leader     varchar(20)     default null   comment '负责人',phone      varchar(11)     default null   comment '联系电话',email      varchar(50)     default null   comment '邮箱',status     char(1)         default '0'    comment '部门状态(0正常 1停用)',`create_by` varchar(50) DEFAULT NULL COMMENT '创建人',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`last_update_by` varchar(50) DEFAULT NULL COMMENT '更新人',`last_update_time` datetime DEFAULT NULL COMMENT '更新时间',`del_flag` tinyint(4) DEFAULT '0' COMMENT '是否删除  -1:已删除  0:正常',UNIQUE KEY  dept_id(`dept_id`)
) ENGINE=InnoDB AUTO_INCREMENT=36 DEFAULT CHARSET=utf8 COMMENT='机构管理';-- ----------------------------
-- 初始化部门信息
-- ----------------------------
INSERT INTO `sys_dept` VALUES ('1', '西城紫光集团', 0, '0','0', 'admin','15888888888','15888888888@163.com', 0,'admin','2018-09-23 19:35:22', null, null, '0');
INSERT INTO `sys_dept` VALUES ('2', '西城紫光集团分公司',0, '0,1', '1', 'admin','15888888888','15888888888@163.com', 0,'admin','2018-09-23 19:35:55', null, null, '0');
INSERT INTO `sys_dept` VALUES ('3', '研发部门',  0, '0,1,2','1', 'admin','15888888888','15888888888@163.com',0,'admin',  '2018-09-23 19:36:24', null, null, '0');-- ----------------------------
-- 3、岗位信息表
-- ----------------------------
drop table if exists sys_post;
create table sys_post
(post_id       varchar(32)      not null     comment '岗位ID',post_code     varchar(64)     not null                   comment '岗位编码',post_name     varchar(50)     not null                   comment '岗位名称',post_sort     int(4)          not null                   comment '显示顺序',status        char(1)         not null                   comment '状态(0正常 1停用)',create_by     varchar(64)     default ''                 comment '创建者',create_time   datetime                                   comment '创建时间',update_by     varchar(64)     default ''                   comment '更新者',update_time   datetime                                   comment '更新时间',remark        varchar(500)    default null               comment '备注',UNIQUE key (post_id)
) engine=innodb comment = '岗位信息表';-- ----------------------------
-- 初始化-岗位信息表数据
-- ----------------------------
insert into sys_post values(1, 'ceo',  '董事长',    1, '0', 'admin', sysdate(), '', null, '');
insert into sys_post values(2, 'se',   '项目经理',  2, '0', 'admin', sysdate(), '', null, '');
insert into sys_post values(3, 'hr',   '人力资源',  3, '0', 'admin', sysdate(), '', null, '');
insert into sys_post values(4, 'user', '普通员工',  4, '0', 'admin', sysdate(), '', null, '');-- ----------------------------
-- 4.创建角色表
-- ----------------------------
DROP TABLE IF EXISTS `sys_role`;
CREATE TABLE `sys_role` (`id` varchar(32) NOT NULL  COMMENT '编号',`name` varchar(100) DEFAULT NULL COMMENT '角色名称',`remark` varchar(100) DEFAULT NULL COMMENT '备注',role_key             varchar(100)    not null        comment '角色权限字符串',role_sort            int(4)          not null        comment '显示顺序',data_scope           char(1)         default '1'     comment '数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)',menu_check_strictly  tinyint(1)      default 1       comment '菜单树选择项是否关联显示',dept_check_strictly  tinyint(1)      default 1       comment '部门树选择项是否关联显示',status               char(1)         not null        comment '角色状态(0正常 1停用)',`create_by` varchar(50) DEFAULT NULL COMMENT '创建人',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`last_update_by` varchar(50) DEFAULT NULL COMMENT '更新人',`last_update_time` datetime DEFAULT NULL COMMENT '更新时间',`del_flag` tinyint(4) DEFAULT '0' COMMENT '是否删除  -1:已删除  0:正常',UNIQUE KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='角色管理';-- ----------------------------
-- 初始化-角色信息表数据
-- ----------------------------
insert into sys_role values('1', '超级管理员','超级管理员','admin',  1, 1, 1, 1, '0',  'admin', sysdate(), '', null,'0');
insert into sys_role values('2', '普通角色',  '普通角色', 'common', 2, 2, 1, 1, '0', 'admin', sysdate(), '', null ,'0');-- ----------------------------
-- 5、菜单权限表
-- ----------------------------
DROP TABLE IF EXISTS `sys_menu`;
CREATE TABLE `sys_menu` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',`name` varchar(50) DEFAULT NULL COMMENT '菜单名称',`parent_id` bigint(20) DEFAULT NULL COMMENT '父菜单ID,一级菜单为0',`order_num` int(11) DEFAULT NULL COMMENT '排序',path       varchar(200)    default ''     comment '路由地址',component  varchar(255)    default null   comment '组件路径',query      varchar(255)    default null   comment '路由参数',is_frame   int(1)          default 1      comment '是否为外链(0是 1否)',is_cache   int(1)          default 0      comment '是否缓存(0缓存 1不缓存)',`menu_type` int(11) DEFAULT NULL COMMENT '类型   0:目录   1:菜单   2:按钮',visible           char(1)         default 0                  comment '菜单状态(0显示 1隐藏)',status            char(1)         default 0                  comment '菜单状态(0正常 1停用)',`perms` varchar(500) DEFAULT NULL COMMENT '授权(多个用逗号分隔,如:sys:user:add,sys:user:edit)',`icon` varchar(50) DEFAULT NULL COMMENT '菜单图标',`create_by` varchar(50) DEFAULT NULL COMMENT '创建人',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`last_update_by` varchar(50) DEFAULT NULL COMMENT '更新人',`last_update_time` datetime DEFAULT NULL COMMENT '更新时间',remark            varchar(500)    default ''                 comment '备注',`url` varchar(200) DEFAULT NULL COMMENT '菜单URL,类型:1.普通页面(如用户管理, /sys/user) 2.嵌套完整外部页面,以http(s)开头的链接 3.嵌套服务器页面,使用iframe:前缀+目标URL(如SQL监控, iframe:/druid/login.html, iframe:前缀会替换成服务器地址)',`del_flag` tinyint(4) DEFAULT '0' COMMENT '是否删除  -1:已删除  0:正常',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=57 DEFAULT CHARSET=utf8 COMMENT='菜单管理';-- ----------------------------
-- Records of sys_menu
-- ----------------------------
-- ----------------------------
-- 初始化-菜单信息表数据
-- ----------------------------
-- 一级菜单
insert into sys_menu values('1', '系统管理', '0', '1', 'system',           null, '', 1, 0, '0', '0', '0', '', 'system',   'admin', sysdate(), '', null, '系统管理目录','',0);
insert into sys_menu values('2', '系统监控', '0', '2', 'monitor',          null, '', 1, 0, '0', '0', '0', '', 'monitor',  'admin', sysdate(), '', null, '系统监控目录','',0);
insert into sys_menu values('3', '系统工具', '0', '3', 'tool',             null, '', 1, 0, '0', '0', '0', '', 'tool',     'admin', sysdate(), '', null, '系统工具目录','',0);
-- 二级菜单
insert into sys_menu values('100',  '用户管理', '1',   '1', 'user',       'system/user/index',        '', 1, 0, '1', '0', '0', 'system:user:list',        'user',          'admin', sysdate(), '', null, '用户管理菜单','/sys/user',0);
insert into sys_menu values('101',  '角色管理', '1',   '2', 'role',       'system/role/index',        '', 1, 0, '1', '0', '0', 'system:role:list',        'peoples',       'admin', sysdate(), '', null, '角色管理菜单','/sys/role',0);
insert into sys_menu values('102',  '菜单管理', '1',   '3', 'menu',       'system/menu/index',        '', 1, 0, '1', '0', '0', 'system:menu:list',        'tree-table',    'admin', sysdate(), '', null, '菜单管理菜单','/sys/menu',0);
insert into sys_menu values('103',  '部门管理', '1',   '4', 'dept',       'system/dept/index',        '', 1, 0, '1', '0', '0', 'system:dept:list',        'tree',          'admin', sysdate(), '', null, '部门管理菜单','/sys/dept',0);
insert into sys_menu values('104',  '岗位管理', '1',   '5', 'post',       'system/post/index',        '', 1, 0, '1', '0', '0', 'system:post:list',        'post',          'admin', sysdate(), '', null, '岗位管理菜单','/sys/post',0);
insert into sys_menu values('105',  '字典管理', '1',   '6', 'dict',       'system/dict/index',        '', 1, 0, '1', '0', '0', 'system:dict:list',        'dict',          'admin', sysdate(), '', null, '字典管理菜单','/sys/dict',0);
insert into sys_menu values('106',  '参数设置', '1',   '7', 'config',     'system/config/index',      '', 1, 0, '1', '0', '0', 'system:config:list',      'edit',          'admin', sysdate(), '', null, '参数设置菜单','',0);
insert into sys_menu values('107',  '通知公告', '1',   '8', 'notice',     'system/notice/index',      '', 1, 0, '1', '0', '0', 'system:notice:list',      'message',       'admin', sysdate(), '', null, '通知公告菜单','',0);
insert into sys_menu values('108',  '日志管理', '1',   '9', 'log',        '',                         '', 1, 0, '0', '0', '0', '',                        'log',           'admin', sysdate(), '', null, '日志管理菜单','',0);
insert into sys_menu values('109',  '在线用户', '2',   '1', 'online',     'monitor/online/index',     '', 1, 0, '1', '0', '0', 'monitor:online:list',     'online',        'admin', sysdate(), '', null, '在线用户菜单','',0);
insert into sys_menu values('110',  '定时任务', '2',   '2', 'job',        'monitor/job/index',        '', 1, 0, '1', '0', '0', 'monitor:job:list',        'job',           'admin', sysdate(), '', null, '定时任务菜单','',0);
insert into sys_menu values('111',  '数据监控', '2',   '3', 'druid',      'monitor/druid/index',      '', 1, 0, '1', '0', '0', 'monitor:druid:list',      'druid',         'admin', sysdate(), '', null, '数据监控菜单','',0);
insert into sys_menu values('112',  '服务监控', '2',   '4', 'server',     'monitor/server/index',     '', 1, 0, '1', '0', '0', 'monitor:server:list',     'server',        'admin', sysdate(), '', null, '服务监控菜单','',0);
insert into sys_menu values('113',  '缓存监控', '2',   '5', 'cache',      'monitor/cache/index',      '', 1, 0, '1', '0', '0', 'monitor:cache:list',      'redis',         'admin', sysdate(), '', null, '缓存监控菜单','',0);
insert into sys_menu values('114',  '缓存列表', '2',   '6', 'cacheList',  'monitor/cache/list',       '', 1, 0, '1', '0', '0', 'monitor:cache:list',      'redis-list',    'admin', sysdate(), '', null, '缓存列表菜单','',0);
insert into sys_menu values('115',  '表单构建', '3',   '1', 'build',      'tool/build/index',         '', 1, 0, '1', '0', '0', 'tool:build:list',         'build',         'admin', sysdate(), '', null, '表单构建菜单','',0);
insert into sys_menu values('116',  '代码生成', '3',   '2', 'gen',        'tool/gen/index',           '', 1, 0, '1', '0', '0', 'tool:gen:list',           'code',          'admin', sysdate(), '', null, '代码生成菜单','',0);
insert into sys_menu values('117',  '系统接口', '3',   '3', 'swagger',    'tool/swagger/index',       '', 1, 0, '1', '0', '0', 'tool:swagger:list',       'swagger',       'admin', sysdate(), '', null, '系统接口菜单','',0);
-- 三级菜单
insert into sys_menu values('500',  '操作日志', '108', '1', 'operlog',    'monitor/operlog/index',    '', 1, 0, '1', '0', '0', 'monitor:operlog:list',    'form',          'admin', sysdate(), '', null, '操作日志菜单','',0);
insert into sys_menu values('501',  '登录日志', '108', '2', 'logininfor', 'monitor/logininfor/index', '', 1, 0, '1', '0', '0', 'monitor:logininfor:list', 'logininfor',    'admin', sysdate(), '', null, '登录日志菜单','',0);
-- 用户管理按钮
insert into sys_menu values('1000', '用户查询', '100', '1',  '', '', '', 1, 0, '2', '0', '0', 'system:user:query',          '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1001', '用户新增', '100', '2',  '', '', '', 1, 0, '2', '0', '0', 'system:user:add',            '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1002', '用户修改', '100', '3',  '', '', '', 1, 0, '2', '0', '0', 'system:user:edit',           '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1003', '用户删除', '100', '4',  '', '', '', 1, 0, '2', '0', '0', 'system:user:remove',         '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1004', '用户导出', '100', '5',  '', '', '', 1, 0, '2', '0', '0', 'system:user:export',         '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1005', '用户导入', '100', '6',  '', '', '', 1, 0, '2', '0', '0', 'system:user:import',         '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1006', '重置密码', '100', '7',  '', '', '', 1, 0, '2', '0', '0', 'system:user:resetPwd',       '#', 'admin', sysdate(), '', null, '','',0);
-- 角色管理按钮
insert into sys_menu values('1007', '角色查询', '101', '1',  '', '', '', 1, 0, '2', '0', '0', 'system:role:query',          '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1008', '角色新增', '101', '2',  '', '', '', 1, 0, '2', '0', '0', 'system:role:add',            '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1009', '角色修改', '101', '3',  '', '', '', 1, 0, '2', '0', '0', 'system:role:edit',           '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1010', '角色删除', '101', '4',  '', '', '', 1, 0, '2', '0', '0', 'system:role:remove',         '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1011', '角色导出', '101', '5',  '', '', '', 1, 0, '2', '0', '0', 'system:role:export',         '#', 'admin', sysdate(), '', null, '','',0);
-- 菜单管理按钮
insert into sys_menu values('1012', '菜单查询', '102', '1',  '', '', '', 1, 0, '2', '0', '0', 'system:menu:query',          '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1013', '菜单新增', '102', '2',  '', '', '', 1, 0, '2', '0', '0', 'system:menu:add',            '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1014', '菜单修改', '102', '3',  '', '', '', 1, 0, '2', '0', '0', 'system:menu:edit',           '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1015', '菜单删除', '102', '4',  '', '', '', 1, 0, '2', '0', '0', 'system:menu:remove',         '#', 'admin', sysdate(), '', null, '','',0);
-- 部门管理按钮
insert into sys_menu values('1016', '部门查询', '103', '1',  '', '', '', 1, 0, '2', '0', '0', 'system:dept:query',          '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1017', '部门新增', '103', '2',  '', '', '', 1, 0, '2', '0', '0', 'system:dept:add',            '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1018', '部门修改', '103', '3',  '', '', '', 1, 0, '2', '0', '0', 'system:dept:edit',           '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1019', '部门删除', '103', '4',  '', '', '', 1, 0, '2', '0', '0', 'system:dept:remove',         '#', 'admin', sysdate(), '', null, '','',0);
-- 岗位管理按钮
insert into sys_menu values('1020', '岗位查询', '104', '1',  '', '', '', 1, 0, '2', '0', '0', 'system:post:query',          '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1021', '岗位新增', '104', '2',  '', '', '', 1, 0, '2', '0', '0', 'system:post:add',            '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1022', '岗位修改', '104', '3',  '', '', '', 1, 0, '2', '0', '0', 'system:post:edit',           '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1023', '岗位删除', '104', '4',  '', '', '', 1, 0, '2', '0', '0', 'system:post:remove',         '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1024', '岗位导出', '104', '5',  '', '', '', 1, 0, '2', '0', '0', 'system:post:export',         '#', 'admin', sysdate(), '', null, '','',0);
-- 字典管理按钮
insert into sys_menu values('1025', '字典查询', '105', '1', '#', '', '', 1, 0, '2', '0', '0', 'system:dict:query',          '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1026', '字典新增', '105', '2', '#', '', '', 1, 0, '2', '0', '0', 'system:dict:add',            '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1027', '字典修改', '105', '3', '#', '', '', 1, 0, '2', '0', '0', 'system:dict:edit',           '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1028', '字典删除', '105', '4', '#', '', '', 1, 0, '2', '0', '0', 'system:dict:remove',         '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1029', '字典导出', '105', '5', '#', '', '', 1, 0, '2', '0', '0', 'system:dict:export',         '#', 'admin', sysdate(), '', null, '','',0);
-- 参数设置按钮
insert into sys_menu values('1030', '参数查询', '106', '1', '#', '', '', 1, 0, '2', '0', '0', 'system:config:query',        '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1031', '参数新增', '106', '2', '#', '', '', 1, 0, '2', '0', '0', 'system:config:add',          '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1032', '参数修改', '106', '3', '#', '', '', 1, 0, '2', '0', '0', 'system:config:edit',         '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1033', '参数删除', '106', '4', '#', '', '', 1, 0, '2', '0', '0', 'system:config:remove',       '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1034', '参数导出', '106', '5', '#', '', '', 1, 0, '2', '0', '0', 'system:config:export',       '#', 'admin', sysdate(), '', null, '','',0);
-- 通知公告按钮
insert into sys_menu values('1035', '公告查询', '107', '1', '#', '', '', 1, 0, '2', '0', '0', 'system:notice:query',        '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1036', '公告新增', '107', '2', '#', '', '', 1, 0, '2', '0', '0', 'system:notice:add',          '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1037', '公告修改', '107', '3', '#', '', '', 1, 0, '2', '0', '0', 'system:notice:edit',         '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1038', '公告删除', '107', '4', '#', '', '', 1, 0, '2', '0', '0', 'system:notice:remove',       '#', 'admin', sysdate(), '', null, '','',0);
-- 操作日志按钮
insert into sys_menu values('1039', '操作查询', '500', '1', '#', '', '', 1, 0, '2', '0', '0', 'monitor:operlog:query',      '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1040', '操作删除', '500', '2', '#', '', '', 1, 0, '2', '0', '0', 'monitor:operlog:remove',     '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1041', '日志导出', '500', '3', '#', '', '', 1, 0, '2', '0', '0', 'monitor:operlog:export',     '#', 'admin', sysdate(), '', null, '','',0);
-- 登录日志按钮
insert into sys_menu values('1042', '登录查询', '501', '1', '#', '', '', 1, 0, '2', '0', '0', 'monitor:logininfor:query',   '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1043', '登录删除', '501', '2', '#', '', '', 1, 0, '2', '0', '0', 'monitor:logininfor:remove',  '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1044', '日志导出', '501', '3', '#', '', '', 1, 0, '2', '0', '0', 'monitor:logininfor:export',  '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1045', '账户解锁', '501', '4', '#', '', '', 1, 0, '2', '0', '0', 'monitor:logininfor:unlock',  '#', 'admin', sysdate(), '', null, '','',0);
-- 在线用户按钮
insert into sys_menu values('1046', '在线查询', '109', '1', '#', '', '', 1, 0, '2', '0', '0', 'monitor:online:query',       '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1047', '批量强退', '109', '2', '#', '', '', 1, 0, '2', '0', '0', 'monitor:online:batchLogout', '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1048', '单条强退', '109', '3', '#', '', '', 1, 0, '2', '0', '0', 'monitor:online:forceLogout', '#', 'admin', sysdate(), '', null, '','',0);
-- 定时任务按钮
insert into sys_menu values('1049', '任务查询', '110', '1', '#', '', '', 1, 0, '2', '0', '0', 'monitor:job:query',          '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1050', '任务新增', '110', '2', '#', '', '', 1, 0, '2', '0', '0', 'monitor:job:add',            '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1051', '任务修改', '110', '3', '#', '', '', 1, 0, '2', '0', '0', 'monitor:job:edit',           '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1052', '任务删除', '110', '4', '#', '', '', 1, 0, '2', '0', '0', 'monitor:job:remove',         '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1053', '状态修改', '110', '5', '#', '', '', 1, 0, '2', '0', '0', 'monitor:job:changeStatus',   '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1054', '任务导出', '110', '6', '#', '', '', 1, 0, '2', '0', '0', 'monitor:job:export',         '#', 'admin', sysdate(), '', null, '','',0);
-- 代码生成按钮
insert into sys_menu values('1055', '生成查询', '116', '1', '#', '', '', 1, 0, '2', '0', '0', 'tool:gen:query',             '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1056', '生成修改', '116', '2', '#', '', '', 1, 0, '2', '0', '0', 'tool:gen:edit',              '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1057', '生成删除', '116', '3', '#', '', '', 1, 0, '2', '0', '0', 'tool:gen:remove',            '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1058', '导入代码', '116', '4', '#', '', '', 1, 0, '2', '0', '0', 'tool:gen:import',            '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1059', '预览代码', '116', '5', '#', '', '', 1, 0, '2', '0', '0', 'tool:gen:preview',           '#', 'admin', sysdate(), '', null, '','',0);
insert into sys_menu values('1060', '生成代码', '116', '6', '#', '', '', 1, 0, '2', '0', '0', 'tool:gen:code',              '#', 'admin', sysdate(), '', null, '','',0);-- ----------------------------
--  6、用户和角色关联表  用户N-1角色
-- ----------------------------
DROP TABLE IF EXISTS `sys_user_role`;
CREATE TABLE `sys_user_role` (`id` varchar(32) NOT NULL  COMMENT '编号',`user_id` varchar(32) DEFAULT NULL COMMENT '用户ID',`role_id` varchar(32) DEFAULT NULL COMMENT '角色ID',`create_by` varchar(50) DEFAULT NULL COMMENT '创建人',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`last_update_by` varchar(50) DEFAULT NULL COMMENT '更新人',`last_update_time` datetime DEFAULT NULL COMMENT '更新时间',UNIQUE KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=88 DEFAULT CHARSET=utf8 COMMENT='用户角色';-- ----------------------------
-- 初始化-用户和角色关联表数据
-- ----------------------------
INSERT INTO `sys_user_role` VALUES ('1', '1', '1', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('2', '2', '1', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('26', '5', '3', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('33', '6', '2', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('34', '4', '2', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('35', '9', '2', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('36', '10', '3', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('37', '11', '2', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('38', '12', '3', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('39', '15', '2', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('41', '16', '3', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('42', '8', '2', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('43', '7', '4', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('45', '18', '2', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('46', '17', '3', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('47', '3', '4', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('48', '21', '2', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('57', '31', '2', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('58', '30', '2', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('59', '32', '3', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('73', '33', '8', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('74', '25', '8', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('75', '25', '2', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('80', '22', '2', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('81', '23', '3', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('82', '24', '4', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('83', '26', '3', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('85', '29', '2', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('86', '28', '4', null, null, null, null);
INSERT INTO `sys_user_role` VALUES ('87', '27', '3', null, null, null, null);-- ----------------------------
-- 7、角色和菜单关联表  角色1-N菜单
-- ----------------------------
DROP TABLE IF EXISTS `sys_role_menu`;
CREATE TABLE `sys_role_menu` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',`role_id` varchar(32) DEFAULT NULL COMMENT '角色ID',`menu_id` varchar(32)DEFAULT NULL COMMENT '菜单ID',`create_by` varchar(50) DEFAULT NULL COMMENT '创建人',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`last_update_by` varchar(50) DEFAULT NULL COMMENT '更新人',`last_update_time` datetime DEFAULT NULL COMMENT '更新时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=623 DEFAULT CHARSET=utf8 COMMENT='角色菜单';-- ----------------------------
-- Records of sys_role_menu
-- ----------------------------
INSERT INTO `sys_role_menu` VALUES ('1', '2', '1', 'admin', '2019-01-22 14:45:28', null, null);
INSERT INTO `sys_role_menu` VALUES ('2', '2', '2', 'admin', '2019-01-22 14:45:28', null, null);
INSERT INTO `sys_role_menu` VALUES ('3', '2', '3', 'admin', '2019-01-22 14:45:28', null, null);
INSERT INTO `sys_role_menu` VALUES ('4', '2', '4', 'admin', '2019-01-22 14:45:28', null, null);
INSERT INTO `sys_role_menu` VALUES ('5', '2', '100', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('6', '2', '101', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('7', '2', '102', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('8', '2', '103', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('9', '2', '104', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('10', '2', '105', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('11', '2', '106', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('12', '2', '107', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('13', '2', '108', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('14', '2', '109', 'admin', '2019-01-22 14:45:28', null, null);
INSERT INTO `sys_role_menu` VALUES ('15', '2', '110', 'admin', '2019-01-22 14:45:28', null, null);
INSERT INTO `sys_role_menu` VALUES ('16', '2', '111', 'admin', '2019-01-22 14:45:28', null, null);
INSERT INTO `sys_role_menu` VALUES ('17', '2', '112', 'admin', '2019-01-22 14:45:28', null, null);
INSERT INTO `sys_role_menu` VALUES ('18', '2', '113', 'admin', '2019-01-22 14:45:28', null, null);
INSERT INTO `sys_role_menu` VALUES ('19', '2', '114', 'admin', '2019-01-22 14:45:28', null, null);
INSERT INTO `sys_role_menu` VALUES ('20', '2', '115', 'admin', '2019-01-22 14:45:28', null, null);
INSERT INTO `sys_role_menu` VALUES ('21', '2', '116', 'admin', '2019-01-22 14:45:28', null, null);
INSERT INTO `sys_role_menu` VALUES ('22', '2', '117', 'admin', '2019-01-22 14:45:28', null, null);
INSERT INTO `sys_role_menu` VALUES ('23', '2', '500', 'admin', '2019-01-22 14:45:28', null, null);
INSERT INTO `sys_role_menu` VALUES ('24', '2', '501', 'admin', '2019-01-22 14:45:28', null, null);
INSERT INTO `sys_role_menu` VALUES ('25', '2', '1000', 'admin', '2018-09-23 19:55:08', null, null);
INSERT INTO `sys_role_menu` VALUES ('26', '2', '1001', 'admin', '2018-09-23 19:55:08', null, null);
INSERT INTO `sys_role_menu` VALUES ('27', '2', '1002', 'admin', '2018-09-23 19:55:08', null, null);
INSERT INTO `sys_role_menu` VALUES ('28', '2', '1003', 'admin', '2018-09-23 19:55:08', null, null);
INSERT INTO `sys_role_menu` VALUES ('29', '2', '1004', 'admin', '2018-09-23 19:55:08', null, null);
INSERT INTO `sys_role_menu` VALUES ('30', '2', '1005', 'admin', '2018-09-23 19:55:08', null, null);
INSERT INTO `sys_role_menu` VALUES ('31', '2', '1006', 'admin', '2018-09-23 19:55:08', null, null);
INSERT INTO `sys_role_menu` VALUES ('32', '2', '1007', 'admin', '2018-09-23 19:55:08', null, null);
INSERT INTO `sys_role_menu` VALUES ('33', '2', '1008', 'admin', '2018-09-23 19:55:08', null, null);
INSERT INTO `sys_role_menu` VALUES ('34', '2', '1009', 'admin', '2018-09-23 19:55:08', null, null);
INSERT INTO `sys_role_menu` VALUES ('35', '2', '1010', 'admin', '2018-09-23 19:55:08', null, null);
INSERT INTO `sys_role_menu` VALUES ('36', '2', '1011', 'admin', '2018-09-23 19:55:08', null, null);
INSERT INTO `sys_role_menu` VALUES ('37', '2', '1012', 'admin', '2018-09-23 19:55:08', null, null);
INSERT INTO `sys_role_menu` VALUES ('38', '2', '1013', 'admin', '2018-09-23 19:55:08', null, null);
INSERT INTO `sys_role_menu` VALUES ('39', '2', '1014', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('40', '2', '1015', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('41', '2', '1016', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('42', '2', '1017', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('43', '2', '1018', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('44', '2', '1019', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('45', '2', '1020', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('46', '2', '1021', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('47', '2', '1022', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('48', '2', '1023', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('49', '2', '1024', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('50', '2', '1025', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('51', '2', '1026', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('52', '2', '1027', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('53', '2', '1028', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('54', '2', '1029', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('55', '2', '1030', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('56', '2', '1031', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('57', '2', '1032', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('58', '2', '1033', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('59', '2', '1034', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('60', '2', '1035', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('61', '2', '1036', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('62', '2', '1037', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('63', '2', '1038', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('64', '2', '1039', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('65', '2', '1040', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('66', '2', '1041', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('67', '2', '1042', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('68', '2', '1043', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('69', '2', '1044', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('70', '2', '1045', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('71', '2', '1046', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('72', '2', '1047', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('73', '2', '1048', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('74', '2', '1049', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('75', '2', '1050', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('76', '2', '1051', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('77', '2', '1052', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('78', '2', '1053', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('79', '2', '1054', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('80', '2', '1055', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('81', '2', '1056', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('82', '2', '1057', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('83', '2', '1058', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('84', '2', '1059', null, null, null, null);
INSERT INTO `sys_role_menu` VALUES ('85', '2', '1060', null, null, null, null);-- ----------------------------
--  8、角色和部门关联表  角色1-N部门
-- ----------------------------
DROP TABLE IF EXISTS `sys_role_dept`;
CREATE TABLE `sys_role_dept` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',`role_id` varchar(32) DEFAULT NULL COMMENT '角色ID',`dept_id` varchar(32) DEFAULT NULL COMMENT '机构ID',`create_by` varchar(50) DEFAULT NULL COMMENT '创建人',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`last_update_by` varchar(50) DEFAULT NULL COMMENT '更新人',`last_update_time` datetime DEFAULT NULL COMMENT '更新时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='角色机构';-- ----------------------------
-- 初始化-角色和部门关联表数据
-- ----------------------------
INSERT INTO `sys_role_dept` VALUES ('1', '1', '1', 'admin', '2019-01-11 08:30:37', 'admin', '2019-01-11 08:30:25');
INSERT INTO `sys_role_dept` VALUES ('2', '2', '2', 'admin', '2019-01-11 08:31:01', 'admin', '2019-01-11 08:31:04');
INSERT INTO `sys_role_dept` VALUES ('3', '3', '3', 'admin', '2019-01-11 08:31:18', 'admin', '2019-01-11 08:31:21');-- ----------------------------
-- 9、用户与岗位关联表  用户1-N岗位
-- ----------------------------
drop table if exists sys_user_post;
create table sys_user_post
(user_id   bigint(20) not null comment '用户ID',post_id   bigint(20) not null comment '岗位ID',primary key (user_id, post_id)
) engine=innodb comment = '用户与岗位关联表';-- ----------------------------
-- 初始化-用户与岗位关联表数据
-- ----------------------------
insert into sys_user_post values ('1', '1');
insert into sys_user_post values ('2', '2');-- ----------------------------
-- 10、操作日志记录
-- ----------------------------
drop table if exists sys_oper_log;
create table sys_oper_log (oper_id           bigint(20)      not null auto_increment    comment '日志主键',title             varchar(50)     default ''                 comment '模块标题',business_type     int(2)          default 0                  comment '业务类型(0其它 1新增 2修改 3删除)',method            varchar(100)    default ''                 comment '方法名称',request_method    varchar(10)     default ''                 comment '请求方式',operator_type     int(1)          default 0                  comment '操作类别(0其它 1后台用户 2手机端用户)',oper_name         varchar(50)     default ''                 comment '操作人员',dept_name         varchar(50)     default ''                 comment '部门名称',oper_url          varchar(255)    default ''                 comment '请求URL',oper_ip           varchar(128)    default ''                 comment '主机地址',oper_location     varchar(255)    default ''                 comment '操作地点',oper_param        varchar(2000)   default ''                 comment '请求参数',json_result       varchar(2000)   default ''                 comment '返回参数',status            int(1)          default 0                  comment '操作状态(0正常 1异常)',error_msg         varchar(2000)   default ''                 comment '错误消息',oper_time         datetime                                   comment '操作时间',primary key (oper_id)
) engine=innodb auto_increment=100 comment = '操作日志记录';-- ----------------------------
-- 11、字典类型表
-- ----------------------------
drop table if exists sys_dict_type;
create table sys_dict_type
(dict_id          bigint(20)      not null auto_increment    comment '字典主键',dict_name        varchar(100)    default ''                 comment '字典名称',dict_type        varchar(100)    default ''                 comment '字典类型',status           char(1)         default '0'                comment '状态(0正常 1停用)',create_by        varchar(64)     default ''                 comment '创建者',create_time      datetime                                   comment '创建时间',update_by        varchar(64)     default ''                 comment '更新者',update_time      datetime                                   comment '更新时间',remark           varchar(500)    default null               comment '备注',primary key (dict_id),unique (dict_type)
) engine=innodb auto_increment=100 comment = '字典类型表';insert into sys_dict_type values(1,  '用户性别', 'sys_user_sex',        '0', 'admin', sysdate(), '', null, '用户性别列表');
insert into sys_dict_type values(2,  '菜单状态', 'sys_show_hide',       '0', 'admin', sysdate(), '', null, '菜单状态列表');
insert into sys_dict_type values(3,  '系统开关', 'sys_normal_disable',  '0', 'admin', sysdate(), '', null, '系统开关列表');
insert into sys_dict_type values(4,  '任务状态', 'sys_job_status',      '0', 'admin', sysdate(), '', null, '任务状态列表');
insert into sys_dict_type values(5,  '任务分组', 'sys_job_group',       '0', 'admin', sysdate(), '', null, '任务分组列表');
insert into sys_dict_type values(6,  '系统是否', 'sys_yes_no',          '0', 'admin', sysdate(), '', null, '系统是否列表');
insert into sys_dict_type values(7,  '通知类型', 'sys_notice_type',     '0', 'admin', sysdate(), '', null, '通知类型列表');
insert into sys_dict_type values(8,  '通知状态', 'sys_notice_status',   '0', 'admin', sysdate(), '', null, '通知状态列表');
insert into sys_dict_type values(9,  '操作类型', 'sys_oper_type',       '0', 'admin', sysdate(), '', null, '操作类型列表');
insert into sys_dict_type values(10, '系统状态', 'sys_common_status',   '0', 'admin', sysdate(), '', null, '登录状态列表');-- ----------------------------
-- 12、字典数据表
-- ----------------------------
drop table if exists sys_dict_data;
create table sys_dict_data
(dict_code        bigint(20)      not null auto_increment    comment '字典编码',dict_sort        int(4)          default 0                  comment '字典排序',dict_label       varchar(100)    default ''                 comment '字典标签',dict_value       varchar(100)    default ''                 comment '字典键值',dict_type        varchar(100)    default ''                 comment '字典类型',css_class        varchar(100)    default null               comment '样式属性(其他样式扩展)',list_class       varchar(100)    default null               comment '表格回显样式',is_default       char(1)         default 'N'                comment '是否默认(Y是 N否)',status           char(1)         default '0'                comment '状态(0正常 1停用)',create_by        varchar(64)     default ''                 comment '创建者',create_time      datetime                                   comment '创建时间',update_by        varchar(64)     default ''                 comment '更新者',update_time      datetime                                   comment '更新时间',remark           varchar(500)    default null               comment '备注',primary key (dict_code)
) engine=innodb auto_increment=100 comment = '字典数据表';insert into sys_dict_data values(1,  1,  '男',       '0',       'sys_user_sex',        '',   '',        'Y', '0', 'admin', sysdate(), '', null, '性别男');
insert into sys_dict_data values(2,  2,  '女',       '1',       'sys_user_sex',        '',   '',        'N', '0', 'admin', sysdate(), '', null, '性别女');
insert into sys_dict_data values(3,  3,  '未知',     '2',       'sys_user_sex',        '',   '',        'N', '0', 'admin', sysdate(), '', null, '性别未知');
insert into sys_dict_data values(4,  1,  '显示',     '0',       'sys_show_hide',       '',   'primary', 'Y', '0', 'admin', sysdate(), '', null, '显示菜单');
insert into sys_dict_data values(5,  2,  '隐藏',     '1',       'sys_show_hide',       '',   'danger',  'N', '0', 'admin', sysdate(), '', null, '隐藏菜单');
insert into sys_dict_data values(6,  1,  '正常',     '0',       'sys_normal_disable',  '',   'primary', 'Y', '0', 'admin', sysdate(), '', null, '正常状态');
insert into sys_dict_data values(7,  2,  '停用',     '1',       'sys_normal_disable',  '',   'danger',  'N', '0', 'admin', sysdate(), '', null, '停用状态');
insert into sys_dict_data values(8,  1,  '正常',     '0',       'sys_job_status',      '',   'primary', 'Y', '0', 'admin', sysdate(), '', null, '正常状态');
insert into sys_dict_data values(9,  2,  '暂停',     '1',       'sys_job_status',      '',   'danger',  'N', '0', 'admin', sysdate(), '', null, '停用状态');
insert into sys_dict_data values(10, 1,  '默认',     'DEFAULT', 'sys_job_group',       '',   '',        'Y', '0', 'admin', sysdate(), '', null, '默认分组');
insert into sys_dict_data values(11, 2,  '系统',     'SYSTEM',  'sys_job_group',       '',   '',        'N', '0', 'admin', sysdate(), '', null, '系统分组');
insert into sys_dict_data values(12, 1,  '是',       'Y',       'sys_yes_no',          '',   'primary', 'Y', '0', 'admin', sysdate(), '', null, '系统默认是');
insert into sys_dict_data values(13, 2,  '否',       'N',       'sys_yes_no',          '',   'danger',  'N', '0', 'admin', sysdate(), '', null, '系统默认否');
insert into sys_dict_data values(14, 1,  '通知',     '1',       'sys_notice_type',     '',   'warning', 'Y', '0', 'admin', sysdate(), '', null, '通知');
insert into sys_dict_data values(15, 2,  '公告',     '2',       'sys_notice_type',     '',   'success', 'N', '0', 'admin', sysdate(), '', null, '公告');
insert into sys_dict_data values(16, 1,  '正常',     '0',       'sys_notice_status',   '',   'primary', 'Y', '0', 'admin', sysdate(), '', null, '正常状态');
insert into sys_dict_data values(17, 2,  '关闭',     '1',       'sys_notice_status',   '',   'danger',  'N', '0', 'admin', sysdate(), '', null, '关闭状态');
insert into sys_dict_data values(18, 99, '其他',     '0',       'sys_oper_type',       '',   'info',    'N', '0', 'admin', sysdate(), '', null, '其他操作');
insert into sys_dict_data values(19, 1,  '新增',     '1',       'sys_oper_type',       '',   'info',    'N', '0', 'admin', sysdate(), '', null, '新增操作');
insert into sys_dict_data values(20, 2,  '修改',     '2',       'sys_oper_type',       '',   'info',    'N', '0', 'admin', sysdate(), '', null, '修改操作');
insert into sys_dict_data values(21, 3,  '删除',     '3',       'sys_oper_type',       '',   'danger',  'N', '0', 'admin', sysdate(), '', null, '删除操作');
insert into sys_dict_data values(22, 4,  '授权',     '4',       'sys_oper_type',       '',   'primary', 'N', '0', 'admin', sysdate(), '', null, '授权操作');
insert into sys_dict_data values(23, 5,  '导出',     '5',       'sys_oper_type',       '',   'warning', 'N', '0', 'admin', sysdate(), '', null, '导出操作');
insert into sys_dict_data values(24, 6,  '导入',     '6',       'sys_oper_type',       '',   'warning', 'N', '0', 'admin', sysdate(), '', null, '导入操作');
insert into sys_dict_data values(25, 7,  '强退',     '7',       'sys_oper_type',       '',   'danger',  'N', '0', 'admin', sysdate(), '', null, '强退操作');
insert into sys_dict_data values(26, 8,  '生成代码', '8',       'sys_oper_type',       '',   'warning', 'N', '0', 'admin', sysdate(), '', null, '生成操作');
insert into sys_dict_data values(27, 9,  '清空数据', '9',       'sys_oper_type',       '',   'danger',  'N', '0', 'admin', sysdate(), '', null, '清空操作');
insert into sys_dict_data values(28, 1,  '成功',     '0',       'sys_common_status',   '',   'primary', 'N', '0', 'admin', sysdate(), '', null, '正常状态');
insert into sys_dict_data values(29, 2,  '失败',     '1',       'sys_common_status',   '',   'danger',  'N', '0', 'admin', sysdate(), '', null, '停用状态');-- ----------------------------
--  13、参数配置表
-- ----------------------------
DROP TABLE IF EXISTS `sys_config`;
CREATE TABLE `sys_config` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',config_name       varchar(100)    default ''                 comment '参数名称',config_key        varchar(100)    default ''                 comment '参数键名',config_value      varchar(500)    default ''                 comment '参数键值',config_type       char(1)         default 'N'                comment '系统内置(Y是 N否)',`create_by` varchar(50) DEFAULT NULL COMMENT '创建人',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`last_update_by` varchar(50) DEFAULT NULL COMMENT '更新人',`last_update_time` datetime DEFAULT NULL COMMENT '更新时间',`remarks` varchar(255) DEFAULT NULL COMMENT '备注信息',`value` varchar(100) NOT NULL COMMENT '数据值',`label` varchar(100) NOT NULL COMMENT '标签名',`type` varchar(100) NOT NULL COMMENT '类型',`description` varchar(100) NOT NULL COMMENT '描述',`sort` decimal(10,0) NOT NULL COMMENT '排序(升序)',`del_flag` tinyint(4) DEFAULT '0' COMMENT '是否删除  -1:已删除  0:正常',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='系统配置表';-- ----------------------------
-- Records of sys_config
-- ----------------------------
insert into sys_config values(1, '主框架页-默认皮肤样式名称',     'sys.index.skinName',            'skin-blue',     'Y', 'admin', sysdate(), '', null, '蓝色 skin-blue、绿色 skin-green、紫色 skin-purple、红色 skin-red、黄色 skin-yellow','','','','null',0,0  );
insert into sys_config values(2, '用户管理-账号初始密码',         'sys.user.initPassword',         '123456',        'Y', 'admin', sysdate(), '', null, '初始化密码 123456','','','','null',0,0 );
insert into sys_config values(3, '主框架页-侧边栏主题',           'sys.index.sideTheme',           'theme-dark',    'Y', 'admin', sysdate(), '', null, '深色主题theme-dark,浅色主题theme-light' ,'','','','null',0,0 );
insert into sys_config values(4, '账号自助-验证码开关',           'sys.account.captchaEnabled',    'true',          'Y', 'admin', sysdate(), '', null, '是否开启验证码功能(true开启,false关闭)','','','','null',0,0 );
insert into sys_config values(5, '账号自助-是否开启用户注册功能', 'sys.account.registerUser',      'false',         'Y', 'admin', sysdate(), '', null, '是否开启注册用户功能(true开启,false关闭)','','','','null',0,0 );
INSERT INTO `sys_config` VALUES (6,'','','','', 'admin', '2018-09-23 19:52:54',null, null, '主题色', '#14889A', 'theme', 'color', '主题色', '0',  '0');-- ----------------------------
-- 14、系统访问记录
-- ----------------------------
drop table if exists sys_logininfor;
create table sys_logininfor (info_id        bigint(20)     not null auto_increment   comment '访问ID',user_name      varchar(50)    default ''                comment '用户账号',ipaddr         varchar(128)   default ''                comment '登录IP地址',login_location varchar(255)   default ''                comment '登录地点',browser        varchar(50)    default ''                comment '浏览器类型',os             varchar(50)    default ''                comment '操作系统',status         char(1)        default '0'               comment '登录状态(0成功 1失败)',msg            varchar(255)   default ''                comment '提示消息',login_time     datetime                                 comment '访问时间',primary key (info_id)
) engine=innodb auto_increment=100 comment = '系统访问记录';-- ----------------------------
-- 15、定时任务调度表
-- ----------------------------
drop table if exists sys_job;
create table sys_job (job_id              bigint(20)    not null auto_increment    comment '任务ID',job_name            varchar(64)   default ''                 comment '任务名称',job_group           varchar(64)   default 'DEFAULT'          comment '任务组名',invoke_target       varchar(500)  not null                   comment '调用目标字符串',cron_expression     varchar(255)  default ''                 comment 'cron执行表达式',misfire_policy      varchar(20)   default '3'                comment '计划执行错误策略(1立即执行 2执行一次 3放弃执行)',concurrent          char(1)       default '1'                comment '是否并发执行(0允许 1禁止)',status              char(1)       default '0'                comment '状态(0正常 1暂停)',create_by           varchar(64)   default ''                 comment '创建者',create_time         datetime                                 comment '创建时间',update_by           varchar(64)   default ''                 comment '更新者',update_time         datetime                                 comment '更新时间',remark              varchar(500)  default ''                 comment '备注信息',primary key (job_id, job_name, job_group)
) engine=innodb auto_increment=100 comment = '定时任务调度表';insert into sys_job values(1, '系统默认(无参)', 'DEFAULT', 'ryTask.ryNoParams',        '0/10 * * * * ?', '3', '1', '1', 'admin', sysdate(), '', null, '');
insert into sys_job values(2, '系统默认(有参)', 'DEFAULT', 'ryTask.ryParams(\'ry\')',  '0/15 * * * * ?', '3', '1', '1', 'admin', sysdate(), '', null, '');
insert into sys_job values(3, '系统默认(多参)', 'DEFAULT', 'ryTask.ryMultipleParams(\'ry\', true, 2000L, 316.50D, 100)',  '0/20 * * * * ?', '3', '1', '1', 'admin', sysdate(), '', null, '');-- ----------------------------
-- 16、定时任务调度日志表
-- ----------------------------
drop table if exists sys_job_log;
create table sys_job_log (job_log_id          bigint(20)     not null auto_increment    comment '任务日志ID',job_name            varchar(64)    not null                   comment '任务名称',job_group           varchar(64)    not null                   comment '任务组名',invoke_target       varchar(500)   not null                   comment '调用目标字符串',job_message         varchar(500)                              comment '日志信息',status              char(1)        default '0'                comment '执行状态(0正常 1失败)',exception_info      varchar(2000)  default ''                 comment '异常信息',create_time         datetime                                  comment '创建时间',primary key (job_log_id)
) engine=innodb comment = '定时任务调度日志表';-- ----------------------------
-- 17、通知公告表
-- ----------------------------
drop table if exists sys_notice;
create table sys_notice (notice_id         int(4)          not null auto_increment    comment '公告ID',notice_title      varchar(50)     not null                   comment '公告标题',notice_type       char(1)         not null                   comment '公告类型(1通知 2公告)',notice_content    longblob        default null               comment '公告内容',status            char(1)         default '0'                comment '公告状态(0正常 1关闭)',create_by         varchar(64)     default ''                 comment '创建者',create_time       datetime                                   comment '创建时间',update_by         varchar(64)     default ''                 comment '更新者',update_time       datetime                                   comment '更新时间',remark            varchar(255)    default null               comment '备注',primary key (notice_id)
) engine=innodb auto_increment=10 comment = '通知公告表';-- ----------------------------
-- 初始化-公告信息表数据
-- ----------------------------
insert into sys_notice values('1', '温馨提醒:2018-07-01 若依新版本发布啦', '2', '新版本内容', '0', 'admin', sysdate(), '', null, '管理员');
insert into sys_notice values('2', '维护通知:2018-07-01 若依系统凌晨维护', '1', '维护内容',   '0', 'admin', sysdate(), '', null, '管理员');-- ----------------------------
-- 18、代码生成业务表
-- ----------------------------
drop table if exists gen_table;
create table gen_table (table_id          bigint(20)      not null auto_increment    comment '编号',table_name        varchar(200)    default ''                 comment '表名称',table_comment     varchar(500)    default ''                 comment '表描述',sub_table_name    varchar(64)     default null               comment '关联子表的表名',sub_table_fk_name varchar(64)     default null               comment '子表关联的外键名',class_name        varchar(100)    default ''                 comment '实体类名称',tpl_category      varchar(200)    default 'crud'             comment '使用的模板(crud单表操作 tree树表操作)',package_name      varchar(100)                               comment '生成包路径',module_name       varchar(30)                                comment '生成模块名',business_name     varchar(30)                                comment '生成业务名',function_name     varchar(50)                                comment '生成功能名',function_author   varchar(50)                                comment '生成功能作者',gen_type          char(1)         default '0'                comment '生成代码方式(0zip压缩包 1自定义路径)',gen_path          varchar(200)    default '/'                comment '生成路径(不填默认项目路径)',options           varchar(1000)                              comment '其它生成选项',create_by         varchar(64)     default ''                 comment '创建者',create_time        datetime                                   comment '创建时间',update_by         varchar(64)     default ''                 comment '更新者',update_time       datetime                                   comment '更新时间',remark            varchar(500)    default null               comment '备注',primary key (table_id)
) engine=innodb auto_increment=1 comment = '代码生成业务表';-- ----------------------------
-- 19、代码生成业务表字段
-- ----------------------------
drop table if exists gen_table_column;
create table gen_table_column (column_id         bigint(20)      not null auto_increment    comment '编号',table_id          varchar(64)                                comment '归属表编号',column_name       varchar(200)                               comment '列名称',column_comment    varchar(500)                               comment '列描述',column_type       varchar(100)                               comment '列类型',java_type         varchar(500)                               comment 'JAVA类型',java_field        varchar(200)                               comment 'JAVA字段名',is_pk             char(1)                                    comment '是否主键(1是)',is_increment      char(1)                                    comment '是否自增(1是)',is_required       char(1)                                    comment '是否必填(1是)',is_insert         char(1)                                    comment '是否为插入字段(1是)',is_edit           char(1)                                    comment '是否编辑字段(1是)',is_list           char(1)                                    comment '是否列表字段(1是)',is_query          char(1)                                    comment '是否查询字段(1是)',query_type        varchar(200)    default 'EQ'               comment '查询方式(等于、不等于、大于、小于、范围)',html_type         varchar(200)                               comment '显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)',dict_type         varchar(200)    default ''                 comment '字典类型',sort              int                                        comment '排序',create_by         varchar(64)     default ''                 comment '创建者',create_time      datetime                                   comment '创建时间',update_by         varchar(64)     default ''                 comment '更新者',update_time       datetime                                   comment '更新时间',primary key (column_id)
) engine=innodb auto_increment=1 comment = '代码生成业务表字段';

使用Knife4j

引入依赖

   <!--knife4j组件用来自定义swagger页面--><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.3</version></dependency>
<!--生产配置元数据--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency><!--操作配置文件的工具包--><dependency><groupId>commons-configuration</groupId><artifactId>commons-configuration</artifactId><version>${commons.configuration.version}</version></dependency>

Swagger配置

使用并编写Swagger属性类

这样可以通过配置文件对Swagger进行配置,简单省事,不用改代码


import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;import java.util.ArrayList;
import java.util.List;/**
* @description: 映射配置文件Swagger基本属性*/
@Data
@Configuration
@Component
@ConfigurationProperties("swagger")
public class SwaggerProperties {
/**
* 标题
*/
private String title;/**
* 文档描述
*/
private String description;/**
* 项目路径
*/
private String termsOfServiceUrl;/**
* 作者
*/
private String authorName;/**
* 邮箱
*/
private String authorEmail;/**
* 作者主页
*/
private String authorUrl;/**
* 版本
*/
private String version;/**
* 是否开启swagger
*/
private Boolean enabled;/**
* swagger会解析的包路径
**/
private String basePackage = "";/**
* swagger会解析的url规则
**/
private List<String> basePath = new ArrayList<>();/**
* 在basePath基础上需要排除的url规则
**/
private List<String> excludePath = new ArrayList<>();/**
* 需要排除的服务
*/
private List<String> ignoreProviders = new ArrayList<>();/**
* 许可证
**/
private String license = "";/**
* 许可证URL
**/
private String licenseUrl = "";/**
* host信息
**/
private String host = "";/**
* 联系人信息
*/
private Contact contact = new Contact();/**
* 全局统一鉴权配置
**/
private Authorization authorization = new Authorization();@Data
@NoArgsConstructor
public static class Contact {/**
* 联系人
**/
private String name = "";/**
* 联系人url
**/
private String url = "";/**
* 联系人email
**/
private String email = "";}@Data
@NoArgsConstructor
public static class Authorization {/**
* 鉴权策略ID,需要和SecurityReferences ID保持一致
*/
private String name = "";/**
* 需要开启鉴权URL的正则
*/
private String authRegex = "^.*$";/**
* 鉴权作用域列表
*/
private List<AuthorizationScope> authorizationScopeList = new ArrayList<>();private List<String> tokenUrlList = new ArrayList<>();}@Data
@NoArgsConstructor
public static class AuthorizationScope {/**
* 作用域名称
*/
private String scope = "";/**
* 作用域描述
*/
private String description = "";}
}

自定义配置文件


import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.builders.RequestParameterBuilder;
import springfox.documentation.oas.annotations.EnableOpenApi;
import springfox.documentation.schema.ScalarType;
import springfox.documentation.service.*;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spi.service.contexts.SecurityContext;
import springfox.documentation.spring.web.plugins.ApiSelectorBuilder;
import springfox.documentation.spring.web.plugins.Docket;import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.function.Predicate;@Slf4j
@Configuration
@EnableAutoConfiguration
@EnableOpenApi//开启swagger,当前版本为3 所以注解和2@EnableSwagger2的版本不同
//或者直接省略prefix,那么直接写为swagger.enabled,当配置中存在swagger.enabled生效,matchIfMissing = true默认生效
@ConditionalOnProperty(prefix = "swagger",name = "enabled", matchIfMissing = true)
@EnableKnife4j
@Import(BeanValidatorPluginsConfiguration.class)
public class SwaggerAutoConfig {//默认的排除路径,排除Spring Boot默认的错误处理路径和端点(在解析的url规则之上)  /*/error,由于服务通常加前缀,所以前面/*忽略前缀private static final List<String> DEFAULT_EXCLUDE_PATH = Arrays.asList("/error","/actuator/**","/*/error");//swagger会解析的url规则private static final String BASE_PATH = "/**";@Autowiredprivate SwaggerProperties swaggerProperties;@Beanpublic Docket createRestApi() {// base-path处理if (swaggerProperties.getBasePath().isEmpty()) {swaggerProperties.getBasePath().add(BASE_PATH);}// exclude-path处理if (swaggerProperties.getExcludePath().isEmpty()) {swaggerProperties.getExcludePath().addAll(DEFAULT_EXCLUDE_PATH);}//需要排除的urlList<Predicate<String>> excludePath = new ArrayList<>();swaggerProperties.getExcludePath().forEach(path -> excludePath.add(PathSelectors.ant(path)));// 版本请求头处理List<RequestParameter> pars = new ArrayList<>();RequestParameterBuilder versionPar = new RequestParameterBuilder().description("灰度路由版本信息").in(ParameterType.HEADER).name("VERSION").required(false).query(param -> param.model(model -> model.scalarModel(ScalarType.STRING)));pars.add(versionPar.build());ApiSelectorBuilder builder = new Docket(DocumentationType.OAS_30).host(swaggerProperties.getHost()).apiInfo(apiInfo()).globalRequestParameters(pars).select().apis(RequestHandlerSelectors.basePackage(swaggerProperties.getBasePackage()));swaggerProperties.getBasePath().forEach(p -> builder.paths(PathSelectors.ant(p)));swaggerProperties.getExcludePath().forEach(p -> builder.paths(PathSelectors.ant(p).negate()));return builder.build().securitySchemes(Collections.singletonList(securitySchema())).securityContexts(Collections.singletonList(securityContext())).pathMapping("/");}/*** 配置默认的全局鉴权策略的开关,通过正则表达式进行匹配;默认匹配所有URL* @return*/private SecurityContext securityContext() {return SecurityContext.builder().securityReferences(defaultAuth()).build();}/*** 默认的全局鉴权策略* @return*/private List<SecurityReference> defaultAuth() {ArrayList<AuthorizationScope> authorizationScopeList = new ArrayList<>();swaggerProperties.getAuthorization().getAuthorizationScopeList().forEach(authorizationScope -> authorizationScopeList.add(new AuthorizationScope(authorizationScope.getScope(), authorizationScope.getDescription())));AuthorizationScope[] authorizationScopes = new AuthorizationScope[authorizationScopeList.size()];return Collections.singletonList(SecurityReference.builder().reference(swaggerProperties.getAuthorization().getName()).scopes(authorizationScopeList.toArray(authorizationScopes)).build());}private OAuth securitySchema() {ArrayList<AuthorizationScope> authorizationScopeList = new ArrayList<>();swaggerProperties.getAuthorization().getAuthorizationScopeList().forEach(authorizationScope -> authorizationScopeList.add(new AuthorizationScope(authorizationScope.getScope(), authorizationScope.getDescription())));ArrayList<GrantType> grantTypes = new ArrayList<>();swaggerProperties.getAuthorization().getTokenUrlList().forEach(tokenUrl -> grantTypes.add(new ResourceOwnerPasswordCredentialsGrant(tokenUrl)));return new OAuth(swaggerProperties.getAuthorization().getName(), authorizationScopeList, grantTypes);}private ApiInfo apiInfo() {return new ApiInfoBuilder().title(swaggerProperties.getTitle()).description(swaggerProperties.getDescription()).version(swaggerProperties.getVersion()).license(swaggerProperties.getLicense()).licenseUrl(swaggerProperties.getLicenseUrl()).termsOfServiceUrl(swaggerProperties.getTermsOfServiceUrl()).contact(new Contact(swaggerProperties.getContact().getName(),swaggerProperties.getContact().getUrl(),swaggerProperties.getContact().getEmail())).build();}}

如果要增加分组,多配置几个@Bean的内容:修改分组名以及扫描包的地址。
可以参考下面


import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;/**
* @author hanyulin
* @apiNote 轻量级的Swagger生成Api文档
* @date 2021/10/28 11:15
*/
@Configuration
@EnableSwagger2WebMvc //该注解是Springfox-swagger框架提供的使用Swagger注解,该注解必须加
@EnableKnife4j  //该注解是knife4j提供的增强注解,Ui提供了例如动态参数、参数过滤、接口排序等增强功能,如果你想使用这些增强功能就必须加该注解,否则可以不用加
public class SwaggerConfig {/*** api的主页显示信息*/private static ApiInfo apiInfo;static {apiInfo = new ApiInfoBuilder().title("企业用户API接口").description("API接口文档").termsOfServiceUrl("http://www.hyl.com").contact(new Contact("helen", "http://www.helen.com", "helen@qq.com")).version("1.0").build();}@Beanpublic Docket api() {return new Docket(DocumentationType.OAS_30)// 配置分组名.groupName("api").apiInfo(apiInfo).select()// 设置扫描包的地址 : com.congruence.controller.apis(RequestHandlerSelectors.basePackage("com.congruence.power"))// 设置路径筛选 只扫描com.congruence.controller/test/下面的包// .paths(PathSelectors.ant("/test/**"))// com.hanliy.controller下的任何接口信息.paths(PathSelectors.any()).build();}// 如果要新增一个分组:api2@Beanpublic Docket api2() {return new Docket(DocumentationType.OAS_30)// 配置分组名.groupName("api2").apiInfo(apiInfo).select()// 设置扫描包的地址 : com.congruence.controller2.apis(RequestHandlerSelectors.basePackage("com.congruence.power")).paths(PathSelectors.any()).build();}}

启动类

import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springfox.documentation.oas.annotations.EnableOpenApi;@SpringBootApplication
//swagger3
@EnableOpenApi
//fnief4j
@EnableKnife4j
//swagger2
//@EnableSwagger2
public class SwaggerDemoApplication {public static void main(String[] args) {SpringApplication.run(SwaggerDemoApplication.class, args);}}

使用配置文件

swagger:#标题title: "Swagger使用示例"#文档描述description: "Swagger使用示例"#版本version: 1.0#许可证license: "www"#许可证URLlicenseUrl: http://com.yongyuankuaile.power#作者authorName: zyy#邮箱authorEmail: zyy@163.com#作者主页authorUrl: http://com.yongyuankuaile.power#地址terms-of-service-url: http://com.yongyuankuaile.power#swagger会解析的包路径basePackage: com.yongyuankuaile.power#联系人信息contact:#姓名name: zyy#邮箱email: zyy@163.com#地址url: http://yongyuankuaile.com#全局统一鉴权配置authorization:#联系人name: OAuth#需要开启鉴权URL的正则auth-regex: ^.*$#鉴权作用域列表authorization-scope-list:#作用域名称- scope: server#作用域描述description: server all#tokentoken-url-list:- http://${ GATEWAY_HOST:localhost }:${ GATEWAY-PORT:5000 }/auth/oauth/token
# knife开源的swagger ui配置
knife4j:# 开启增强配置enable: true#是否是生产环境,如果是生产环境会默认关闭swaggerproduction: false#开启Swagger的Basic认证功能,默认是falsebasic:enable: true# Basic认证用户名username: test# Basic认证密码password: test

使用knife4j

http://localhost:5000/doc.html

使用Druid

   <!--mysql连接--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><!--druid连接池--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.17</version></dependency>

修改application.properties文件

server:port: 7001
spring:datasource:name: druidDataSourcetype: com.alibaba.druid.pool.DruidDataSourcedruid:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/qx?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=falseusername: rootpassword: rootfilters: stat,wall,slf4j,config                  #配置监控统计拦截的filters,去掉后监控界面SQL无法进行统计,wall用于防火墙。max-active: 100            #最大连接数initial-size: 1            #初始化大小max-wait: 60000            #获取连接等待超时时间min-idle: 1                #最小连接数time-between-eviction-runs-millis: 60000         #间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒。min-evictable-idle-time-millis: 300000           #一个连接在池中最小生存的时间,单位是毫秒。validation-query: select 'x'test-while-idle: truetest-on-borrow: falsetest-on-return: falsepool-prepared-statements: truemax-pool-prepared-statement-per-connection-size: 20
logging:config: classpath:logback.xml
#    level:
#        com.springframe.festmon.dao: trace

config类
DruidConfig.java


import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import com.yongyuankuaile.product.druid.properties.DruidDataSourceProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import javax.servlet.Filter;
import javax.servlet.Servlet;
import javax.sql.DataSource;
import java.sql.SQLException;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;@Configuration
@EnableConfigurationProperties({DruidDataSourceProperties.class})
//@EnableConfigurationProperties注解用于导入上一步自定义的Druid的配置信息。
public class DruidConfig {@Autowiredprivate DruidDataSourceProperties properties;@Bean@ConditionalOnMissingBeanpublic DataSource druidDataSource() {DruidDataSource druidDataSource = new DruidDataSource();druidDataSource.setDriverClassName(properties.getDriverClassName());druidDataSource.setUrl(properties.getUrl());druidDataSource.setUsername(properties.getUsername());druidDataSource.setPassword(properties.getPassword());druidDataSource.setInitialSize(properties.getInitialSize());druidDataSource.setMinIdle(properties.getMinIdle());druidDataSource.setMaxActive(properties.getMaxActive());druidDataSource.setMaxWait(properties.getMaxWait());druidDataSource.setTimeBetweenEvictionRunsMillis(properties.getTimeBetweenEvictionRunsMillis());druidDataSource.setMinEvictableIdleTimeMillis(properties.getMinEvictableIdleTimeMillis());druidDataSource.setValidationQuery(properties.getValidationQuery());druidDataSource.setTestWhileIdle(properties.isTestWhileIdle());druidDataSource.setTestOnBorrow(properties.isTestOnBorrow());druidDataSource.setTestOnReturn(properties.isTestOnReturn());druidDataSource.setPoolPreparedStatements(properties.isPoolPreparedStatements());druidDataSource.setMaxPoolPreparedStatementPerConnectionSize(properties.getMaxPoolPreparedStatementPerConnectionSize());try {druidDataSource.setFilters(properties.getFilters());druidDataSource.init();} catch (SQLException e) {e.printStackTrace();}return druidDataSource;}/*** 配置 Druid 监控管理后台的Servlet;* 内置 Servler 容器时没有web.xml文件,所以使用 Spring Boot 的注册 Servlet 方式* public ServletRegistrationBean druidServlet()相当于WebServlet配置。*/@Bean@ConditionalOnMissingBeanpublic ServletRegistrationBean<Servlet> druidServlet() {ServletRegistrationBean<Servlet> servletServletRegistrationBean = new ServletRegistrationBean<Servlet>(new StatViewServlet(), "/druid/*");//白名单servletServletRegistrationBean.addInitParameter("allow", "127.0.0.1"); //表示只有本机可以访问,为空或者为null时,表示允许所有访问//ip黑名单(存在共同时,deny优先于allow)//如果满足deny的话会提示,sorry, you are not permitted to view this pageservletServletRegistrationBean.addInitParameter("deny", "172.13.13.31");//登录查看信息的账号和密码,用于登录Druid监控后台servletServletRegistrationBean.addInitParameter("loginUsername", "admin");servletServletRegistrationBean.addInitParameter("loginPassword", "admin");//是否能重置数据servletServletRegistrationBean.addInitParameter("resetEnable", "true");return servletServletRegistrationBean;}/*** 配置 Druid 监控 之 web 监控的 filter* WebStatFilter:用于配置Web和Druid数据源之间的管理关联监控统计* public FilterRegistrationBean filterRegistrationBean()相当于Web Filter配置。*/@Bean@ConditionalOnMissingBeanpublic FilterRegistrationBean<Filter> filterFilterRegistrationBean() {FilterRegistrationBean<Filter> bean = new FilterRegistrationBean<Filter>();bean.setFilter(new WebStatFilter());//exclusions:设置哪些请求进行过滤排除掉,从而不进行统计Map<String, String> initParams = new HashMap<>();initParams.put("exclusions", "*.js,*.css,/druid/*");bean.setInitParameters(initParams);//"/*" 表示过滤所有请求bean.setUrlPatterns(Collections.singletonList("/*"));return bean;}}

properties


import org.springframework.boot.context.properties.ConfigurationProperties;@ConfigurationProperties(prefix = "spring.datasource.druid") //扫描配置类的属性前缀public class DruidDataSourceProperties {// jdbcprivate String driverClassName;private String url;private String username;private String password;// jdbc connection poolprivate int initialSize;private int minIdle;private int maxActive = 100;private long maxWait;private long timeBetweenEvictionRunsMillis;private long minEvictableIdleTimeMillis;private String validationQuery;private boolean testWhileIdle;private boolean testOnBorrow;private boolean testOnReturn;private boolean poolPreparedStatements;private int maxPoolPreparedStatementPerConnectionSize;// filterprivate String filters;public String getDriverClassName() {return driverClassName;}public void setDriverClassName(String driverClassName) {this.driverClassName = driverClassName;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public int getInitialSize() {return initialSize;}public void setInitialSize(int initialSize) {this.initialSize = initialSize;}public int getMinIdle() {return minIdle;}public void setMinIdle(int minIdle) {this.minIdle = minIdle;}public int getMaxActive() {return maxActive;}public void setMaxActive(int maxActive) {this.maxActive = maxActive;}public long getMaxWait() {return maxWait;}public void setMaxWait(long maxWait) {this.maxWait = maxWait;}public long getTimeBetweenEvictionRunsMillis() {return timeBetweenEvictionRunsMillis;}public void setTimeBetweenEvictionRunsMillis(long timeBetweenEvictionRunsMillis) {this.timeBetweenEvictionRunsMillis = timeBetweenEvictionRunsMillis;}public long getMinEvictableIdleTimeMillis() {return minEvictableIdleTimeMillis;}public void setMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis) {this.minEvictableIdleTimeMillis = minEvictableIdleTimeMillis;}public String getValidationQuery() {return validationQuery;}public void setValidationQuery(String validationQuery) {this.validationQuery = validationQuery;}public boolean isTestWhileIdle() {return testWhileIdle;}public void setTestWhileIdle(boolean testWhileIdle) {this.testWhileIdle = testWhileIdle;}public boolean isTestOnBorrow() {return testOnBorrow;}public void setTestOnBorrow(boolean testOnBorrow) {this.testOnBorrow = testOnBorrow;}public boolean isTestOnReturn() {return testOnReturn;}public void setTestOnReturn(boolean testOnReturn) {this.testOnReturn = testOnReturn;}public boolean isPoolPreparedStatements() {return poolPreparedStatements;}public void setPoolPreparedStatements(boolean poolPreparedStatements) {this.poolPreparedStatements = poolPreparedStatements;}public int getMaxPoolPreparedStatementPerConnectionSize() {return maxPoolPreparedStatementPerConnectionSize;}public void setMaxPoolPreparedStatementPerConnectionSize(int maxPoolPreparedStatementPerConnectionSize) {this.maxPoolPreparedStatementPerConnectionSize = maxPoolPreparedStatementPerConnectionSize;}public String getFilters() {return filters;}public void setFilters(String filters) {this.filters = filters;}}

配置日志管理
新建logback.xml文件
大家可以根据项目修改LOG_HOME的value值,还有开发环境建议把下面这个注释掉,使用控制台输出日志,方便定位,真实环境,把控制台注释挂掉,改为日志文件输出

logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--dev env-->
<configuration><!--fileError对应error级别,文件名以log-error-xxx.log形式命名fileWarn对应warn级别,文件名以log-warn-xxx.log形式命名fileInfo对应info级别,文件名以log-info-xxx.log形式命名fileDebug对应debug级别,文件名以log-debug-xxx.log形式命名stdout将日志信息输出到控制上,为方便开发测试使用--><contextName>data_server</contextName><property name="LOG_HOME" value="wyq_log" /><property name="log.maxHistory" value="1" /><property name="log.lever" value="info" /><appender name="fileError" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 正在记录的日志文件的路径及文件名 --><file>${LOG_HOME}/log_error.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_HOME}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern><MaxHistory>${log.maxHistory}</MaxHistory><!-- 配置日志文件不能超过100M,若超过100M,日志文件会以索引0开始--><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><!-- 追加方式记录日志 --><append>true</append><!-- 日志文件的格式 --><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n</pattern><!--<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>--><charset>utf-8</charset></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>error</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><appender name="fileWarn" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_HOME}/log_warn.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_HOME}/warn/log-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern><MaxHistory>${log.maxHistory}</MaxHistory><!-- 配置日志文件不能超过100M,若超过100M,日志文件会以索引0开始--><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><!-- 追加方式记录日志 --><append>true</append><!-- 日志文件的格式 --><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n</pattern><!--<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>--><charset>utf-8</charset></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>warn</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><appender name="fileInfo" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_HOME}/log_info.log</file><!-- 日志记录器的滚动策略,按日期,按大小记录 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_HOME}/info/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern><MaxHistory>${log.maxHistory}</MaxHistory><!-- 配置日志文件不能超过100M,若超过100M,日志文件会以索引0开始--><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><!-- 追加方式记录日志 --><append>true</append><!-- 日志文件的格式 --><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n</pattern><!--<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>--><charset>utf-8</charset></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>info</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><!--encoder 默认配置为PatternLayoutEncoder--><encoder><!--<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n</pattern>--><pattern>%date{yyyy-MM-dd HH:mm:ss} | %highlight(%p) | %boldYellow(%c) | %M:%boldGreen(%L) | %m%n</pattern><!--<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>--><charset>utf-8</charset></encoder></appender><logger name="org.springframework" level="${log.lever}" /><!-- 生产环境下,将此级别配置为适合的级别,以免日志文件太多或影响程序性能 --><root level="INFO"><!--<appender-ref ref="fileError" /><appender-ref ref="fileWarn" /><appender-ref ref="fileInfo" />--><appender-ref ref="STDOUT" /></root>
</configuration>

打开druid

http://localhost:5000/druid/index.html

权限管理后端篇(一)之创建权限管理表引入knife4j和Druid数据源相关推荐

  1. Vue实战篇四:创建多步骤表单

    系列文章目录 Vue基础篇一:编写第一个Vue程序 Vue基础篇二:Vue组件的核心概念 Vue基础篇三:Vue的计算属性与侦听器 Vue基础篇四:Vue的生命周期(秒杀案例实战) Vue基础篇五:V ...

  2. 权限管理后端篇(四)之java实现验证码

    验证码的作用 防止恶意破解密码.刷票.论坛灌水.刷页. 有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登录尝试,实际上使用验证码是现在很多网站通行的方式(比如招商银行的网上个人银 ...

  3. Spring Boot + Spring Cloud 实现权限管理系统 后端篇(一):Kitty 系统介绍

    在线演示 演示地址:http://139.196.87.48:9002/kitty 用户名:admin 密码:admin 温馨提示: 有在演示环境删除数据的童鞋们,如果可以的话,麻烦动动小指,右键头像 ...

  4. Vue + Element UI 实现权限管理系统 前端篇(八):管理应用状态

    使用 Vuex 管理应用状态 1. 引入背景 像先前我们是有导航菜单栏收缩和展开功能的,但是因为组件封装的原因,隐藏按钮在头部组件,而导航菜单在导航菜单组件,这样就涉及到了组件收缩状态的共享问题.收缩 ...

  5. KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机

    一 .KVM 简介 KVM (名称来自英语: Kernel-basedVirtual Machine 的缩写,即基于内核的虚拟机) , 是一种用于Linux内核中的虚拟化基础设施,可以将Linux内核 ...

  6. 研发管理 - 工具篇

    研发管理-工具篇 主要分为总体(研发)管理.代码研发管理.代码检测管理.系统发版管理几个层面: 一.总体管理层面 2018年我们遵循PDCA质量管理模式,配套的管理工具应该满足我们管理期望.管理工具应 ...

  7. mysql 基础篇(二) 账号、权限管理

    mysql 基础篇(二) 账号.权限管理.备份与还原 建立账号密码: Grant all on test.* to "cj"@"localhost" ident ...

  8. python通用权限管理框架图_通用权限管理设计篇_设计模式

    摘要: 本文讲的是通用权限管理设计篇_设计模式, 博客地址:http://www.blogjava.net/amigoxie/  一.引言        因为做过的一些系统的权限管理的功能虽然在逐步完 ...

  9. linux 用户创建、管理、权限分配

    (1)su与sudo su:通过su可以在用户之间切换,如果超级权限用户root向普通或虚拟用户切换不需要密码,什么是权力?这就是!而普通用户切换到其它任何用户都需要密码验证: sudo: sudo扮 ...

最新文章

  1. ReentrantReadWriteLock读写锁的使用
  2. 像癌症一样传播:世界首个PLC病毒问世
  3. 个人博客网站的设计与实现_新手建立个人博客网站后如何提高回访率?
  4. Linux静态库运行找不到lc,创建和使用静态库(问题:undefined reference)
  5. CSS的BEM命名规范
  6. 00002-微信小游戏--触摸事件
  7. Win10怎么合并磁盘分区 合并磁盘的操作方法
  8. ATR-CKN算法的研究与实现
  9. 第四届橙瓜网络文学奖20年十佳言情大神天下归元暂时排第三名
  10. 好书推荐 | 2020 年读过的这些好书,建议收藏!
  11. 鼠标计算机无法识别,计算机无法识别usb鼠标
  12. wamp出现拒绝访问
  13. GST: Grouped Spatial-Temporal Aggregation for Efficient Action Recognition 论文阅读
  14. 【matlab图像处理笔记5】【图像变换】(四)图像的正交变换
  15. 图的遍历(BFS、DFS)
  16. 西门子PLC通过PROFINET控制其他厂商变频器
  17. 出国旅游入乡随俗 看看各国怎么付小费
  18. 分数化成有限小数的方法_分数化成小数最简单的方法就是直接用分子除以分母...
  19. xtu1405世界杯
  20. 用python画lgx的图_[难度4]MOD教程之Python语言在Module System里的简单应用

热门文章

  1. Elasticsearch Kibana Filebeat开启SSL通信
  2. 自己对PID一些学习总结
  3. ip-guard如果服务器 IP 地址或机器名变更之后对客户端或控制台会有影响吗?
  4. h5在ios系统里调用微信jsdk失败
  5. 微信小程序weui在线入门教程-WeUi操作反馈-actionsheet弹出式菜单
  6. Vue通过render渲染$Notice
  7. 炎炎夏日 已过 ,博客 从新开始
  8. 国密gmssl命令行生成SM2证书
  9. 细数网易云音乐上那些适合开车时听的歌单。
  10. 江苏中理网络科技有限公司介绍