refactor(menu): 优化菜单查询逻辑
- 移除了 MenuController 中未使用的 import 语句- 更新了 MenuMapper.xml 中的 SQL 查询,去除了不必要的连接- 重构了 MenuServiceImpl 中的 getTree 方法,增加了对管理员用户的特殊处理 - 新增了 createTree 方法,用于创建菜单树结构
This commit is contained in:
parent
f1f2ce72de
commit
f494adc3cf
@ -4,13 +4,11 @@ import com.zsc.edu.gateway.framework.security.UserDetailsImpl;
|
|||||||
import com.zsc.edu.gateway.modules.system.dto.MenuDto;
|
import com.zsc.edu.gateway.modules.system.dto.MenuDto;
|
||||||
import com.zsc.edu.gateway.modules.system.entity.Menu;
|
import com.zsc.edu.gateway.modules.system.entity.Menu;
|
||||||
import com.zsc.edu.gateway.modules.system.service.MenuService;
|
import com.zsc.edu.gateway.modules.system.service.MenuService;
|
||||||
import com.zsc.edu.gateway.modules.system.utils.TreeUtil;
|
|
||||||
import com.zsc.edu.gateway.modules.system.vo.MenuVo;
|
import com.zsc.edu.gateway.modules.system.vo.MenuVo;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.awt.*;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -74,8 +74,15 @@ public class MenuServiceImpl extends ServiceImpl<MenuRepository, Menu> implement
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<MenuVo> getTree(UserDetailsImpl userDetails, String name) {
|
public List<MenuVo> getTree(UserDetailsImpl userDetails, String name) {
|
||||||
|
if (Objects.equals(userDetails.getUsername(), "admin")) {
|
||||||
|
List<MenuVo> menus = baseMapper.selectAll().stream().map(MenuVo::new).toList();
|
||||||
|
return createTree(menus, name);
|
||||||
|
}
|
||||||
List<MenuVo> menuVos = selectByUserId(userDetails.getId(), Menu.Type.PAGE).stream().map(MenuVo::new).toList();
|
List<MenuVo> menuVos = selectByUserId(userDetails.getId(), Menu.Type.PAGE).stream().map(MenuVo::new).toList();
|
||||||
|
return createTree(menuVos, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<MenuVo> createTree(List<MenuVo> menuVos, String name) {
|
||||||
List<MenuVo> menuTrees = TreeUtil.makeTree(
|
List<MenuVo> menuTrees = TreeUtil.makeTree(
|
||||||
menuVos,
|
menuVos,
|
||||||
menuVo -> menuVo.getPid() == null || menuVo.getPid() == -1L,
|
menuVo -> menuVo.getPid() == null || menuVo.getPid() == -1L,
|
||||||
@ -101,5 +108,4 @@ public class MenuServiceImpl extends ServiceImpl<MenuRepository, Menu> implement
|
|||||||
return menuTrees;
|
return menuTrees;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -12,8 +12,5 @@
|
|||||||
<select id="selectAll" resultType="com.zsc.edu.gateway.modules.system.entity.Menu">
|
<select id="selectAll" resultType="com.zsc.edu.gateway.modules.system.entity.Menu">
|
||||||
select m.*
|
select m.*
|
||||||
from sys_menu m
|
from sys_menu m
|
||||||
left join sys_role_menu rm on rm.menu_id = m.id
|
|
||||||
left join sys_role r on r.id = rm.role_id
|
|
||||||
left join sys_user u on u.role_id = r.id
|
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
Loading…
Reference in New Issue
Block a user