Explorar o código

平台用户登录日志

WXF %!s(int64=3) %!d(string=hai) anos
pai
achega
816689f5e1

+ 14 - 1
simulation-oauth-client/src/main/java/com/css/simulation/oauth/client/controller/SignController.java

@@ -91,7 +91,7 @@ public class SignController {
     @RequestMapping("/single")
     @SneakyThrows
     @ResponseBody
-    public ResponseBodyVO<SimulationTokenVO> single(@RequestBody SignSingleParameter signSingleParameter) {
+    public ResponseBodyVO<SimulationTokenVO> single(@RequestBody SignSingleParameter signSingleParameter, HttpServletRequest request) {
 
         String code = signSingleParameter.getCode();
         String encodeCode = EncodeUtil.utf8(code);
@@ -176,6 +176,7 @@ public class SignController {
 
         //3 使用 union_id 查询数据库,是否已在仿真平台存在该用户
         UserPO oldUser = userMapper.selectByOpenIdIgnoreDelete(openid);
+        String userId = "";
         if (oldUser == null) {   //3-1 仿真平台不存在用户,直接创建新的
             UserPO newUser = new UserPO();
             newUser.setId(StringUtil.getRandomUUID());
@@ -193,6 +194,7 @@ public class SignController {
             newUser.setModifyTime(TimeUtil.getNowForMysql());
             newUser.setIsDeleted("0");
             userMapper.insert(newUser);
+            userId = newUser.getId();
             log.info("------- /single 成功插入新用户信息:" + newUser);
         } else {
             if ("1".equals(oldUser.getIsDeleted())) { //3-2 仿真平台存在删除状态用户,改为未删除
@@ -201,6 +203,7 @@ public class SignController {
             //3-3 仿真平台用户存在未删除用户,放行。不会每次都更新,防止在仿真云平台更新的信息被众工业覆盖
             username = oldUser.getUsername();
             password = oldUser.getPassword();
+            userId = oldUser.getId();
         }
 
         // -------------------------------- 这里需要用到前面创建的用户信息,所以不使用事务 --------------------------------
@@ -215,6 +218,16 @@ public class SignController {
         String simulationToken = HttpUtil.get(closeableHttpClient, requestConfig, simulationTokenUrl);
         log.info("------- /single 仿真云平台 token 信息为:" + simulationToken);
         SimulationTokenVO simulationTokenVO = JsonUtil.jsonToBean(simulationToken, SimulationTokenVO.class);
+        //登录日志
+        LogLoginPO po = new LogLoginPO();
+        po.setId(StringUtil.getRandomUUID());
+        po.setCreateTime(TimeUtil.getNowForMysql());
+        String remoteAddress = IpUtil.getRemoteAddress(request);
+        po.setIp(remoteAddress);
+        po.setUserId(userId);
+        po.setUsername(username);
+        po.setState(1);
+        logLoginMapper.insertLog(po);
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, simulationTokenVO);
     }