唐耀东
2021-12-31 0b977fb16e8272739bbe25973947f45a55ebe842
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java
@@ -4,13 +4,19 @@
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;
@@ -57,6 +63,10 @@
        s.append(getBlock(message));
        // 打印信息到日志
        log.info(s.toString(), args);
        // 用户类型(DEVICE:设备端,空:pc系统)
        String userType = request.getHeader("User-Type");
        // pc系统
        if (StringUtils.isEmpty(userType)) {
        // 获取客户端操作系统
        String os = userAgent.getOs().getName();
        // 获取客户端浏览器
@@ -78,6 +88,23 @@
        // 插入数据
        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) {
        if (msg == null) {