New file |
| | |
| | | package com.panzhihua.auth.manager; |
| | | |
| | | import java.util.TimerTask; |
| | | |
| | | import com.panzhihua.auth.model.dos.SysLogininforDO; |
| | | import com.panzhihua.auth.model.dos.SysOperLogDO; |
| | | import com.panzhihua.common.constants.Constants; |
| | | import com.panzhihua.common.utlis.AddressUtils; |
| | | import com.panzhihua.common.utlis.IpUtils; |
| | | import com.panzhihua.common.utlis.LogUtils; |
| | | import com.panzhihua.common.utlis.ServletUtils; |
| | | |
| | | import eu.bitwalker.useragentutils.UserAgent; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | |
| | | /** |
| | | * @program: springcloud_k8s_panzhihuazhihuishequ |
| | | * @description: 异步工厂 |
| | | * @author: huang.hongfa weixin hhf9596 qq 959656820 |
| | | * @create: 2020-11-20 15:28 |
| | | **/ |
| | | @Slf4j |
| | | public class AsyncFactoryNew { |
| | | |
| | | /** |
| | | * 记录登录信息 |
| | | * |
| | | * @param username |
| | | * 用户名 |
| | | * @param status |
| | | * 状态 |
| | | * @param message |
| | | * 消息 |
| | | * @param args |
| | | * 列表 |
| | | * @return 任务task |
| | | */ |
| | | public static TimerTask recordLogininfor(final String username, final String status, final String message, |
| | | final Object... args) { |
| | | final UserAgent userAgent = UserAgent.parseUserAgentString(ServletUtils.getRequest().getHeader("User-Agent")); |
| | | final String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); |
| | | return new TimerTask() { |
| | | @Override |
| | | public void run() { |
| | | 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(status)); |
| | | s.append(LogUtils.getBlock(message)); |
| | | // 打印信息到日志 |
| | | log.info(s.toString(), args); |
| | | // 获取客户端操作系统 |
| | | String os = userAgent.getOperatingSystem().getName(); |
| | | // 获取客户端浏览器 |
| | | String browser = userAgent.getBrowser().getName(); |
| | | // 封装对象 |
| | | SysLogininforDO logininfor = new SysLogininforDO(); |
| | | logininfor.setUserName(username); |
| | | logininfor.setIpaddr(ip); |
| | | logininfor.setLoginLocation(address); |
| | | logininfor.setBrowser(browser); |
| | | logininfor.setOs(os); |
| | | logininfor.setMsg(message); |
| | | // 日志状态 |
| | | if (Constants.LOGIN_SUCCESS.equals(status) || Constants.LOGOUT.equals(status)) { |
| | | logininfor.setStatus(Constants.SUCCESS + ""); |
| | | } else if (Constants.LOGIN_FAIL.equals(status)) { |
| | | logininfor.setStatus(Constants.FAIL + ""); |
| | | } |
| | | // 插入数据 |
| | | // SpringUtils.getBean(ISysLogininforService.class).insertLogininfor(logininfor); |
| | | } |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * 操作日志记录 |
| | | * |
| | | * @param operLog |
| | | * 操作日志信息 |
| | | * @return 任务task |
| | | */ |
| | | public static TimerTask recordOper(final SysOperLogDO operLog) { |
| | | return new TimerTask() { |
| | | @Override |
| | | public void run() { |
| | | // 远程查询操作地点 |
| | | operLog.setOperLocation(AddressUtils.getRealAddressByIP(operLog.getOperIp())); |
| | | // SpringUtils.getBean(ISysOperLogService.class).insertOperlog(operLog); |
| | | } |
| | | }; |
| | | } |
| | | } |