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.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;
|
||||
|
||||
/**
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -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>
|
||||
|
Loading…
Reference in New Issue
Block a user