📝 v0.0.5 更新日志 & 更新sql

This commit is contained in:
b2baccline
2020-09-18 17:00:27 +08:00
parent e413510dad
commit bd22c93fa0
7 changed files with 397 additions and 167 deletions

View File

@@ -4,13 +4,66 @@
## [Unreleased]
- Lov 支持
- 全局数据校验支持
- OSS starter 修改使用 AWS S3
## [0.0.5]
### Added
- Lov 模块
- 字典相关
- feat: DictItemVO 新增 id 属性
- feat: 字典项新增 attributes 属性,用于定制额外的非必须属性,如颜色等供前端使用
### Changed
- refactor: ApplicationContextUtil 更名为 SpringUtil
- refactor: LogUtil#isMultipart 去除只判断 POST 请求的限制
- 全局异常&异常通知
- fix: 修复异常通知 message 为 null 时导致的异常
- fix: 修复类校验失败时,无法正常返回错误信息的
- feat: 异常通知添加 hostname 和 ip 信息
- fix: 捕获空指针异常时,会导致异常通知空指针的问题
- fix: 异常通知 cpu 占用过高问题
- feat: 添加忽略指定异常类的配置
- refactor: 优化钉钉通知的http请求方式
- style: 通知信息中的英文冒号转为中文冒号
- refactor: 除未知异常外,取消全局异常捕获时的异常打印,如需详细堆栈可以在异常处理类中进行处理
- feat: AbstractQueueThread#preProcessor 修改为 public便于子类重写
- fix: 修复包装 RequestBody 导致表单数据无法正常读取的bug
- fix: 修复在前台页面新建权限时无法指定主键 Id 的异常
- feat: extend-mybatis-plus 中批量插入方法,将生产的主键回填到实体中
- refactor: 登陆日志和操作日志分离
- fix: 修复用户登陆后将密文密码返回前台的安全隐患问题
- style: 代码生成器样式微调
### Dependency
- Bump spring-boot from 2.3.1 to 2.3.4
- Bump mybatis-plus from 3.3.2 to 3.4.0
- Bump hutool from 5.3.10 to 5.4.1
- Bump spring-java-format from 0.0.22 to 0.0.25
## [0.0.4]
### Added
- 新增 kafka stater 模块
- 新增 mybatis-extends 扩展,添加批量插入方法
- accesslog 提供 responseWrapper方便记录响应数据
@@ -19,6 +72,7 @@
- 新增 Security 是否开启禁止 iframe 嵌入的配置控制
### Changed
- AbstractQueueThread 提高默认的批处理大小
- 代码生成器移除加载动态数据源时指定的 driverClassName
- 移除 admin-core 默认引入的 swagger 依赖,现在用户可以在自己的项目中选择引入
@@ -31,17 +85,20 @@
- 字典添加值类型字段,便于前端回显,以及后续校验控制
### Dependency
- swagger up to 1.5.21
- dynamic-datasource up to 3.2.0
- spring-boot-admin up to 2.2.4
- easyexcel up to 2.2.6
## [0.0.3] - 2020-07-06
### Added
- 重构代码生成器
- 前端使用 ant-design-vue 重构,支持单体应用以及前后端分离两种部署方式
- 多数据源支持,动态添加删除,生成时选择对应数据源进行代码生成
- 代码生成结构调整,支持自定义代码生成结构
@@ -91,28 +148,6 @@
- spring-boot 版本升级至 2.3.1.RELEASE
- spring-security-oauth2 升级至 2.3.8.RELEASE
### SQL
```sql
# 逻辑删除字段修改为bigint
ALTER TABLE `ballcat`.`sys_user`
MODIFY COLUMN `deleted` bigint(20) NULL DEFAULT NULL COMMENT '逻辑删除标识,未删除为 0已删除为删除时间' AFTER `type`;
ALTER TABLE `ballcat`.`sys_role`
MODIFY COLUMN `deleted` bigint(20) NULL DEFAULT NULL COMMENT '逻辑删除标识,未删除为 0已删除为删除时间' AFTER `note`;
ALTER TABLE `ballcat`.`sys_permission`
MODIFY COLUMN `deleted` bigint(20) NULL DEFAULT NULL COMMENT '逻辑删除标识,未删除为 0已删除为删除时间' AFTER `type`;
ALTER TABLE `ballcat`.`sys_dict`
MODIFY COLUMN `deleted` bigint(20) NULL DEFAULT NULL COMMENT '逻辑删除标识,未删除为 0已删除为删除时间' AFTER `hash_code`;
ALTER TABLE `ballcat`.`sys_dict_item`
MODIFY COLUMN `deleted` bigint(20) NULL DEFAULT NULL COMMENT '逻辑删除标识,未删除为 0已删除为删除时间' AFTER `remarks`;
ALTER TABLE `ballcat`.`sys_config`
ADD COLUMN `deleted` bigint(20) NULL COMMENT '逻辑删除标识,未删除为 0已删除为删除时间' AFTER `description`;
# 系统角色新增类型字段
ALTER TABLE `ballcat`.`sys_role`
ADD COLUMN `type` tinyint(1) NULL DEFAULT 2 COMMENT '角色类型1系统角色 2业务角色' AFTER `code`;
```
@@ -143,15 +178,3 @@ ADD COLUMN `type` tinyint(1) NULL DEFAULT 2 COMMENT '角色类型1系统
`@MapperScan("com.hccake.ballcat.**.mapper")`
`@ComponentScan("com.hccake.ballcat.admin")`
注解上的这两个包扫描也可去掉。
### SQL
```sql
ALTER TABLE `admin_operation_log`
ADD COLUMN `trace_id` char(24) NULL COMMENT '追踪ID' AFTER `id`,
MODIFY COLUMN `method` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求方式' AFTER `uri`,
ADD COLUMN `type` tinyint(1) NULL COMMENT '操作类型' AFTER `status`;
ALTER TABLE `admin_access_log`
ADD COLUMN `trace_id` char(24) NULL COMMENT '追踪ID' AFTER `id`
```

View File

