huliguo
2025-07-03 e3a2245265516fef78b4737d6fffc939e7c5e0af
pt-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
@@ -6,6 +6,7 @@
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;
@@ -25,10 +26,6 @@
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;
/**
@@ -50,6 +47,10 @@
    @Autowired
    private SysRoleDeptMapper roleDeptMapper;
    @Autowired
    private SysUserMapper sysUserMapper;
    @Autowired
    private SysUserRoleMapper sysUserRoleMapper;
    /**
     * 根据条件分页查询角色数据
@@ -350,6 +351,12 @@
    @Transactional
    public int deleteRoleById(Long roleId)
    {
        //查看角色是否有用户绑定
        List<SysUserRole> sysUserRoles = sysUserRoleMapper.selectUserIdByRoleId(roleId);
        if (!sysUserRoles.isEmpty()){
            throw new ServiceException("有用户绑定该角色,不能删除");
        }
        // 删除角色与菜单关联
        roleMenuMapper.deleteRoleMenuByRoleId(roleId);
        // 删除角色与部门关联
@@ -451,6 +458,8 @@
        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());
@@ -468,12 +477,22 @@
        sysRole.setRoleName(dto.getRoleName());
        List<SysRole> sysRoles = roleMapper.selectRoleList(sysRole);
        if (sysRoles!=null && !sysRoles.isEmpty()){
            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