🚀 根据用户分配角色

This commit is contained in:
bunny 2024-04-23 19:10:50 +08:00
parent 49273d8055
commit 241edbc2ea
1 changed files with 24 additions and 0 deletions

View File

@ -4,8 +4,10 @@ package com.atguigu.auth.service.impl;
import com.atguigu.auth.mapper.SysRoleMapper; import com.atguigu.auth.mapper.SysRoleMapper;
import com.atguigu.auth.mapper.SysUserRoleMapper; import com.atguigu.auth.mapper.SysUserRoleMapper;
import com.atguigu.auth.service.SysRoleService; import com.atguigu.auth.service.SysRoleService;
import com.atguigu.auth.service.SysUserRoleService;
import com.atguigu.model.system.RoleByUser; import com.atguigu.model.system.RoleByUser;
import com.atguigu.model.system.SysRole; import com.atguigu.model.system.SysRole;
import com.atguigu.model.system.SysUserRole;
import com.atguigu.vo.system.AssginRoleVo; import com.atguigu.vo.system.AssginRoleVo;
import com.atguigu.vo.system.SysRoleQueryVo; import com.atguigu.vo.system.SysRoleQueryVo;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -14,14 +16,18 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.List; import java.util.List;
@Service @Service
public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> implements SysRoleService { public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> implements SysRoleService {
@Autowired @Autowired
private SysUserRoleMapper sysUserRoleMapper; private SysUserRoleMapper sysUserRoleMapper;
@Autowired
private SysUserRoleService sysUserRoleService;
/** /**
* 角色条件分页查询 * 角色条件分页查询
@ -63,8 +69,26 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
* *
* @param vo 分配条件 * @param vo 分配条件
*/ */
@Transactional
@Override @Override
public void doAssign(AssginRoleVo vo) { public void doAssign(AssginRoleVo vo) {
// 删除原有数据
LambdaQueryWrapper<SysUserRole> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SysUserRole::getUserId, vo.getUserId());
sysUserRoleService.remove(wrapper);
// 为用户分配角色
ArrayList<SysUserRole> userRoleArrayList = new ArrayList<>();
vo.getRoleIdList().forEach(roleId -> {
if (!StringUtils.isEmpty(roleId)) {
SysUserRole sysUserRole = new SysUserRole();
sysUserRole.setUserId(vo.getUserId());
sysUserRole.setRoleId(roleId);
userRoleArrayList.add(sysUserRole);
}
});
// 批量插入用户角色信息
sysUserRoleService.saveBatch(userRoleArrayList);
} }
} }