ThrowableUtils.java 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package com.nosum.common.util;
  2. import cn.hutool.core.collection.CollectionUtil;
  3. import com.nosum.common.constant.Constants;
  4. import com.nosum.common.exception.ApiInvalidParamException;
  5. import org.springframework.validation.BindingResult;
  6. import org.springframework.validation.FieldError;
  7. import java.util.List;
  8. import java.util.Objects;
  9. /**
  10. * @author Andy Chen
  11. * @date 9/30/19 1:30 PM
  12. */
  13. public class ThrowableUtils {
  14. /**
  15. * 校验参数正确,拼装字段名和值到错误信息
  16. * @param result
  17. */
  18. public static void checkParamArgument(BindingResult result) {
  19. if (result != null && result.hasErrors()) {
  20. StringBuilder sb = new StringBuilder();
  21. List<FieldError> errors = result.getFieldErrors();
  22. if(CollectionUtil.isNotEmpty(errors)){
  23. FieldError error = errors.get(0);
  24. String rejectedValue = Objects.toString(error.getRejectedValue(), "");
  25. String defMsg = error.getDefaultMessage();
  26. // 排除类上面的注解提示
  27. if(rejectedValue.contains(Constants.DELIMITER_TO)){
  28. // 自己去确定错误字段
  29. sb.append(defMsg);
  30. }else{
  31. if(Constants.DELIMITER_COLON.contains(defMsg)){
  32. sb.append(error.getField()).append(" ").append(defMsg);
  33. }else{
  34. sb.append(error.getField()).append(" ").append(defMsg).append(":").append(rejectedValue);
  35. }
  36. }
  37. } else {
  38. String msg = result.getAllErrors().get(0).getDefaultMessage();
  39. sb.append(msg);
  40. }
  41. throw new ApiInvalidParamException(sb.toString());
  42. }
  43. }
  44. }