feat(generator): 新增代码批量生成功能
This commit is contained in:
parent
c05584ba66
commit
040f137934
@ -72,4 +72,14 @@ public class TableResp implements Serializable {
|
||||
*/
|
||||
@Schema(description = "是否已配置", example = "true")
|
||||
private Boolean isConfiged;
|
||||
|
||||
/**
|
||||
* 是否禁用
|
||||
*/
|
||||
@Schema(description = "是否禁用", example = "true")
|
||||
private Boolean disabled;
|
||||
|
||||
public Boolean getDisabled() {
|
||||
return !isConfiged;
|
||||
}
|
||||
}
|
||||
|
@ -85,9 +85,9 @@ public interface GeneratorService {
|
||||
/**
|
||||
* 生成代码
|
||||
*
|
||||
* @param tableName 表名称
|
||||
* @param tableNames 表明层
|
||||
* @param request 请求对象
|
||||
* @param response 响应对象
|
||||
*/
|
||||
void generate(String tableName, HttpServletRequest request, HttpServletResponse response);
|
||||
void generate(List<String> tableNames, HttpServletRequest request, HttpServletResponse response);
|
||||
}
|
||||
|
@ -260,8 +260,13 @@ public class GeneratorServiceImpl implements GeneratorService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void generate(String tableName, HttpServletRequest request, HttpServletResponse response) {
|
||||
public void generate(List<String> tableNames, HttpServletRequest request, HttpServletResponse response) {
|
||||
try {
|
||||
String tempDir = SystemUtil.getUserInfo().getTempDir();
|
||||
// 删除旧代码
|
||||
FileUtil.del(tempDir + projectProperties.getAppName());
|
||||
|
||||
tableNames.forEach(tableName -> {
|
||||
// 初始化配置及数据
|
||||
List<GeneratePreviewResp> generatePreviewList = this.preview(tableName);
|
||||
GenConfigDO genConfig = genConfigMapper.selectById(tableName);
|
||||
@ -274,7 +279,7 @@ public class GeneratorServiceImpl implements GeneratorService {
|
||||
String packageName = genConfig.getPackageName();
|
||||
String moduleName = StrUtil.subSuf(packageName, StrUtil
|
||||
.lastIndexOfIgnoreCase(packageName, StringConstants.DOT) + 1);
|
||||
String tempDir = SystemUtil.getUserInfo().getTempDir();
|
||||
|
||||
// 例如:continew-admin-ui/src
|
||||
String frontendBasicPackagePath = tempDir + String.join(File.separator, projectProperties
|
||||
.getAppName(), projectProperties.getAppName() + "-ui", "src");
|
||||
@ -297,13 +302,15 @@ public class GeneratorServiceImpl implements GeneratorService {
|
||||
if (!vueFile.exists() || Boolean.TRUE.equals(genConfig.getIsOverride())) {
|
||||
FileUtil.writeUtf8String(viewGeneratePreview.getContent(), vueFile);
|
||||
}
|
||||
});
|
||||
|
||||
// 打包下载
|
||||
File tempDirFile = new File(tempDir, projectProperties.getAppName());
|
||||
String zipFilePath = tempDirFile.getPath() + ".zip";
|
||||
String zipFilePath = tempDirFile.getPath() + jodd.io.ZipUtil.ZIP_EXT;
|
||||
ZipUtil.zip(tempDirFile.getPath(), zipFilePath);
|
||||
FileUploadUtils.download(request, response, new File(zipFilePath), true);
|
||||
} catch (Exception e) {
|
||||
log.error("Generate code of table '{}' occurred an error. {}", tableName, e.getMessage(), e);
|
||||
log.error("Generate code of table '{}' occurred an error. {}", tableNames, e.getMessage(), e);
|
||||
throw new BusinessException("代码生成失败,请手动清理生成文件");
|
||||
}
|
||||
}
|
||||
|
@ -102,8 +102,10 @@ public class GeneratorController {
|
||||
@Operation(summary = "生成代码", description = "生成代码")
|
||||
@Parameter(name = "tableName", description = "表名称", required = true, example = "sys_user", in = ParameterIn.PATH)
|
||||
@SaCheckPermission("tool:generator:list")
|
||||
@PostMapping("/{tableName}")
|
||||
public void generate(@PathVariable String tableName, HttpServletRequest request, HttpServletResponse response) {
|
||||
generatorService.generate(tableName, request, response);
|
||||
@PostMapping("/{tableNames}")
|
||||
public void generate(@PathVariable List<String> tableNames,
|
||||
HttpServletRequest request,
|
||||
HttpServletResponse response) {
|
||||
generatorService.generate(tableNames, request, response);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user