功能3修改

dv-1
王熙朝 2024-04-13 16:26:04 +08:00
parent 66539b8674
commit c17cec9768
3 changed files with 66 additions and 0 deletions

View File

@ -135,4 +135,6 @@ public interface SysMenuMapper extends BaseMapper<SysMenu> {
* @return
*/
public SysMenu checkMenuNameUnique (@Param("menuName") String menuName, @Param("parentId") Long parentId);
List<SysMenu> selectMenuByParentId (@Param("parentId") Long parentId);
}

View File

@ -60,6 +60,8 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
*/
@Override
public List<SysMenu> selectMenuList (SysMenu menu, Long userId) {
//获取菜单列表的长度
Integer size = menuMapper.selectMenuList(new SysMenu()).size();
List<SysMenu> menuList = null;
// 管理员显示所有菜单信息
if (SysUser.isAdmin(userId)) {
@ -68,9 +70,67 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
menu.getParams().put("userId", userId);
menuList = menuMapper.selectMenuListByUserId(menu);
}
//显示菜单长度和总菜单长度对比
if (menuList.size()!= size){
//菜单权限表
List<SysMenu> sysMenuList = new ArrayList<>();
//菜单对别
menuList.forEach(res -> {
//查子集
sysMenuList.addAll(sanMenu(res));
//查父级
if (res.getParentId() != 0) {
sysMenuList.addAll(friendMenu(res));
}
});
menuList.addAll(sysMenuList);
menuList = menuList.stream().distinct().toList();
}
return menuList;
}
/**
*
* @param menu
* @return
*/
public List<SysMenu> sanMenu(SysMenu menu){
//定义一个空的SysMenu数组
List<SysMenu> sysMenus = new ArrayList<>();
//获取子级队列
List<SysMenu> sysMenuList = menuMapper.selectMenuByParentId(menu.getMenuId());
sysMenus.addAll(sysMenus);
//长度不为0
if (sysMenuList.size()>0){
//存入子集列
for (SysMenu sysMenu : sysMenuList) {
sanMenu(sysMenu);
}
}
return sysMenus;
}
/**
*
* @param sysMenu
* @return
*/
public List<SysMenu> friendMenu(SysMenu sysMenu){
//创建一个空SysMenu队列
List<SysMenu> sysMenus = new ArrayList<>();
//查询父级菜单
SysMenu sysMenu1 = menuMapper.selectMenuById(sysMenu.getParentId());
//吸收父级菜单
sysMenus.add(sysMenu1);
//确认父级菜单非空
if (sysMenu1.getParentId() != 0) {
//存入父级
sysMenus.addAll(friendMenu(sysMenu1));
}
return sysMenus;
}
/**
* ID
*

View File

@ -185,6 +185,10 @@
<include refid="selectMenuVo"/>
where menu_name=#{menuName} and parent_id = #{parentId} limit 1
</select>
<select id="selectMenuByParentId" resultType="com.muyu.system.domain.SysMenu">
<include refid="selectMenuVo"/>
where parent_id = #{parentId}
</select>
<update id="updateMenu" parameterType="com.muyu.system.domain.SysMenu">
update sys_menu