✨ Introducing new features. 代码生成支持区分 springboot2/springboot3

This commit is contained in:
lbw committed 2023-11-09 15:21:35 +08:00
1 parent 3df113d422
commit 8f7f3e0fac
4 files changed
+47 -28

No files matched your search

@@ -36,6 +36,7 @@ import com.pig4cloud.pigx.codegen.util.vo.GroupVo;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringBootVersion;
import org.springframework.stereotype.Service;
import java.util.*;
@@ -185,8 +186,8 @@ public class GeneratorServiceImpl implements GeneratorService {
// 获取模板信息,Lambda 表达式简化代码
GenTemplateEntity genTemplateEntity = Optional
.ofNullable(genTemplateService.getById(GeneratorStyleEnum.VFORM_JSON.getTemplateId()))
.orElseThrow(() -> new Exception("模板不存在"));
.ofNullable(genTemplateService.getById(GeneratorStyleEnum.VFORM_JSON.getTemplateId()))
.orElseThrow(() -> new Exception("模板不存在"));
// 渲染模板并返回结果
return VelocityKit.renderStr(genTemplateEntity.getTemplateCode(), dataModel);
@@ -217,8 +218,8 @@ public class GeneratorServiceImpl implements GeneratorService {
// 获取模板信息
GenTemplateEntity genTemplateEntity = Optional
.ofNullable(genTemplateService.getById(GeneratorStyleEnum.VFORM_FORM.getTemplateId()))
.orElseThrow(() -> new Exception("模板不存在"));
.ofNullable(genTemplateService.getById(GeneratorStyleEnum.VFORM_FORM.getTemplateId()))
.orElseThrow(() -> new Exception("模板不存在"));
// 渲染模板并返回结果
return VelocityKit.renderStr(genTemplateEntity.getTemplateCode(), dataModel);
@@ -234,9 +235,10 @@ public class GeneratorServiceImpl implements GeneratorService {
GenTable table = tableService.getById(tableId);
// 获取字段列表
List<GenTableColumnEntity> fieldList = columnService.lambdaQuery()
.eq(GenTableColumnEntity::getDsName, table.getDsName())
.eq(GenTableColumnEntity::getTableName, table.getTableName()).orderByAsc(GenTableColumnEntity::getSort)
.list();
.eq(GenTableColumnEntity::getDsName, table.getDsName())
.eq(GenTableColumnEntity::getTableName, table.getTableName())
.orderByAsc(GenTableColumnEntity::getSort)
.list();
table.setFieldList(fieldList);
@@ -244,6 +246,7 @@ public class GeneratorServiceImpl implements GeneratorService {
Map<String, Object> dataModel = new HashMap<>();
// 填充数据模型
dataModel.put("isSpringBoot3", isSpringBoot3());
dataModel.put("dbType", table.getDbType());
dataModel.put("package", table.getPackageName());
dataModel.put("packagePath", table.getPackageName().replace(".", "/"));
@@ -275,8 +278,9 @@ public class GeneratorServiceImpl implements GeneratorService {
String childTableName = table.getChildTableName();
if (StrUtil.isNotBlank(childTableName)) {
List<GenTableColumnEntity> childFieldList = columnService.lambdaQuery()
.eq(GenTableColumnEntity::getDsName, table.getDsName())
.eq(GenTableColumnEntity::getTableName, table.getChildTableName()).list();
.eq(GenTableColumnEntity::getDsName, table.getDsName())
.eq(GenTableColumnEntity::getTableName, table.getChildTableName())
.list();
dataModel.put("childFieldList", childFieldList);
dataModel.put("childTableName", childTableName);
dataModel.put("mainField", NamingCase.toCamelCase(table.getMainField()));
@@ -288,6 +292,14 @@ public class GeneratorServiceImpl implements GeneratorService {
return dataModel;
}
/**
* 判断当前是否是 SpringBoot3 版本
* @return true/fasle
*/
private boolean isSpringBoot3() {
return StrUtil.startWith(SpringBootVersion.getVersion(), "3");
}
/**
* 将表字段按照类型分组并存储到数据模型中
* @param dataModel 存储数据的 Map 对象
@@ -295,18 +307,25 @@ public class GeneratorServiceImpl implements GeneratorService {
*/
private void setFieldTypeList(Map<String, Object> dataModel, GenTable table) {
// 按字段类型分组,使用 Map 存储不同类型的字段列表
Map<Boolean, List<GenTableColumnEntity>> typeMap = table.getFieldList().stream().collect(Collectors
Map<Boolean, List<GenTableColumnEntity>> typeMap = table.getFieldList()
.stream()
.collect(Collectors
.partitioningBy(columnEntity -> BooleanUtil.toBoolean(columnEntity.getPrimaryPk().toString())));
// 从分组后的 Map 中获取不同类型的字段列表
List<GenTableColumnEntity> primaryList = typeMap.get(true);
List<GenTableColumnEntity> formList = typeMap.get(false).stream()
.filter(columnEntity -> BooleanUtil.toBoolean(columnEntity.getFormItem())).collect(Collectors.toList());
List<GenTableColumnEntity> gridList = typeMap.get(false).stream()
.filter(columnEntity -> BooleanUtil.toBoolean(columnEntity.getGridItem())).collect(Collectors.toList());
List<GenTableColumnEntity> queryList = typeMap.get(false).stream()
.filter(columnEntity -> BooleanUtil.toBoolean(columnEntity.getQueryItem()))
.collect(Collectors.toList());
List<GenTableColumnEntity> formList = typeMap.get(false)
.stream()
.filter(columnEntity -> BooleanUtil.toBoolean(columnEntity.getFormItem()))
.collect(Collectors.toList());
List<GenTableColumnEntity> gridList = typeMap.get(false)
.stream()
.filter(columnEntity -> BooleanUtil.toBoolean(columnEntity.getGridItem()))
.collect(Collectors.toList());
List<GenTableColumnEntity> queryList = typeMap.get(false)
.stream()
.filter(columnEntity -> BooleanUtil.toBoolean(columnEntity.getQueryItem()))
.collect(Collectors.toList());
if (CollUtil.isNotEmpty(primaryList)) {
dataModel.put("pk", primaryList.get(0));