Browse Source

Merge branch 'system-zyj' of uskycloud/usky-cloud into system-165

James 1 year ago
parent
commit
e4f5bf5472

+ 30 - 0
base-modules/service-system/service-system-api/src/main/java/com/usky/system/domain/SysLogininforVO.java

@@ -33,6 +33,16 @@ public class SysLogininforVO extends BaseEntity
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date accessTime;
 
+    /**
+     * 组织机构ID
+     */
+    private Integer deptId;
+
+    /**
+     * 租户ID
+     */
+    private Integer tenantId;
+
     public Long getInfoId()
     {
         return infoId;
@@ -92,4 +102,24 @@ public class SysLogininforVO extends BaseEntity
     {
         this.accessTime = accessTime;
     }
+
+    public Integer getDeptId()
+    {
+        return deptId;
+    }
+
+    public void setDeptId(Integer deptId)
+    {
+        this.deptId = deptId;
+    }
+
+    public Integer getTenantId()
+    {
+        return tenantId;
+    }
+
+    public void setTenantId(Integer tenantId)
+    {
+        this.tenantId = tenantId;
+    }
 }

+ 1 - 1
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/TokenController.java

@@ -99,7 +99,7 @@ public class TokenController {
             // 删除用户缓存记录
             AuthUtil.logoutByToken(token);
             // 记录用户退出日志
-            sysLoginService.logout(username);
+            sysLoginService.logout(SecurityUtils.getTenantId(),username);
         }
         return ApiResult.success();
     }

+ 32 - 20
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/SysLoginService.java

