完成了Web端课程模块

This commit is contained in:
2025-06-24 09:18:01 +08:00
parent 746ac2c6bd
commit 7ca23bc987
63 changed files with 1297 additions and 478 deletions

View File

@ -50,16 +50,29 @@ public class GlobalExceptionHandler {
// 处理参数绑定失败的异常
@ExceptionHandler(MethodArgumentNotValidException.class)
public BaseResponse<?> handleMethodArgumentNotValidException(MethodArgumentNotValidException e) {
StringBuilder errors = new StringBuilder();
// 按字段名排序,确保每次返回的顺序一致
e.getBindingResult().getFieldErrors().stream()
.sorted(Comparator.comparing(FieldError::getField)) // 按字段名排序
.forEach(fieldError -> errors.append("参数: ")
.append(fieldError.getField())
.append(" | 错误: ")
.append(fieldError.getDefaultMessage())
.append("; "));
return ResultUtils.error(ErrorCode.PARAMS_ERROR, errors.toString());
// StringBuilder errors = new StringBuilder();
// // 按字段名排序,确保每次返回的顺序一致
// e.getBindingResult().getFieldErrors().stream()
// .sorted(Comparator.comparing(FieldError::getField)) // 按字段名排序
// .forEach(fieldError -> errors.append("参数: ")
// .append(fieldError.getField())
// .append(" | 错误: ")
// .append(fieldError.getDefaultMessage())
// .append("; "));
// return ResultUtils.error(ErrorCode.PARAMS_ERROR, errors.toString());
// 从所有 FieldError 里,排序后取第一个
FieldError firstError = e.getBindingResult()
.getFieldErrors().stream().min(Comparator.comparing(FieldError::getField))
.orElse(null);
// 直接取它的 defaultMessage即注解里配置的 message
String msg = (firstError != null)
? firstError.getDefaultMessage()
: "参数校验失败";
// 返回时只带 msg不再拼前缀或字段名
return ResultUtils.error(ErrorCode.PARAMS_ERROR, msg);
}