| | |
| | | package com.ruoyi.system.service.impl; |
| | | |
| | | import java.time.LocalDateTime; |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.HashSet; |
| | | import java.util.List; |
| | | import java.util.Set; |
| | | import java.util.*; |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.ruoyi.common.core.domain.model.LoginUser; |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.ruoyi.system.mapper.*; |
| | | import com.ruoyi.system.object.dto.AddSysRoleDTO; |
| | | import com.ruoyi.system.object.dto.EditSysRoleDTO; |
| | | import com.ruoyi.system.object.vo.SysRolePageVO; |
| | |
| | | import com.ruoyi.system.domain.SysRoleDept; |
| | | import com.ruoyi.system.domain.SysRoleMenu; |
| | | import com.ruoyi.system.domain.SysUserRole; |
| | | import com.ruoyi.system.mapper.SysRoleDeptMapper; |
| | | import com.ruoyi.system.mapper.SysRoleMapper; |
| | | import com.ruoyi.system.mapper.SysRoleMenuMapper; |
| | | import com.ruoyi.system.mapper.SysUserRoleMapper; |
| | | import com.ruoyi.system.service.ISysRoleService; |
| | | |
| | | /** |
| | |
| | | |
| | | @Autowired |
| | | private SysRoleDeptMapper roleDeptMapper; |
| | | @Autowired |
| | | private SysUserMapper sysUserMapper; |
| | | @Autowired |
| | | private SysUserRoleMapper sysUserRoleMapper; |
| | | |
| | | /** |
| | | * 根据条件分页查询角色数据 |
| | |
| | | @Transactional |
| | | public int deleteRoleById(Long roleId) |
| | | { |
| | | //查看角色是否有用户绑定 |
| | | List<SysUserRole> sysUserRoles = sysUserRoleMapper.selectUserIdByRoleId(roleId); |
| | | if (!sysUserRoles.isEmpty()){ |
| | | throw new ServiceException("有用户绑定该角色,不能删除"); |
| | | } |
| | | |
| | | // 删除角色与菜单关联 |
| | | roleMenuMapper.deleteRoleMenuByRoleId(roleId); |
| | | // 删除角色与部门关联 |
| | |
| | | LoginUser loginUser = (LoginUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); |
| | | sysRole.setCreateBy(loginUser.getUsername()); |
| | | sysRole.setCreateTime(DateUtils.getNowDate()); |
| | | sysRole.setRoleSort(1); |
| | | sysRole.setDelFlag("0"); |
| | | roleMapper.insertRole(sysRole); |
| | | //添加角色菜单 |
| | | roleMenuMapper.insert(sysRole.getRoleId(),dto.getMenuIds()); |
| | |
| | | sysRole.setRoleName(dto.getRoleName()); |
| | | List<SysRole> sysRoles = roleMapper.selectRoleList(sysRole); |
| | | if (sysRoles!=null && !sysRoles.isEmpty()){ |
| | | throw new ServiceException("该角色名称重复"); |
| | | sysRoles.forEach(role -> { |
| | | if (!Objects.equals(role.getRoleId(), dto.getRoleId())){ |
| | | //id不同 |
| | | if (role.getRoleName().equals(dto.getRoleName())){ |
| | | throw new ServiceException("该角色名称重复"); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | //删除之前的 |
| | | roleMenuMapper.deleteRoleMenuByRoleId(dto.getRoleId()); |
| | | //添加角色菜单 |
| | | roleMenuMapper.insert(sysRole.getRoleId(),dto.getMenuIds()); |
| | | roleMenuMapper.insert(dto.getRoleId(),dto.getMenuIds()); |
| | | //修改角色 |
| | | sysRole1.setRoleName(dto.getRoleName()); |
| | | roleMapper.updateRole(sysRole1); |
| | | } |
| | | |
| | | @Override |
| | |
| | | sysRoleVO.setMenuIdList(menuIds); |
| | | return sysRoleVO; |
| | | } |
| | | |
| | | @Override |
| | | public List<SysRoleVO> getOptionSelect() { |
| | | return roleMapper.getOptionSelect(); |
| | | |
| | | } |
| | | } |