🎨 修改生成函数
This commit is contained in:
parent
68f9cda260
commit
d13451c1f9
|
@ -52,7 +52,7 @@ public class ZipFileService {
|
|||
try {
|
||||
String entryPath = generatorVo.getPath().replace(FILE_EXTENSION, "");
|
||||
zipOutputStream.putNextEntry(new ZipEntry(entryPath));
|
||||
zipOutputStream.write(generatorVo.getCode().getBytes(StandardCharsets.UTF_8));
|
||||
zipOutputStream.write(generatorVo.getCode().getBytes(UTF_8));
|
||||
zipOutputStream.closeEntry();
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException("Failed to add file to ZIP: " + generatorVo.getPath(), e);
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
package cn.bunny.domain.group;
|
||||
|
||||
public interface RequestGroup {
|
||||
|
||||
void DataBaseGroup();
|
||||
|
||||
void SqlGroup();
|
||||
|
||||
}
|
|
@ -13,6 +13,7 @@ import org.springframework.http.ResponseEntity;
|
|||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
|
@ -30,14 +31,41 @@ public class GeneratorServiceImpl implements GeneratorService {
|
|||
private final IMetadataProvider sqlMetadataProvider;
|
||||
private final ZipFileService zipFileService;
|
||||
|
||||
/**
|
||||
* 代码生成方法---数据库生成
|
||||
*
|
||||
* @param dto 生成参数
|
||||
* @return 生成的代码,按表名分组
|
||||
*/
|
||||
@Override
|
||||
public Map<String, List<GeneratorVo>> generateCodeByDatabase(VmsArgumentDto dto) {
|
||||
return generateCode(dto, databaseMetadataProvider);
|
||||
return dto.getTableNames().parallelStream()
|
||||
.flatMap(tableName -> {
|
||||
TableMetaData tableMeta = databaseMetadataProvider.getTableMetadata(tableName);
|
||||
List<ColumnMetaData> columns = databaseMetadataProvider.getColumnInfoList(tableName);
|
||||
return GeneratorServiceImplHelper.getGeneratorStream(dto, tableMeta, columns);
|
||||
})
|
||||
.collect(Collectors.groupingBy(GeneratorVo::getTableName));
|
||||
}
|
||||
|
||||
/**
|
||||
* 代码生成方法---Sql语句生成
|
||||
*
|
||||
* @param dto 生成参数
|
||||
* @return 生成的代码,按表名分组
|
||||
*/
|
||||
@Override
|
||||
public Map<String, List<GeneratorVo>> generateCodeBySql(VmsArgumentDto dto) {
|
||||
return generateCode(dto, sqlMetadataProvider);
|
||||
String sql = dto.getSql();
|
||||
TableMetaData tableMeta = sqlMetadataProvider.getTableMetadata(sql);
|
||||
List<ColumnMetaData> columns = sqlMetadataProvider.getColumnInfoList(sql);
|
||||
|
||||
List<GeneratorVo> generatorVoList = GeneratorServiceImplHelper.getGeneratorStream(dto, tableMeta, columns).toList();
|
||||
|
||||
Map<String, List<GeneratorVo>> map = new HashMap<>();
|
||||
map.put(tableMeta.getTableName(), generatorVoList);
|
||||
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -50,23 +78,6 @@ public class GeneratorServiceImpl implements GeneratorService {
|
|||
return downloadByZip(dto, this::generateCodeBySql);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通用代码生成方法
|
||||
*
|
||||
* @param dto 生成参数
|
||||
* @param provider 元数据提供者
|
||||
* @return 生成的代码,按表名分组
|
||||
*/
|
||||
private Map<String, List<GeneratorVo>> generateCode(VmsArgumentDto dto, IMetadataProvider provider) {
|
||||
return dto.getTableNames().parallelStream()
|
||||
.flatMap(tableName -> {
|
||||
TableMetaData tableMeta = provider.getTableMetadata(tableName);
|
||||
List<ColumnMetaData> columns = provider.getColumnInfoList(tableName);
|
||||
return GeneratorServiceImplHelper.getGeneratorStream(dto, tableMeta, columns);
|
||||
})
|
||||
.collect(Collectors.groupingBy(GeneratorVo::getTableName));
|
||||
}
|
||||
|
||||
/**
|
||||
* 通用ZIP打包下载方法
|
||||
*
|
||||
|
@ -74,7 +85,8 @@ public class GeneratorServiceImpl implements GeneratorService {
|
|||
* @param generator 代码生成函数
|
||||
* @return ZIP文件响应实体
|
||||
*/
|
||||
private ResponseEntity<byte[]> downloadByZip(VmsArgumentDto dto, Function<VmsArgumentDto, Map<String, List<GeneratorVo>>> generator) {
|
||||
private ResponseEntity<byte[]> downloadByZip(VmsArgumentDto dto,
|
||||
Function<VmsArgumentDto, Map<String, List<GeneratorVo>>> generator) {
|
||||
List<GeneratorVo> generatorVoList = generator.apply(dto)
|
||||
.values().stream()
|
||||
.flatMap(Collection::stream)
|
||||
|
|
Loading…
Reference in New Issue