diff --git a/orion-ops-service/src/main/java/com/orion/ops/config/WebMvcConfig.java b/orion-ops-service/src/main/java/com/orion/ops/config/WebMvcConfig.java index d492a5cf..ca2c4706 100644 --- a/orion-ops-service/src/main/java/com/orion/ops/config/WebMvcConfig.java +++ b/orion-ops-service/src/main/java/com/orion/ops/config/WebMvcConfig.java @@ -11,8 +11,11 @@ import com.orion.ops.interceptor.AuthenticateInterceptor; import com.orion.ops.interceptor.IpFilterInterceptor; import com.orion.ops.interceptor.RoleInterceptor; import com.orion.ops.interceptor.UserActiveInterceptor; +import com.orion.utils.Exceptions; import lombok.extern.slf4j.Slf4j; +import org.apache.poi.EncryptedDocumentException; import org.springframework.context.annotation.Configuration; +import org.springframework.dao.DataAccessResourceFailureException; import org.springframework.http.converter.HttpMessageNotReadableException; import org.springframework.validation.BindException; import org.springframework.web.bind.MethodArgumentNotValidException; @@ -86,109 +89,109 @@ public class WebMvcConfig implements WebMvcConfigurer { @ExceptionHandler(value = Exception.class) public HttpWrapper normalExceptionHandler(HttpServletRequest request, Exception ex) { - log.error("normalExceptionHandler url: {}, 抛出异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage()); - ex.printStackTrace(); + log.error("normalExceptionHandler url: {}, 抛出异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage(), ex); return HttpWrapper.error().msg(MessageConst.EXCEPTION_MESSAGE).data(ex.getMessage()); } @ExceptionHandler(value = ApplicationException.class) public HttpWrapper applicationExceptionHandler(HttpServletRequest request, Exception ex) { - log.error("applicationExceptionHandler url: {}, 抛出异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage()); - ex.printStackTrace(); + log.error("applicationExceptionHandler url: {}, 抛出异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage(), ex); return HttpWrapper.error().msg(ex.getMessage()); } + @ExceptionHandler(value = DataAccessResourceFailureException.class) + public HttpWrapper dataAccessResourceFailureExceptionHandler(HttpServletRequest request, Exception ex) { + log.error("dataAccessResourceFailureExceptionHandler url: {}, 抛出异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage(), ex); + return HttpWrapper.error().msg(MessageConst.NETWORK_FLUCTUATION); + } + @ExceptionHandler(value = {HttpMessageNotReadableException.class, MethodArgumentTypeMismatchException.class, HttpMessageNotReadableException.class, MethodArgumentNotValidException.class, BindException.class}) public HttpWrapper httpRequestExceptionHandler(HttpServletRequest request, Exception ex) { - log.error("httpRequestExceptionHandler url: {}, http请求异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage()); - ex.printStackTrace(); + log.error("httpRequestExceptionHandler url: {}, http请求异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage(), ex); return HttpWrapper.error().msg(MessageConst.INVALID_PARAM); } @ExceptionHandler(value = {InvalidArgumentException.class, IllegalArgumentException.class, DisabledException.class}) public HttpWrapper invalidArgumentExceptionHandler(HttpServletRequest request, Exception ex) { - log.error("invalidArgumentExceptionHandler url: {}, 参数异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage()); - ex.printStackTrace(); + log.error("invalidArgumentExceptionHandler url: {}, 参数异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage(), ex); return HttpWrapper.error().msg(ex.getMessage()); } @ExceptionHandler(value = {IOException.class, IORuntimeException.class}) public HttpWrapper ioExceptionHandler(HttpServletRequest request, Exception ex) { - log.error("ioExceptionHandler url: {}, io异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage()); - ex.printStackTrace(); + log.error("ioExceptionHandler url: {}, io异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage(), ex); return HttpWrapper.error().msg(MessageConst.IO_EXCEPTION_MESSAGE).data(ex.getMessage()); } @ExceptionHandler(value = {SftpException.class, com.jcraft.jsch.SftpException.class}) public HttpWrapper sftpExceptionHandler(HttpServletRequest request, Exception ex) { - log.error("sftpExceptionHandler url: {}, sftp处理异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage()); - ex.printStackTrace(); + log.error("sftpExceptionHandler url: {}, sftp处理异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage(), ex); return HttpWrapper.error().msg(MessageConst.OPERATOR_ERROR).data(ex.getMessage()); } + @ExceptionHandler(value = ParseRuntimeException.class) + public HttpWrapper parseExceptionHandler(HttpServletRequest request, Exception ex) { + log.error("parseExceptionHandler url: {}, 解析异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage(), ex); + if (Exceptions.isCausedBy(ex, EncryptedDocumentException.class)) { + // excel 密码错误 + return HttpWrapper.error().msg(MessageConst.OPEN_TEMPLATE_ERROR).data(ex.getMessage()); + } else { + return HttpWrapper.error().msg(MessageConst.PARSE_TEMPLATE_DATA_ERROR).data(ex.getMessage()); + } + } + @ExceptionHandler(value = EncryptException.class) public HttpWrapper encryptExceptionHandler(HttpServletRequest request, Exception ex) { - log.error("encryptExceptionHandler url: {}, 数据加密异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage()); - ex.printStackTrace(); + log.error("encryptExceptionHandler url: {}, 数据加密异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage(), ex); return HttpWrapper.error().msg(MessageConst.ENCRYPT_ERROR).data(ex.getMessage()); } @ExceptionHandler(value = DecryptException.class) public HttpWrapper decryptExceptionHandler(HttpServletRequest request, Exception ex) { - log.error("decryptExceptionHandler url: {}, 数据解密异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage()); - ex.printStackTrace(); + log.error("decryptExceptionHandler url: {}, 数据解密异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage(), ex); return HttpWrapper.error().msg(MessageConst.DECRYPT_ERROR).data(ex.getMessage()); } @ExceptionHandler(value = VcsException.class) public HttpWrapper vcsExceptionHandler(HttpServletRequest request, Exception ex) { - log.error("vcsExceptionHandler url: {}, vcs处理异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage()); - ex.printStackTrace(); + log.error("vcsExceptionHandler url: {}, vcs处理异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage(), ex); return HttpWrapper.error().msg(MessageConst.VCS_OPERATOR_ERROR).data(ex.getMessage()); } @ExceptionHandler(value = {TaskExecuteException.class, ExecuteException.class}) public HttpWrapper taskExceptionHandler(HttpServletRequest request, Exception ex) { - log.error("taskExceptionHandler url: {}, task处理异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage()); - ex.printStackTrace(); + log.error("taskExceptionHandler url: {}, task处理异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage(), ex); return HttpWrapper.error().msg(MessageConst.TASK_ERROR).data(ex.getMessage()); } @ExceptionHandler(value = ConnectionRuntimeException.class) public HttpWrapper connectionExceptionHandler(HttpServletRequest request, Exception ex) { - log.error("connectionExceptionHandler url: {}, connect异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage()); - ex.printStackTrace(); + log.error("connectionExceptionHandler url: {}, connect异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage(), ex); return HttpWrapper.error().msg(MessageConst.CONNECT_ERROR).data(ex.getMessage()); } @ExceptionHandler(value = {TimeoutException.class, java.util.concurrent.TimeoutException.class}) public HttpWrapper timeoutExceptionHandler(HttpServletRequest request, Exception ex) { - log.error("timeoutExceptionHandler url: {}, timeout异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage()); - ex.printStackTrace(); + log.error("timeoutExceptionHandler url: {}, timeout异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage(), ex); return HttpWrapper.error().msg(MessageConst.TIMEOUT_ERROR).data(ex.getMessage()); } @ExceptionHandler(value = {InterruptedException.class, InterruptedRuntimeException.class, InterruptedIOException.class}) public HttpWrapper interruptExceptionHandler(HttpServletRequest request, Exception ex) { - log.error("interruptExceptionHandler url: {}, interrupt异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage()); - ex.printStackTrace(); + log.error("interruptExceptionHandler url: {}, interrupt异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage(), ex); return HttpWrapper.error().msg(MessageConst.INTERRUPT_ERROR).data(ex.getMessage()); } @ExceptionHandler(value = UnsafeException.class) public HttpWrapper unsafeExceptionHandler(HttpServletRequest request, Exception ex) { - log.error("unsafeExceptionHandler url: {}, unsafe异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage()); - ex.printStackTrace(); + log.error("unsafeExceptionHandler url: {}, unsafe异常: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage(), ex); return HttpWrapper.error().msg(MessageConst.UNSAFE_OPERATOR).data(ex.getMessage()); } @ExceptionHandler(value = LogException.class) public HttpWrapper logExceptionHandler(HttpServletRequest request, LogException ex) { - log.error("logExceptionHandler url: {}, 处理异常打印日志: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage()); - if (ex.hasCause()) { - ex.printStackTrace(); - } + log.error("logExceptionHandler url: {}, 处理异常打印日志: {}, message: {}", request.getRequestURI(), ex.getClass(), ex.getMessage(), ex); return HttpWrapper.error().msg(MessageConst.EXCEPTION_MESSAGE).data(ex.getMessage()); } diff --git a/orion-ops-service/src/main/java/com/orion/ops/controller/ExportController.java b/orion-ops-service/src/main/java/com/orion/ops/controller/ExportController.java deleted file mode 100644 index 7fa26c9f..00000000 --- a/orion-ops-service/src/main/java/com/orion/ops/controller/ExportController.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.orion.ops.controller; - -import com.orion.ops.annotation.RestWrapper; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * 导出 api - * - * @author Jiahang Li - * @version 1.0.0 - * @since 2021/8/3 18:43 - */ -@RestController -@RestWrapper -@RequestMapping("/orion/api/export") -public class ExportController { -} diff --git a/orion-ops-service/src/main/java/com/orion/ops/controller/FileDownloadController.java b/orion-ops-service/src/main/java/com/orion/ops/controller/FileDownloadController.java index b02a303e..6660e25f 100644 --- a/orion-ops-service/src/main/java/com/orion/ops/controller/FileDownloadController.java +++ b/orion-ops-service/src/main/java/com/orion/ops/controller/FileDownloadController.java @@ -10,7 +10,6 @@ import com.orion.ops.entity.request.FileDownloadRequest; import com.orion.ops.service.api.FileDownloadService; import com.orion.ops.utils.Valid; import com.orion.servlet.web.Servlets; -import com.orion.utils.Strings; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -56,7 +55,7 @@ public class FileDownloadController { fileDownloadService.execDownload(token, response); } catch (NotFoundException e) { // 文件未找到 - Servlets.transfer(response, Const.EMPTY.getBytes(), Strings.bytes(Const.UNKNOWN, Const.UTF_8)); + Servlets.transfer(response, Const.EMPTY.getBytes(), Const.UNKNOWN); } } diff --git a/orion-ops-service/src/main/java/com/orion/ops/service/impl/FileDownloadServiceImpl.java b/orion-ops-service/src/main/java/com/orion/ops/service/impl/FileDownloadServiceImpl.java index e16d88d8..0ede727f 100644 --- a/orion-ops-service/src/main/java/com/orion/ops/service/impl/FileDownloadServiceImpl.java +++ b/orion-ops-service/src/main/java/com/orion/ops/service/impl/FileDownloadServiceImpl.java @@ -207,7 +207,7 @@ public class FileDownloadServiceImpl implements FileDownloadService { inputStream = downloader.open().getFile(downloadFile.getFilePath()); } // 返回 - Servlets.transfer(response, inputStream, Strings.bytes(downloadFile.getFileName(), Const.UTF_8)); + Servlets.transfer(response, inputStream, downloadFile.getFileName()); } finally { Streams.close(inputStream); Streams.close(downloader); diff --git a/orion-ops-vue/src/components/layout/Layout.vue b/orion-ops-vue/src/components/layout/Layout.vue index b1652ea8..33d3c674 100644 --- a/orion-ops-vue/src/components/layout/Layout.vue +++ b/orion-ops-vue/src/components/layout/Layout.vue @@ -85,7 +85,7 @@ export default { } #common-sider { - overflow: auto + overflow: auto; } } @@ -111,4 +111,8 @@ export default { } } +::-webkit-scrollbar { + display: none; +} + diff --git a/orion-ops-vue/src/components/user/EventLogList.vue b/orion-ops-vue/src/components/user/EventLogList.vue index d9c1937e..628cd882 100644 --- a/orion-ops-vue/src/components/user/EventLogList.vue +++ b/orion-ops-vue/src/components/user/EventLogList.vue @@ -1,7 +1,7 @@