From 909f5126dc4441a3cd708e4bf972d254e2fa6b64 Mon Sep 17 00:00:00 2001
From: yanghui <2536613402@qq.com>
Date: 星期二, 11 十月 2022 14:00:34 +0800
Subject: [PATCH] #feat 保存登录日志

---
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/LoginServiceImpl.java |   41 +++++++++++++++++++++++++++++++++++++++--
 1 files changed, 39 insertions(+), 2 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/LoginServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/LoginServiceImpl.java
index 1bf7908..c2b22a8 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/LoginServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/LoginServiceImpl.java
@@ -1,11 +1,16 @@
 package com.panzhihua.auth.service.impl;
 
+import java.util.Date;
 import java.util.concurrent.TimeUnit;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.model.vos.user.SysOperLogVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.IPUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.data.redis.core.ValueOperations;
@@ -21,6 +26,9 @@
 import com.panzhihua.common.model.vos.LoginReturnsVO;
 import com.panzhihua.common.model.vos.LoginUserInfoVO;
 import com.panzhihua.common.utlis.JWTTokenUtil;
+import org.springframework.web.context.request.RequestAttributes;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
 
 import static java.util.Objects.nonNull;
 
@@ -36,6 +44,8 @@
     private AuthenticationManager authenticationManager;
     @Autowired
     private StringRedisTemplate redisTemplate;
+    @Resource
+    private UserService userService;
 
     /**
      * 微信小程序登录
@@ -45,10 +55,10 @@
      * @return jwt
      */
     @Override
-    public LoginReturnVO loginApplets(String openId) {
+    public LoginReturnVO loginApplets(String openId,String appId) {
         Authentication authentication = null;
         authentication = authenticationManager
-            .authenticate(new UsernamePasswordAuthenticationToken(openId + "_1", UserConstants.PASSWORD));
+            .authenticate(new UsernamePasswordAuthenticationToken(openId + "_1"+"_"+appId, UserConstants.PASSWORD));
         LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
         String token = JWTTokenUtil.generateToken(loginUser);
         String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
@@ -120,6 +130,21 @@
             loginReturnVO.setLat(comActVO.getLat());
             loginReturnVO.setLng(comActVO.getLng());
         }
+        //保存登录日志
+        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
+        SysOperLogVO operlog = new SysOperLogVO();
+        operlog.setTitle("登录操作"); // 操作模块
+        operlog.setBusinessType(1); // 操作类型
+        operlog.setMethod("com.panzhihua.community_backstage.api.LoginApi.login"); // 请求方法
+        operlog.setAccount(loginUser.getAccount());
+        operlog.setOperName(loginUser.getName()); // 请求用户名称
+        operlog.setOperIp(IPUtil.getIpAddress(request)); // 请求IP
+        operlog.setOperUrl(request.getRequestURI()); // 请求URI
+        operlog.setRequestMethod(request.getMethod());
+        operlog.setOperLocation(IPUtil.getIpBelongAddress(request));
+        operlog.setOperTime(new Date()); // 创建时间
+        operlog.setCommunityId(loginUser.getCommunityId());
+        userService.addOperLog(operlog);
         return loginReturnVO;
     }
 
@@ -300,4 +325,16 @@
         loginReturnVO.setRefreshToken(refeshToken);
         return loginReturnVO;
     }
+
+    @Override
+    public LoginReturnVO tfLogin(String account, String password, String appid) {
+        Authentication authentication = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_16"+"_"+appid, password));
+        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
+        String token = JWTTokenUtil.generateToken(loginUser);
+        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
+        LoginReturnVO loginReturnVO = new LoginReturnVO();
+        loginReturnVO.setToken(token);
+        loginReturnVO.setRefreshToken(refeshToken);
+        return loginReturnVO;
+    }
 }

--
Gitblit v1.7.1