diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/helper/DataBaseHelper.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/helper/DataBaseHelper.java index 955b6493..df0978d1 100644 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/helper/DataBaseHelper.java +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/ruoyi/helper/DataBaseHelper.java @@ -78,4 +78,28 @@ public class DataBaseHelper { public static List getDataSourceNameList() { return new ArrayList<>(DS.getDataSources().keySet()); } + + /** + * 获取当前连接的所有表名称 + */ + public static List getCurrentDataSourceTableNameList() { + DataSource dataSource = DS.determineDataSource(); + List tableNames = new ArrayList<>(); + try (Connection conn = dataSource.getConnection()) { + DatabaseMetaData metaData = conn.getMetaData(); + String catalog = conn.getCatalog(); + String schema = conn.getSchema(); + + // 获取所有表名 + try (var resultSet = metaData.getTables(catalog, schema, "%", new String[]{"TABLE"})) { + while (resultSet.next()) { + String tableName = resultSet.getString("TABLE_NAME"); + tableNames.add(tableName); + } + } + } catch (SQLException e) { + throw new ServiceException("获取表名称失败: " + e.getMessage()); + } + return tableNames; + } } diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/generator/controller/GenController.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/generator/controller/GenController.java index 0fc7a2ea..9b035b4c 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/generator/controller/GenController.java +++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/generator/controller/GenController.java @@ -58,13 +58,4 @@ public class GenController extends BaseController { response.setContentType("application/octet-stream; charset=UTF-8"); IoUtil.write(response.getOutputStream(), false, data); } - - /** - * 查询数据源名称列表 - */ - @SaCheckPermission("tool:gen:list") - @GetMapping(value = "/getDataNames") - public R getCurrentDataSourceNameList() { - return R.ok(DataBaseHelper.getDataSourceNameList()); - } } diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/generator/controller/SchemaController.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/generator/controller/SchemaController.java index 332c2c06..0ca66a9f 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/generator/controller/SchemaController.java +++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/generator/controller/SchemaController.java @@ -16,6 +16,7 @@ import org.ruoyi.core.page.TableDataInfo; import org.ruoyi.generator.domain.bo.SchemaBo; import org.ruoyi.generator.domain.vo.SchemaVo; import org.ruoyi.generator.service.ISchemaService; +import org.ruoyi.helper.DataBaseHelper; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; @@ -57,8 +58,7 @@ public class SchemaController extends BaseController { */ @SaCheckPermission("dev:schema:query") @GetMapping("/{id}") - public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable Long id) { + public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) { return R.ok(schemaService.queryById(id)); } @@ -92,8 +92,16 @@ public class SchemaController extends BaseController { @SaCheckPermission("dev:schema:remove") @Log(title = "数据模型", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") - public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] ids) { + public R remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) { return toAjax(schemaService.deleteWithValidByIds(List.of(ids), true)); } + + /** + * 查询数据源表名 + */ + @SaCheckPermission("dev:schema:getTableNameList") + @GetMapping(value = "/getDataNames") + public R getCurrentDataSourceTableNameList() { + return R.ok(DataBaseHelper.getCurrentDataSourceTableNameList()); + } } \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/generator/controller/SchemaFieldController.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/generator/controller/SchemaFieldController.java index c587ffd2..5f7b696e 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/generator/controller/SchemaFieldController.java +++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/generator/controller/SchemaFieldController.java @@ -32,15 +32,14 @@ import java.util.List; * 数据模型字段 * * @author ruoyi - */ -@Validated + */@Validated @RequiredArgsConstructor @RestController @RequestMapping("/dev/schemaField") public class SchemaFieldController extends BaseController { private final ISchemaFieldService schemaFieldService; - + /** * 查询数据模型字段列表 */ diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/generator/service/impl/SchemaFieldServiceImpl.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/generator/service/impl/SchemaFieldServiceImpl.java index 9a325f56..b0401c18 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/generator/service/impl/SchemaFieldServiceImpl.java +++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/ruoyi/generator/service/impl/SchemaFieldServiceImpl.java @@ -26,6 +26,7 @@ import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; /** * 数据模型字段Service业务层处理 @@ -53,15 +54,17 @@ public class SchemaFieldServiceImpl implements ISchemaFieldService { */ @Override public TableDataInfo queryPageList(SchemaFieldBo bo, PageQuery pageQuery) { + if (Objects.isNull(bo.getSchemaId())) { + return TableDataInfo.build(); + } LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); return TableDataInfo.build(result); } private LambdaQueryWrapper buildQueryWrapper(SchemaFieldBo bo) { - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(bo.getSchemaId() != null, SchemaField::getSchemaId, bo.getSchemaId()); + lqw.eq(SchemaField::getSchemaId, bo.getSchemaId()); lqw.like(StringUtils.isNotBlank(bo.getName()), SchemaField::getName, bo.getName()); lqw.eq(StringUtils.isNotBlank(bo.getCode()), SchemaField::getCode, bo.getCode()); lqw.eq(StringUtils.isNotBlank(bo.getType()), SchemaField::getType, bo.getType());