mirror of
http://git.pig4cloud.com/pig/pigx.git
synced 2026-11-11 21:29:02 +08:00
✨ Introducing new features. 代码生成支持区分 springboot2/springboot3
This commit is contained in:
1 parent
3df113d422
commit
8f7f3e0fac
4 files changed
+47
-28
No files matched your search
+36
-17
@@ -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));
|
||||
|
||||
Reference in new issue
Block a user