From 0b977fb16e8272739bbe25973947f45a55ebe842 Mon Sep 17 00:00:00 2001
From: 唐耀东 <18861537@qq.com>
Date: 星期五, 31 十二月 2021 11:30:49 +0800
Subject: [PATCH] 提交代码

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java |   65 +++++++++++++++++++++++---------
 1 files changed, 46 insertions(+), 19 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java
index 0ce33be..d538d15 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java
+++ b/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,26 +63,47 @@
         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);
+        // 鐢ㄦ埛绫诲瀷锛圖EVICE锛氳澶囩锛岀┖锛歱c绯荤粺锛�
+        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) {

--
Gitblit v1.9.1