@@ -58,19 +58,19 @@ public class SysLoginService {
     public LoginUser login(String username, String password, Integer tenantId) {
         // 用户名或密码为空 错误
         if (StringUtils.isAnyBlank(username, password)) {
-            recordLogininfor(username, Constants.LOGIN_FAIL, "用户/密码必须填写");
+            recordLogininfor(tenantId,username, Constants.LOGIN_FAIL, "用户/密码必须填写");
             throw new BusinessException("用户/密码必须填写");
         }
         // 密码如果不在指定范围内 错误
         if (password.length() < UserConstants.PASSWORD_MIN_LENGTH
                 || password.length() > UserConstants.PASSWORD_MAX_LENGTH) {
-            recordLogininfor(username, Constants.LOGIN_FAIL, "用户密码不在指定范围");
+            recordLogininfor(tenantId,username, Constants.LOGIN_FAIL, "用户密码不在指定范围");
             throw new BusinessException("用户密码不在指定范围");
         }
         // 用户名不在指定范围内 错误
         if (username.length() < UserConstants.USERNAME_MIN_LENGTH
                 || username.length() > UserConstants.USERNAME_MAX_LENGTH) {
-            recordLogininfor(username, Constants.LOGIN_FAIL, "用户名不在指定范围");
+            recordLogininfor(tenantId,username, Constants.LOGIN_FAIL, "用户名不在指定范围");
             throw new BusinessException("用户名不在指定范围");
         }
 
@@ -84,15 +84,15 @@ public class SysLoginService {
 
         SysUserVO user = loginUser.getSysUser();
         if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) {
-            recordLogininfor(username, Constants.LOGIN_FAIL, "对不起,您的账号已被删除");
+            recordLogininfor(tenantId,username, Constants.LOGIN_FAIL, "对不起,您的账号已被删除");
             throw new BusinessException("对不起,您的账号:" + username + " 已被删除");
         }
         if (UserStatus.DISABLE.getCode().equals(user.getStatus())) {
-            recordLogininfor(username, Constants.LOGIN_FAIL, "用户已停用,请联系管理员");
+            recordLogininfor(tenantId,username, Constants.LOGIN_FAIL, "用户已停用,请联系管理员");
             throw new BusinessException("对不起,您的账号:" + username + " 已停用");
         }
         if (!SecurityUtils.matchesPassword(password, user.getPassword())) {
-            recordLogininfor(username, Constants.LOGIN_FAIL, "用户密码错误");
+            recordLogininfor(tenantId,username, Constants.LOGIN_FAIL, "用户密码错误");
             throw new BusinessException("用户不存在/密码错误");
         }
         //判断租户状态是否停用
@@ -104,14 +104,14 @@ public class SysLoginService {
             String status = list.get(0).getStatus();
             String domain = list.get(0).getDomain();
             if(status.equals("1")){
-                recordLogininfor(username, Constants.LOGIN_FAIL, "系统已停用,请联系管理员");
+                recordLogininfor(tenantId,username, Constants.LOGIN_FAIL, "系统已停用,请联系管理员");
                 throw new BusinessException("对不起,系统已停用,请联系管理员");
             }
         }
 
         SysPerson sysPerson = sysPersonService.getsysPerson(user.getUserId());
         loginUser.setSysPerson(sysPerson);
-        recordLogininfor(username, Constants.LOGIN_SUCCESS, "登录成功");
+        recordLogininfor(tenantId,username, Constants.LOGIN_SUCCESS, "登录成功");
         return loginUser;
     }
 
@@ -121,21 +121,21 @@ public class SysLoginService {
         if (!StringUtils.isBlank(username) && !StringUtils.isBlank(password)) {
             // 用户名或密码为空 错误
             if (StringUtils.isAnyBlank(username, password)) {
-                recordLogininfor(username, Constants.LOGIN_FAIL, "用户/密码必须填写");
+                recordLogininfor(tenantId,username, Constants.LOGIN_FAIL, "用户/密码必须填写");
                 throw new BusinessException("用户/密码必须填写");
             }
 
             // 密码如果不在指定范围内 错误
             if (password.length() < UserConstants.PASSWORD_MIN_LENGTH
                     || password.length() > UserConstants.PASSWORD_MAX_LENGTH) {
-                recordLogininfor(username, Constants.LOGIN_FAIL, "用户密码不在指定范围");
+                recordLogininfor(tenantId,username, Constants.LOGIN_FAIL, "用户密码不在指定范围");
                 throw new BusinessException("用户密码不在指定范围");
             }
 
             // 用户名不在指定范围内 错误
             if (username.length() < UserConstants.USERNAME_MIN_LENGTH
                     || username.length() > UserConstants.USERNAME_MAX_LENGTH) {
-                recordLogininfor(username, Constants.LOGIN_FAIL, "用户名不在指定范围");
+                recordLogininfor(tenantId,username, Constants.LOGIN_FAIL, "用户名不在指定范围");
                 throw new BusinessException("用户名不在指定范围");
             }
 
@@ -143,12 +143,12 @@ public class SysLoginService {
             loginUser = sysUserService.getAppUserInfo(username, tenantId, null);
 
             if (Objects.isNull(loginUser)) {
-                recordLogininfor(username, Constants.LOGIN_FAIL, "用户不存在");
+                recordLogininfor(tenantId,username, Constants.LOGIN_FAIL, "用户不存在");
                 throw new BusinessException("用户不存在");
             }
 
             if (!SecurityUtils.matchesPassword(password, loginUser.getPassword())) {
-                recordLogininfor(username, Constants.LOGIN_FAIL, "用户密码错误");
+                recordLogininfor(tenantId,username, Constants.LOGIN_FAIL, "用户密码错误");
                 throw new BusinessException("用户不存在/密码错误");
             }
         } else if(!StringUtils.isBlank(phone) && !StringUtils.isBlank(verify)) {
@@ -176,21 +176,21 @@ public class SysLoginService {
         }
 
         if (UserStatus.DELETED.getCode().equals(loginUser.getDelFlag())) {
-            recordLogininfor(username, Constants.LOGIN_FAIL, "对不起,您的账号已被删除");
+            recordLogininfor(tenantId,username, Constants.LOGIN_FAIL, "对不起,您的账号已被删除");
             throw new BusinessException("对不起,您的账号:" + username + " 已被删除");
         }
         if (UserStatus.DISABLE.getCode().equals(loginUser.getStatus())) {
-            recordLogininfor(username, Constants.LOGIN_FAIL, "用户已停用,请联系管理员");
+            recordLogininfor(tenantId,username, Constants.LOGIN_FAIL, "用户已停用,请联系管理员");
             throw new BusinessException("对不起,您的账号:" + username + " 已停用");
         }
 
-        recordLogininfor(username, Constants.LOGIN_SUCCESS, "登录成功");
+        recordLogininfor(tenantId,username, Constants.LOGIN_SUCCESS, "登录成功");
         return loginUser;
     }
 
 
-    public void logout(String loginName) {
-        recordLogininfor(loginName, Constants.LOGOUT, "退出成功");
+    public void logout(Integer tenantId,String loginName) {
+        recordLogininfor(tenantId,loginName, Constants.LOGOUT, "退出成功");
     }
 
     /**
@@ -216,7 +216,7 @@ public class SysLoginService {
         sysUser.setNickName(username);
         sysUser.setPassword(SecurityUtils.encryptPassword(password));
         sysUserService.register(BeanMapperUtils.map(sysUser, SysUser.class));
-        recordLogininfor(username, Constants.REGISTER, "注册成功");
+        recordLogininfor(SecurityUtils.getTenantId(),username, Constants.REGISTER, "注册成功");
     }
 
     /**
@@ -227,11 +227,23 @@ public class SysLoginService {
      * @param message  消息内容
      * @return
      */
-    public void recordLogininfor(String username, String status, String message) {
+    public void recordLogininfor(Integer tenantId,String username, String status, String message) {
         SysLogininforVO logininfor = new SysLogininforVO();
         logininfor.setUserName(username);
         logininfor.setIpaddr(IpUtils.getIpAddr(ServletUtils.getRequest()));
         logininfor.setMsg(message);
+
+        LambdaQueryWrapper<SysUser> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.select(SysUser::getDeptId)
+                .eq(SysUser::getDelFlag,0)
+                .eq(SysUser::getUserName,username)
+                .eq(SysUser::getTenantId,tenantId);
+        SysUser one = sysUserService.getOne(queryWrapper);
+        if(one != null){
+            logininfor.setDeptId(one.getDeptId().intValue());
+        }
+        logininfor.setTenantId(tenantId);
+
         // 日志状态
         if (StringUtils.equalsAny(status, Constants.LOGIN_SUCCESS, Constants.LOGOUT, Constants.REGISTER)) {
             logininfor.setStatus(Constants.LOGIN_SUCCESS_STATUS);

+ 0 - 7
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SysLogininforServiceImpl.java

@@ -37,13 +37,6 @@ public class SysLogininforServiceImpl extends AbstractCrudService<SysLogininforM
     @Override
     public void insertLogininfor(SysLogininfor logininfor)
     {
-        if(Objects.isNull(SecurityUtils.getLoginUser())){
-
-        }else{
-            logininfor.setDeptId(SecurityUtils.getLoginUser().getSysPerson().getDeptId().intValue());
-        }
-
-        logininfor.setTenantId(SecurityUtils.getTenantId());
         Date now = new Date();
         logininfor.setAccessTime(now);
         logininforMapper.insertLogininfor(logininfor);

+ 1 - 5
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SysOperLogServiceImpl.java

@@ -34,11 +34,7 @@ public class SysOperLogServiceImpl extends AbstractCrudService<SysOperLogMapper,
     @Override
     public void insertOperlog(SysOperLog operLog)
     {
-        if(Objects.isNull(SecurityUtils.getLoginUser())){
-
-        }else{
-            operLog.setDeptId(SecurityUtils.getLoginUser().getSysPerson().getDeptId().intValue());
-        }
+        operLog.setDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId().intValue());
 
         operLog.setTenantId(SecurityUtils.getTenantId());
         Date now = new Date();