浏览代码

考生端异常信息完善

wangliang 4 年之前
父节点
当前提交
a11be2da41

+ 6 - 1
themis-backend/src/main/java/com/qmth/themis/backend/aspect/ApiControllerAspect.java

@@ -2,6 +2,7 @@ package com.qmth.themis.backend.aspect;
 
 import com.qmth.themis.business.util.JacksonUtil;
 import com.qmth.themis.business.util.ServletUtil;
+import com.qmth.themis.common.exception.BusinessException;
 import com.qmth.themis.common.util.ResultUtil;
 import org.aspectj.lang.ProceedingJoinPoint;
 import org.aspectj.lang.annotation.Around;
@@ -81,7 +82,11 @@ public class ApiControllerAspect {
             return proceed;
         } catch (Exception e) {
             log.error("请求出错", e);
-            return ResultUtil.error(e.getMessage());
+            if (e instanceof BusinessException) {
+                return ResultUtil.error((BusinessException) e, e.getMessage());
+            } else {
+                return ResultUtil.error(e.getMessage());
+            }
         }
     }
 }

+ 1 - 1
themis-backend/src/main/java/com/qmth/themis/backend/interceptor/AuthInterceptor.java

@@ -127,7 +127,7 @@ public class AuthInterceptor implements HandlerInterceptor {
 //        } else {
 //            throw new BusinessException(ExceptionResultEnum.AUTHORIZATION_ERROR);
 //        }
-        response.setStatus(ExceptionResultEnum.SUCCESS.getStatusCode());
+        response.setStatus(ExceptionResultEnum.SUCCESS.getCode());
         return true;
     }
 

+ 1 - 1
themis-backend/src/main/java/com/qmth/themis/backend/interceptor/AuthThirdInterceptor.java

@@ -44,7 +44,7 @@ public class AuthThirdInterceptor implements HandlerInterceptor {
         if (url.equalsIgnoreCase(SystemConstant.ERROR)) {
             throw new BusinessException(ExceptionResultEnum.NOT_FOUND);
         }
-        response.setStatus(ExceptionResultEnum.SUCCESS.getStatusCode());
+        response.setStatus(ExceptionResultEnum.SUCCESS.getCode());
         return true;
     }
 

+ 4 - 6
themis-common/src/main/java/com/qmth/themis/common/enums/ExceptionResultEnum.java

