From 846aeba6b23ffc7402a1a8b92d587da952c7e68f Mon Sep 17 00:00:00 2001 From: zhangw Date: Sat, 12 May 2018 22:29:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=9D=E5=AD=98=E6=97=A5=E5=BF=97=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E5=BC=82=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/boot/security/server/advice/LogAdvice.java | 13 ++++++++----- .../server/service/impl/SysLogServiceImpl.java | 13 ++++++++++--- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/boot/security/server/advice/LogAdvice.java b/src/main/java/com/boot/security/server/advice/LogAdvice.java index 04ba705..70cfa0e 100644 --- a/src/main/java/com/boot/security/server/advice/LogAdvice.java +++ b/src/main/java/com/boot/security/server/advice/LogAdvice.java @@ -1,5 +1,6 @@ package com.boot.security.server.advice; +import com.boot.security.server.utils.UserUtil; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; @@ -16,7 +17,7 @@ import io.swagger.annotations.ApiOperation; /** * 统一日志处理 - * + * * @author 小威老师 * * 2017年8月19日 @@ -31,6 +32,7 @@ public class LogAdvice { @Around(value = "@annotation(com.boot.security.server.annotation.LogAnnotation)") public Object logSave(ProceedingJoinPoint joinPoint) throws Throwable { SysLogs sysLogs = new SysLogs(); + sysLogs.setUser(UserUtil.getLoginUser()); // 设置当前登录用户 MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); String module = null; @@ -50,17 +52,18 @@ public class LogAdvice { try { Object object = joinPoint.proceed(); - sysLogs.setFlag(true); - logService.save(sysLogs); return object; } catch (Exception e) { sysLogs.setFlag(false); sysLogs.setRemark(e.getMessage()); - logService.save(sysLogs); throw e; - } + } finally { + if (sysLogs.getUser() != null) { + logService.save(sysLogs); + } + } } } diff --git a/src/main/java/com/boot/security/server/service/impl/SysLogServiceImpl.java b/src/main/java/com/boot/security/server/service/impl/SysLogServiceImpl.java index 6aafbd1..b5c612f 100644 --- a/src/main/java/com/boot/security/server/service/impl/SysLogServiceImpl.java +++ b/src/main/java/com/boot/security/server/service/impl/SysLogServiceImpl.java @@ -24,14 +24,21 @@ public class SysLogServiceImpl implements SysLogService { @Autowired private SysLogsDao sysLogsDao; + /** + * 2018.05.12将该方法改为异步,用户由调用者设置 + * + * @param sysLogs + * @see com.boot.security.server.advice.LogAdvice + */ + @Async @Override public void save(SysLogs sysLogs) { - SysUser user = UserUtil.getLoginUser(); - if (user == null || user.getId() == null) { +// SysUser user = UserUtil.getLoginUser(); + if (sysLogs == null || sysLogs.getUser() == null || sysLogs.getUser().getId() == null) { return; } - sysLogs.setUser(user); +// sysLogs.setUser(user); sysLogsDao.save(sysLogs); }