|
|
@@ -1,6 +1,7 @@
|
|
|
package com.nb.system.service.impl;
|
|
|
|
|
|
import cn.dev33.satoken.exception.NotPermissionException;
|
|
|
+import cn.dev33.satoken.session.SaSession;
|
|
|
import cn.dev33.satoken.stp.StpUtil;
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
@@ -11,6 +12,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.nb.common.Constants;
|
|
|
import com.nb.common.bo.LoginUser;
|
|
|
+import com.nb.common.bo.SysRoleBO;
|
|
|
import com.nb.common.enums.StatusEnum;
|
|
|
import com.nb.common.enums.YesNoEnum;
|
|
|
import com.nb.common.exception.CustomException;
|
|
|
@@ -19,15 +21,9 @@ import com.nb.system.common.dto.SysUserAddDTO;
|
|
|
import com.nb.system.common.dto.SysUserEditDTO;
|
|
|
import com.nb.system.common.dto.SysUserQueryDTO;
|
|
|
import com.nb.system.common.dto.SysUserResetPwdDTO;
|
|
|
-import com.nb.system.entity.SysDept;
|
|
|
-import com.nb.system.entity.SysUser;
|
|
|
-import com.nb.system.entity.SysUserPost;
|
|
|
-import com.nb.system.entity.SysUserRole;
|
|
|
+import com.nb.system.entity.*;
|
|
|
import com.nb.system.mapper.SysUserMapper;
|
|
|
-import com.nb.system.service.ISysDeptService;
|
|
|
-import com.nb.system.service.ISysUserPostService;
|
|
|
-import com.nb.system.service.ISysUserRoleService;
|
|
|
-import com.nb.system.service.ISysUserService;
|
|
|
+import com.nb.system.service.*;
|
|
|
import lombok.SneakyThrows;
|
|
|
import org.apache.commons.compress.utils.Lists;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
@@ -38,6 +34,7 @@ import javax.annotation.Resource;
|
|
|
import java.util.Arrays;
|
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
+import java.util.Set;
|
|
|
import java.util.concurrent.CompletableFuture;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -61,6 +58,13 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
@Resource
|
|
|
private ISysDeptService sysDeptService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private ISysMenuService sysMenuService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private ISysRoleService sysRoleService;
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
public IPage<SysUser> page(Page reqPage, SysUserQueryDTO req) {
|
|
|
List<SysDept> sysDeptList = Lists.newArrayList();
|
|
|
@@ -219,6 +223,21 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
return sysUserRole;
|
|
|
}).collect(Collectors.toList());
|
|
|
sysUserRoleService.saveBatch(sysUserRoleList);
|
|
|
+
|
|
|
+ //更新缓存用户权限信息
|
|
|
+ Set<String> permissionsByUserId = sysMenuService.getPermissionsByUserId(req.getId());
|
|
|
+ List<String> tokens = StpUtil.getTokenValueListByLoginId(req.getId());
|
|
|
+ List<SysRole> sysRoleList = sysRoleService.listSysRoleByUserId(req.getId());
|
|
|
+ tokens.parallelStream()
|
|
|
+ .forEach(token->{
|
|
|
+ SaSession tokenSessionByToken = StpUtil.getTokenSessionByToken(token);
|
|
|
+ LoginUser user = (LoginUser) tokenSessionByToken.get(Constants.LOGIN_USER_KEY);
|
|
|
+ if(user!=null){
|
|
|
+ user.setPermissions(permissionsByUserId);
|
|
|
+ user.getSysUser().setRoles(sysRoleList.stream().map(item -> BeanUtil.copyProperties(item, SysRoleBO.class)).collect(Collectors.toList()));
|
|
|
+ tokenSessionByToken.set(Constants.LOGIN_USER_KEY,user);
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
}
|
|
|
|