diff --git a/awardBE/src/main/java/edu/ncst/award/controller/LoginController.java b/awardBE/src/main/java/edu/ncst/award/controller/LoginController.java index 2667c2a..42c6748 100644 --- a/awardBE/src/main/java/edu/ncst/award/controller/LoginController.java +++ b/awardBE/src/main/java/edu/ncst/award/controller/LoginController.java @@ -65,7 +65,7 @@ public class LoginController { if (userId == null) { log.error("用户id不能为空"); } - List menus = menuService.selectMenuTreeByUserId(userId); + List menus = menuService.selectMenuByUserId(userId); return R.ok(menuService.buildMenus(menus)); } diff --git a/awardBE/src/main/java/edu/ncst/award/mapper/MenuMapper.java b/awardBE/src/main/java/edu/ncst/award/mapper/MenuMapper.java index 59e2a73..18f765b 100644 --- a/awardBE/src/main/java/edu/ncst/award/mapper/MenuMapper.java +++ b/awardBE/src/main/java/edu/ncst/award/mapper/MenuMapper.java @@ -21,7 +21,9 @@ public interface MenuMapper extends BaseMapper { List getMenuTree(@Param("parentId") Integer parentId); - List selectMenuTreeByUserId(Integer userId); + List selectMenuByUserId(Integer userId); + + List selectMenuListByUserId(Menu menu, Long userId); // // 清空菜单项 // int removeAllMenuItem(); diff --git a/awardBE/src/main/java/edu/ncst/award/service/IMenuService.java b/awardBE/src/main/java/edu/ncst/award/service/IMenuService.java index 8033a79..9828d08 100644 --- a/awardBE/src/main/java/edu/ncst/award/service/IMenuService.java +++ b/awardBE/src/main/java/edu/ncst/award/service/IMenuService.java @@ -11,6 +11,23 @@ import java.util.List; */ public interface IMenuService extends IService { + /** + * 根据用户查询系统菜单列表 + * + * @param menu 菜单信息 + * @return 菜单列表 + */ + List selectMenuList(Menu menu); + + /** + * 根据用户查询系统菜单列表 + * + * @param menu 菜单信息 + * @param userId 用户ID + * @return 菜单列表 + */ + List selectMenuList(Menu menu, Long userId); + // // 获取菜单列表 // ListResultVO getMenuList(Query query); // @@ -61,7 +78,7 @@ public interface IMenuService extends IService { * 获取当前用户能够访问的路由菜单列表 * @param userId 用户id */ - List selectMenuTreeByUserId(Integer userId); + List selectMenuByUserId(Integer userId); /** * 构建前端路由所需要的菜单 diff --git a/awardBE/src/main/java/edu/ncst/award/service/impl/system/MenuServiceImpl.java b/awardBE/src/main/java/edu/ncst/award/service/impl/system/MenuServiceImpl.java index aa2fb65..bd8f0ac 100644 --- a/awardBE/src/main/java/edu/ncst/award/service/impl/system/MenuServiceImpl.java +++ b/awardBE/src/main/java/edu/ncst/award/service/impl/system/MenuServiceImpl.java @@ -28,8 +28,8 @@ public class MenuServiceImpl extends ServiceImpl implements IM * @param userId 用户id */ @Override - public List selectMenuTreeByUserId(Integer userId) { - return menuMapper.selectMenuTreeByUserId(userId); + public List selectMenuByUserId(Integer userId) { + return menuMapper.selectMenuByUserId(userId); } /** @@ -58,6 +58,32 @@ public class MenuServiceImpl extends ServiceImpl implements IM * @return 菜单的所有子节点 */ public List getAllMenusById(Integer menuId) { - return menuMapper.selectMenuTreeByUserId(0); + return menuMapper.selectMenuByUserId(0); } + + + /** + * 根据用户查询系统菜单列表 + * + * @param menu 菜单信息 + * @return 菜单列表 + */ + @Override + public List selectMenuList(Menu menu) { + return null; + } + + /** + * 根据用户查询系统菜单列表 + * + * @param menu 菜单信息 + * @param userId 用户ID + * @return 菜单列表 + */ + @Override + public List selectMenuList(Menu menu, Long userId) { + return baseMapper.selectMenuListByUserId(menu,userId); + } + + } diff --git a/awardBE/src/main/resources/mapper/MenuMapper.xml b/awardBE/src/main/resources/mapper/MenuMapper.xml index a5302bf..5a5d8b4 100644 --- a/awardBE/src/main/resources/mapper/MenuMapper.xml +++ b/awardBE/src/main/resources/mapper/MenuMapper.xml @@ -1,7 +1,7 @@ - # WITH RECURSIVE cte AS ( # SELECT *,CONCAT(id) as tree_path, 1 as level FROM sys_menu where parent_id = 0 # UNION ALL @@ -10,9 +10,12 @@ # ) select * from cte select distinct sm.* from sys_menu sm - inner join sys_user su on su.id = #{userId} - inner join sys_user_role ssr on su.id = ssr.user_id - inner join sys_role_menu srm on ssr.role_id = srm.role_id + left join sys_user su on su.id = #{userId} + left join sys_user_role ssr on su.id = ssr.user_id + left join sys_role_menu srm on ssr.role_id = srm.role_id order by parent_id + \ No newline at end of file diff --git a/awardBE/src/main/resources/mapper/ResourceMapper.xml b/awardBE/src/main/resources/mapper/ResourceMapper.xml index 410b7fe..e9fd12e 100644 --- a/awardBE/src/main/resources/mapper/ResourceMapper.xml +++ b/awardBE/src/main/resources/mapper/ResourceMapper.xml @@ -23,15 +23,15 @@ diff --git a/awardBE/src/main/resources/mapper/RoleMapper.xml b/awardBE/src/main/resources/mapper/RoleMapper.xml index d23cd6d..3826e2a 100644 --- a/awardBE/src/main/resources/mapper/RoleMapper.xml +++ b/awardBE/src/main/resources/mapper/RoleMapper.xml @@ -69,7 +69,7 @@ WHERE id in ( SELECT `role_id` FROM sys_user_role - INNER JOIN sys_user ON sys_user_role.user_id = sys_user.id + LEFT JOIN sys_user ON sys_user_role.user_id = sys_user.id AND sys_user.id = #{id}) diff --git a/awardBE/src/main/resources/mapper/UserMapper.xml b/awardBE/src/main/resources/mapper/UserMapper.xml index 26a1864..acd72b7 100644 --- a/awardBE/src/main/resources/mapper/UserMapper.xml +++ b/awardBE/src/main/resources/mapper/UserMapper.xml @@ -101,8 +101,8 @@ select distinct su.id, su.nickname, su.username, su.email, su.mobile_phone, su.enable,su.create_time from sys_user su - inner join sys_user_role sur on su.id = sur.user_id - inner join sys_role sr on sr.id = sur.role_id + left join sys_user_role sur on su.id = sur.user_id + left join sys_role sr on sr.id = sur.role_id where su.del_flag = '0' and sr.id = #{user.roleId} AND su.username like concat('%', #{user.userName}, '%') @@ -115,8 +115,8 @@ select distinct su.id, su.nickname, su.username, su.email, su.mobile_phone, su.enable,su.create_time from sys_user su - inner join sys_user_role sur on su.id = sur.user_id - inner join sys_role sr on sr.id = sur.role_id + left join sys_user_role sur on su.id = sur.user_id + left join sys_role sr on sr.id = sur.role_id where su.del_flag = '0' and (sr.id != #{user.roleId} or sr.id is null ) AND su.username like concat('%', #{user.userName}, '%')