提交roll日创建
This commit is contained in:
@@ -122,21 +122,13 @@ public class SysMenuController extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除菜单
|
* 删除菜单(存在子菜单时级联删除)
|
||||||
*/
|
*/
|
||||||
@PreAuthorize("@ss.hasPermi('system:menu:remove')")
|
@PreAuthorize("@ss.hasPermi('system:menu:remove')")
|
||||||
@Log(title = "菜单管理", businessType = BusinessType.DELETE)
|
@Log(title = "菜单管理", businessType = BusinessType.DELETE)
|
||||||
@DeleteMapping("/{menuId}")
|
@DeleteMapping("/{menuId}")
|
||||||
public AjaxResult remove(@PathVariable("menuId") Long 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));
|
return toAjax(menuService.deleteMenuById(menuId));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -114,6 +114,22 @@ public interface SysMenuMapper
|
|||||||
*/
|
*/
|
||||||
public int deleteMenuById(Long menuId);
|
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;
|
package com.ruoyi.system.mapper;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
import com.ruoyi.system.domain.SysRoleMenu;
|
import com.ruoyi.system.domain.SysRoleMenu;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -34,6 +35,14 @@ public interface SysRoleMenuMapper
|
|||||||
*/
|
*/
|
||||||
public int deleteRoleMenu(Long[] ids);
|
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
|
* @param menuId 菜单ID
|
||||||
* @return 结果
|
* @return 结果
|
||||||
@@ -325,7 +325,26 @@ public class SysMenuServiceImpl implements ISysMenuService
|
|||||||
@Override
|
@Override
|
||||||
public int deleteMenuById(Long menuId)
|
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 count(1) from sys_menu where parent_id = #{menuId}
|
||||||
</select>
|
</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">
|
<select id="checkMenuNameUnique" parameterType="SysMenu" resultMap="SysMenuResult">
|
||||||
<include refid="selectMenuVo"/>
|
<include refid="selectMenuVo"/>
|
||||||
where menu_name=#{menuName} and parent_id = #{parentId} limit 1
|
where menu_name=#{menuName} and parent_id = #{parentId} limit 1
|
||||||
|
|||||||
@@ -24,6 +24,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
</foreach>
|
</foreach>
|
||||||
</delete>
|
</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 id="batchRoleMenu">
|
||||||
insert into sys_role_menu(role_id, menu_id) values
|
insert into sys_role_menu(role_id, menu_id) values
|
||||||
<foreach item="item" index="index" collection="list" separator=",">
|
<foreach item="item" index="index" collection="list" separator=",">
|
||||||
|
|||||||
Reference in New Issue
Block a user