From 4c8137daf2f9c49dd1bf0d3f24372929016358f9 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期三, 07 十二月 2022 20:32:57 +0800 Subject: [PATCH] update 优化 使用spring事件发布机制 重构登录日志与操作日志 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java | 32 +++++++++++++++----------------- 1 files changed, 15 insertions(+), 17 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java index 159db62..1cd176f 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java @@ -6,8 +6,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.domain.event.LogininforEvent; import com.ruoyi.common.core.page.TableDataInfo; -import com.ruoyi.common.core.service.LogininforService; import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.ip.AddressUtils; @@ -16,6 +16,7 @@ import com.ruoyi.system.service.ISysLogininforService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.context.event.EventListener; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; @@ -33,22 +34,19 @@ @RequiredArgsConstructor @Slf4j @Service -public class SysLogininforServiceImpl implements ISysLogininforService, LogininforService { +public class SysLogininforServiceImpl implements ISysLogininforService { private final SysLogininforMapper baseMapper; /** * 璁板綍鐧诲綍淇℃伅 * - * @param username 鐢ㄦ埛鍚� - * @param status 鐘舵�� - * @param message 娑堟伅 - * @param args 鍒楄〃 + * @param logininforEvent 鐧诲綍浜嬩欢 */ @Async - @Override - public void recordLogininfor(final String username, final String status, final String message, - HttpServletRequest request, final Object... args) { + @EventListener + public void recordLogininfor(LogininforEvent logininforEvent) { + HttpServletRequest request = logininforEvent.getRequest(); final UserAgent userAgent = UserAgentUtil.parse(request.getHeader("User-Agent")); final String ip = ServletUtils.getClientIP(request); @@ -56,27 +54,27 @@ StringBuilder s = new StringBuilder(); s.append(getBlock(ip)); s.append(address); - s.append(getBlock(username)); - s.append(getBlock(status)); - s.append(getBlock(message)); + s.append(getBlock(logininforEvent.getUsername())); + s.append(getBlock(logininforEvent.getStatus())); + s.append(getBlock(logininforEvent.getMessage())); // 鎵撳嵃淇℃伅鍒版棩蹇� - log.info(s.toString(), args); + log.info(s.toString(), logininforEvent.getArgs()); // 鑾峰彇瀹㈡埛绔搷浣滅郴缁� String os = userAgent.getOs().getName(); // 鑾峰彇瀹㈡埛绔祻瑙堝櫒 String browser = userAgent.getBrowser().getName(); // 灏佽瀵硅薄 SysLogininfor logininfor = new SysLogininfor(); - logininfor.setUserName(username); + logininfor.setUserName(logininforEvent.getUsername()); logininfor.setIpaddr(ip); logininfor.setLoginLocation(address); logininfor.setBrowser(browser); logininfor.setOs(os); - logininfor.setMsg(message); + logininfor.setMsg(logininforEvent.getMessage()); // 鏃ュ織鐘舵�� - if (StringUtils.equalsAny(status, Constants.LOGIN_SUCCESS, Constants.LOGOUT, Constants.REGISTER)) { + if (StringUtils.equalsAny(logininforEvent.getStatus(), Constants.LOGIN_SUCCESS, Constants.LOGOUT, Constants.REGISTER)) { logininfor.setStatus(Constants.SUCCESS); - } else if (Constants.LOGIN_FAIL.equals(status)) { + } else if (Constants.LOGIN_FAIL.equals(logininforEvent.getStatus())) { logininfor.setStatus(Constants.FAIL); } // 鎻掑叆鏁版嵁 -- Gitblit v1.9.3