mirror of
https://gitee.com/hhyykk/ipms-sjy.git
synced 2025-08-10 00:01:53 +08:00
代码生成:支持设置主子表的信息
This commit is contained in:
@@ -29,4 +29,9 @@ public interface CodegenTableMapper extends BaseMapperX<CodegenTableDO> {
|
||||
return selectList(CodegenTableDO::getDataSourceConfigId, dataSourceConfigId);
|
||||
}
|
||||
|
||||
default List<CodegenTableDO> selectListByTemplateTypeAndMasterTableId(Integer templateType, Long masterTableId) {
|
||||
return selectList(CodegenTableDO::getTemplateType, templateType,
|
||||
CodegenTableDO::getMasterTableId, masterTableId);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -252,13 +252,25 @@ public class CodegenServiceImpl implements CodegenService {
|
||||
List<CodegenTableDO> subTables = null;
|
||||
List<List<CodegenColumnDO>> subColumnsList = null;
|
||||
if (CodegenTemplateTypeEnum.isMaster(table.getTemplateType())) {
|
||||
subTables = codegenTableMapper.selectListByMasterTableId(tableId);
|
||||
subTable = codegenTableMapper.selectById(table.getMasterTableId());
|
||||
subColumns = codegenColumnMapper.selectListByTableId(table.getMasterTableId());
|
||||
// 校验子表存在
|
||||
subTables = codegenTableMapper.selectListByTemplateTypeAndMasterTableId(
|
||||
CodegenTemplateTypeEnum.SUB.getType(), tableId);
|
||||
if (CollUtil.isEmpty(subTables)) {
|
||||
throw exception(CODEGEN_MASTER_GENERATION_FAIL_NO_SUB_TABLE);
|
||||
}
|
||||
// 校验子表的关联字段存在
|
||||
subColumnsList = new ArrayList<>();
|
||||
for (CodegenTableDO subTable : subTables) {
|
||||
List<CodegenColumnDO> subColumns = codegenColumnMapper.selectListByTableId(subTable.getId());
|
||||
if (CollUtil.findOne(subColumns, column -> column.getId().equals(subTable.getSubJoinColumnId())) == null) {
|
||||
throw exception(CODEGEN_SUB_COLUMN_NOT_EXISTS, subTable.getId());
|
||||
}
|
||||
subColumnsList.add(subColumns);
|
||||
}
|
||||
}
|
||||
|
||||
// 执行生成
|
||||
return codegenEngine.execute(table, columns, subTable, subColumns);
|
||||
return codegenEngine.execute(table, columns, subTables, subColumnsList);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Reference in New Issue
Block a user