| | |
| | | import cn.hutool.http.useragent.UserAgentUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.ruoyi.common.constant.Constants; |
| | | import com.ruoyi.common.core.domain.dto.EquipmentLogDTO; |
| | | import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl; |
| | | import com.ruoyi.common.core.page.TableDataInfo; |
| | | import com.ruoyi.common.core.service.EquipmentService; |
| | | import com.ruoyi.common.core.service.LogininforService; |
| | | import com.ruoyi.common.enums.BusinessStatus; |
| | | import com.ruoyi.common.enums.EquipmentLog; |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.ruoyi.common.utils.PageUtils; |
| | | import com.ruoyi.common.utils.ServletUtils; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.common.utils.ip.AddressUtils; |
| | | import com.ruoyi.common.utils.spring.SpringUtils; |
| | | import com.ruoyi.system.domain.SysLogininfor; |
| | | import com.ruoyi.system.mapper.SysLogininforMapper; |
| | | import com.ruoyi.system.service.ISysLogininforService; |
| | |
| | | s.append(getBlock(message)); |
| | | // 打印信息到日志 |
| | | log.info(s.toString(), args); |
| | | // 获取客户端操作系统 |
| | | String os = userAgent.getOs().getName(); |
| | | // 获取客户端浏览器 |
| | | String browser = userAgent.getBrowser().getName(); |
| | | // 封装对象 |
| | | SysLogininfor logininfor = new SysLogininfor(); |
| | | logininfor.setUserName(username); |
| | | logininfor.setIpaddr(ip); |
| | | logininfor.setLoginLocation(address); |
| | | logininfor.setBrowser(browser); |
| | | logininfor.setOs(os); |
| | | logininfor.setMsg(message); |
| | | // 日志状态 |
| | | if (StringUtils.equalsAny(status, Constants.LOGIN_SUCCESS, Constants.LOGOUT, Constants.REGISTER)) { |
| | | logininfor.setStatus(Constants.SUCCESS); |
| | | } else if (Constants.LOGIN_FAIL.equals(status)) { |
| | | logininfor.setStatus(Constants.FAIL); |
| | | // 用户类型(DEVICE:设备端,空:pc系统) |
| | | String userType = request.getHeader("User-Type"); |
| | | // pc系统 |
| | | if (StringUtils.isEmpty(userType)) { |
| | | // 获取客户端操作系统 |
| | | String os = userAgent.getOs().getName(); |
| | | // 获取客户端浏览器 |
| | | String browser = userAgent.getBrowser().getName(); |
| | | // 封装对象 |
| | | SysLogininfor logininfor = new SysLogininfor(); |
| | | logininfor.setUserName(username); |
| | | logininfor.setIpaddr(ip); |
| | | logininfor.setLoginLocation(address); |
| | | logininfor.setBrowser(browser); |
| | | logininfor.setOs(os); |
| | | logininfor.setMsg(message); |
| | | // 日志状态 |
| | | if (StringUtils.equalsAny(status, Constants.LOGIN_SUCCESS, Constants.LOGOUT, Constants.REGISTER)) { |
| | | logininfor.setStatus(Constants.SUCCESS); |
| | | } else if (Constants.LOGIN_FAIL.equals(status)) { |
| | | logininfor.setStatus(Constants.FAIL); |
| | | } |
| | | // 插入数据 |
| | | insertLogininfor(logininfor); |
| | | } |
| | | // 插入数据 |
| | | insertLogininfor(logininfor); |
| | | // 设备端 |
| | | if ("DEVICE".equals(userType)) { |
| | | EquipmentLogDTO dto = new EquipmentLogDTO(); |
| | | dto.setLoginLocation(address); |
| | | dto.setUserName(username); |
| | | dto.setIp(ip); |
| | | dto.setLoginTime(DateUtils.getNowDate()); |
| | | dto.setOperation(EquipmentLog.LOGIN.ordinal()); |
| | | // 日志状态 |
| | | if (StringUtils.equalsAny(status, Constants.LOGIN_SUCCESS, Constants.LOGOUT, Constants.REGISTER)) { |
| | | dto.setStatus(BusinessStatus.SUCCESS.ordinal()); |
| | | } else if (Constants.LOGIN_FAIL.equals(status)) { |
| | | dto.setStatus(BusinessStatus.FAIL.ordinal()); |
| | | } |
| | | SpringUtils.getBean(EquipmentService.class).recordOper(dto); |
| | | } |
| | | } |
| | | |
| | | private String getBlock(Object msg) { |