refactor(menu): 优化菜单查询逻辑

- 移除了 MenuController 中未使用的 import 语句- 更新了 MenuMapper.xml 中的 SQL 查询,去除了不必要的连接- 重构了 MenuServiceImpl 中的 getTree 方法,增加了对管理员用户的特殊处理
- 新增了 createTree 方法,用于创建菜单树结构
This commit is contained in:
zhuangtianxiang 2025-01-13 21:42:10 +08:00
parent f1f2ce72de
commit f494adc3cf
3 changed files with 7 additions and 6 deletions

View File

@ -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.entity.Menu;
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 lombok.AllArgsConstructor;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.web.bind.annotation.*;
import java.awt.*;
import java.util.List;
/**

View File

@ -74,8 +74,15 @@ public class MenuServiceImpl extends ServiceImpl<MenuRepository, Menu> implement
@Override
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();
return createTree(menuVos, name);
}
public List<MenuVo> createTree(List<MenuVo> menuVos, String name) {
List<MenuVo> menuTrees = TreeUtil.makeTree(
menuVos,
menuVo -> menuVo.getPid() == null || menuVo.getPid() == -1L,
@ -101,5 +108,4 @@ public class MenuServiceImpl extends ServiceImpl<MenuRepository, Menu> implement
return menuTrees;
}
}

View File

@ -12,8 +12,5 @@
<select id="selectAll" resultType="com.zsc.edu.gateway.modules.system.entity.Menu">
select 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>
</mapper>