From 4294808f9837ed4b906b7d0f4276f4aa50a14750 Mon Sep 17 00:00:00 2001 From: chenxudong Date: Fri, 14 Feb 2025 10:15:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=B4=E6=97=B6=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../software/manage/aop/ServiceAspect.java | 5 ++++- .../software/manage/config/LoginInterceptor.java | 15 +++++++++++---- .../manage/controller/EdFileInfoController.java | 2 +- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/aop/ServiceAspect.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/aop/ServiceAspect.java index d9a5aa1..f86745f 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/aop/ServiceAspect.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/aop/ServiceAspect.java @@ -2,6 +2,7 @@ package com.electromagnetic.industry.software.manage.aop; import cn.hutool.json.JSONUtil; import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; +import com.electromagnetic.industry.software.common.util.ElectromagneticResultUtil; import com.electromagnetic.industry.software.common.util.UserThreadLocal; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.ProceedingJoinPoint; @@ -66,11 +67,13 @@ public class ServiceAspect { StopWatch stopwatch = new StopWatch(); stopwatch.start("接口:" + methodInfo); Object rvt = jp.proceed(); + UserThreadLocal.setReqArgs(paramInfo); if (rvt instanceof ResponseEntity) { + UserThreadLocal.setRes(ElectromagneticResultUtil.success("")); return rvt; } UserThreadLocal.setRes((ElectromagneticResult)rvt); - UserThreadLocal.setReqArgs(paramInfo); + String returnInfo = JSONUtil.toJsonStr(rvt); log.info("请求接口结束:{},返回参数:{},接口耗时:{}", methodInfo, returnInfo, (System.currentTimeMillis() - startTime) + "毫秒"); stopwatch.stop(); diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/LoginInterceptor.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/LoginInterceptor.java index 03d67f0..aecd39d 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/LoginInterceptor.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/LoginInterceptor.java @@ -100,10 +100,10 @@ public class LoginInterceptor implements HandlerInterceptor { public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { long accessStartTime = (long)request.getSession().getAttribute("accessStartTime"); - ElectromagneticResult result = UserThreadLocal.getResult(); - String reqArgs = UserThreadLocal.getReqArgs(); long accessEndTime = System.currentTimeMillis(); UserOperation userOperation = ((HandlerMethod) handler).getMethod().getAnnotation(UserOperation.class); + String reqArgs = UserThreadLocal.getReqArgs(); + UserAccessLog userAccessLog = UserAccessLog.builder() .id(IdWorker.getSnowFlakeIdString()) .userId(UserThreadLocal.getUserId()) @@ -117,10 +117,17 @@ public class LoginInterceptor implements HandlerInterceptor { .accessSuccess(true) .createTime(new Date()) .build(); - if (!result.getSuccess()) { + + ElectromagneticResult result = UserThreadLocal.getResult(); + if (result != null) { + if (!result.getSuccess()) { + userAccessLog.setAccessSuccess(false); + userAccessLog.setFailureReason(result.getErrorMessage()); + } + } else { userAccessLog.setAccessSuccess(false); - userAccessLog.setFailureReason(result.getErrorMessage()); } + // TODO 如果是下载的文件,那么返回的是ResponseEntity而不是ElectromagneticResult userAccessLogMapper.insert(userAccessLog); UserThreadLocal.remove(); diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileInfoController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileInfoController.java index c9d4828..99bf8b7 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileInfoController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileInfoController.java @@ -133,7 +133,7 @@ public class EdFileInfoController { return edFileInfoService.queryChildFolder(parentId); } - @RequiredPermission(value = FilePermission.VIEW) + @RequiredPermission(value = FilePermission.DOWNLOAD) @RequestMapping(value = "preview", method = RequestMethod.GET) public ResponseEntity preview(@RequestParam String id, HttpServletResponse response) { return edFileInfoService.preview(id, response);