From b6c999b2bb066b9147be00b9cdf41b2638e5a70d Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Fri, 07 Jan 2022 22:58:04 +0800
Subject: [PATCH] 登录记录新增

---
 src/main/java/org/springblade/modules/auth/endpoint/BladeTokenEndPoint.java |   38 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 38 insertions(+), 0 deletions(-)

diff --git a/src/main/java/org/springblade/modules/auth/endpoint/BladeTokenEndPoint.java b/src/main/java/org/springblade/modules/auth/endpoint/BladeTokenEndPoint.java
index dce10aa..c7c8957 100644
--- a/src/main/java/org/springblade/modules/auth/endpoint/BladeTokenEndPoint.java
+++ b/src/main/java/org/springblade/modules/auth/endpoint/BladeTokenEndPoint.java
@@ -23,6 +23,7 @@
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
 import org.springblade.common.cache.CacheNames;
+import org.springblade.common.config.ServerConfig;
 import org.springblade.core.cache.utils.CacheUtil;
 import org.springblade.core.jwt.JwtUtil;
 import org.springblade.core.jwt.props.JwtProperties;
@@ -43,12 +44,18 @@
 import org.springblade.modules.exam.entity.ExamPaper;
 import org.springblade.modules.exam.service.ExamPaperService;
 import org.springblade.modules.exam.vo.ExamPaperVO;
+import org.springblade.modules.loginrecord.entity.LoginRecord;
+import org.springblade.modules.loginrecord.service.LoginRecordService;
 import org.springblade.modules.system.entity.UserInfo;
 import org.springblade.modules.zc.service.IZcService;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
 
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.time.Duration;
+import java.util.Date;
 import java.util.List;
 import java.util.UUID;
 
@@ -71,6 +78,10 @@
 	private final JwtProperties jwtProperties;
 	private final IZcService iZcService;
 	private final ExamPaperService examPaperService;
+
+	private final LoginRecordService loginRecordService;
+
+	private final ServerConfig serverConfig;
 
 	/**
 	 * 登录
@@ -131,10 +142,37 @@
 					}
 				}
 			}
+		}else {
+			//新增登录记录
+			this.saveLoginRecord(userInfo);
 		}
 		return TokenUtil.createAuthInfo(userInfo);
 	}
 
+	/**
+	 * 新增登录记录信息
+	 * @param userInfo
+	 */
+	private void saveLoginRecord(UserInfo userInfo) {
+		//创建对象
+		LoginRecord loginRecord = new LoginRecord();
+		//request 对象获取
+		ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+		HttpServletRequest request = requestAttributes.getRequest();
+		//数据封装
+		loginRecord.setCreateTime(new Date());
+		loginRecord.setServerIp(serverConfig.getServerIp());
+		loginRecord.setServerHost(serverConfig.getServerHostName());
+		loginRecord.setRequestUri(request.getRequestURI());
+		loginRecord.setRemoteIp(request.getRemoteAddr());
+		loginRecord.setDeptId(userInfo.getUser().getDeptId());
+		loginRecord.setUserId(userInfo.getUser().getId());
+		loginRecord.setType("1");
+		loginRecord.setCreateBy(userInfo.getUser().getRealName());
+		//新增
+		loginRecordService.save(loginRecord);
+	}
+
 
 	@GetMapping("/oauth/logout")
 	@ApiOperation(value = "退出登录")

--
Gitblit v1.9.3