|
|
|
|
@ -22,10 +22,7 @@ import org.dromara.common.core.utils.*;
|
|
|
|
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
|
|
|
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|
|
|
|
import org.dromara.common.satoken.utils.LoginHelper;
|
|
|
|
|
import org.dromara.system.domain.SysRole;
|
|
|
|
|
import org.dromara.system.domain.SysUser;
|
|
|
|
|
import org.dromara.system.domain.SysUserPost;
|
|
|
|
|
import org.dromara.system.domain.SysUserRole;
|
|
|
|
|
import org.dromara.system.domain.*;
|
|
|
|
|
import org.dromara.system.domain.bo.SysUserBo;
|
|
|
|
|
import org.dromara.system.domain.vo.SysPostVo;
|
|
|
|
|
import org.dromara.system.domain.vo.SysRoleVo;
|
|
|
|
|
@ -452,14 +449,20 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
|
|
|
|
* @param clear 清除已存在的关联数据
|
|
|
|
|
*/
|
|
|
|
|
private void insertUserPost(SysUserBo user, boolean clear) {
|
|
|
|
|
Long[] posts = user.getPostIds();
|
|
|
|
|
if (ArrayUtil.isNotEmpty(posts)) {
|
|
|
|
|
List<Long> postIds = List.of(user.getPostIds());
|
|
|
|
|
if (ArrayUtil.isNotEmpty(postIds)) {
|
|
|
|
|
// 判断是否具有此角色的操作权限
|
|
|
|
|
List<SysPostVo> posts = postMapper.selectPostList(
|
|
|
|
|
new LambdaQueryWrapper<SysPost>().in(SysPost::getPostId, postIds));
|
|
|
|
|
if (CollUtil.isEmpty(posts) || posts.size() != postIds.size()) {
|
|
|
|
|
throw new ServiceException("没有权限访问岗位的数据");
|
|
|
|
|
}
|
|
|
|
|
if (clear) {
|
|
|
|
|
// 删除用户与岗位关联
|
|
|
|
|
userPostMapper.delete(new LambdaQueryWrapper<SysUserPost>().eq(SysUserPost::getUserId, user.getUserId()));
|
|
|
|
|
}
|
|
|
|
|
// 新增用户与岗位管理
|
|
|
|
|
List<SysUserPost> list = StreamUtils.toList(List.of(posts), postId -> {
|
|
|
|
|
List<SysUserPost> list = StreamUtils.toList(postIds, postId -> {
|
|
|
|
|
SysUserPost up = new SysUserPost();
|
|
|
|
|
up.setUserId(user.getUserId());
|
|
|
|
|
up.setPostId(postId);
|
|
|
|
|
|