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