From d4dd1e545ae5fa412a168b1ed971eb1ce2d7e776 Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Thu, 20 May 2021 11:53:12 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=907.0.4=E3=80=91=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E6=8F=90=E7=A4=BA=EF=BC=8C=E4=BF=AE=E6=94=B9?= =?UTF-8?q?validator=E7=9B=B8=E5=85=B3sql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exception/enums/ValidatorExceptionEnum.java | 7 ++++++- .../unique/service/TableUniqueValueService.java | 14 ++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/kernel-d-validator/validator-api/src/main/java/cn/stylefeng/roses/kernel/validator/api/exception/enums/ValidatorExceptionEnum.java b/kernel-d-validator/validator-api/src/main/java/cn/stylefeng/roses/kernel/validator/api/exception/enums/ValidatorExceptionEnum.java index 556302853..e9663022e 100644 --- a/kernel-d-validator/validator-api/src/main/java/cn/stylefeng/roses/kernel/validator/api/exception/enums/ValidatorExceptionEnum.java +++ b/kernel-d-validator/validator-api/src/main/java/cn/stylefeng/roses/kernel/validator/api/exception/enums/ValidatorExceptionEnum.java @@ -83,7 +83,12 @@ public enum ValidatorExceptionEnum implements AbstractExceptionEnum { /** * 验证码错误 */ - CAPTCHA_ERROR(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + ValidatorConstants.VALIDATOR_EXCEPTION_STEP_CODE + "09", "验证码错误"); + CAPTCHA_ERROR(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + ValidatorConstants.VALIDATOR_EXCEPTION_STEP_CODE + "09", "验证码错误"), + + /** + * 数据库唯一性校验错误,sql执行错误 + */ + UNIQUE_VALIDATE_SQL_ERROR(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + ValidatorConstants.VALIDATOR_EXCEPTION_STEP_CODE + "10", "数据库唯一性校验错误,sql执行错误,具体信息:{}"); /** * 错误编码 diff --git a/kernel-d-validator/validator-api/src/main/java/cn/stylefeng/roses/kernel/validator/api/validators/unique/service/TableUniqueValueService.java b/kernel-d-validator/validator-api/src/main/java/cn/stylefeng/roses/kernel/validator/api/validators/unique/service/TableUniqueValueService.java index b05efc1e5..fdd43ea18 100644 --- a/kernel-d-validator/validator-api/src/main/java/cn/stylefeng/roses/kernel/validator/api/validators/unique/service/TableUniqueValueService.java +++ b/kernel-d-validator/validator-api/src/main/java/cn/stylefeng/roses/kernel/validator/api/validators/unique/service/TableUniqueValueService.java @@ -46,7 +46,14 @@ public class TableUniqueValueService { * @date 2020/11/4 15:08 */ public static boolean getFiledUniqueFlag(UniqueValidateParam uniqueValidateParam) { + try { + return doValidate(uniqueValidateParam); + } catch (Exception exception) { + throw new ParamValidateException(ValidatorExceptionEnum.UNIQUE_VALIDATE_SQL_ERROR, exception.getMessage()); + } + } + private static boolean doValidate(UniqueValidateParam uniqueValidateParam) { DbOperatorApi dbOperatorApi = DbOperatorContext.me(); int resultCount = 0; @@ -65,7 +72,7 @@ public class TableUniqueValueService { // 不排除当前记录,排除逻辑删除的内容 if (!uniqueValidateParam.getExcludeCurrentRecord() && uniqueValidateParam.getExcludeLogicDeleteItems()) { - String sqlTemplate = "select count(*) from {} where {} = {0} and ({} is null || {} <> '{}')"; + String sqlTemplate = "select count(*) from {} where {} = {0} and ({} is null or {} <> '{}')"; String finalSql = StrUtil.format(sqlTemplate, uniqueValidateParam.getTableName(), uniqueValidateParam.getColumnName(), @@ -94,7 +101,7 @@ public class TableUniqueValueService { // id判空 paramIdValidate(uniqueValidateParam); - String sqlTemplate = "select count(*) from {} where {} = {0} and {} <> {1} and ({} is null || {} <> '{}')"; + String sqlTemplate = "select count(*) from {} where {} = {0} and {} <> {1} and ({} is null or {} <> '{}')"; String finalSql = StrUtil.format(sqlTemplate, uniqueValidateParam.getTableName(), uniqueValidateParam.getColumnName(), @@ -107,10 +114,9 @@ public class TableUniqueValueService { // 如果大于0,代表不是唯一的当前校验的值 return resultCount <= 0; - - } + /** * 几个参数的为空校验 *