From e3a2245265516fef78b4737d6fffc939e7c5e0af Mon Sep 17 00:00:00 2001
From: huliguo <2023611923@qq.com>
Date: 星期四, 03 七月 2025 17:56:07 +0800
Subject: [PATCH] bug修改

---
 pt-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java |   31 +++++++++++++++++++++++++------
 1 files changed, 25 insertions(+), 6 deletions(-)

diff --git a/pt-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java b/pt-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
index 660d127..146de7a 100644
--- a/pt-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
+++ b/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()){
-            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

--
Gitblit v1.7.1