@@ -66,9 +66,9 @@ public enum ExceptionResultEnum {
 
     SQL_ERROR(500, 500003, "sql异常:"),
 
-    INVOCATIONTARGET_ERROR(500, 500004, "反射异常:"),
+    INVOCATIONTARGET_ERROR(500, 501, "反射异常:"),
 
-    SERVICE_NOT_FOUND(500, 500004, "服务器错误"),
+    SERVICE_NOT_FOUND(500, 502, "服务器错误"),
 
     /**
      * 400
@@ -207,8 +207,6 @@ public enum ExceptionResultEnum {
 
     EXAM_ACTIVITY_NO(500, 500003, "考试场次信息不存在"),
 
-    RECORD_NO(500, 500004, "考试记录不存在"),
-
     ORG_NO(500, 500005, "机构信息不存在"),
 
     TASK_NO(500, 500006, "任务不存在"),
@@ -243,9 +241,9 @@ public enum ExceptionResultEnum {
     private int code;
     private String message;
 
-    ExceptionResultEnum(int statusCode, int code, String message) {
-        this.statusCode = statusCode;
+    ExceptionResultEnum(int code,int statusCode, String message) {
         this.code = code;
+        this.statusCode = statusCode;
         this.message = message;
     }
 

+ 10 - 10
themis-common/src/main/java/com/qmth/themis/common/exception/GlobalDefultExceptionHandler.java

@@ -37,18 +37,18 @@ public class GlobalDefultExceptionHandler {
     public <T> Result defultExcepitonHandler(Exception e, HttpServletResponse response) {
         if (e instanceof BusinessException) {
             BusinessException businessException = (BusinessException) e;
-            response.setStatus(businessException.getStatusCode());
-            return ResultUtil.error(businessException.getCode(), businessException.getMessage());
+            response.setStatus(businessException.getCode());
+            return ResultUtil.error(businessException.getStatusCode(), businessException.getMessage());
         } else if (e instanceof IllegalArgumentException) {
-            response.setStatus(ExceptionResultEnum.EXCEPTION_ERROR.getStatusCode());
+            response.setStatus(ExceptionResultEnum.EXCEPTION_ERROR.getCode());
             if (e.getMessage().contains("No enum constant com.qmth.themis.common.enums.Platform")) {
-                return ResultUtil.error(ExceptionResultEnum.EXCEPTION_ERROR.getCode(), "暂不支持此平台");
+                return ResultUtil.error(ExceptionResultEnum.EXCEPTION_ERROR.getStatusCode(), "暂不支持此平台");
             }
         }
-        response.setStatus(ExceptionResultEnum.EXCEPTION_ERROR.getStatusCode());
+        response.setStatus(ExceptionResultEnum.EXCEPTION_ERROR.getCode());
         //Exception错误
         log.error("Exception 请求出错", e);
-        return ResultUtil.error(ExceptionResultEnum.EXCEPTION_ERROR.getCode(), e.getMessage());
+        return ResultUtil.error(ExceptionResultEnum.EXCEPTION_ERROR.getStatusCode(), e.getMessage());
     }
 
     /**
@@ -62,9 +62,9 @@ public class GlobalDefultExceptionHandler {
     @ExceptionHandler(SQLException.class)
     @ResponseBody
     public <T> Result sqlExceptionHandler(SQLException e, HttpServletResponse response) {
-        response.setStatus(ExceptionResultEnum.SQL_ERROR.getStatusCode());
+        response.setStatus(ExceptionResultEnum.SQL_ERROR.getCode());
         log.error("SQLException 请求出错", e);
-        return ResultUtil.error(ExceptionResultEnum.SQL_ERROR.getCode(), e.getMessage());
+        return ResultUtil.error(ExceptionResultEnum.SQL_ERROR.getStatusCode(), e.getMessage());
     }
 
     /**
@@ -78,8 +78,8 @@ public class GlobalDefultExceptionHandler {
     @ExceptionHandler(InvocationTargetException.class)
     @ResponseBody
     public <T> Result invocationTargetExceptionHandler(InvocationTargetException e, HttpServletResponse response) {
-        response.setStatus(ExceptionResultEnum.INVOCATIONTARGET_ERROR.getStatusCode());
+        response.setStatus(ExceptionResultEnum.INVOCATIONTARGET_ERROR.getCode());
         log.error("invocationTargetExceptionHandler 请求出错", e);
-        return ResultUtil.error(ExceptionResultEnum.INVOCATIONTARGET_ERROR.getCode(), ExceptionResultEnum.INVOCATIONTARGET_ERROR.name() + e.getTargetException());
+        return ResultUtil.error(ExceptionResultEnum.INVOCATIONTARGET_ERROR.getStatusCode(), ExceptionResultEnum.INVOCATIONTARGET_ERROR.name() + e.getTargetException());
     }
 }

+ 6 - 2
themis-common/src/main/java/com/qmth/themis/common/util/ResultUtil.java

@@ -14,7 +14,7 @@ import com.qmth.themis.common.exception.BusinessException;
 public class ResultUtil {
 
     public static Result success(Object object) {
-        return new Result(ExceptionResultEnum.SUCCESS.getCode(), ExceptionResultEnum.SUCCESS.getMessage(), object);
+        return new Result(ExceptionResultEnum.SUCCESS.getStatusCode(), ExceptionResultEnum.SUCCESS.getMessage(), object);
     }
 
     public static Result success() {
@@ -29,8 +29,12 @@ public class ResultUtil {
         throw new BusinessException(ExceptionResultEnum.EXCEPTION_ERROR);
     }
 
+    public static Result error(BusinessException e, String message) {
+        throw new BusinessException(e.getStatusCode(), e.getCode(), message);
+    }
+
     public static Result error(String message) {
-        throw new BusinessException(ExceptionResultEnum.ERROR.getStatusCode(), ExceptionResultEnum.ERROR.getCode(), message);
+        throw new BusinessException(ExceptionResultEnum.EXCEPTION_ERROR.getStatusCode(), ExceptionResultEnum.EXCEPTION_ERROR.getCode(), message);
     }
 
     public static Result ok(String message) {

+ 6 - 1
themis-exam/src/main/java/com/qmth/themis/exam/aspect/ApiControllerAspect.java

@@ -2,6 +2,7 @@ package com.qmth.themis.exam.aspect;
 
 import com.qmth.themis.business.util.JacksonUtil;
 import com.qmth.themis.business.util.ServletUtil;
+import com.qmth.themis.common.exception.BusinessException;
 import com.qmth.themis.common.util.ResultUtil;
 import org.aspectj.lang.ProceedingJoinPoint;
 import org.aspectj.lang.annotation.Around;
@@ -81,7 +82,11 @@ public class ApiControllerAspect {
             return proceed;
         } catch (Exception e) {
             log.error("请求出错", e);
-            return ResultUtil.error(e.getMessage());
+            if (e instanceof BusinessException) {
+                return ResultUtil.error((BusinessException) e, e.getMessage());
+            } else {
+                return ResultUtil.error(e.getMessage());
+            }
         }
     }
 }

+ 1 - 1
themis-exam/src/main/java/com/qmth/themis/exam/interceptor/AuthInterceptor.java

@@ -131,7 +131,7 @@ public class AuthInterceptor implements HandlerInterceptor {
 //        } else {
 //            throw new BusinessException(ExceptionResultEnum.AUTHORIZATION_ERROR);
 //        }
-        response.setStatus(ExceptionResultEnum.SUCCESS.getStatusCode());
+        response.setStatus(ExceptionResultEnum.SUCCESS.getCode());
         return true;
     }
 

+ 2 - 2
themis-exam/src/main/java/com/qmth/themis/exam/websocketTemplete/WebSocketOeMessageTemplete.java

@@ -50,7 +50,7 @@ public class WebSocketOeMessageTemplete {
         Long recordId = Long.parseLong(String.valueOf(jsonObject.get("recordId")));
         Long examId = ExamRecordCacheUtil.getExamId(recordId);
         if (Objects.isNull(examId)) {
-            throw new BusinessException(ExceptionResultEnum.RECORD_NO);
+            throw new BusinessException(ExceptionResultEnum.NOT_FOUND_EXAM_RECORD);
         }
         ExamRecordCacheUtil.setPaperDownload(recordId, 0, true);
         return new WebsocketDto(Collections.singletonMap(SystemConstant.SUCCESS, true));
@@ -79,7 +79,7 @@ public class WebSocketOeMessageTemplete {
         Integer durationSeconds = Integer.parseInt((String.valueOf(jsonObject.get("durationSeconds"))));
         Long examId = ExamRecordCacheUtil.getExamId(recordId);
         if (Objects.isNull(examId)) {
-            throw new BusinessException(ExceptionResultEnum.RECORD_NO);
+            throw new BusinessException(ExceptionResultEnum.NOT_FOUND_EXAM_RECORD);
         }
         ExamRecordCacheUtil.setAnswerProgress(recordId, progress, false);
         ExamRecordCacheUtil.setDurationSeconds(recordId, durationSeconds, false);