diff --git a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/AiDatabaseSchemaValidator.java b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/AiDatabaseSchemaValidator.java index 4500805..8ccaadf 100644 --- a/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/AiDatabaseSchemaValidator.java +++ b/RuoYi-Vue/ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/AiDatabaseSchemaValidator.java @@ -52,7 +52,7 @@ public class AiDatabaseSchemaValidator } int precision = Integer.parseInt(matcher.group(1)); int scale = Integer.parseInt(matcher.group(2)); - return scale <= precision; + return precision >= 1 && precision <= 65 && scale >= 0 && scale <= 30 && scale <= precision; } public boolean isSafeSql(String sql) diff --git a/RuoYi-Vue/ruoyi-generator/src/test/java/com/ruoyi/generator/service/front/AiDatabaseSchemaValidatorTest.java b/RuoYi-Vue/ruoyi-generator/src/test/java/com/ruoyi/generator/service/front/AiDatabaseSchemaValidatorTest.java index 1effb11..d12f873 100644 --- a/RuoYi-Vue/ruoyi-generator/src/test/java/com/ruoyi/generator/service/front/AiDatabaseSchemaValidatorTest.java +++ b/RuoYi-Vue/ruoyi-generator/src/test/java/com/ruoyi/generator/service/front/AiDatabaseSchemaValidatorTest.java @@ -18,6 +18,10 @@ public class AiDatabaseSchemaValidatorTest assertTrue(validator.isAllowedColumnType("varchar(100)")); assertTrue(validator.isAllowedColumnType("decimal(10,2)")); assertTrue(validator.isAllowedColumnType("decimal(10,0)")); + assertTrue(validator.isAllowedColumnType("decimal(65,30)")); + assertFalse(validator.isAllowedColumnType("decimal(66,0)")); + assertFalse(validator.isAllowedColumnType("decimal(65,31)")); + assertFalse(validator.isAllowedColumnType("decimal(99,99)")); assertFalse(validator.isAllowedColumnType("decimal(5,9)")); assertFalse(validator.isAllowedColumnType("json")); assertFalse(validator.isSafeSql("drop table sys_user"));