From 0333aa349f776662edd7d856acae040c1e3b3831 Mon Sep 17 00:00:00 2001 From: caoshd Date: Sun, 31 Mar 2024 18:25:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E:=20=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E5=88=A0=E9=99=A4=E5=AD=97=E6=AE=B5=E5=92=8C?= =?UTF-8?q?=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../caoshd/otone/builder/TableBuilder.java | 17 +++++++++++------ .../space/caoshd/otone/entity/TableInfo.java | 9 +++++++++ .../java/space/caoshd/otone/util/CfgUtils.java | 5 +++++ src/test/resources/config/config.properties | 1 + 4 files changed, 26 insertions(+), 6 deletions(-) diff --git a/src/main/java/space/caoshd/otone/builder/TableBuilder.java b/src/main/java/space/caoshd/otone/builder/TableBuilder.java index a455972..1bfe3d8 100644 --- a/src/main/java/space/caoshd/otone/builder/TableBuilder.java +++ b/src/main/java/space/caoshd/otone/builder/TableBuilder.java @@ -103,12 +103,17 @@ public class TableBuilder { result.setDecimalExists(columnInfo.stream() .anyMatch(column -> TypeUtils.JAVA_TYPE_DECIMAL.equals(column.getJavaType()))); - result.setInvalidColumn( - columnInfo.stream() - .map(ColumnInfo::getColumnName) - .filter(columnName -> CfgUtils.getTableInvalidColumns().contains(columnName)) - .findFirst().orElse(null) - ); + String invalidColumn = columnInfo.stream() + .map(ColumnInfo::getColumnName) + .filter(columnName -> CfgUtils.getTableInvalidColumns().contains(columnName)) + .findFirst().orElse(null); + result.setInvalidColumn(invalidColumn); + + if (invalidColumn != null) { + String invalidValue = CfgUtils.getTableInvalidValues() + .get(CfgUtils.getTableInvalidColumns().indexOf(invalidColumn)); + result.setInvalidValue(invalidValue); + } List indexInfoList = IndexBuilder.loadIndexInfo( result.getTableSchema(), diff --git a/src/main/java/space/caoshd/otone/entity/TableInfo.java b/src/main/java/space/caoshd/otone/entity/TableInfo.java index 9447977..9d3c86f 100644 --- a/src/main/java/space/caoshd/otone/entity/TableInfo.java +++ b/src/main/java/space/caoshd/otone/entity/TableInfo.java @@ -13,6 +13,7 @@ public class TableInfo { private Boolean dateExists; private Boolean decimalExists; private String invalidColumn; + private String invalidValue; private List columns = new ArrayList<>(); private Map> indexes = new LinkedHashMap<>(); @@ -64,6 +65,14 @@ public class TableInfo { this.invalidColumn = invalidColumn; } + public String getInvalidValue() { + return invalidValue; + } + + public void setInvalidValue(String invalidValue) { + this.invalidValue = invalidValue; + } + public List getColumns() { return columns; } diff --git a/src/main/java/space/caoshd/otone/util/CfgUtils.java b/src/main/java/space/caoshd/otone/util/CfgUtils.java index 4c868ee..7212fb2 100644 --- a/src/main/java/space/caoshd/otone/util/CfgUtils.java +++ b/src/main/java/space/caoshd/otone/util/CfgUtils.java @@ -12,6 +12,7 @@ public class CfgUtils { public static final String DATABASE_NAME_TABLES = "database.name.tables"; public static final String DATABASE_TABLE_PREFIXES = "database.table.prefixes"; public static final String DATABASE_TABLE_INVALID_COLUMNS = "database.table.invalid_columns"; + public static final String DATABASE_TABLE_INVALID_VALUES = "database.table.invalid_values"; // 输出配置 public static final String OUTPUT_COVER_IF_EXIST = "output.cover_if_exists"; @@ -133,6 +134,10 @@ public class CfgUtils { return CONFIG.getStringList(DATABASE_TABLE_INVALID_COLUMNS); } + public static List getTableInvalidValues() { + return CONFIG.getStringList(DATABASE_TABLE_INVALID_VALUES); + } + public static boolean multipleModule() { return CONFIG.getBoolean(MODULE_MULTIPLE, Boolean.FALSE); } diff --git a/src/test/resources/config/config.properties b/src/test/resources/config/config.properties index 4c55ceb..f1b4a6b 100644 --- a/src/test/resources/config/config.properties +++ b/src/test/resources/config/config.properties @@ -27,6 +27,7 @@ package.name.service.interface=service #database.name.tables= database.table.prefixes=t_,m_ database.table.invalid_columns=delete_flag +database.table.invalid_values=1 #template.path.po=template/po.vm #template.path.view=template/view.vm #template.path.form=template/form.vm