| | |
| | | package org.dromara.system.service.impl; |
| | | |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import cn.hutool.http.useragent.UserAgent; |
| | | import cn.hutool.http.useragent.UserAgentUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | |
| | | import org.dromara.common.core.utils.ServletUtils; |
| | | import org.dromara.common.core.utils.StringUtils; |
| | | import org.dromara.common.core.utils.ip.AddressUtils; |
| | | import org.dromara.common.satoken.utils.LoginHelper; |
| | | import org.dromara.system.domain.SysClient; |
| | | import org.dromara.system.domain.SysLogininfor; |
| | | import org.dromara.system.domain.bo.SysLogininforBo; |
| | | import org.dromara.system.domain.vo.SysClientVo; |
| | | import org.dromara.system.domain.vo.SysLogininforVo; |
| | | import org.dromara.system.mapper.SysClientMapper; |
| | | import org.dromara.system.mapper.SysLogininforMapper; |
| | | import org.dromara.system.service.ISysClientService; |
| | | import org.dromara.system.service.ISysLogininforService; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | |
| | | private final SysLogininforMapper baseMapper; |
| | | |
| | | private final ISysClientService clientService; |
| | | |
| | | /** |
| | | * 记录登录信息 |
| | | * |
| | |
| | | HttpServletRequest request = logininforEvent.getRequest(); |
| | | final UserAgent userAgent = UserAgentUtil.parse(request.getHeader("User-Agent")); |
| | | final String ip = ServletUtils.getClientIP(request); |
| | | // 客户端信息 |
| | | String clientid = request.getHeader(LoginHelper.CLIENT_KEY); |
| | | SysClientVo client = null; |
| | | if (StringUtils.isNotBlank(clientid)) { |
| | | client = clientService.queryByClientId(clientid); |
| | | } |
| | | |
| | | String address = AddressUtils.getRealAddressByIP(ip); |
| | | StringBuilder s = new StringBuilder(); |
| | |
| | | SysLogininforBo logininfor = new SysLogininforBo(); |
| | | logininfor.setTenantId(logininforEvent.getTenantId()); |
| | | logininfor.setUserName(logininforEvent.getUsername()); |
| | | if (ObjectUtil.isNotNull(client)) { |
| | | logininfor.setClientKey(client.getClientKey()); |
| | | logininfor.setDeviceType(client.getDeviceType()); |
| | | } |
| | | logininfor.setIpaddr(ip); |
| | | logininfor.setLoginLocation(address); |
| | | logininfor.setBrowser(browser); |