huliguo
2025-07-03 e3a2245265516fef78b4737d6fffc939e7c5e0af
pt-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
@@ -1,15 +1,12 @@
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;
@@ -29,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;
/**
@@ -54,6 +47,10 @@
    @Autowired
    private SysRoleDeptMapper roleDeptMapper;
    @Autowired
    private SysUserMapper sysUserMapper;
    @Autowired
    private SysUserRoleMapper sysUserRoleMapper;
    /**
     * 根据条件分页查询角色数据
@@ -354,6 +351,12 @@
    @Transactional
    public int deleteRoleById(Long roleId)
    {
        //查看角色是否有用户绑定
        List<SysUserRole> sysUserRoles = sysUserRoleMapper.selectUserIdByRoleId(roleId);
        if (!sysUserRoles.isEmpty()){
            throw new ServiceException("有用户绑定该角色,不能删除");
        }
        // 删除角色与菜单关联
        roleMenuMapper.deleteRoleMenuByRoleId(roleId);
        // 删除角色与部门关联
@@ -455,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());
@@ -472,12 +477,22 @@
        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
@@ -495,4 +510,10 @@
        sysRoleVO.setMenuIdList(menuIds);
        return sysRoleVO;
    }
    @Override
    public List<SysRoleVO> getOptionSelect() {
        return roleMapper.getOptionSelect();
    }
}