这句SQL的主要作用是从sys_app_menu表中获取符合条件的菜单信息,并按照父菜单ID和菜单顺序进行排序。其中,通过左连接查询关联了sys_role_app_menu、sys_user_role、sys_role和sys_user表,以获取用户所拥有的菜单权限。具体的查询条件如下:

  • u.user_id = #{userId}:查询指定用户ID的菜单信息。
  • m.menu_type in ('M', 'C'):查询菜单类型为主菜单(M)或子菜单(C)的菜单信息。
  • m.status = 0:查询菜单状态为正常(0)的菜单信息。
  • ro.status = 0:查询角色状态为正常(0)的角色信息。

最终查询结果包含以下字段:

  • m.menu_id:菜单ID。
  • m.parent_id:父菜单ID。
  • m.menu_name:菜单名称。
  • m.path:菜单路径。
  • m.component:菜单组件。
  • m.query:菜单查询参数。
  • m.visible:菜单可见性。
  • m.status:菜单状态。
  • ifnull(m.perms,'') as perms:菜单权限(如果为空,则显示空字符串)。
  • m.is_frame:是否为iframe菜单。
  • m.is_cache:是否缓存。
  • m.menu_type:菜单类型。
  • m.icon:菜单图标。
  • m.order_num:菜单顺序。
  • m.create_time:菜单创建时间
select distinct mmenu_id mparent_id mmenu_name mpath mcomponent mquery mvisible mstatus ifnullmperms as perms mis_frame mis_cache mmenu_type micon morder_num mcreate_time		from sys_app_menu m			 left

原文地址: http://www.cveoy.top/t/topic/iSLR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录