@@ -18,6 +18,7 @@ CREATE TABLE `admin_access_log` (
`req_params` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '请求参数',
`req_body` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '请求body',
`http_status` int(5) NULL DEFAULT NULL COMMENT '响应状态码',
`result` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '响应信息',
`error_msg` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '错误消息',
`time` bigint(64) NULL DEFAULT NULL COMMENT '执行时长',
`create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
@@ -29,6 +30,29 @@ CREATE TABLE `admin_access_log` (
INDEX `create_time`(`create_time`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '访问日志' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for admin_login_log
-- ----------------------------
DROP TABLE IF EXISTS `admin_login_log`;
CREATE TABLE `admin_login_log` (
`id` bigint(64) NOT NULL AUTO_INCREMENT COMMENT '编号',
`trace_id` char(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '追踪ID',
`username` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名',
`ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '登陆IP',
`os` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作系统',
`status` tinyint(1) NOT NULL COMMENT '状态',
`event_type` tinyint(1) NULL DEFAULT NULL COMMENT '事件类型1登录 2登出',
`msg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作信息',
`location` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '登陆地点',
`browser` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '浏览器',
`login_time` datetime(0) NULL DEFAULT NULL COMMENT '登录/登出时间',
`create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `status`(`status`) USING BTREE,
INDEX `create_time`(`create_time`) USING BTREE,
INDEX `username`(`username`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '登陆日志' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for admin_operation_log
-- ----------------------------
@@ -71,7 +95,7 @@ CREATE TABLE `oauth_client_details` (
`additional_information` varchar(4096) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`autoapprove` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`client_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = 'OAuth客户端配置' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of oauth_client_details
@@ -103,60 +127,6 @@ CREATE TABLE `sys_config` (
-- ----------------------------
INSERT INTO `sys_config` VALUES (1, '网站弹窗开关', 'site_popup', '0', 'group', '宣传网站是否弹出框的控制开关。\n1开启 0关闭', 0, '2020-07-03 15:24:44', '2019-10-15 16:45:55');
DROP TABLE IF EXISTS `sys_lov`;
CREATE TABLE `sys_lov` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`keyword` varchar(50) DEFAULT NULL COMMENT '关键字唯一加载lov数据时通过关键字加载',
`url` varchar(255) DEFAULT NULL COMMENT '获取数据时请求路径',
`method` varchar(10) DEFAULT NULL COMMENT 'http请求方式',
`position` varchar(10) DEFAULT NULL COMMENT 'http请求参数设置位置',
`key` varchar(20) DEFAULT NULL COMMENT '数据的key',
`fixed_params` varchar(255) DEFAULT '{}' COMMENT '固定请求参数,请设置 jsonString, 默认值 {}',
`multiple` bit(1) DEFAULT NULL COMMENT '是否需要多选',
`search` bit(1) DEFAULT NULL COMMENT '是否需要搜索框',
`ret` bit(1) DEFAULT NULL COMMENT '是否需要返回数据, false则不会有确定按钮',
`ret_field` varchar(50) DEFAULT NULL COMMENT '返回数据的字段',
`ret_field_data_type` tinyint(1) DEFAULT NULL COMMENT '返回字段数据类型 1 String 2 Number',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `keyword` (`keyword`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='lov';
DROP TABLE IF EXISTS `sys_lov_body`;
CREATE TABLE `sys_lov_body` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`lov_id` int(11) DEFAULT NULL,
`title` varchar(100) DEFAULT NULL COMMENT '标题',
`field` varchar(50) DEFAULT NULL COMMENT '字段, 同一lov下field不可重复`',
`index` int(255) DEFAULT NULL COMMENT '索引,字段排序',
`property` varchar(255) DEFAULT '{}' COMMENT '自定义属性,请设置 jsonString, 默认值 {}',
`custom` bit(1) DEFAULT NULL COMMENT '是否自定义html',
`html` text COMMENT '如果 custom=true 则当前值不能为空',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `lov_id` (`lov_id`,`field`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='lov body';
DROP TABLE IF EXISTS `sys_lov_search`;
CREATE TABLE `sys_lov_search` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`lov_id` int(11) DEFAULT NULL,
`label` varchar(100) DEFAULT NULL COMMENT '标签文字',
`field` varchar(50) DEFAULT NULL COMMENT '字段',
`placeholder` varchar(255) DEFAULT NULL COMMENT 'placeholder',
`tag` varchar(50) DEFAULT NULL COMMENT 'html 标签',
`options` text COMMENT 'tag=SELECT时的选项',
`min` int(1) DEFAULT NULL COMMENT 'tag=INPUT_NUMBER时的选项设置数字最小值',
`max` int(1) DEFAULT NULL COMMENT 'tag=INPUT_NUMBER时的选项设置数字最大值',
`dict_code` varchar(50) DEFAULT NULL COMMENT 'tag=DICT_SELECT时的选项设置dict-code',
`custom` bit(1) DEFAULT NULL COMMENT '是否自定义html',
`html` text COMMENT '如果 custom=true 则当前值不能为空',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `lov_id` (`lov_id`,`field`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='lov search';
-- ----------------------------
-- Table structure for sys_dict
-- ----------------------------
@@ -167,23 +137,26 @@ CREATE TABLE `sys_dict` (
`title` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
`remarks` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
`editable` tinyint(1) NULL DEFAULT 0 COMMENT '可编辑 1是 0',
`value_type` tinyint(1) NULL DEFAULT 1 COMMENT '值类型,1:Number 2:String 3:Boolean',
`value_type` tinyint(1) NULL DEFAULT 0 COMMENT '值类型,1:Number 2:String 3:Boolean',
`hash_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'hash值当字典项被修改时变更',
`deleted` bigint(20) NULL DEFAULT NULL COMMENT '逻辑删除标识,未删除为 0已删除为删除时间',
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uk_code_deleted`(`code`, `deleted`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典表' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of sys_dict
-- ----------------------------
INSERT INTO `sys_dict` VALUES (1, 'dict_property', '字典属性', '只读、可写', 1, 1, 'd243f9f46a9f4a5498b013242c8828b3', 0, '2020-03-27 01:05:29', '2020-07-03 14:30:03');
INSERT INTO `sys_dict` VALUES (2, 'log_type', '日志类型', '常、', 1, 1, 'f8af5ef4568735abf7e6cc00afe938b', 0, '2020-03-27 01:05:29', '2020-03-27 11:06:44');
INSERT INTO `sys_dict` VALUES (1, 'dict_property', '字典属性', '只读、可写', 1, 1, '0226999fa7a64f8c9c36309ab68889bd', 0, '2020-03-27 01:05:29', '2020-07-03 14:30:03');
INSERT INTO `sys_dict` VALUES (2, 'log_status', '日志状态', '常、', 1, 1, 'd63783be5ae845a9905fc5c69e796837', 0, '2020-03-27 01:05:29', '2020-03-27 11:06:44');
INSERT INTO `sys_dict` VALUES (3, 'gender', '性别', '用户性别', 1, 1, 'aca1caf123123e4872be29c8cc448', 0, '2020-03-27 01:05:29', '2020-03-27 00:55:28');
INSERT INTO `sys_dict` VALUES (4, 'grant_types', '授权类型', 'OAuth授权类型', 1, 1, 'e5316daadb490e9ca7e1ac5c5607a4', 0, '2020-03-27 01:05:29', '2020-03-27 00:30:16');
INSERT INTO `sys_dict`(`code`, `title`, `remarks`, `editable`, `hash_code`, `deleted`, `create_time`, `update_time`, `value_type`) VALUES ('dict_value_type', '字典数据类型', NULL, 1, '582ed0dc179d4c99929b6dc5b63847fb', 0, now(), NULL, 1);
INSERT INTO `sys_dict` VALUES (5, 'operation_type', '操作类型', '操作日志的操作类型', 0, 1, '360bb77640dd4b109d58c094163c60b8', 0, '2020-07-14 20:28:54', NULL);
INSERT INTO `sys_dict` VALUES (6, 'role_type', '角色类型', '系统角色、业务角色', 0, 1, '53f3fb8c715149fe8793be4c25127ce9', 0, '2020-07-14 21:16:45', NULL);
INSERT INTO `sys_dict` VALUES (7, 'dict_value_type', '字典数据类型', 'Number、String、Boolean', 1, 1, '9f7e7a3904aa4270a8d8d94005827d82', 0, '2020-08-14 17:16:47', NULL);
INSERT INTO `sys_dict` VALUES (8, 'login_event_type', '登陆事件类型', '1登陆 2登出', 0, 1, '6fe465274208421eb0619a516875e270', 0, '2020-09-17 14:44:00', NULL);
-- ----------------------------
-- Table structure for sys_dict_item
@@ -194,6 +167,7 @@ CREATE TABLE `sys_dict_item` (
`dict_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '字典Code',
`value` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '数据值',
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '标签',
`attributes` json NULL COMMENT '附加属性',
`sort` int(10) NOT NULL DEFAULT 0 COMMENT '排序(升序)',
`remarks` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
`deleted` bigint(20) NULL DEFAULT NULL COMMENT '逻辑删除标识,未删除为 0已删除为删除时间',
@@ -201,26 +175,101 @@ CREATE TABLE `sys_dict_item` (
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_dict_code`(`dict_code`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 13 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典项' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典项' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of sys_dict_item
-- ----------------------------
INSERT INTO `sys_dict_item` VALUES (1, 'dict_property', '0', '只读', 0, '只读字典,不可编辑', 0, '2020-03-27 01:05:52', '2020-04-11 22:34:21');
INSERT INTO `sys_dict_item` VALUES (2, 'dict_property', '1', '可写', 1, '该字典可以编辑', 0, '2020-03-27 01:05:52', '2020-04-11 22:34:14');
INSERT INTO `sys_dict_item` VALUES (3, 'log_type', '1', '正常', 0, '', 0, '2020-03-27 01:05:52', '2019-03-25 12:49:18');
INSERT INTO `sys_dict_item` VALUES (4, 'log_type', '0', '异常', 1, '', 0, '2020-03-27 01:05:52', '2019-03-25 12:49:13');
INSERT INTO `sys_dict_item` VALUES (5, 'gender', '1', '', 0, '', 0, '2020-03-27 01:05:52', '2019-03-27 13:45:13');
INSERT INTO `sys_dict_item` VALUES (6, 'gender', '2', '', 1, '', 0, '2020-03-27 01:05:52', '2019-03-27 13:45:34');
INSERT INTO `sys_dict_item` VALUES (7, 'gender', '3', '未知', 2, '', 0, '2020-03-27 01:05:52', '2019-03-27 13:45:57');
INSERT INTO `sys_dict_item` VALUES (8, 'grant_types', 'password', '密码模式', 0, NULL, 0, '2020-03-27 01:05:52', '2019-08-13 07:35:28');
INSERT INTO `sys_dict_item` VALUES (9, 'grant_types', 'authorization_code', '授权码模式', 1, NULL, 0, '2020-03-27 01:05:52', '2019-08-13 07:36:07');
INSERT INTO `sys_dict_item` VALUES (10, 'grant_types', 'client_credentials', '客户端模式', 2, NULL, 0, '2020-03-27 01:05:52', '2019-08-13 07:36:30');
INSERT INTO `sys_dict_item` VALUES (11, 'grant_types', 'refresh_token', '刷新模式', 3, NULL, 0, '2020-03-27 01:05:52', '2019-08-13 07:36:54');
INSERT INTO `sys_dict_item` VALUES (12, 'grant_types', 'implicit', '简化模式', 4, NULL, 0, '2020-03-27 01:05:52', '2019-08-13 07:39:32');
INSERT INTO `sys_dict_item`(`dict_code`, `value`, `name`, `sort`, `remarks`, `deleted`, `create_time`, `update_time`) VALUES ('dict_value_type', '1', 'Number', 1, NULL, 0, now(), NULL);
INSERT INTO `sys_dict_item`(`dict_code`, `value`, `name`, `sort`, `remarks`, `deleted`, `create_time`, `update_time`) VALUES ('dict_value_type', '2', 'String', 1, NULL, 0, now(), NULL);
INSERT INTO `sys_dict_item`(`dict_code`, `value`, `name`, `sort`, `remarks`, `deleted`, `create_time`, `update_time`) VALUES ('dict_value_type', '3', 'Boolean', 1, NULL, 0, now(), NULL);
INSERT INTO `sys_dict_item` VALUES (1, 'dict_property', '0', '只读', '{\"tagColor\": \"orange\"}', 0, '只读字典,不可编辑', 0, '2020-03-27 01:05:52', '2020-09-16 15:31:24');
INSERT INTO `sys_dict_item` VALUES (2, 'dict_property', '1', '可写', '{\"tagColor\": \"green\"}', 1, '该字典可以编辑', 0, '2020-03-27 01:05:52', '2020-09-16 15:31:51');
INSERT INTO `sys_dict_item` VALUES (3, 'log_status', '1', '正常', '{\"textColor\": \"#34890A\"}', 0, '', 0, '2020-03-27 01:05:52', '2020-09-17 14:41:13');
INSERT INTO `sys_dict_item` VALUES (4, 'log_status', '0', '异常', '{\"textColor\": \"red\"}', 1, '', 0, '2020-03-27 01:05:52', '2019-03-25 12:49:13');
INSERT INTO `sys_dict_item` VALUES (5, 'gender', '1', '', '{}', 0, '', 0, '2020-03-27 01:05:52', '2019-03-27 13:45:13');
INSERT INTO `sys_dict_item` VALUES (6, 'gender', '2', '', '{}', 1, '', 0, '2020-03-27 01:05:52', '2019-03-27 13:45:34');
INSERT INTO `sys_dict_item` VALUES (7, 'gender', '3', '未知', NULL, 2, '', 0, '2020-03-27 01:05:52', '2019-03-27 13:45:57');
INSERT INTO `sys_dict_item` VALUES (8, 'grant_types', 'password', '密码模式', NULL, 0, NULL, 0, '2020-03-27 01:05:52', '2019-08-13 07:35:28');
INSERT INTO `sys_dict_item` VALUES (9, 'grant_types', 'authorization_code', '授权码模式', NULL, 1, NULL, 0, '2020-03-27 01:05:52', '2019-08-13 07:36:07');
INSERT INTO `sys_dict_item` VALUES (10, 'grant_types', 'client_credentials', '客户端模式', NULL, 2, NULL, 0, '2020-03-27 01:05:52', '2019-08-13 07:36:30');
INSERT INTO `sys_dict_item` VALUES (11, 'grant_types', 'refresh_token', '刷新模式', NULL, 3, NULL, 0, '2020-03-27 01:05:52', '2019-08-13 07:36:54');
INSERT INTO `sys_dict_item` VALUES (12, 'grant_types', 'implicit', '简化模式', NULL, 4, NULL, 0, '2020-03-27 01:05:52', '2019-08-13 07:39:32');
INSERT INTO `sys_dict_item` VALUES (13, 'login_event_type', '1', '登陆', '{\"tagColor\": \"cyan\"}', 0, '', 0, '2020-03-27 01:05:52', '2019-03-25 12:49:18');
INSERT INTO `sys_dict_item` VALUES (14, 'login_event_type', '2', '登出', '{\"tagColor\": \"pink\"}', 1, '', 0, '2020-03-27 01:05:52', '2019-03-25 12:49:13');
INSERT INTO `sys_dict_item` VALUES (15, 'operation_type', '3', '查看', '{\"tagColor\": \"purple\"}', 2, '', 0, '2020-03-27 01:05:52', '2019-03-25 12:49:13');
INSERT INTO `sys_dict_item` VALUES (16, 'operation_type', '4', '新建', '{\"tagColor\": \"cyan\"}', 3, '', 0, '2020-03-27 01:05:52', '2019-03-25 12:49:13');
INSERT INTO `sys_dict_item` VALUES (17, 'operation_type', '5', '修改', '{\"tagColor\": \"orange\"}', 4, '', 0, '2020-03-27 01:05:52', '2019-03-25 12:49:13');
INSERT INTO `sys_dict_item` VALUES (18, 'operation_type', '6', '删除', '{\"tagColor\": \"pink\"}', 5, '', 0, '2020-03-27 01:05:52', '2019-03-25 12:49:13');
INSERT INTO `sys_dict_item` VALUES (19, 'role_type', '1', '系统', '{\"tagColor\": \"orange\"}', 1, '系统角色不能删除', 0, '2020-07-14 21:17:07', NULL);
INSERT INTO `sys_dict_item` VALUES (20, 'role_type', '2', '业务', '{\"tagColor\": \"green\"}', 2, '业务角色可读可写', 0, '2020-07-14 21:17:24', NULL);
INSERT INTO `sys_dict_item` VALUES (21, 'dict_type', '1', 'Number', NULL, 1, NULL, 0, '2020-08-12 16:10:22', '2020-08-12 16:12:33');
INSERT INTO `sys_dict_item` VALUES (22, 'dict_type', '2', 'String', NULL, 1, NULL, 0, '2020-08-12 16:10:31', '2020-08-12 16:12:27');
INSERT INTO `sys_dict_item` VALUES (23, 'dict_type', '3', 'Boolean', NULL, 1, NULL, 0, '2020-08-12 16:10:38', '2020-08-12 16:12:23');
INSERT INTO `sys_dict_item` VALUES (24, 'dict_value_type', '1', 'Number', NULL, 1, NULL, 0, '2020-08-12 16:10:22', '2020-08-12 16:12:33');
INSERT INTO `sys_dict_item` VALUES (25, 'dict_value_type', '2', 'String', NULL, 1, NULL, 0, '2020-08-12 16:10:31', '2020-08-12 16:12:27');
INSERT INTO `sys_dict_item` VALUES (26, 'dict_value_type', '3', 'Boolean', '{}', 1, NULL, 0, '2020-08-12 16:10:38', '2020-09-16 15:07:07');
-- ----------------------------
-- Table structure for sys_lov
-- ----------------------------
DROP TABLE IF EXISTS `sys_lov`;
CREATE TABLE `sys_lov` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`keyword` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '关键字唯一加载lov数据时通过关键字加载',
`url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '获取数据时请求路径',
`method` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'http请求方式',
`position` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'http请求参数设置位置',
`key` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据的key',
`fixed_params` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '{}' COMMENT '固定请求参数,请设置 jsonString, 默认值 {}',
`multiple` bit(1) NULL DEFAULT NULL COMMENT '是否需要多选',
`search` bit(1) NULL DEFAULT NULL COMMENT '是否需要搜索框',
`ret` bit(1) NULL DEFAULT NULL COMMENT '是否需要返回数据, false则不会有确定按钮',
`ret_field` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '返回数据的字段',
`ret_field_data_type` tinyint(1) NULL DEFAULT NULL COMMENT '返回字段数据类型 1 String 2 Number',
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `keyword`(`keyword`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'lov' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for sys_lov_body
-- ----------------------------
DROP TABLE IF EXISTS `sys_lov_body`;
CREATE TABLE `sys_lov_body` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`lov_id` int(11) NULL DEFAULT NULL,
`title` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
`field` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字段, 同一lov下field不可重复`',
`index` int(255) NULL DEFAULT NULL COMMENT '索引,字段排序',
`property` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '{}' COMMENT '自定义属性,请设置 jsonString, 默认值 {}',
`custom` bit(1) NULL DEFAULT NULL COMMENT '是否自定义html',
`html` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '如果 custom=true 则当前值不能为空',
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `lov_id`(`lov_id`, `field`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'lov body' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for sys_lov_search
-- ----------------------------
DROP TABLE IF EXISTS `sys_lov_search`;
CREATE TABLE `sys_lov_search` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`lov_id` int(11) NULL DEFAULT NULL,
`label` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标签文字',
`field` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字段',
`placeholder` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'placeholder',
`tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'html 标签',
`options` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT 'tag=SELECT时的选项',
`min` int(1) NULL DEFAULT NULL COMMENT 'tag=INPUT_NUMBER时的选项设置数字最小值',
`max` int(1) NULL DEFAULT NULL COMMENT 'tag=INPUT_NUMBER时的选项设置数字最大值',
`dict_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'tag=DICT_SELECT时的选项设置dict-code',
`custom` bit(1) NULL DEFAULT NULL COMMENT '是否自定义html',
`html` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '如果 custom=true 则当前值不能为空',
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `lov_id`(`lov_id`, `field`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'lov search' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for sys_permission
-- ----------------------------
@@ -244,7 +293,7 @@ CREATE TABLE `sys_permission` (
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 990510 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '菜单权限' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '菜单权限' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of sys_permission
@@ -286,18 +335,24 @@ INSERT INTO `sys_permission` VALUES (100501, '字典查询', 'sys:dict:read', NU
INSERT INTO `sys_permission` VALUES (100502, '字典新增', 'sys:dict:add', NULL, NULL, NULL, NULL, NULL, 100500, NULL, 1, 0, 0, 2, 0, '2019-10-13 22:00:24', NULL);
INSERT INTO `sys_permission` VALUES (100503, '字典修改', 'sys:dict:edit', NULL, NULL, NULL, NULL, NULL, 100500, NULL, 2, 0, 0, 2, 0, '2019-10-13 22:00:24', NULL);
INSERT INTO `sys_permission` VALUES (100504, '字典删除', 'sys:dict:del', NULL, NULL, NULL, NULL, NULL, 100500, NULL, 3, 0, 0, 2, 0, '2019-10-13 22:00:24', NULL);
INSERT INTO `sys_permission` VALUES (100600, 'lov', NULL, '/sys/lov', 'Lov', 'sys/lov/Lov', NULL, NULL, 100000, NULL, 6, 0, 0, 1, 0, NULL, '2020-08-27 21:36:18');
INSERT INTO `sys_permission` VALUES (100601, 'lov查询', 'sys:lov:read', NULL, NULL, NULL, NULL, NULL, 100600, NULL, 0, 0, 0, 2, 0, '2019-10-13 22:00:24', NULL);
INSERT INTO `sys_permission` VALUES (100602, 'lov新增', 'sys:lov:add', NULL, NULL, NULL, NULL, NULL, 100600, NULL, 1, 0, 0, 2, 0, '2019-10-13 22:00:24', NULL);
INSERT INTO `sys_permission` VALUES (100603, 'lov修改', 'sys:lov:edit', NULL, NULL, NULL, NULL, NULL, 100600, NULL, 2, 0, 0, 2, 0, '2019-10-13 22:00:24', NULL);
INSERT INTO `sys_permission` VALUES (100604, 'lov删除', 'sys:lov:del', NULL, NULL, NULL, NULL, NULL, 100600, NULL, 3, 0, 0, 2, 0, '2019-10-13 22:00:24', NULL);
INSERT INTO `sys_permission` VALUES (110000, '日志管理', NULL, '', 'log', 'layouts/RouteView', '/log/adminoperationlog', NULL, 0, 'file-search', 9, 0, 0, 0, 0, NULL, '2019-10-16 18:30:07');
INSERT INTO `sys_permission` VALUES (110100, '操作日志', NULL, '/log/adminoperationlog', 'adminOperationLog', 'log/adminoperationlog/AdminOperationLogPage', NULL, NULL, 110000, NULL, 1, 0, 0, 1, 0, NULL, '2019-10-13 22:00:24');
INSERT INTO `sys_permission` VALUES (110100, '操作日志', NULL, '/log/adminoperationlog', 'adminOperationLog', 'log/adminoperationlog/AdminOperationLogPage', NULL, NULL, 110000, NULL, 2, 0, 0, 1, 0, NULL, '2020-09-17 01:50:47');
INSERT INTO `sys_permission` VALUES (110101, '操作日志查询', 'log:adminoperationlog:read', NULL, NULL, NULL, NULL, NULL, 110100, NULL, 0, 0, 0, 2, 0, '2019-10-13 22:00:24', '2019-10-15 14:14:03');
INSERT INTO `sys_permission` VALUES (110300, '访问日志(后台)', NULL, '/log/adminaccesslog', 'adminAccessLog', 'log/adminaccesslog/AdminAccessLogPage', NULL, NULL, 110000, NULL, 1, 0, 0, 1, 0, NULL, '2019-10-13 22:00:24');
INSERT INTO `sys_permission` VALUES (110301, '访问日志(后台)查询', 'log:adminaccesslog:read', NULL, NULL, NULL, NULL, NULL, 110300, NULL, 0, 0, 0, 2, 0, '2019-10-13 22:00:24', '2019-10-15 14:14:03');
INSERT INTO `sys_permission` VALUES (110200, '登陆日志', NULL, '/log/adminloginlog', 'adminLoginLog', 'log/adminloginlog/AdminLoginLogPage', NULL, NULL, 110000, NULL, 1, 0, 0, 1, 0, NULL, '2019-10-13 22:00:24');
INSERT INTO `sys_permission` VALUES (110201, '登陆日志查询', 'log:adminloginlog:read', NULL, NULL, NULL, NULL, NULL, 110200, NULL, 0, 0, 0, 2, 0, '2019-10-13 22:00:24', NULL);
INSERT INTO `sys_permission` VALUES (110300, '访问日志(后台)', NULL, '/log/adminaccesslog', 'adminAccessLog', 'log/adminaccesslog/AdminAccessLogPage', NULL, NULL, 110000, NULL, 3, 0, 0, 1, 0, NULL, '2020-09-17 01:50:38');
INSERT INTO `sys_permission` VALUES (110301, '访问日志(后台)查询', 'log:adminaccesslog:read', NULL, '', NULL, NULL, NULL, 110300, NULL, 0, 0, 0, 2, 0, '2019-10-13 22:00:24', '2019-10-15 14:14:03');
INSERT INTO `sys_permission` VALUES (990000, '开发平台', '', '', 'develop', 'layouts/RouteView', '', NULL, 0, 'desktop', 99, 0, 0, 0, 0, NULL, '2019-11-22 16:49:56');
INSERT INTO `sys_permission` VALUES (990100, '接口文档', '', 'http://ballcat-admin:8080/swagger-ui.html', 'swagger', '', '', '_blank', 990000, 'file', 1, 0, 0, 1, 0, NULL, '2019-11-22 16:48:42');
INSERT INTO `sys_permission` VALUES (990200, '文档增强', '', 'http://ballcat-admin:8080/doc.html', 'doc', '', '', '_blank', 990000, 'file-text', 2, 0, 0, 1, 0, NULL, '2019-11-22 16:48:50');
INSERT INTO `sys_permission` VALUES (990100, '接口文档', '', '/develop/swagger', 'swagger', 'layouts/IframeView', '', '', 990000, 'file', 1, 0, 0, 1, 0, NULL, '2019-11-22 16:48:42');
INSERT INTO `sys_permission` VALUES (990200, '文档增强', '', '/develop/doc', 'doc', 'layouts/IframeView', '', '', 990000, 'file-text', 2, 0, 0, 1, 0, NULL, '2019-11-22 16:48:50');
INSERT INTO `sys_permission` VALUES (990300, '调度中心', '', 'http://ballcat-job:8888/xxl-job-admin', 'job', '', '', '_blank', 990000, 'rocket', 3, 0, 0, 1, 0, NULL, '2019-11-22 16:49:14');
INSERT INTO `sys_permission` VALUES (990400, '服务监控', '', 'http://ballcat-monitor:9999', 'monitor', '', '', '_blank', 990000, 'alert', 4, 0, 0, 1, 0, NULL, '2019-11-22 16:49:22');
INSERT INTO `sys_permission` VALUES (990500, '代码生成', '', 'http://ballcat-codegen:7777', 'codegen', '', '', '_blank', 990000, 'printer', 5, 0, 0, 1, 0, NULL, '2019-11-22 16:49:35');
INSERT INTO `sys_permission` VALUES (990500, '代码生成', '', 'http://localhost:7777', 'codegen', '', '', '_blank', 990000, 'printer', 5, 0, 0, 1, 0, NULL, '2019-11-22 16:49:35');
-- ----------------------------
-- Table structure for sys_role
@@ -314,12 +369,12 @@ CREATE TABLE `sys_role` (
`update_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0),
PRIMARY KEY (`id`) USING BTREE,
INDEX `uk_code_deleted`(`code`, `deleted`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 17 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统角色' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统角色' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of sys_role
-- ----------------------------
INSERT INTO `sys_role` VALUES (1, '管理员', 'ROLE_ADMIN', 1, '管理员', 0, '2017-10-29 15:45:51', '2020-07-06 15:50:07');
INSERT INTO `sys_role` VALUES (1, '管理员', 'ROLE_ADMIN', 1, '管理员', 0, '2017-10-29 15:45:51', '2020-07-14 21:23:06');
INSERT INTO `sys_role` VALUES (2, '测试工程师', 'ROLE_TEST', 2, '测试工程师', 0, '2019-09-02 11:34:36', '2020-07-06 12:47:15');
INSERT INTO `sys_role` VALUES (14, '销售主管', 'ROLE_SALES_EXECUTIVE', 2, '销售主管', 0, '2020-02-27 15:10:36', '2020-07-06 12:47:14');
INSERT INTO `sys_role` VALUES (15, '销售专员', 'ROLE_SALESMAN', 2, '销售专员', 0, '2020-02-27 15:12:18', '2020-07-06 12:47:13');
@@ -436,10 +491,10 @@ CREATE TABLE `sys_user` (
-- ----------------------------
-- Records of sys_user
-- ----------------------------
INSERT INTO `sys_user` VALUES (1, 'admin', '超管牛逼', '$2a$10$YJDXeAsk7FjQQVTdutIat.rPR3p3uUPWmZyhtnRDOrIjPujOAUrla', NULL, 'sysuser/1/avatar/20200226/ab6bd5221afe4238ae4987f278758113.jpg', 1, 'chengbohua@foxmail.com', '15800000000', 1, 1, 0, '2999-09-20 17:13:24', '2020-06-08 22:49:43');
INSERT INTO `sys_user` VALUES (10, 'test4', '测试用户213', '$2a$10$YJDXeAsk7FjQQVTdutIat.rPR3p3uUPWmZyhtnRDOrIjPujOAUrla', NULL, '', 0, '1234567@qq.com', '12345678520', 1, 1, 0, NULL, '2020-07-06 11:00:56');
INSERT INTO `sys_user` VALUES (1, 'admin', '超管牛逼', '$2a$10$YJDXeAsk7FjQQVTdutIat.rPR3p3uUPWmZyhtnRDOrIjPujOAUrla', NULL, 'sysuser/1/avatar/20200226/ab6bd5221afe4238ae4987f278758113.jpg', 1, 'chengbohua@foxmail.com', '15800000000', 1, 1, 0, '2999-09-20 17:13:24', '2020-07-16 18:23:39');
INSERT INTO `sys_user` VALUES (10, 'test4', '测试用户213', '$2a$10$RpZQ8i7ke9ikT1AE8cQwfe3t0NoRmkL5pr1U9YNXn2O9YiToZjMTG', NULL, '', 2, '1234567@qq.com', '12345678520', 1, 1, 0, NULL, '2020-07-14 20:15:44');
INSERT INTO `sys_user` VALUES (12, 'test1', 'test1', '$2a$10$EotCw/oHyg1MgJMDFgEeeOO0/jVHZgIFn0jX9kq9SP9sIAXF2m0Yi', NULL, 'sysuser/12/avatar/20200109/05e189b252b44598b6d150ce3597d293.jpg', 1, 'test1@qq.com', '12356322365', 1, 1, 20200609182117, '2019-10-18 20:40:57', NULL);
INSERT INTO `sys_user` VALUES (17, 'test2', 'test2', 'encode123456', NULL, NULL, 1, 'test2@qq.com', '123456789', 1, 1, 0, NULL, '2020-07-06 12:09:08');
INSERT INTO `sys_user` VALUES (17, 'test2', 'test2', '$2a$10$YJDXeAsk7FjQQVTdutIat.rPR3p3uUPWmZyhtnRDOrIjPujOAUrla', NULL, NULL, 1, 'test2@qq.com', '123456789', 1, 1, 0, NULL, '2020-07-06 12:09:08');
-- ----------------------------
-- Table structure for sys_user_role

View File

@@ -36,37 +36,38 @@ CREATE TABLE `gen_template_directory_entry` (
-- ----------------------------
-- Records of gen_template_directory_entry
-- ----------------------------
INSERT INTO `gen_template_directory_entry` VALUES (1, 1, 'ballcat.src.main', 1, 0, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (2, 1, 'java', 1, 1, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (3, 1, '{packageName}.{moduleName}', 1, 2, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (4, 1, 'controller', 1, 3, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (5, 1, 'service', 1, 3, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (6, 1, 'impl', 1, 5, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (7, 1, 'mapper', 1, 3, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (8, 1, 'model', 1, 3, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (9, 1, 'entity', 1, 8, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (10, 1, 'qo', 1, 8, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (11, 1, 'vo', 1, 8, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (12, 1, 'resources', 1, 1, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (13, 1, 'mapper', 1, 12, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (14, 1, '{moduleName}', 1, 13, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (15, 1, 'ballcat-ui-vue.src', 1, 0, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (16, 1, 'api', 1, 15, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (17, 1, 'views', 1, 15, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (18, 1, '{moduleName}', 1, 16, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (19, 1, '{moduleName}.{classname}', 1, 17, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (20, 1, '{className}Controller.java', 2, 4, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (21, 1, '{className}Service.java', 2, 5, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (22, 1, '{className}ServiceImpl.java', 2, 6, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (23, 1, '{className}Mapper.java', 2, 7, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (24, 1, '{className}.java', 2, 9, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (25, 1, '{className}QO.java', 2, 10, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (26, 1, '{className}VO.java', 2, 11, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (27, 1, '{className}Mapper.xml', 2, 14, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (28, 1, '{classname}.js', 2, 18, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (29, 1, '{className}Page.vue', 2, 19, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (30, 1, '{className}Form.vue', 2, 19, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `gen_template_directory_entry` VALUES (31, 1, '{className}.sql', 2, 0, 0, '2020-07-03 16:39:07', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (63, 3, 'ballcat.src.main', 1, 0, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (64, 3, 'java', 1, 63, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (65, 3, '{packageName}.{moduleName}', 1, 64, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (66, 3, 'controller', 1, 65, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (67, 3, 'service', 1, 65, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (68, 3, 'impl', 1, 67, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (69, 3, 'mapper', 1, 65, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (70, 3, 'model', 1, 65, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (71, 3, 'entity', 1, 70, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (72, 3, 'qo', 1, 70, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (73, 3, 'vo', 1, 70, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (74, 3, 'resources', 1, 63, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (75, 3, 'mapper', 1, 74, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (76, 3, '{moduleName}', 1, 75, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (77, 3, 'ballcat-ui-vue.src', 1, 0, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (78, 3, 'api', 1, 77, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (79, 3, 'views', 1, 77, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (80, 3, '{moduleName}', 1, 78, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (81, 3, '{moduleName}.{classname}', 1, 79, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (82, 3, '{className}Controller.java', 2, 66, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (83, 3, '{className}Service.java', 2, 67, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (84, 3, '{className}ServiceImpl.java', 2, 68, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (85, 3, '{className}Mapper.java', 2, 69, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (86, 3, '{className}.java', 2, 71, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (87, 3, '{className}QO.java', 2, 72, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (88, 3, '{className}VO.java', 2, 73, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (89, 3, '{className}Mapper.xml', 2, 76, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (90, 3, '{classname}.js', 2, 80, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (91, 3, '{className}Page.vue', 2, 81, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (92, 3, '{className}Form.vue', 2, 81, 0, '2020-07-06 18:38:37', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_directory_entry`(`id`, `group_id`, `file_name`, `type`, `parent_id`, `deleted`, `create_time`, `update_time`) VALUES (93, 3, '{className}.sql', 2, 0, 0, '2020-07-06 18:38:37', NULL);
-- ----------------------------
-- Table structure for gen_template_group
@@ -106,18 +107,20 @@ CREATE TABLE `gen_template_info` (
-- ----------------------------
-- Records of gen_template_info
-- ----------------------------
INSERT INTO `gen_template_info` VALUES (20, 1, 'Controller', 'package ${packageName}.${moduleName}.controller;\n\nimport com.baomidou.mybatisplus.core.metadata.IPage;\nimport com.baomidou.mybatisplus.extension.plugins.pagination.Page;\nimport com.hccake.ballcat.common.core.result.R;\nimport com.hccake.ballcat.commom.log.operation.annotation.CreateOperationLogging;\nimport com.hccake.ballcat.commom.log.operation.annotation.DeleteOperationLogging;\nimport com.hccake.ballcat.commom.log.operation.annotation.UpdateOperationLogging;\nimport ${packageName}.${moduleName}.model.entity.${className};\nimport ${packageName}.${moduleName}.model.qo.${className}QO;\nimport ${packageName}.${moduleName}.model.vo.${className}VO;\nimport ${packageName}.${moduleName}.service.${className}Service;\nimport com.hccake.ballcat.common.core.result.BaseResultCode;\nimport org.springframework.security.access.prepost.PreAuthorize;\nimport io.swagger.annotations.Api;\nimport io.swagger.annotations.ApiOperation;\nimport lombok.RequiredArgsConstructor;\nimport org.springframework.web.bind.annotation.*;\n\n\n/**\n * ${comments}\n *\n * @author ${author} ${currentTime}\n */\n@RestController\n@RequiredArgsConstructor\n@RequestMapping(\"/${moduleName}/${pathName}\" )\n@Api(value = \"${pathName}\", tags = \"${comments}管理\")\npublic class ${className}Controller {\n\n private final ${className}Service ${classname}Service;\n\n /**\n * 分页查询\n * @param page 分页对象\n * @param ${classname}QO ${comments}查询对象\n * @return R 通用返回体\n */\n @ApiOperation(value = \"分页查询\", notes = \"分页查询\")\n @GetMapping(\"/page\" )\n @PreAuthorize(\"@per.hasPermission(\'${moduleName}:${pathName}:read\')\" )\n public R<IPage<${className}VO>> get${className}Page(\n Page<?> page, ${className}QO ${classname}QO) {\n return R.ok(${classname}Service.selectPageVo(page, ${classname}QO));\n }\n\n /**\n * 新增${comments}\n * @param ${classname} ${comments}\n * @return R 通用返回体\n */\n @ApiOperation(value = \"新增${comments}\", notes = \"新增${comments}\")\n @CreateOperationLogging(msg = \"新增${comments}\" )\n @PostMapping\n @PreAuthorize(\"@per.hasPermission(\'${moduleName}:${pathName}:add\')\" )\n public Re<?> save(@RequestBody ${className} ${classname}) {\n return ${classname}Service.save(${classname}) ?\n R.ok() : R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, \"新增${comments}失败\");\n }\n\n /**\n * 修改${comments}\n * @param ${classname} ${comments}\n * @return R 通用返回体\n */\n @ApiOperation(value = \"修改${comments}\", notes = \"修改${comments}\")\n @UpdateOperationLogging(msg = \"修改${comments}\" )\n @PutMapping\n @PreAuthorize(\"@per.hasPermission(\'${moduleName}:${pathName}:edit\')\" )\n public Re<?> updateById(@RequestBody ${className} ${classname}) {\n return ${classname}Service.updateById(${classname}) ?\n R.ok() : R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, \"修改${comments}失败\");\n }\n\n /**\n * 通过id删除${comments}\n * @param ${pk.attrName} id\n * @return R 通用返回体\n */\n @ApiOperation(value = \"通过id删除${comments}\", notes = \"通过id删除${comments}\")\n @DeleteOperationLogging(msg = \"通过id删除${comments}\" )\n @DeleteMapping(\"/{${pk.attrName}}\" )\n @PreAuthorize(\"@per.hasPermission(\'${moduleName}:${pathName}:del\')\" )\n public Re<?> removeById(@PathVariable ${pk.attrType} ${pk.attrName}) {\n return ${classname}Service.removeById(${pk.attrName}) ?\n R.ok() : R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, \"通过id删除${comments}失败\");\n }\n\n}', 1, '控制层', 0, '2020-07-03 16:39:08', NULL);
INSERT INTO `gen_template_info` VALUES (21, 1, 'Service', 'package ${packageName}.${moduleName}.service;\n\nimport com.baomidou.mybatisplus.core.metadata.IPage;\nimport com.baomidou.mybatisplus.extension.service.IService;\nimport ${packageName}.${moduleName}.model.entity.${className};\nimport ${packageName}.${moduleName}.model.vo.${className}VO;\nimport ${packageName}.${moduleName}.model.qo.${className}QO;\n\n/**\n * ${comments}\n *\n * @author ${author} ${currentTime}\n */\npublic interface ${className}Service extends IService<${className}> {\n\n /**\n * 根据QueryObeject查询分页数据\n * @param page 分页参数\n * @param qo 查询参数对象\n * @return IPage<${className}VO> 分页数据\n */\n IPage<${className}VO> selectPageVo(IPage<?> page, ${className}QO qo);\n\n}', 1, '业务逻辑层', 0, '2020-07-03 16:39:08', NULL);
INSERT INTO `gen_template_info` VALUES (22, 1, 'ServiceImpl', 'package ${packageName}.${moduleName}.service.impl;\n\nimport cn.hutool.core.util.ObjectUtil;\nimport com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;\nimport com.baomidou.mybatisplus.core.metadata.IPage;\nimport com.baomidou.mybatisplus.core.toolkit.Wrappers;\nimport com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;\nimport ${packageName}.${moduleName}.model.entity.${className};\nimport ${packageName}.${moduleName}.model.vo.${className}VO;\nimport ${packageName}.${moduleName}.model.qo.${className}QO;\nimport ${packageName}.${moduleName}.mapper.${className}Mapper;\nimport ${packageName}.${moduleName}.service.${className}Service;\nimport org.springframework.stereotype.Service;\n\n/**\n * ${comments}\n *\n * @author ${author} ${currentTime}\n */\n@Service\npublic class ${className}ServiceImpl extends ServiceImpl<${className}Mapper, ${className}> implements ${className}Service {\n private final static String TABLE_ALIAS_PREFIX = \"${tableAlias}.\";\n\n /**\n * 根据QueryObeject查询分页数据\n * @param page 分页参数\n * @param qo 查询参数对象\n * @return IPage<${className}VO> 分页数据\n */\n @Override\n public IPage<${className}VO> selectPageVo(IPage<?> page, ${className}QO qo) {\n QueryWrapper<${className}> wrapper = Wrappers.<${className}>query()\n .eq(ObjectUtil.isNotNull(qo.get${pk.caseAttrName}()), TABLE_ALIAS_PREFIX + \"${pk.caseAttrName}\", qo.get${pk.caseAttrName}());\n return baseMapper.selectPageVo(page, wrapper);\n }\n\n}\n', 1, '业务逻辑层实现类', 0, '2020-07-03 16:39:08', NULL);
INSERT INTO `gen_template_info` VALUES (23, 1, 'Mapper', 'package ${packageName}.${moduleName}.mapper;\n\nimport com.baomidou.mybatisplus.core.conditions.Wrapper;\nimport com.baomidou.mybatisplus.core.mapper.BaseMapper;\nimport com.baomidou.mybatisplus.core.metadata.IPage;\nimport com.baomidou.mybatisplus.core.toolkit.Constants;\nimport ${packageName}.${moduleName}.model.entity.${className};\nimport ${packageName}.${moduleName}.model.vo.${className}VO;\nimport org.apache.ibatis.annotations.Param;\n\n/**\n * ${comments}\n *\n * @author ${author} ${currentTime}\n */\npublic interface ${className}Mapper extends BaseMapper<${className}> {\n\n /**\n * 分页查询\n * @param page 分页对象\n * @param wrapper 查询wrapper\n * @return IPage<${className}VO> VO分页数据\n */\n IPage<${className}VO> selectPageVo(IPage<?> page, @Param(Constants.WRAPPER) Wrapper<${className}> wrapper);\n}', 1, '数据访问层', 0, '2020-07-03 16:39:08', NULL);
INSERT INTO `gen_template_info` VALUES (24, 1, 'Entity', 'package ${packageName}.${moduleName}.model.entity;\n\nimport com.baomidou.mybatisplus.annotation.FieldFill;\nimport com.baomidou.mybatisplus.annotation.TableField;\nimport com.baomidou.mybatisplus.annotation.TableId;\nimport com.baomidou.mybatisplus.annotation.TableName;\nimport com.baomidou.mybatisplus.extension.activerecord.Model;\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\nimport java.io.Serializable;\nimport java.time.LocalDateTime;\n\n/**\n * ${comments}\n *\n * @author ${author} ${currentTime}\n */\n@Data\n@TableName(\"${tableName}\")\n@EqualsAndHashCode(callSuper = true)\n@ApiModel(value = \"${comments}\")\npublic class ${className} extends Model<${className}> {\nprivate static final long serialVersionUID = 1L;\n\n#foreach ($column in $columns)\n /**\n * $column.comments\n */\n #if($column.columnName == $pk.columnName)\n @TableId\n #elseif($column.columnName == \'create_time\')\n @TableField(fill = FieldFill.INSERT)\n #elseif($column.columnName == \'update_time\')\n @TableField(fill = FieldFill.INSERT_UPDATE)\n #end\n @ApiModelProperty(value=\"$column.comments\")\n private $column.attrType $column.attrName;\n#end\n}\n', 1, '数据实体', 0, '2020-07-03 16:39:08', NULL);
INSERT INTO `gen_template_info` VALUES (25, 1, 'QO', 'package ${packageName}.${moduleName}.model.qo;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\nimport lombok.Data;\n\n/**\n * ${comments} 查询对象\n *\n * @author ${author} ${currentTime}\n */\n@Data\n@ApiModel(value = \"${comments}查询对象\")\npublic class ${className}QO {\n private static final long serialVersionUID = 1L;\n\n #foreach ($column in $columns)\n /**\n * $column.comments\n */\n #if($column.columnName == $pk.columnName)\n @ApiModelProperty(value=\"$column.comments\")\n private $column.attrType $column.attrName;\n #break\n #end\n #end\n}', 1, '默认数据查询对象', 0, '2020-07-03 16:39:08', NULL);
INSERT INTO `gen_template_info` VALUES (26, 1, 'VO', 'package ${packageName}.${moduleName}.model.entity;\n\nimport com.baomidou.mybatisplus.extension.activerecord.Model;\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\n #if(${hasBigDecimal})\n import java.math.BigDecimal;\n #end\nimport java.io.Serializable;\nimport java.time.LocalDateTime;\n\n/**\n * ${comments}\n *\n * @author ${author} ${currentTime}\n */\n@Data\n@ApiModel(value = \"${comments}\")\npublic class ${className}VO {\n private static final long serialVersionUID = 1L;\n\n #foreach ($column in $columns)\n /**\n * $column.comments\n */\n @ApiModelProperty(value=\"$column.comments\")\n private $column.attrType $column.attrName;\n #end\n}', 1, '默认数据视图对象', 0, '2020-07-03 16:39:08', NULL);
INSERT INTO `gen_template_info` VALUES (27, 1, 'Mapper.xml', '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"${packageName}.${moduleName}.mapper.${className}Mapper\">\n\n <resultMap id=\"${classname}Map\" type=\"${packageName}.${moduleName}.model.entity.${className}\">\n #foreach($column in $columns)\n #if($column.attrName==$pk.attrName)\n <id property=\"${pk.attrName}\" column=\"${pk.columnName}\"/>\n #else\n <result property=\"${column.attrName}\" column=\"${column.columnName}\"/>\n #end\n #end\n </resultMap>\n\n <sql id=\"Base_Column_List\" >\n #foreach($column in $columns)${column.columnName}#if($foreach.hasNext), #end#end\n </sql>\n\n <sql id=\"Base_Alias_Column_List\">\n #foreach($column in $columns)${tableAlias}.${column.columnName}#if( $foreach.hasNext ), #end#end\n </sql>\n\n <select id=\"selectPageVo\" resultType=\"${packageName}.${moduleName}.model.vo.${className}VO\">\n SELECT\n <include refid=\"Base_Alias_Column_List\"/>\n FROM\n ${tableName} ${tableAlias}\n ${ew.customSqlSegment}\n </select>\n</mapper>', 1, 'Mybatis Mapper Xml', 0, '2020-07-03 16:39:08', NULL);
INSERT INTO `gen_template_info` VALUES (28, 1, 'api.js', 'import { axios } from \'@/utils/request\'\n\nexport function getPage(query) {\n return axios({\n url: \'/${moduleName}/${pathName}/page\',\n method: \'get\',\n params: query\n })\n}\n\nexport function addObj(obj) {\n return axios({\n url: \'/${moduleName}/${pathName}\',\n method: \'post\',\n data: obj\n })\n}\n\nexport function delObj(id) {\n return axios({\n url: \'/${moduleName}/${pathName}/\' + id,\n method: \'delete\'\n })\n}\n\nexport function putObj(obj) {\n return axios({\n url: \'/${moduleName}/${pathName}\',\n method: \'put\',\n data: obj\n })\n}', 1, 'Axios 访问方法', 0, '2020-07-03 16:39:08', NULL);
INSERT INTO `gen_template_info` VALUES (29, 1, 'Page.vue', '<template>\r\n <div>\r\n <a-card v-show=\"tableShow\" :bordered=\"false\">\r\n <!-- 查询条件 -->\r\n <div class=\"table-page-search-wrapper\">\r\n <a-form layout=\"inline\">\r\n <a-row :gutter=\"48\">\r\n <a-col :md=\"8\" :sm=\"24\">\r\n <a-form-item label=\"ID\">\r\n <a-input v-model=\"queryParam.${pk.attrName}\" placeholder=\"\"/>\r\n </a-form-item>\r\n </a-col>\r\n\r\n <!-- <template v-if=\"advanced\">\r\n </template>-->\r\n <a-col :md=\"!advanced && 8 || 24\" :sm=\"24\">\r\n <span class=\"table-page-search-submitButtons\"\r\n :style=\"advanced && { float: \'right\', overflow: \'hidden\' } || {} \">\r\n <a-button type=\"primary\" @click=\"reloadTable\">查询</a-button>\r\n <a-button style=\"margin-left: 8px\" @click=\"resetSearchForm\">重置</a-button>\r\n <!--<a @click=\"toggleAdvanced\" style=\"margin-left: 8px\">\r\n {{ advanced ? \'\' : \'\' }}\r\n <a-icon :type=\"advanced ? \'up\' : \'down\'\"/>\r\n </a>-->\r\n </span>\r\n </a-col>\r\n </a-row>\r\n </a-form>\r\n </div>\r\n\r\n <!-- 操作按钮区域 -->\r\n <div class=\"table-operator\">\r\n <a-button v-has=\"\'${moduleName}:${pathName}:add\'\" type=\"primary\" icon=\"plus\" @click=\"handleAdd()\">新建</a-button>\r\n </div>\r\n\r\n <!--数据表格区域-->\r\n <div class=\"table-wrapper\">\r\n <a-table\r\n ref=\"table\"\r\n size=\"middle\"\r\n :rowKey=\"rowKey\"\r\n :columns=\"columns\"\r\n :dataSource=\"dataSource\"\r\n :pagination=\"pagination\"\r\n :loading =\"loading\"\r\n @change=\"handleTableChange\"\r\n >\r\n <template slot=\"action-slot\" slot-scope=\"text, record\">\r\n <a v-has=\"\'${moduleName}:${pathName}:edit\'\" @click=\"handleEdit(record)\">编辑</a>\r\n <a-divider type=\"vertical\"/>\r\n <a-popconfirm v-has=\"\'${moduleName}:${pathName}:del\'\"\r\n title=\"确认要删除吗?\"\r\n @confirm=\"() => handleDel(record)\">\r\n <a href=\"javascript:;\">删除</a>\r\n </a-popconfirm>\r\n </template>\r\n </a-table>\r\n </div>\r\n </a-card>\r\n\r\n <!--表单页面-->\r\n <a-card v-if=\"formInited\" :bordered=\"false\" :title=\"cardTitle\" v-show=\"!tableShow\">\r\n <form-page ref=\"formPage\" @backToPage=\"backToPage\"></form-page>\r\n </a-card>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import { getPage, delObj } from \'@/api/${moduleName}/${pathName}\'\r\n import FormPage from \'./${className}Form\'\r\n import { TablePageMixin } from \'@/mixins\'\r\n\r\n export default {\r\n name: \'${className}Page\',\r\n mixins: [TablePageMixin],\r\n components: { FormPage },\r\n data () {\r\n return {\r\n getPage: getPage,\r\n delObj: delObj,\r\n\r\n columns: [\r\n #foreach ($column in $columns)\r\n #if($column.columnName != \'create_time\' && $column.columnName != \'update_time\')\r\n #if($column.columnName == \'id\')\r\n {\r\n title: \'#\',\r\n dataIndex: \'$column.attrName\',\r\n },\r\n #else\r\n {\r\n title: \'$column.comments\',\r\n dataIndex: \'$column.attrName\',\r\n },\r\n #end\r\n #end\r\n #end\r\n {\r\n title: \'创建时间\',\r\n dataIndex: \'createTime\',\r\n width: \'150px\',\r\n sorter: true\r\n },\r\n {\r\n title: \'更新时间\',\r\n dataIndex: \'updateTime\',\r\n width: \'150px\',\r\n sorter: true\r\n },\r\n {\r\n title: \'操作\',\r\n dataIndex: \'action\',\r\n width: \'150px\',\r\n scopedSlots: { customRender: \'action-slot\' }\r\n }\r\n ],\r\n }\r\n },\r\n methods: {\r\n\r\n }\r\n }\r\n</script>', 1, '查询页面', 0, '2020-07-03 16:39:08', NULL);
INSERT INTO `gen_template_info` VALUES (30, 1, 'Form.vue', '<template>\n <a-form @submit=\"handleSubmit\" :form=\"form\">\n\n #foreach ($column in $columns)\n #if($column.columnName == $pk.attrName)\n <a-form-item v-if=\"formAction === this.FORM_ACTION.UPDATE\" style=\"display: none\">\n <a-input v-decorator=\"[\'${pk.attrName}\']\"/>\n </a-form-item>\n\n #elseif($column.columnName != \"create_time\" && $column.columnName != \"update_time\")\n <a-form-item label=\"$column.comments\"\n :labelCol=labelCol\n :wrapperCol=wrapperCol>\n <a-input placeholder=\"$column.comments\"\n v-decorator=\"[\'$column.attrName\']\" />\n </a-form-item>\n\n #end\n #end\n\n <div v-show=\"formAction === this.FORM_ACTION.UPDATE\">\n <a-form-item\n label=\"创建时间\"\n :labelCol=labelCol\n :wrapperCol=wrapperCol>\n <span>{{ displayData.createTime }}</span>\n </a-form-item>\n <a-form-item\n label=\"修改时间\"\n :labelCol=labelCol\n :wrapperCol=wrapperCol>\n <span>{{ displayData.updateTime }}</span>\n </a-form-item>\n </div>\n <a-form-item\n :wrapperCol=\"{offset: 3 }\"\n >\n <a-button htmlType=\"submit\" type=\"primary\" :loading=\"submitLoading\">提交</a-button>\n <a-button style=\"margin-left: 8px\" @click=\"backToPage(false)\">取消</a-button>\n </a-form-item>\n </a-form>\n</template>\n\n<script>\n import { FormPageMixin } from \'@/mixins\'\n import { addObj, putObj } from \'@/api/${moduleName}/${pathName}\'\n\n export default {\n name: \'${className}FormPage\',\n mixins: [FormPageMixin],\n data () {\n return {\n reqFunctions: {\n create: addObj,\n update: putObj\n },\n\n // 校验配置\n decoratorOptions: {},\n }\n },\n methods: {\n }\n }\n</script>', 1, '新建和修改使用的表单页面', 0, '2020-07-03 16:39:08', '2020-07-03 16:40:04');
INSERT INTO `gen_template_info` VALUES (31, 1, 'permissionSql', '## 备注: 变量的使用方法是mysql语法基础生成部分是全数据库通用若数据源非mysql请只执行基础生成sql\nSTART TRANSACTION;\n\n-- 目录ID\nset @pId = 目录ID;\n-- 菜单ID\nset @menuId = 菜单ID;\n\n## -----------------基础生成部分start-------------\n-- 插入菜单\nINSERT INTO `sys_permission`\n (`id`, `parent_id`, `title`, `code`, `path`, `router_name`, `component`, `redirect`, `icon`, `sort`, `keep_alive`, `hidden`, `type`, `deleted`, `create_time`, `update_time`)\nVALUES\n (@menuId, @pId, \'${comments}\', NULL, \'/${moduleName}/${pathName}\', \'${classname}\', \'${moduleName}/${pathName}/${className}Page\', NULL, NULL, 1, 0, 0, 1, 0, NULL, \'2019-10-13 22:00:24\');\n\n\n-- 菜单对应按钮SQL\nINSERT INTO `sys_permission` ( `id`, `parent_id`,`title`, `code`, `sort`, `type`, `deleted`, `create_time`, `update_time` )\nVALUES\n( @menuId + 1, @menuId, \'${comments}\', \'${moduleName}:${pathName}:read\', 0, 2, 0, \'2019-10-13 22:00:24\', NULL );\n\n\nINSERT INTO `sys_permission` ( `id`, `parent_id`,`title`, `code`, `sort`, `type`, `deleted`, `create_time`, `update_time` )\nVALUES\n( @menuId + 2, @menuId, \'${comments}\', \'${moduleName}:${pathName}:add\', 1, 2, 0, \'2019-10-13 22:00:24\', NULL );\n\nINSERT INTO `sys_permission` ( `id`, `parent_id`,`title`, `code`, `sort`, `type`, `deleted`, `create_time`, `update_time` )\nVALUES\n( @menuId + 3, @menuId, \'${comments}\', \'${moduleName}:${pathName}:edit\', 2, 2, 0, \'2019-10-13 22:00:24\', NULL );\n\nINSERT INTO `sys_permission` ( `id`, `parent_id`,`title`, `code`, `sort`, `type`, `deleted`, `create_time`, `update_time` )\nVALUES\n( @menuId + 4, @menuId, \'${comments}\', \'${moduleName}:${pathName}:del\', 3, 2, 0, \'2019-10-13 22:00:24\', NULL );\n\n## -----------------基础生成部分end-------------\n\n-- 清空变量\nset @menuId = null;\nset @pId = null;\n\nCOMMIT;', 1, '权限sql', 0, '2020-07-03 16:39:08', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_info`(`directory_entry_id`, `group_id`, `title`, `content`, `engine_type`, `remarks`, `deleted`, `create_time`, `update_time`) VALUES (58, 3, 'Controller', 'package ${packageName}.${moduleName}.controller;\n\nimport com.baomidou.mybatisplus.core.metadata.IPage;\nimport com.baomidou.mybatisplus.extension.plugins.pagination.Page;\nimport com.hccake.ballcat.common.core.result.R;\nimport com.hccake.ballcat.commom.log.operation.annotation.CreateOperationLogging;\nimport com.hccake.ballcat.commom.log.operation.annotation.DeleteOperationLogging;\nimport com.hccake.ballcat.commom.log.operation.annotation.UpdateOperationLogging;\nimport ${packageName}.${moduleName}.model.entity.${className};\nimport ${packageName}.${moduleName}.model.qo.${className}QO;\nimport ${packageName}.${moduleName}.model.vo.${className}VO;\nimport ${packageName}.${moduleName}.service.${className}Service;\nimport com.hccake.ballcat.common.core.result.BaseResultCode;\nimport org.springframework.security.access.prepost.PreAuthorize;\nimport io.swagger.annotations.Api;\nimport io.swagger.annotations.ApiOperation;\nimport lombok.RequiredArgsConstructor;\nimport org.springframework.web.bind.annotation.*;\n\n\n/**\n * ${comments}\n *\n * @author ${author} ${currentTime}\n */\n@RestController\n@RequiredArgsConstructor\n@RequestMapping(\"/${moduleName}/${pathName}\" )\n@Api(value = \"${pathName}\", tags = \"${comments}管理\")\npublic class ${className}Controller {\n\n private final ${className}Service ${classname}Service;\n\n /**\n * 分页查询\n * @param page 分页对象\n * @param ${classname}QO ${comments}查询对象\n * @return R 通用返回体\n */\n @ApiOperation(value = \"分页查询\", notes = \"分页查询\")\n @GetMapping(\"/page\" )\n @PreAuthorize(\"@per.hasPermission(\'${moduleName}:${pathName}:read\')\" )\n public R<IPage<${className}VO>> get${className}Page(\n Page<?> page, ${className}QO ${classname}QO) {\n return R.ok(${classname}Service.selectPageVo(page, ${classname}QO));\n }\n\n /**\n * 新增${comments}\n * @param ${classname} ${comments}\n * @return R 通用返回体\n */\n @ApiOperation(value = \"新增${comments}\", notes = \"新增${comments}\")\n @CreateOperationLogging(msg = \"新增${comments}\" )\n @PostMapping\n @PreAuthorize(\"@per.hasPermission(\'${moduleName}:${pathName}:add\')\" )\n public R<?> save(@RequestBody ${className} ${classname}) {\n return ${classname}Service.save(${classname}) ?\n R.ok() : R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, \"新增${comments}失败\");\n }\n\n /**\n * 修改${comments}\n * @param ${classname} ${comments}\n * @return R 通用返回体\n */\n @ApiOperation(value = \"修改${comments}\", notes = \"修改${comments}\")\n @UpdateOperationLogging(msg = \"修改${comments}\" )\n @PutMapping\n @PreAuthorize(\"@per.hasPermission(\'${moduleName}:${pathName}:edit\')\" )\n public R<?> updateById(@RequestBody ${className} ${classname}) {\n return ${classname}Service.updateById(${classname}) ?\n R.ok() : R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, \"修改${comments}失败\");\n }\n\n /**\n * 通过id删除${comments}\n * @param ${pk.attrName} id\n * @return R 通用返回体\n */\n @ApiOperation(value = \"通过id删除${comments}\", notes = \"通过id删除${comments}\")\n @DeleteOperationLogging(msg = \"通过id删除${comments}\" )\n @DeleteMapping(\"/{${pk.attrName}}\" )\n @PreAuthorize(\"@per.hasPermission(\'${moduleName}:${pathName}:del\')\" )\n public R<?> removeById(@PathVariable ${pk.attrType} ${pk.attrName}) {\n return ${classname}Service.removeById(${pk.attrName}) ?\n R.ok() : R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, \"通过id删除${comments}失败\");\n }\n\n}', 1, '控制层', 0, '2020-07-03 16:39:08', '2020-09-16 23:01:22');
INSERT INTO `ballcat_codegen`.`gen_template_info`(`directory_entry_id`, `group_id`, `title`, `content`, `engine_type`, `remarks`, `deleted`, `create_time`, `update_time`) VALUES (59, 3, 'Service', 'package ${packageName}.${moduleName}.service;\n\nimport com.baomidou.mybatisplus.core.metadata.IPage;\nimport com.baomidou.mybatisplus.extension.service.IService;\nimport ${packageName}.${moduleName}.model.entity.${className};\nimport ${packageName}.${moduleName}.model.vo.${className}VO;\nimport ${packageName}.${moduleName}.model.qo.${className}QO;\n\n/**\n * ${comments}\n *\n * @author ${author} ${currentTime}\n */\npublic interface ${className}Service extends IService<${className}> {\n\n /**\n * 根据QueryObeject查询分页数据\n * @param page 分页参数\n * @param qo 查询参数对象\n * @return IPage<${className}VO> 分页数据\n */\n IPage<${className}VO> selectPageVo(IPage<?> page, ${className}QO qo);\n\n}', 1, '业务逻辑层', 0, '2020-07-03 16:39:08', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_info`(`directory_entry_id`, `group_id`, `title`, `content`, `engine_type`, `remarks`, `deleted`, `create_time`, `update_time`) VALUES (60, 3, 'ServiceImpl', 'package ${packageName}.${moduleName}.service.impl;\n\nimport cn.hutool.core.util.ObjectUtil;\nimport com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;\nimport com.baomidou.mybatisplus.core.metadata.IPage;\nimport com.baomidou.mybatisplus.core.toolkit.Wrappers;\nimport com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;\nimport ${packageName}.${moduleName}.model.entity.${className};\nimport ${packageName}.${moduleName}.model.vo.${className}VO;\nimport ${packageName}.${moduleName}.model.qo.${className}QO;\nimport ${packageName}.${moduleName}.mapper.${className}Mapper;\nimport ${packageName}.${moduleName}.service.${className}Service;\nimport org.springframework.stereotype.Service;\n\n/**\n * ${comments}\n *\n * @author ${author} ${currentTime}\n */\n@Service\npublic class ${className}ServiceImpl extends ServiceImpl<${className}Mapper, ${className}> implements ${className}Service {\n private final static String TABLE_ALIAS_PREFIX = \"${tableAlias}.\";\n\n /**\n * 根据QueryObeject查询分页数据\n * @param page 分页参数\n * @param qo 查询参数对象\n * @return IPage<${className}VO> 分页数据\n */\n @Override\n public IPage<${className}VO> selectPageVo(IPage<?> page, ${className}QO qo) {\n QueryWrapper<${className}> wrapper = Wrappers.<${className}>query()\n .eq(ObjectUtil.isNotNull(qo.get${pk.capitalizedAttrName}()), TABLE_ALIAS_PREFIX + \"${pk.columnName}\", qo.get${pk.capitalizedAttrName}());\n return baseMapper.selectPageVo(page, wrapper);\n }\n\n}\n', 1, '业务逻辑层实现类', 0, '2020-07-03 16:39:08', '2020-09-17 16:47:55');
INSERT INTO `ballcat_codegen`.`gen_template_info`(`directory_entry_id`, `group_id`, `title`, `content`, `engine_type`, `remarks`, `deleted`, `create_time`, `update_time`) VALUES (61, 3, 'Mapper', 'package ${packageName}.${moduleName}.mapper;\n\nimport com.baomidou.mybatisplus.core.conditions.Wrapper;\nimport com.baomidou.mybatisplus.core.mapper.BaseMapper;\nimport com.baomidou.mybatisplus.core.metadata.IPage;\nimport com.baomidou.mybatisplus.core.toolkit.Constants;\nimport ${packageName}.${moduleName}.model.entity.${className};\nimport ${packageName}.${moduleName}.model.vo.${className}VO;\nimport org.apache.ibatis.annotations.Param;\n\n/**\n * ${comments}\n *\n * @author ${author} ${currentTime}\n */\npublic interface ${className}Mapper extends BaseMapper<${className}> {\n\n /**\n * 分页查询\n * @param page 分页对象\n * @param wrapper 查询wrapper\n * @return IPage<${className}VO> VO分页数据\n */\n IPage<${className}VO> selectPageVo(IPage<?> page, @Param(Constants.WRAPPER) Wrapper<${className}> wrapper);\n}', 1, '数据访问层', 0, '2020-07-03 16:39:08', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_info`(`directory_entry_id`, `group_id`, `title`, `content`, `engine_type`, `remarks`, `deleted`, `create_time`, `update_time`) VALUES (62, 3, 'Entity', 'package ${packageName}.${moduleName}.model.entity;\n\nimport com.baomidou.mybatisplus.annotation.FieldFill;\nimport com.baomidou.mybatisplus.annotation.TableField;\nimport com.baomidou.mybatisplus.annotation.TableId;\nimport com.baomidou.mybatisplus.annotation.TableName;\nimport com.baomidou.mybatisplus.extension.activerecord.Model;\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\nimport java.io.Serializable;\nimport java.time.LocalDateTime;\n\n/**\n * ${comments}\n *\n * @author ${author} ${currentTime}\n */\n@Data\n@TableName(\"${tableName}\")\n@EqualsAndHashCode(callSuper = true)\n@ApiModel(value = \"${comments}\")\npublic class ${className} extends Model<${className}> {\nprivate static final long serialVersionUID = 1L;\n\n#foreach ($column in $columns)\n /**\n * $column.comments\n */\n #if($column.columnName == $pk.columnName)\n @TableId\n #elseif($column.columnName == \'create_time\')\n @TableField(fill = FieldFill.INSERT)\n #elseif($column.columnName == \'update_time\')\n @TableField(fill = FieldFill.INSERT_UPDATE)\n #end\n @ApiModelProperty(value=\"$column.comments\")\n private $column.attrType $column.attrName;\n#end\n}\n', 1, '数据实体', 0, '2020-07-03 16:39:08', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_info`(`directory_entry_id`, `group_id`, `title`, `content`, `engine_type`, `remarks`, `deleted`, `create_time`, `update_time`) VALUES (63, 3, 'QO', 'package ${packageName}.${moduleName}.model.qo;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\nimport lombok.Data;\n\n/**\n * ${comments} 查询对象\n *\n * @author ${author} ${currentTime}\n */\n@Data\n@ApiModel(value = \"${comments}查询对象\")\npublic class ${className}QO {\n private static final long serialVersionUID = 1L;\n\n #foreach ($column in $columns)\n /**\n * $column.comments\n */\n #if($column.columnName == $pk.columnName)\n @ApiModelProperty(value=\"$column.comments\")\n private $column.attrType $column.attrName;\n #break\n #end\n #end\n}', 1, '默认数据查询对象', 0, '2020-07-03 16:39:08', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_info`(`directory_entry_id`, `group_id`, `title`, `content`, `engine_type`, `remarks`, `deleted`, `create_time`, `update_time`) VALUES (64, 3, 'VO', 'package ${packageName}.${moduleName}.model.vo;\n\nimport com.baomidou.mybatisplus.extension.activerecord.Model;\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModelProperty;\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\n #if(${hasBigDecimal})\n import java.math.BigDecimal;\n #end\nimport java.io.Serializable;\nimport java.time.LocalDateTime;\n\n/**\n * ${comments}\n *\n * @author ${author} ${currentTime}\n */\n@Data\n@ApiModel(value = \"${comments}\")\npublic class ${className}VO {\n private static final long serialVersionUID = 1L;\n\n #foreach ($column in $columns)\n /**\n * $column.comments\n */\n @ApiModelProperty(value=\"$column.comments\")\n private $column.attrType $column.attrName;\n #end\n}', 1, '默认数据视图对象', 0, '2020-07-03 16:39:08', '2020-09-16 22:56:23');
INSERT INTO `ballcat_codegen`.`gen_template_info`(`directory_entry_id`, `group_id`, `title`, `content`, `engine_type`, `remarks`, `deleted`, `create_time`, `update_time`) VALUES (65, 3, 'Mapper.xml', '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"${packageName}.${moduleName}.mapper.${className}Mapper\">\n\n <resultMap id=\"${classname}Map\" type=\"${packageName}.${moduleName}.model.entity.${className}\">\n #foreach($column in $columns)\n #if($column.attrName==$pk.attrName)\n <id property=\"${pk.attrName}\" column=\"${pk.columnName}\"/>\n #else\n <result property=\"${column.attrName}\" column=\"${column.columnName}\"/>\n #end\n #end\n </resultMap>\n\n <sql id=\"Base_Column_List\" >\n #foreach($column in $columns)${column.columnName}#if($foreach.hasNext), #end#end\n </sql>\n\n <sql id=\"Base_Alias_Column_List\">\n #foreach($column in $columns)${tableAlias}.${column.columnName}#if( $foreach.hasNext ), #end#end\n </sql>\n\n <select id=\"selectPageVo\" resultType=\"${packageName}.${moduleName}.model.vo.${className}VO\">\n SELECT\n <include refid=\"Base_Alias_Column_List\"/>\n FROM\n ${tableName} ${tableAlias}\n ${ew.customSqlSegment}\n </select>\n</mapper>', 1, 'Mybatis Mapper Xml', 0, '2020-07-03 16:39:08', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_info`(`directory_entry_id`, `group_id`, `title`, `content`, `engine_type`, `remarks`, `deleted`, `create_time`, `update_time`) VALUES (66, 3, 'api.js', 'import { axios } from \'@/utils/request\'\n\nexport function getPage(query) {\n return axios({\n url: \'/${moduleName}/${pathName}/page\',\n method: \'get\',\n params: query\n })\n}\n\nexport function addObj(obj) {\n return axios({\n url: \'/${moduleName}/${pathName}\',\n method: \'post\',\n data: obj\n })\n}\n\nexport function delObj(id) {\n return axios({\n url: \'/${moduleName}/${pathName}/\' + id,\n method: \'delete\'\n })\n}\n\nexport function putObj(obj) {\n return axios({\n url: \'/${moduleName}/${pathName}\',\n method: \'put\',\n data: obj\n })\n}', 1, 'Axios 访问方法', 0, '2020-07-03 16:39:08', NULL);
INSERT INTO `ballcat_codegen`.`gen_template_info`(`directory_entry_id`, `group_id`, `title`, `content`, `engine_type`, `remarks`, `deleted`, `create_time`, `update_time`) VALUES (67, 3, 'Page.vue', '<template>\n <div>\n <a-card v-show=\"tableShow\" :bordered=\"false\">\n <!-- 查询条件 -->\n <div class=\"table-page-search-wrapper\">\n <a-form layout=\"inline\">\n <a-row :gutter=\"48\">\n <a-col :md=\"8\" :sm=\"24\">\n <a-form-item label=\"ID\">\n <a-input v-model=\"queryParam.${pk.attrName}\" placeholder=\"\"/>\n </a-form-item>\n </a-col>\n\n <!-- <template v-if=\"advanced\">\n </template>-->\n <a-col :md=\"!advanced && 8 || 24\" :sm=\"24\">\n <span class=\"table-page-search-submitButtons\"\n :style=\"advanced && { float: \'right\', overflow: \'hidden\' } || {} \">\n <a-button type=\"primary\" @click=\"reloadTable\">查询</a-button>\n <a-button style=\"margin-left: 8px\" @click=\"resetSearchForm\">重置</a-button>\n <!--<a @click=\"toggleAdvanced\" style=\"margin-left: 8px\">\n {{ advanced ? \'\' : \'\' }}\n <a-icon :type=\"advanced ? \'up\' : \'down\'\"/>\n </a>-->\n </span>\n </a-col>\n </a-row>\n </a-form>\n </div>\n\n <!-- 操作按钮区域 -->\n <div class=\"table-operator\">\n <a-button v-has=\"\'${moduleName}:${pathName}:add\'\" type=\"primary\" icon=\"plus\" @click=\"handleAdd()\">新建</a-button>\n </div>\n\n <!--数据表格区域-->\n <div class=\"table-wrapper\">\n <a-table\n ref=\"table\"\n size=\"middle\"\n :rowKey=\"rowKey\"\n :columns=\"columns\"\n :dataSource=\"dataSource\"\n :pagination=\"pagination\"\n :loading =\"loading\"\n @change=\"handleTableChange\"\n >\n <template slot=\"action-slot\" slot-scope=\"text, record\">\n <a v-has=\"\'${moduleName}:${pathName}:edit\'\" @click=\"handleEdit(record)\">编辑</a>\n <a-divider type=\"vertical\"/>\n <a-popconfirm v-has=\"\'${moduleName}:${pathName}:del\'\"\n title=\"确认要删除吗?\"\n @confirm=\"() => handleDel(record)\">\n <a href=\"javascript:\">删除</a>\n </a-popconfirm>\n </template>\n </a-table>\n </div>\n </a-card>\n\n <!--表单页面-->\n <a-card v-if=\"formInited\" :bordered=\"false\" :title=\"cardTitle\" v-show=\"!tableShow\">\n <form-page ref=\"formPage\" @backToPage=\"backToPage\"></form-page>\n </a-card>\n\n </div>\n</template>\n\n<script>\n import { getPage, delObj } from \'@/api/${moduleName}/${pathName}\'\n import FormPage from \'./${className}Form\'\n import { TablePageMixin } from \'@/mixins\'\n\n export default {\n name: \'${className}Page\',\n mixins: [TablePageMixin],\n components: { FormPage },\n data () {\n return {\n getPage: getPage,\n delObj: delObj,\n\n columns: [\n #foreach ($column in $columns)\n #if($column.columnName != \'create_time\' && $column.columnName != \'update_time\')\n #if($column.columnName == \'id\')\n {\n title: \'#\',\n dataIndex: \'$column.attrName\',\n },\n #else\n {\n title: \'$column.comments\',\n dataIndex: \'$column.attrName\',\n },\n #end\n #end\n #end\n {\n title: \'创建时间\',\n dataIndex: \'createTime\',\n width: \'150px\',\n sorter: true\n },\n {\n title: \'更新时间\',\n dataIndex: \'updateTime\',\n width: \'150px\',\n sorter: true\n },\n {\n title: \'操作\',\n dataIndex: \'action\',\n width: \'150px\',\n scopedSlots: { customRender: \'action-slot\' }\n }\n ],\n }\n },\n methods: {\n\n }\n }\n</script>', 1, '查询页面', 0, '2020-07-03 16:39:08', '2020-09-16 23:10:19');
INSERT INTO `ballcat_codegen`.`gen_template_info`(`directory_entry_id`, `group_id`, `title`, `content`, `engine_type`, `remarks`, `deleted`, `create_time`, `update_time`) VALUES (68, 3, 'Form.vue', '<template>\n <a-form @submit=\"handleSubmit\" :form=\"form\" :labelCol=labelCol :wrapperCol=wrapperCol>\n #foreach ($column in $columns)\n #if($column.columnName == $pk.attrName)\n <a-form-item v-if=\"formAction === this.FORM_ACTION.UPDATE\" style=\"display: none\">\n <a-input v-decorator=\"[\'${pk.attrName}\']\"/>\n </a-form-item>\n\n #elseif($column.columnName != \"create_time\" && $column.columnName != \"update_time\")\n <a-form-item label=\"$column.comments\">\n <a-input placeholder=\"$column.comments\" v-decorator=\"[\'$column.attrName\']\" />\n </a-form-item>\n \n #end\n #end\n\n <div v-show=\"formAction === this.FORM_ACTION.UPDATE\">\n <a-form-item label=\"创建时间\">\n <span>{{ displayData.createTime }}</span>\n </a-form-item>\n <a-form-item label=\"修改时间\">\n <span>{{ displayData.updateTime }}</span>\n </a-form-item>\n </div>\n \n <a-form-item :wrapperCol=\"{offset: 7 }\">\n <a-button htmlType=\"submit\" type=\"primary\" :loading=\"submitLoading\">提交</a-button>\n <a-button style=\"margin-left: 8px\" @click=\"backToPage(false)\">取消</a-button>\n </a-form-item>\n </a-form>\n</template>\n\n<script>\n import { FormPageMixin } from \'@/mixins\'\n import { addObj, putObj } from \'@/api/${moduleName}/${pathName}\'\n\n export default {\n name: \'${className}FormPage\',\n mixins: [FormPageMixin],\n data () {\n return {\n reqFunctions: {\n create: addObj,\n update: putObj\n },\n\n // 校验配置\n decoratorOptions: {},\n }\n },\n methods: {\n }\n }\n</script>', 1, '新建和修改使用的表单页面', 0, '2020-07-03 16:39:08', '2020-09-16 23:09:16');
INSERT INTO `ballcat_codegen`.`gen_template_info`(`directory_entry_id`, `group_id`, `title`, `content`, `engine_type`, `remarks`, `deleted`, `create_time`, `update_time`) VALUES (69, 3, 'permissionSql', '## 备注: 变量的使用方法是mysql语法基础生成部分是全数据库通用若数据源非mysql请只执行基础生成sql\nSTART TRANSACTION;\n\n-- 目录ID\nset @pId = 目录ID;\n-- 菜单ID\nset @menuId = 菜单ID;\n\n## -----------------基础生成部分start-------------\n-- 插入菜单\nINSERT INTO `sys_permission`\n (`id`, `parent_id`, `title`, `code`, `path`, `router_name`, `component`, `redirect`, `icon`, `sort`, `keep_alive`, `hidden`, `type`, `deleted`, `create_time`, `update_time`)\nVALUES\n (@menuId, @pId, \'${comments}\', NULL, \'/${moduleName}/${pathName}\', \'${classname}\', \'${moduleName}/${pathName}/${className}Page\', NULL, NULL, 1, 0, 0, 1, 0, NULL, \'2019-10-13 22:00:24\');\n\n\n-- 菜单对应按钮SQL\nINSERT INTO `sys_permission` ( `id`, `parent_id`,`title`, `code`, `sort`, `type`, `deleted`, `create_time`, `update_time` )\nVALUES\n( @menuId + 1, @menuId, \'${comments}\', \'${moduleName}:${pathName}:read\', 0, 2, 0, \'2019-10-13 22:00:24\', NULL );\n\n\nINSERT INTO `sys_permission` ( `id`, `parent_id`,`title`, `code`, `sort`, `type`, `deleted`, `create_time`, `update_time` )\nVALUES\n( @menuId + 2, @menuId, \'${comments}\', \'${moduleName}:${pathName}:add\', 1, 2, 0, \'2019-10-13 22:00:24\', NULL );\n\nINSERT INTO `sys_permission` ( `id`, `parent_id`,`title`, `code`, `sort`, `type`, `deleted`, `create_time`, `update_time` )\nVALUES\n( @menuId + 3, @menuId, \'${comments}\', \'${moduleName}:${pathName}:edit\', 2, 2, 0, \'2019-10-13 22:00:24\', NULL );\n\nINSERT INTO `sys_permission` ( `id`, `parent_id`,`title`, `code`, `sort`, `type`, `deleted`, `create_time`, `update_time` )\nVALUES\n( @menuId + 4, @menuId, \'${comments}\', \'${moduleName}:${pathName}:del\', 3, 2, 0, \'2019-10-13 22:00:24\', NULL );\n\n## -----------------基础生成部分end-------------\n\n-- 清空变量\nset @menuId = null;\nset @pId = null;\n\nCOMMIT;', 1, '权限sql', 0, '2020-07-03 16:39:08', NULL);
-- ----------------------------
-- Table structure for gen_template_property

7
doc/update_sql/0.0.2.sql Normal file
View File

@@ -0,0 +1,7 @@
ALTER TABLE `admin_operation_log`
ADD COLUMN `trace_id` char(24) NULL COMMENT '追踪ID' AFTER `id`,
MODIFY COLUMN `method` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求方式' AFTER `uri`,
ADD COLUMN `type` tinyint(1) NULL COMMENT '操作类型' AFTER `status`;
ALTER TABLE `admin_access_log`
ADD COLUMN `trace_id` char(24) NULL COMMENT '追踪ID' AFTER `id`

17
doc/update_sql/0.0.3.sql Normal file
View File

@@ -0,0 +1,17 @@
-- 逻辑删除字段修改为bigint
ALTER TABLE `ballcat`.`sys_user`
MODIFY COLUMN `deleted` bigint(20) NULL DEFAULT NULL COMMENT '逻辑删除标识,未删除为 0已删除为删除时间' AFTER `type`;
ALTER TABLE `ballcat`.`sys_role`
MODIFY COLUMN `deleted` bigint(20) NULL DEFAULT NULL COMMENT '逻辑删除标识,未删除为 0已删除为删除时间' AFTER `note`;
ALTER TABLE `ballcat`.`sys_permission`
MODIFY COLUMN `deleted` bigint(20) NULL DEFAULT NULL COMMENT '逻辑删除标识,未删除为 0已删除为删除时间' AFTER `type`;
ALTER TABLE `ballcat`.`sys_dict`
MODIFY COLUMN `deleted` bigint(20) NULL DEFAULT NULL COMMENT '逻辑删除标识,未删除为 0已删除为删除时间' AFTER `hash_code`;
ALTER TABLE `ballcat`.`sys_dict_item`
MODIFY COLUMN `deleted` bigint(20) NULL DEFAULT NULL COMMENT '逻辑删除标识,未删除为 0已删除为删除时间' AFTER `remarks`;
ALTER TABLE `ballcat`.`sys_config`
ADD COLUMN `deleted` bigint(20) NULL COMMENT '逻辑删除标识,未删除为 0已删除为删除时间' AFTER `description`;
-- 系统角色新增类型字段
ALTER TABLE `ballcat`.`sys_role`
ADD COLUMN `type` tinyint(1) NULL DEFAULT 2 COMMENT '角色类型1系统角色 2业务角色' AFTER `code`;

12
doc/update_sql/0.0.4.sql Normal file
View File

@@ -0,0 +1,12 @@
update sys_dict set `code` = 'log_status' where `code` = 'log_type';
update sys_dict_item set `dict_codecode` = 'log_status' where `dict_code` = 'log_type';
ALTER TABLE `ballcat`.`admin_access_log`
ADD COLUMN `result` text NULL COMMENT '响应信息' AFTER `http_status`;
ALTER TABLE sys_dict ADD `value_type` TINYINT ( 1 ) NULL DEFAULT 1 COMMENT '值类型,1:Number 2:String 3:Boolean' AFTER `editable`;
INSERT INTO `sys_dict`(`code`, `title`, `remarks`, `editable`, `hash_code`, `deleted`, `create_time`, `update_time`, `value_type`) VALUES ('dict_value_type', '字典数据类型', NULL, 1, '582ed0dc179d4c99929b6dc5b63847fb', 0, now(), NULL, 1);
INSERT INTO `sys_dict_item`(`dict_code`, `value`, `name`, `sort`, `remarks`, `deleted`, `create_time`, `update_time`) VALUES ('dict_value_type', '1', 'Number', 1, NULL, 0, '2020-08-12 16:10:22', '2020-08-12 16:12:33');
INSERT INTO `sys_dict_item`(`dict_code`, `value`, `name`, `sort`, `remarks`, `deleted`, `create_time`, `update_time`) VALUES ('dict_value_type', '2', 'String', 1, NULL, 0, '2020-08-12 16:10:31', '2020-08-12 16:12:27');
INSERT INTO `sys_dict_item`(`dict_code`, `value`, `name`, `sort`, `remarks`, `deleted`, `create_time`, `update_time`) VALUES ('dict_value_type', '3', 'Boolean', 1, NULL, 0, '2020-08-12 16:10:38', '2020-08-12 16:12:23');

113
doc/update_sql/0.0.5.sql Normal file
View File

@@ -0,0 +1,113 @@
-- 添加字典属性字段
ALTER TABLE `ballcat`.`sys_dict_item`
ADD COLUMN `attributes` json NULL COMMENT '附加属性' AFTER `name`;
INSERT INTO `ballcat`.`sys_dict`(`code`, `title`, `remarks`, `editable`, `value_type`, `hash_code`, `deleted`, `create_time`, `update_time`) VALUES ('login_event_type', '登陆事件类型', '1登陆 2登出', 0, 1, '6fe465274208421eb0619a516875e270', 0, '2020-09-17 14:44:00', NULL);
INSERT INTO `ballcat`.`sys_dict_item`(`dict_code`, `value`, `name`, `attributes`, `sort`, `remarks`, `deleted`, `create_time`, `update_time`) VALUES ('login_event_type', '1', '登陆', '{\"tagColor\": \"cyan\"}', 0, '', 0, '2020-03-27 01:05:52', '2019-03-25 12:49:18');
INSERT INTO `ballcat`.`sys_dict_item`(`dict_code`, `value`, `name`, `attributes`, `sort`, `remarks`, `deleted`, `create_time`, `update_time`) VALUES ('login_event_type', '2', '登出', '{\"tagColor\": \"pink\"}', 1, '', 0, '2020-03-27 01:05:52', '2019-03-25 12:49:13');
-- 更新已有字典项的属性
UPDATE `ballcat`.`sys_dict_item` SET `attributes` = '{"tagColor": "orange"}' WHERE `dict_code` = "dict_property" and `value` = 0;
UPDATE `ballcat`.`sys_dict_item` SET `attributes` = '{"tagColor": "green"}' WHERE `dict_code` = "dict_property" and `value` = 1;
UPDATE `ballcat`.`sys_dict_item` SET `attributes` = '{"textColor": "#34890A"}' WHERE `dict_code` = "log_status" and `value` = 1;
UPDATE `ballcat`.`sys_dict_item` SET `attributes` = '{"textColor": "red"}' WHERE `dict_code` = "log_status" and `value` = 0;
UPDATE `ballcat`.`sys_dict_item` SET `attributes` = '{"tagColor": "cyan"}' WHERE `dict_code` = "login_event_type" and `value` = 1;
UPDATE `ballcat`.`sys_dict_item` SET `attributes` = '{"tagColor": "pink"}' WHERE `dict_code` = "login_event_type" and `value` = 2;
UPDATE `ballcat`.`sys_dict_item` SET `attributes` = '{"tagColor": "purple"}' WHERE `dict_code` = "operation_type" and `value` = 3;
UPDATE `ballcat`.`sys_dict_item` SET `attributes` = '{"tagColor": "cyan"}' WHERE `dict_code` = "operation_type" and `value` = 4;
UPDATE `ballcat`.`sys_dict_item` SET `attributes` = '{"tagColor": "orange"}' WHERE `dict_code` = "operation_type" and `value` = 5;
UPDATE `ballcat`.`sys_dict_item` SET `attributes` = '{"tagColor": "pink"}' WHERE `dict_code` = "operation_type" and `value` = 6;
UPDATE `ballcat`.`sys_dict_item` SET `attributes` = '{"tagColor": "orange"}' WHERE `dict_code` = "role_type" and `value` = 1;
UPDATE `ballcat`.`sys_dict_item` SET `attributes` = '{"tagColor": "green"}' WHERE `dict_code` = "role_type" and `value` = 2;
-- 删除弃用的字典项
delete from `ballcat`.`sys_dict_item` WHERE `dict_code` = "operation_type" and ( `value` = 1 or `value` = 2 );
-- 登陆日志表
CREATE TABLE `admin_login_log` (
`id` bigint(64) NOT NULL AUTO_INCREMENT COMMENT '编号',
`trace_id` char(24) DEFAULT NULL COMMENT '追踪ID',
`username` varchar(64) DEFAULT NULL COMMENT '用户名',
`ip` varchar(64) DEFAULT NULL COMMENT '登陆IP',
`os` varchar(50) DEFAULT NULL COMMENT '操作系统',
`status` tinyint(1) NOT NULL COMMENT '状态',
`event_type` tinyint(1) DEFAULT NULL COMMENT '事件类型1登录 2登出',
`msg` varchar(255) DEFAULT NULL COMMENT '操作信息',
`location` varchar(50) DEFAULT NULL COMMENT '登陆地点',
`browser` varchar(50) DEFAULT NULL COMMENT '浏览器',
`login_time` datetime DEFAULT NULL COMMENT '登录/登出时间',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
KEY `username` (`username`) USING BTREE,
KEY `status` (`status`) USING BTREE,
KEY `create_time` (`create_time`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='登陆日志';
-- 登录日志权限数据
INSERT INTO `ballcat`.`sys_permission`(`id`, `title`, `code`, `path`, `router_name`, `component`, `redirect`, `target`, `parent_id`, `icon`, `sort`, `keep_alive`, `hidden`, `type`, `deleted`, `create_time`, `update_time`) VALUES (110200, '登陆日志', NULL, '/log/adminloginlog', 'adminLoginLog', 'log/adminloginlog/AdminLoginLogPage', NULL, NULL, 110000, NULL, 1, 0, 0, 1, 0, NULL, '2019-10-13 22:00:24');
INSERT INTO `ballcat`.`sys_permission`(`id`, `title`, `code`, `path`, `router_name`, `component`, `redirect`, `target`, `parent_id`, `icon`, `sort`, `keep_alive`, `hidden`, `type`, `deleted`, `create_time`, `update_time`) VALUES (110201, '登陆日志查询', 'log:adminloginlog:read', NULL, NULL, NULL, NULL, NULL, 110200, NULL, 0, 0, 0, 2, 0, '2019-10-13 22:00:24', NULL);
-- lov 模块
DROP TABLE IF EXISTS `sys_lov`;
CREATE TABLE `sys_lov` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`keyword` varchar(50) DEFAULT NULL COMMENT '关键字唯一加载lov数据时通过关键字加载',
`url` varchar(255) DEFAULT NULL COMMENT '获取数据时请求路径',
`method` varchar(10) DEFAULT NULL COMMENT 'http请求方式',
`position` varchar(10) DEFAULT NULL COMMENT 'http请求参数设置位置',
`key` varchar(20) DEFAULT NULL COMMENT '数据的key',
`fixed_params` varchar(255) DEFAULT '{}' COMMENT '固定请求参数,请设置 jsonString, 默认值 {}',
`multiple` bit(1) DEFAULT NULL COMMENT '是否需要多选',
`search` bit(1) DEFAULT NULL COMMENT '是否需要搜索框',
`ret` bit(1) DEFAULT NULL COMMENT '是否需要返回数据, false则不会有确定按钮',
`ret_field` varchar(50) DEFAULT NULL COMMENT '返回数据的字段',
`ret_field_data_type` tinyint(1) DEFAULT NULL COMMENT '返回字段数据类型 1 String 2 Number',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `keyword` (`keyword`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='lov';
DROP TABLE IF EXISTS `sys_lov_body`;
CREATE TABLE `sys_lov_body` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`lov_id` int(11) DEFAULT NULL,
`title` varchar(100) DEFAULT NULL COMMENT '标题',
`field` varchar(50) DEFAULT NULL COMMENT '字段, 同一lov下field不可重复`',
`index` int(255) DEFAULT NULL COMMENT '索引,字段排序',
`property` varchar(255) DEFAULT '{}' COMMENT '自定义属性,请设置 jsonString, 默认值 {}',
`custom` bit(1) DEFAULT NULL COMMENT '是否自定义html',
`html` text COMMENT '如果 custom=true 则当前值不能为空',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `lov_id` (`lov_id`,`field`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='lov body';
DROP TABLE IF EXISTS `sys_lov_search`;
CREATE TABLE `sys_lov_search` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`lov_id` int(11) DEFAULT NULL,
`label` varchar(100) DEFAULT NULL COMMENT '标签文字',
`field` varchar(50) DEFAULT NULL COMMENT '字段',
`placeholder` varchar(255) DEFAULT NULL COMMENT 'placeholder',
`tag` varchar(50) DEFAULT NULL COMMENT 'html 标签',
`options` text COMMENT 'tag=SELECT时的选项',
`min` int(1) DEFAULT NULL COMMENT 'tag=INPUT_NUMBER时的选项设置数字最小值',
`max` int(1) DEFAULT NULL COMMENT 'tag=INPUT_NUMBER时的选项设置数字最大值',
`dict_code` varchar(50) DEFAULT NULL COMMENT 'tag=DICT_SELECT时的选项设置dict-code',
`custom` bit(1) DEFAULT NULL COMMENT '是否自定义html',
`html` text COMMENT '如果 custom=true 则当前值不能为空',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `lov_id` (`lov_id`,`field`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='lov search';
INSERT INTO `sys_permission` VALUES (100600, 'lov', NULL, '/sys/lov', 'Lov', 'sys/lov/Lov', NULL, NULL, 100000, NULL, 6, 0, 0, 1, 0, NULL, '2020-08-27 21:36:18');
INSERT INTO `sys_permission` VALUES (100601, 'lov查询', 'sys:lov:read', NULL, NULL, NULL, NULL, NULL, 100600, NULL, 0, 0, 0, 2, 0, '2019-10-13 22:00:24', NULL);
INSERT INTO `sys_permission` VALUES (100602, 'lov新增', 'sys:lov:add', NULL, NULL, NULL, NULL, NULL, 100600, NULL, 1, 0, 0, 2, 0, '2019-10-13 22:00:24', NULL);
INSERT INTO `sys_permission` VALUES (100603, 'lov修改', 'sys:lov:edit', NULL, NULL, NULL, NULL, NULL, 100600, NULL, 2, 0, 0, 2, 0, '2019-10-13 22:00:24', NULL);
INSERT INTO `sys_permission` VALUES (100604, 'lov删除', 'sys:lov:del', NULL, NULL, NULL, NULL, NULL, 100600, NULL, 3, 0, 0, 2, 0, '2019-10-13 22:00:24', NULL);