From 9ade3e9cb0a037e196f26ca73600ebb9f8ba89e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E9=B9=8F?= Date: Fri, 22 May 2026 15:13:39 +0800 Subject: [PATCH] Align AI decimal validation bounds --- .../generator/service/front/AiDatabaseSchemaValidator.java | 2 +- .../service/front/AiDatabaseSchemaValidatorTest.java | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) 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"));