【优化】GlobalExceptionUtil工具类.getArgNotValidMessage()方法

pull/225/head
俞宝山 2024-07-07 12:16:06 +08:00
parent d5bbd9035f
commit 66243186ce
1 changed files with 18 additions and 23 deletions

View File

@ -13,19 +13,21 @@
package vip.xiaonuo.core.handler; package vip.xiaonuo.core.handler;
import cn.dev33.satoken.exception.SaTokenException; import cn.dev33.satoken.exception.SaTokenException;
import cn.hutool.core.text.StrPool;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpStatus; import cn.hutool.http.HttpStatus;
import jakarta.validation.ConstraintViolation; import jakarta.validation.ConstraintViolation;
import jakarta.validation.ConstraintViolationException; import jakarta.validation.ConstraintViolationException;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.exceptions.PersistenceException; import org.apache.ibatis.exceptions.PersistenceException;
import org.mybatis.spring.MyBatisSystemException; import org.mybatis.spring.MyBatisSystemException;
import org.springframework.context.support.DefaultMessageSourceResolvable;
import org.springframework.http.HttpMethod; import org.springframework.http.HttpMethod;
import org.springframework.http.converter.HttpMessageNotReadableException; import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.validation.BindException; import org.springframework.validation.BindException;
import org.springframework.validation.BindingResult; import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.web.HttpMediaTypeNotSupportedException; import org.springframework.web.HttpMediaTypeNotSupportedException;
import org.springframework.web.HttpRequestMethodNotSupportedException; import org.springframework.web.HttpRequestMethodNotSupportedException;
import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.MethodArgumentNotValidException;
@ -37,8 +39,8 @@ import vip.xiaonuo.common.exception.CommonException;
import vip.xiaonuo.common.pojo.CommonResult; import vip.xiaonuo.common.pojo.CommonResult;
import vip.xiaonuo.common.util.CommonServletUtil; import vip.xiaonuo.common.util.CommonServletUtil;
import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors;
/** /**
* *
@ -49,6 +51,9 @@ import java.util.Set;
@Slf4j @Slf4j
public class GlobalExceptionUtil { public class GlobalExceptionUtil {
private GlobalExceptionUtil() {
}
/** /**
* CommonResult * CommonResult
* *
@ -146,18 +151,13 @@ public class GlobalExceptionUtil {
* @date 2021/10/12 11:14 * @date 2021/10/12 11:14
**/ **/
public static String getArgNotValidMessage(Set<ConstraintViolation<?>> constraintViolationSet) { public static String getArgNotValidMessage(Set<ConstraintViolation<?>> constraintViolationSet) {
if (ObjectUtil.isEmpty(constraintViolationSet)) { if (CollectionUtils.isEmpty(constraintViolationSet)) {
return ""; return StringUtils.EMPTY;
} }
StringBuilder stringBuilder = StrUtil.builder();
// 多个错误用逗号分隔 // 多个错误用逗号分隔
for (ConstraintViolation<?> constraintViolation : constraintViolationSet) { return constraintViolationSet.stream()
stringBuilder.append(StrUtil.COMMA).append(constraintViolation.getMessage()); .map(ConstraintViolation::getMessage)
} .collect(Collectors.joining(StrPool.COMMA));
// 最终把首部的逗号去掉
return StrUtil.removePrefix(stringBuilder.toString(), StrUtil.COMMA);
} }
/** /**
@ -168,17 +168,12 @@ public class GlobalExceptionUtil {
**/ **/
public static String getArgNotValidMessage(BindingResult bindingResult) { public static String getArgNotValidMessage(BindingResult bindingResult) {
if (ObjectUtil.isNull(bindingResult)) { if (ObjectUtil.isNull(bindingResult)) {
return ""; return StringUtils.EMPTY;
} }
StringBuilder stringBuilder = StrUtil.builder();
// 多个错误用逗号分隔 // 多个错误用逗号分隔
List<ObjectError> allErrorInfos = bindingResult.getAllErrors(); return bindingResult.getAllErrors()
for (ObjectError error : allErrorInfos) { .stream()
stringBuilder.append(StrUtil.COMMA).append(error.getDefaultMessage()); .map(DefaultMessageSourceResolvable::getDefaultMessage)
} .collect(Collectors.joining(StrPool.COMMA));
// 最终把首部的逗号去掉
return StrUtil.removePrefix(stringBuilder.toString(), StrUtil.COMMA);
} }
} }