提交roll日创建
This commit is contained in:
@@ -122,21 +122,13 @@ public class SysMenuController extends BaseController
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除菜单
|
||||
* 删除菜单(存在子菜单时级联删除)
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:menu:remove')")
|
||||
@Log(title = "菜单管理", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{menuId}")
|
||||
public AjaxResult remove(@PathVariable("menuId") Long menuId)
|
||||
{
|
||||
if (menuService.hasChildByMenuId(menuId))
|
||||
{
|
||||
return warn("存在子菜单,不允许删除");
|
||||
}
|
||||
if (menuService.checkMenuExistRole(menuId))
|
||||
{
|
||||
return warn("菜单已分配,不允许删除");
|
||||
}
|
||||
return toAjax(menuService.deleteMenuById(menuId));
|
||||
}
|
||||
}
|
||||
@@ -114,6 +114,22 @@ public interface SysMenuMapper
|
||||
*/
|
||||
public int deleteMenuById(Long menuId);
|
||||
|
||||
/**
|
||||
* 批量删除菜单信息
|
||||
*
|
||||
* @param menuIds 菜单ID集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteMenuByIds(@Param("menuIds") List<Long> menuIds);
|
||||
|
||||
/**
|
||||
* 根据父菜单ID查询子菜单
|
||||
*
|
||||
* @param parentId 父菜单ID
|
||||
* @return 子菜单列表
|
||||
*/
|
||||
public List<SysMenu> selectChildrenByParentId(@Param("parentId") Long parentId);
|
||||
|
||||
/**
|
||||
* 校验菜单名称是否唯一
|
||||
*
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.ruoyi.system.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import com.ruoyi.system.domain.SysRoleMenu;
|
||||
|
||||
/**
|
||||
@@ -34,6 +35,14 @@ public interface SysRoleMenuMapper
|
||||
*/
|
||||
public int deleteRoleMenu(Long[] ids);
|
||||
|
||||
/**
|
||||
* 通过菜单ID集合删除角色和菜单关联
|
||||
*
|
||||
* @param menuIds 菜单ID集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteRoleMenuByMenuIds(@Param("menuIds") List<Long> menuIds);
|
||||
|
||||
/**
|
||||
* 批量新增角色菜单信息
|
||||
*
|
||||
|
||||
@@ -317,7 +317,7 @@ public class SysMenuServiceImpl implements ISysMenuService
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除菜单管理信息
|
||||
* 删除菜单管理信息,存在子菜单时级联删除子菜单及角色关联
|
||||
*
|
||||
* @param menuId 菜单ID
|
||||
* @return 结果
|
||||
@@ -325,7 +325,26 @@ public class SysMenuServiceImpl implements ISysMenuService
|
||||
@Override
|
||||
public int deleteMenuById(Long menuId)
|
||||
{
|
||||
return menuMapper.deleteMenuById(menuId);
|
||||
List<Long> menuIds = new ArrayList<>();
|
||||
collectAllMenuIds(menuId, menuIds);
|
||||
if (!menuIds.isEmpty())
|
||||
{
|
||||
roleMenuMapper.deleteRoleMenuByMenuIds(menuIds);
|
||||
}
|
||||
return menuMapper.deleteMenuByIds(menuIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 递归收集当前菜单及其所有子菜单ID
|
||||
*/
|
||||
private void collectAllMenuIds(Long menuId, List<Long> menuIds)
|
||||
{
|
||||
menuIds.add(menuId);
|
||||
List<SysMenu> children = menuMapper.selectChildrenByParentId(menuId);
|
||||
for (SysMenu child : children)
|
||||
{
|
||||
collectAllMenuIds(child.getMenuId(), menuIds);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -127,6 +127,18 @@
|
||||
select count(1) from sys_menu where parent_id = #{menuId}
|
||||
</select>
|
||||
|
||||
<select id="selectChildrenByParentId" resultMap="SysMenuResult">
|
||||
<include refid="selectMenuVo"/>
|
||||
where parent_id = #{parentId}
|
||||
</select>
|
||||
|
||||
<delete id="deleteMenuByIds">
|
||||
delete from sys_menu where menu_id in
|
||||
<foreach collection="menuIds" item="menuId" open="(" separator="," close=")">
|
||||
#{menuId}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<select id="checkMenuNameUnique" parameterType="SysMenu" resultMap="SysMenuResult">
|
||||
<include refid="selectMenuVo"/>
|
||||
where menu_name=#{menuName} and parent_id = #{parentId} limit 1
|
||||
|
||||
@@ -24,6 +24,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<delete id="deleteRoleMenuByMenuIds">
|
||||
delete from sys_role_menu where menu_id in
|
||||
<foreach collection="menuIds" item="menuId" open="(" separator="," close=")">
|
||||
#{menuId}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<insert id="batchRoleMenu">
|
||||
insert into sys_role_menu(role_id, menu_id) values
|
||||
<foreach item="item" index="index" collection="list" separator=",">
|
||||
|
||||
Reference in New Issue
Block a user