Pārlūkot izejas kodu

数据超出长度全局拦截

lyhzzz 2 gadi atpakaļ
vecāks
revīzija
1d9df4052a

+ 1 - 0
src/main/java/com/fdkankan/manage/common/ResultCode.java

@@ -64,6 +64,7 @@ public enum ResultCode  {
     AGENT_U_NOT_EMPTY(50047, "经销商账号已存在!"),
     INCREMENT_TYPE_ERROR(50048, "权益类型错误!"),
     DEL_UCENTER_ERROR(50049, "该用户已绑定相机,请先解绑再删除用户。"),
+    DATA_TOO_LONG(50050, "长度超出限制!"),
 
     ;
 

+ 3 - 0
src/main/java/com/fdkankan/manage/common/ResultData.java

@@ -56,6 +56,9 @@ public class ResultData<T> implements Serializable {
     public static ResultData error(ErrorCode errorCode) {
         return error(errorCode.code(), errorCode.message());
     }
+    public static ResultData error(ResultCode errorCode) {
+        return error(errorCode.code(), errorCode.message());
+    }
 
     private static ResultData  base(int code, String msg, Object data,Boolean success) {
         ResultData rd = new ResultData();

+ 16 - 0
src/main/java/com/fdkankan/manage/exception/GlobalExceptionHandler.java

@@ -1,11 +1,15 @@
 package com.fdkankan.manage.exception;
 
+import com.fdkankan.manage.common.ResultCode;
 import com.fdkankan.manage.common.ResultData;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.dao.DataIntegrityViolationException;
 import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.RestControllerAdvice;
 
+import java.util.Objects;
+
 /**
  * 全局异常处理器
  */
@@ -32,4 +36,16 @@ public class GlobalExceptionHandler {
         log.info("业务异常code:{},message:{}", e.getCode(), e.getMessage());
         return ResultData.error(e.getCode(), e.getMessage());
     }
+    /**
+     * 处理业务异常
+     */
+    @ResponseBody
+    @ExceptionHandler(value = DataIntegrityViolationException.class)
+    public ResultData DataIntegrityViolationExceptionHandler(DataIntegrityViolationException e) {
+        log.error("mysql服务错误:", e);
+        if(e.getCause().getMessage().contains("Data too long")){
+            return ResultData.error(ResultCode.DATA_TOO_LONG);
+        }
+        return ResultData.error( 500, e.getCause().getMessage());
+    }
 }

+ 3 - 0
src/main/java/com/fdkankan/manage/service/impl/CameraVersionServiceImpl.java

@@ -170,6 +170,9 @@ public class CameraVersionServiceImpl extends ServiceImpl<ICameraVersionMapper,
         if(cameraVersion == null){
             throw new BusinessException(ResultCode.CAMERA_VERSION_NOT_EXIST);
         }
+        if(param.getDescription().length() >255){
+            throw new BusinessException(ResultCode.CAMERA_VERSION_NOT_EXIST);
+        }
         if(StringUtils.isNotBlank(param.getStatus()) && !param.getStatus().equals(cameraVersion.getStatus())){
             if(StringUtils.isBlank(param.getStatus()) || param.getType() == null){
                 throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);