📝 Writing docs. 增加主子表代码生成的详细

This commit is contained in:
lbw committed 2023-06-30 12:22:06 +08:00
1 parent 44f473ba27
commit 931635d56c
2 files changed
+23 -23

No files matched your search

+5 -5
View File
@@ -132,10 +132,8 @@ CREATE TABLE `gen_group` (
-- Records of gen_group -- Records of gen_group
-- ---------------------------- -- ----------------------------
BEGIN; BEGIN;
INSERT INTO `gen_group` VALUES (1, '国际化 vue3 弹框', '含有国际化的内容', 1, ' ', ' ', NULL, NULL, '0'); INSERT INTO `gen_group` VALUES (1, '单表增删改查', '单表增删改查', 1, ' ', ' ', NULL, NULL, '0');
INSERT INTO `gen_group` VALUES (2, '不含国际化vue3版本', '表单为弹窗', 1, ' ', ' ', NULL, NULL, '0'); INSERT INTO `gen_group` VALUES (2, '主子表表增删改查', '主子表表增删改查', 1, ' ', ' ', NULL, NULL, '0');
INSERT INTO `gen_group` VALUES (3, '国际化 vue3 抽屉', '抽屉类型', 1, ' ', ' ', NULL, NULL, '0');
INSERT INTO `gen_group` VALUES (4, '不含国际化 vue3 抽屉', 'vue3 抽屉', 1, ' ', ' ', NULL, NULL, '0');
COMMIT; COMMIT;
-- ---------------------------- -- ----------------------------
@@ -154,6 +152,9 @@ CREATE TABLE `gen_table` (
`version` varchar(200) DEFAULT NULL COMMENT '项目版本号', `version` varchar(200) DEFAULT NULL COMMENT '项目版本号',
`i18n` tinyint(4) DEFAULT '1' COMMENT '是否生成带有i18n 0 不带有 1带有', `i18n` tinyint(4) DEFAULT '1' COMMENT '是否生成带有i18n 0 不带有 1带有',
`style` bigint(20) DEFAULT '0' COMMENT '代码风格', `style` bigint(20) DEFAULT '0' COMMENT '代码风格',
`child_table_name` varchar(200) DEFAULT NULL COMMENT '子表名称',
`main_field` varchar(200) DEFAULT NULL COMMENT '主表关联键',
`child_field` varchar(200) DEFAULT NULL COMMENT '子表关联键',
`generator_type` tinyint(4) DEFAULT NULL COMMENT '生成方式 0:zip压缩包 1:自定义目录', `generator_type` tinyint(4) DEFAULT NULL COMMENT '生成方式 0:zip压缩包 1:自定义目录',
`backend_path` varchar(500) DEFAULT NULL COMMENT '后端生成路径', `backend_path` varchar(500) DEFAULT NULL COMMENT '后端生成路径',
`frontend_path` varchar(500) DEFAULT NULL COMMENT '前端生成路径', `frontend_path` varchar(500) DEFAULT NULL COMMENT '前端生成路径',
@@ -166,7 +167,6 @@ CREATE TABLE `gen_table` (
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `table_name` (`table_name`,`ds_name`) USING BTREE UNIQUE KEY `table_name` (`table_name`,`ds_name`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1642522692257112067 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='代码生成表'; ) ENGINE=InnoDB AUTO_INCREMENT=1642522692257112067 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='代码生成表';
-- ---------------------------- -- ----------------------------
-- Records of gen_table -- Records of gen_table
-- ---------------------------- -- ----------------------------
@@ -81,15 +81,16 @@ public abstract class AbstractSheetWriteHandler implements SheetWriteHandler, Ap
public void export(Object o, HttpServletResponse response, ResponseExcel responseExcel) { public void export(Object o, HttpServletResponse response, ResponseExcel responseExcel) {
check(responseExcel); check(responseExcel);
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
String name = (String) Objects.requireNonNull(requestAttributes).getAttribute(DynamicNameAspect.EXCEL_NAME_KEY, String name = (String) Objects.requireNonNull(requestAttributes)
RequestAttributes.SCOPE_REQUEST); .getAttribute(DynamicNameAspect.EXCEL_NAME_KEY, RequestAttributes.SCOPE_REQUEST);
if (name == null) { if (name == null) {
name = UUID.randomUUID().toString(); name = UUID.randomUUID().toString();
} }
String fileName = String.format("%s%s", URLEncoder.encode(name, "UTF-8"), responseExcel.suffix().getValue()); String fileName = String.format("%s%s", URLEncoder.encode(name, "UTF-8"), responseExcel.suffix().getValue());
// 根据实际的文件类型找到对应的 contentType // 根据实际的文件类型找到对应的 contentType
String contentType = MediaTypeFactory.getMediaType(fileName).map(MediaType::toString) String contentType = MediaTypeFactory.getMediaType(fileName)
.orElse("application/vnd.ms-excel"); .map(MediaType::toString)
.orElse("application/vnd.ms-excel");
response.setContentType(contentType); response.setContentType(contentType);
response.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8");
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename*=utf-8''" + fileName); response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename*=utf-8''" + fileName);
@@ -105,11 +106,14 @@ public abstract class AbstractSheetWriteHandler implements SheetWriteHandler, Ap
@SneakyThrows(IOException.class) @SneakyThrows(IOException.class)
public ExcelWriter getExcelWriter(HttpServletResponse response, ResponseExcel responseExcel) { public ExcelWriter getExcelWriter(HttpServletResponse response, ResponseExcel responseExcel) {
ExcelWriterBuilder writerBuilder = EasyExcel.write(response.getOutputStream()) ExcelWriterBuilder writerBuilder = EasyExcel.write(response.getOutputStream())
.registerConverter(LocalTimeStringConverter.INSTANCE) .registerConverter(LocalTimeStringConverter.INSTANCE)
.registerConverter(LocalDateStringConverter.INSTANCE) .registerConverter(LocalDateStringConverter.INSTANCE)
.registerConverter(LocalDateTimeStringConverter.INSTANCE) .registerConverter(LocalDateTimeStringConverter.INSTANCE)
.registerConverter(LongStringConverter.INSTANCE).registerConverter(StringArrayConverter.INSTANCE) .registerConverter(LongStringConverter.INSTANCE)
.autoCloseStream(true).excelType(responseExcel.suffix()).inMemory(responseExcel.inMemory()); .registerConverter(StringArrayConverter.INSTANCE)
.autoCloseStream(true)
.excelType(responseExcel.suffix())
.inMemory(responseExcel.inMemory());
if (StringUtils.hasText(responseExcel.password())) { if (StringUtils.hasText(responseExcel.password())) {
writerBuilder.password(responseExcel.password()); writerBuilder.password(responseExcel.password());
@@ -120,13 +124,11 @@ public abstract class AbstractSheetWriteHandler implements SheetWriteHandler, Ap
} }
if (responseExcel.exclude().length != 0) { if (responseExcel.exclude().length != 0) {
writerBuilder.includeColumnFieldNames(Arrays.asList(responseExcel.exclude())); writerBuilder.excludeColumnFieldNames(Arrays.asList(responseExcel.exclude()));
} }
if (responseExcel.writeHandler().length != 0) { for (Class<? extends WriteHandler> clazz : responseExcel.writeHandler()) {
for (Class<? extends WriteHandler> clazz : responseExcel.writeHandler()) { writerBuilder.registerWriteHandler(BeanUtils.instantiateClass(clazz));
writerBuilder.registerWriteHandler(BeanUtils.instantiateClass(clazz));
}
} }
// 开启国际化头信息处理 // 开启国际化头信息处理
@@ -137,10 +139,8 @@ public abstract class AbstractSheetWriteHandler implements SheetWriteHandler, Ap
// 自定义注入的转换器 // 自定义注入的转换器
registerCustomConverter(writerBuilder); registerCustomConverter(writerBuilder);
if (responseExcel.converter().length != 0) { for (Class<? extends Converter> clazz : responseExcel.converter()) {
for (Class<? extends Converter> clazz : responseExcel.converter()) { writerBuilder.registerConverter(BeanUtils.instantiateClass(clazz));
writerBuilder.registerConverter(BeanUtils.instantiateClass(clazz));
}
} }
String templatePath = configProperties.getTemplatePath(); String templatePath = configProperties.getTemplatePath();