diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysMenuController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysMenuController.java index 25bf5c85c..3bb1d86f1 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysMenuController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysMenuController.java @@ -85,7 +85,7 @@ public class SysMenuController extends BaseController { public R tenantPackageMenuTreeselect(@PathVariable("packageId") Long packageId) { List menus = menuService.selectMenuList(LoginHelper.getUserId()); MenuTreeSelectVo selectVo = new MenuTreeSelectVo(); - selectVo.setCheckedKeys(menuService.selectMenuListByTenantPackageId(packageId)); + selectVo.setCheckedKeys(menuService.selectMenuListByPackageId(packageId)); selectVo.setMenus(menuService.buildMenuTreeSelect(menus)); return R.ok(selectVo); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java index f1a1b57b1..936a0127e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java @@ -80,12 +80,4 @@ public interface SysMenuMapper extends BaseMapperPlus selectMenuListByRoleId(@Param("roleId") Long roleId, @Param("menuCheckStrictly") boolean menuCheckStrictly); - /** - * 根据租户套餐菜单ID查询菜单树信息 - * - * @param menuIds 租户套餐菜单ID - * @return 选中菜单列表 - */ - List selectMenuListByTenantPackageMenuId(@Param("menuIds") String menuIds); - } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysTenantPackageMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysTenantPackageMapper.java index 89229a2df..2f5731e4e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysTenantPackageMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysTenantPackageMapper.java @@ -1,9 +1,8 @@ package com.ruoyi.system.mapper; +import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; import com.ruoyi.system.domain.SysTenantPackage; import com.ruoyi.system.domain.vo.SysTenantPackageVo; -import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; -import org.apache.ibatis.annotations.Param; /** * 租户套餐Mapper接口 @@ -12,12 +11,4 @@ import org.apache.ibatis.annotations.Param; */ public interface SysTenantPackageMapper extends BaseMapperPlus { - /** - * 获取租户套餐菜单id - * - * @param packageId 租户套餐id - * @return 菜单id - */ - String selectMenuIds(@Param("packageId") Long packageId); - } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java index 43f6cbcfe..4ca909ce9 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java @@ -71,7 +71,7 @@ public interface ISysMenuService { * @param packageId 租户套餐ID * @return 选中菜单列表 */ - List selectMenuListByTenantPackageId(Long packageId); + List selectMenuListByPackageId(Long packageId); /** * 构建前端路由所需要的菜单 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java index 201613f50..4e5671652 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java @@ -2,6 +2,7 @@ package com.ruoyi.system.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -16,6 +17,7 @@ import com.ruoyi.common.satoken.utils.LoginHelper; import com.ruoyi.system.domain.SysMenu; import com.ruoyi.system.domain.SysRole; import com.ruoyi.system.domain.SysRoleMenu; +import com.ruoyi.system.domain.SysTenantPackage; import com.ruoyi.system.domain.bo.SysMenuBo; import com.ruoyi.system.domain.vo.MetaVo; import com.ruoyi.system.domain.vo.RouterVo; @@ -158,10 +160,23 @@ public class SysMenuServiceImpl implements ISysMenuService { * @return 选中菜单列表 */ @Override - public List selectMenuListByTenantPackageId(Long packageId) { - String menuIds = sysTenantPackageMapper.selectMenuIds(packageId); - return StringUtils.isNotBlank(menuIds) - ? baseMapper.selectMenuListByTenantPackageMenuId(menuIds) : new ArrayList<>(); + public List selectMenuListByPackageId(Long packageId) { + SysTenantPackage tenantPackage = sysTenantPackageMapper.selectById(packageId); + String menuIds = tenantPackage.getMenuIds(); + if (StringUtils.isBlank(menuIds)) { + return List.of(); + } + List parentIds = null; + if (tenantPackage.getMenuCheckStrictly()) { + parentIds = baseMapper.selectObjs(new LambdaQueryWrapper() + .select(SysMenu::getParentId) + .in(SysMenu::getMenuId, menuIds)) + .stream().distinct().map(Convert::toLong).toList(); + } + return baseMapper.selectObjs(new LambdaQueryWrapper() + .in(SysMenu::getMenuId, menuIds) + .notIn(CollUtil.isNotEmpty(parentIds), SysMenu::getMenuId, parentIds)) + .stream().map(Convert::toLong).toList(); } /** diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml index 8e6511c67..acd3b5e50 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml @@ -82,10 +82,4 @@ where m.status = '0' and rm.role_id = #{roleId} - - diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysTenantPackageMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysTenantPackageMapper.xml index 3ade9d04c..23b46dfcd 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysTenantPackageMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysTenantPackageMapper.xml @@ -4,10 +4,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - -