diff --git a/src/main/java/com/iflytop/handacid/app/common/handler/GlobalExceptionHandler.java b/src/main/java/com/iflytop/handacid/app/common/handler/GlobalExceptionHandler.java index de042ed..a7c4aef 100644 --- a/src/main/java/com/iflytop/handacid/app/common/handler/GlobalExceptionHandler.java +++ b/src/main/java/com/iflytop/handacid/app/common/handler/GlobalExceptionHandler.java @@ -4,8 +4,10 @@ import com.iflytop.handacid.common.exception.AppException; import com.iflytop.handacid.common.result.Result; import com.iflytop.handacid.common.result.ResultCode; import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.ConstraintViolation; import jakarta.validation.ConstraintViolationException; import lombok.extern.slf4j.Slf4j; +import org.springframework.context.support.DefaultMessageSourceResolvable; import org.springframework.validation.BindException; import org.springframework.web.HttpRequestMethodNotSupportedException; import org.springframework.web.bind.MethodArgumentNotValidException; @@ -36,7 +38,7 @@ public class GlobalExceptionHandler { @ExceptionHandler(MethodArgumentNotValidException.class) public Result handleBodyValid(MethodArgumentNotValidException ex) { String msg = ex.getBindingResult().getFieldErrors().stream() - .map(f -> f.getField() + ": " + f.getDefaultMessage()) + .map(DefaultMessageSourceResolvable::getDefaultMessage) .collect(Collectors.joining("; ")); return Result.failed(ResultCode.INVALID_PARAMETER.getCode(), msg); } @@ -45,11 +47,7 @@ public class GlobalExceptionHandler { @ExceptionHandler(ConstraintViolationException.class) public Result handleParamValid(ConstraintViolationException ex) { String msg = ex.getConstraintViolations().stream() - .map(v -> { - String path = v.getPropertyPath().toString(); - String field = path.substring(path.lastIndexOf('.') + 1); - return field + ": " + v.getMessage(); - }) + .map(ConstraintViolation::getMessage) .collect(Collectors.joining("; ")); return Result.failed(ResultCode.INVALID_PARAMETER.getCode(), msg); } @@ -58,7 +56,7 @@ public class GlobalExceptionHandler { @ExceptionHandler(BindException.class) public Result handleBind(BindException ex) { String msg = ex.getFieldErrors().stream() - .map(f -> f.getField() + ": " + f.getDefaultMessage()) + .map(DefaultMessageSourceResolvable::getDefaultMessage) .collect(Collectors.joining("; ")); return Result.failed(ResultCode.INVALID_PARAMETER.getCode(), msg); } diff --git a/src/main/java/com/iflytop/handacid/app/controller/FormulationController.java b/src/main/java/com/iflytop/handacid/app/controller/FormulationController.java index 639c96b..dedb94e 100644 --- a/src/main/java/com/iflytop/handacid/app/controller/FormulationController.java +++ b/src/main/java/com/iflytop/handacid/app/controller/FormulationController.java @@ -14,6 +14,7 @@ import com.iflytop.handacid.common.result.ResultCode; import com.iflytop.handacid.common.service.FormulationService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; @@ -52,7 +53,7 @@ public class FormulationController { @PostMapping @Operation(summary = "创建配方") - public Result create(@RequestBody Formulation formulation) { + public Result create(@Valid @RequestBody Formulation formulation) { Formulation existFormulation = formulationService.getOne(new LambdaQueryWrapper().eq(Formulation::getSolutionId, formulation.getSolutionId()) .eq(Formulation::getConcentration, formulation.getConcentration()).eq(Formulation::getVolume, formulation.getVolume()).last("limit 1")); if (existFormulation != null) { @@ -65,7 +66,7 @@ public class FormulationController { @PutMapping @Operation(summary = "修改配方") - public Result update(@RequestBody Formulation formulation) { + public Result update(@Valid @RequestBody Formulation formulation) { boolean flag = formulationService.saveOrUpdate(formulation); return flag ? Result.success() : Result.failed(); }