diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/MenuServiceApi.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/MenuServiceApi.java index 6e031fc0d..b2fcd0390 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/MenuServiceApi.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/MenuServiceApi.java @@ -71,4 +71,12 @@ public interface MenuServiceApi { */ String getMenuButtonCodeByButtonId(Long buttonId); + /** + * 通过菜单或按钮id的集合,获取拥有资源编码的集合 + * + * @author fengshuonan + * @date 2021/8/11 14:25 + */ + List getResourceCodesByBusinessId(List businessIds); + } diff --git a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/service/impl/SysMenuServiceImpl.java b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/service/impl/SysMenuServiceImpl.java index 4a01e0707..894ccedd6 100644 --- a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/service/impl/SysMenuServiceImpl.java +++ b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/service/impl/SysMenuServiceImpl.java @@ -56,11 +56,13 @@ import cn.stylefeng.roses.kernel.system.api.pojo.role.dto.SysRoleMenuDTO; import cn.stylefeng.roses.kernel.system.api.pojo.role.request.SysRoleRequest; import cn.stylefeng.roses.kernel.system.modular.menu.entity.SysMenu; import cn.stylefeng.roses.kernel.system.modular.menu.entity.SysMenuButton; +import cn.stylefeng.roses.kernel.system.modular.menu.entity.SysMenuResource; import cn.stylefeng.roses.kernel.system.modular.menu.factory.AntdMenusFactory; import cn.stylefeng.roses.kernel.system.modular.menu.factory.LayuiMenusFactory; import cn.stylefeng.roses.kernel.system.modular.menu.factory.MenuTypeFactory; import cn.stylefeng.roses.kernel.system.modular.menu.mapper.SysMenuMapper; import cn.stylefeng.roses.kernel.system.modular.menu.service.SysMenuButtonService; +import cn.stylefeng.roses.kernel.system.modular.menu.service.SysMenuResourceService; import cn.stylefeng.roses.kernel.system.modular.menu.service.SysMenuService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -93,6 +95,9 @@ public class SysMenuServiceImpl extends ServiceImpl impl @Resource private SysMenuButtonService sysMenuButtonService; + @Resource + private SysMenuResourceService sysMenuResourceService; + @Override public void add(SysMenuRequest sysMenuRequest) { @@ -548,6 +553,16 @@ public class SysMenuServiceImpl extends ServiceImpl impl } } + @Override + public List getResourceCodesByBusinessId(List businessIds) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(SysMenuResource::getBusinessId, businessIds); + wrapper.select(SysMenuResource::getResourceCode); + List list = sysMenuResourceService.list(wrapper); + + return list.stream().map(SysMenuResource::getResourceCode).collect(Collectors.toList()); + } + /** * 获取系统菜单 * diff --git a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/impl/HrOrganizationServiceImpl.java b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/impl/HrOrganizationServiceImpl.java index 27b268022..0c973eb8e 100644 --- a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/impl/HrOrganizationServiceImpl.java +++ b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/impl/HrOrganizationServiceImpl.java @@ -439,6 +439,12 @@ public class HrOrganizationServiceImpl extends ServiceImpl dataScope = LoginContext.me().getLoginUser().getDataScopeOrganizationIds(); + + // 如果数据范围为空,则返回空数组 + if (ObjectUtil.isEmpty(dataScope)) { + return new ArrayList<>(); + } + // 根据组织机构数据范围的上级组织,用于展示完整的树形结构 Set allLevelParentIdsByOrganizations = this.findAllLevelParentIdsByOrganizations(dataScope); // 拼接查询条件 diff --git a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/service/impl/SysRoleServiceImpl.java b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/service/impl/SysRoleServiceImpl.java index 18712e3ae..5f4e15eba 100644 --- a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/service/impl/SysRoleServiceImpl.java +++ b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/service/impl/SysRoleServiceImpl.java @@ -507,6 +507,28 @@ public class SysRoleServiceImpl extends ServiceImpl impl } } + // 获取角色的所有菜单 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(SysRoleMenu::getRoleId, roleIdList); + wrapper.select(SysRoleMenu::getMenuId); + List list = this.roleMenuService.list(wrapper); + List menuIds = list.stream().map(SysRoleMenu::getMenuId).collect(Collectors.toList()); + + // 获取角色绑定的所有按钮 + LambdaQueryWrapper wrapper2 = new LambdaQueryWrapper<>(); + wrapper2.in(SysRoleMenuButton::getRoleId, roleIdList); + wrapper2.select(SysRoleMenuButton::getButtonId); + List roleMenuButtons = this.sysRoleMenuButtonService.list(wrapper2); + List buttonIds = roleMenuButtons.stream().map(SysRoleMenuButton::getButtonId).collect(Collectors.toList()); + + // 获取菜单和按钮所有绑定的资源 + ArrayList businessIds = new ArrayList<>(); + businessIds.addAll(menuIds); + businessIds.addAll(buttonIds); + + // 获取菜单和按钮 + List menuButtonResources = menuServiceApi.getResourceCodesByBusinessId(businessIds); + result.addAll(menuButtonResources); return result; } diff --git a/kernel-s-system/system-integration-beetl/src/main/java/cn/stylefeng/roses/kernel/system/integration/modular/system/i18n/TranslationViewController.java b/kernel-s-system/system-integration-beetl/src/main/java/cn/stylefeng/roses/kernel/system/integration/modular/system/i18n/TranslationViewController.java index beaea9d2f..ffb5d84f9 100644 --- a/kernel-s-system/system-integration-beetl/src/main/java/cn/stylefeng/roses/kernel/system/integration/modular/system/i18n/TranslationViewController.java +++ b/kernel-s-system/system-integration-beetl/src/main/java/cn/stylefeng/roses/kernel/system/integration/modular/system/i18n/TranslationViewController.java @@ -20,7 +20,7 @@ public class TranslationViewController { * @author fengshuonan * @date 2021/1/24 19:15 */ - @GetResource(name = "文件管理首页", path = "/view/i18n") + @GetResource(name = "多语言主界面", path = "/view/i18n") public String index() { return "/modular/system/i18n/translation.html"; } @@ -42,7 +42,7 @@ public class TranslationViewController { * @author fengshuonan * @date 2021/1/24 19:16 */ - @GetResource(name = "文件管理首页", path = "/view/i18n/edit") + @GetResource(name = "多语言编辑界面", path = "/view/i18n/edit") public String edit() { return "/modular/system/i18n/translation_edit.html"; }