| | |
| | | import com.ruoyi.project.monitor.domain.SysOperLog;
|
| | | import com.ruoyi.project.monitor.service.ISysLogininforService;
|
| | | import com.ruoyi.project.monitor.service.ISysOperLogService;
|
| | | import com.ruoyi.project.system.domain.SysUser;
|
| | | import com.ruoyi.project.system.service.ISysUserService;
|
| | | import eu.bitwalker.useragentutils.UserAgent;
|
| | |
|
| | | /**
|
| | |
| | | final Object... args)
|
| | | {
|
| | | final UserAgent userAgent = UserAgent.parseUserAgentString(ServletUtils.getRequest().getHeader("User-Agent"));
|
| | | final String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
|
| | | final String ip = IpUtils.getIpAddr();
|
| | | return new TimerTask()
|
| | | {
|
| | | @Override
|
| | | public void run()
|
| | | {
|
| | | // 登录日志用户名称记录昵称,昵称为空时回退登录账号
|
| | | String displayName = resolveNickName(username);
|
| | | String address = AddressUtils.getRealAddressByIP(ip);
|
| | | StringBuilder s = new StringBuilder();
|
| | | s.append(LogUtils.getBlock(ip));
|
| | | s.append(address);
|
| | | s.append(LogUtils.getBlock(username));
|
| | | s.append(LogUtils.getBlock(displayName));
|
| | | s.append(LogUtils.getBlock(status));
|
| | | s.append(LogUtils.getBlock(message));
|
| | | // 打印信息到日志
|
| | |
| | | String browser = userAgent.getBrowser().getName();
|
| | | // 封装对象
|
| | | SysLogininfor logininfor = new SysLogininfor();
|
| | | logininfor.setUserName(username);
|
| | | logininfor.setUserName(displayName);
|
| | | logininfor.setIpaddr(ip);
|
| | | logininfor.setLoginLocation(address);
|
| | | logininfor.setBrowser(browser);
|
| | |
| | | }
|
| | |
|
| | | /**
|
| | | * 按登录账号查询昵称,查询不到时回退为原账号
|
| | | *
|
| | | * @param username 登录账号
|
| | | * @return 昵称
|
| | | */
|
| | | private static String resolveNickName(String username)
|
| | | {
|
| | | if (StringUtils.isEmpty(username))
|
| | | {
|
| | | return username;
|
| | | }
|
| | | try
|
| | | {
|
| | | SysUser user = SpringUtils.getBean(ISysUserService.class).selectUserByUserName(username);
|
| | | if (user != null && StringUtils.isNotEmpty(user.getNickName()))
|
| | | {
|
| | | return user.getNickName();
|
| | | }
|
| | | }
|
| | | catch (Exception e)
|
| | | {
|
| | | // 查询昵称失败不影响登录日志写入,回退为登录账号
|
| | | }
|
| | | return username;
|
| | | }
|
| | |
|
| | | /**
|
| | | * 操作日志记录
|
| | | * |
| | | *
|
| | | * @param operLog 操作日志信息
|
| | | * @return 任务task
|
| | | */
|