diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreMemTreeService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreMemTreeService.java index 85b53f6..d5c573b 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreMemTreeService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ICoreMemTreeService.java @@ -161,6 +161,9 @@ public interface ICoreMemTreeService { @ApiOperation(value = "查询功能子节点",notes = "根据用户ID 查询功能树") List packTreeSysMenuByUserId(Long userId); + @ApiOperation(value = "查询功能子节点",notes = "根据用户ID 和 节点ID 查询功能树") + List packTreeSysMenuByUserIdAndParentId(Long userId,Long parentId); + @ApiOperation(value = "查询功能子节点",notes = "根据用户ID 查询功能树") List packTreeSysMenu(); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/AuthController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/AuthController.java index ea1a95a..62767c6 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/AuthController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/AuthController.java @@ -1,5 +1,6 @@ package cn.estsh.i3plus.core.apiservice.controller.base; +import cn.estsh.i3plus.core.api.iservice.busi.ICoreMemTreeService; import cn.estsh.i3plus.core.apiservice.serviceimpl.busi.SysLocaleLanguageService; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; @@ -13,6 +14,7 @@ import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; import cn.estsh.impp.framework.boot.util.ResultBean; +import cn.estsh.impp.framework.boot.util.ValidatorBean; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; @@ -41,6 +43,9 @@ public class AuthController extends CoreBaseController { @Autowired private SysLocaleLanguageService localeLanguageService; + @Autowired + private ICoreMemTreeService memTreeService; + /** * 获取登录用户信息 * @@ -149,42 +154,18 @@ public class AuthController extends CoreBaseController { @GetMapping(value = "/menu/find-module-list/{parentId}") @ApiOperation(value = "获取登录用户功能权限信息", notes = "获取首页权限信息") public ResultBean findModuleList(@PathVariable("parentId") String parentId) { - List list = new ArrayList<>(); - SysUser user = getSessionUser().getUser(); - - if (user != null) { - List menus = user.getMenuList(); - if (menus != null) { - // 封装模块信息 - for (SysMenu menu : menus) { - if (menu != null && menu.getMenuType().equals(CommonEnumUtil.METHOD_LEVEL.MODULE.getValue()) - && parentId.equals(menu.getParentId().toString())) { - - // 封装 功能信息 - for (SysMenu sysMenu : menus) { - if (sysMenu != null && sysMenu.getMenuType().equals(CommonEnumUtil.METHOD_LEVEL.METHOD.getValue()) - && menu.getId().longValue() == sysMenu.getParentId().longValue()) { - if (!menu.getChildList().contains(sysMenu)) { - menu.getChildList().add(sysMenu); - } - } - } - - menu.getChildList().sort(Comparator.comparing(SysMenu::getMenuSort).reversed().thenComparing(SysMenu::getMenuCode)); - list.add(menu); - } - } - } - } + try { + ValidatorBean.checkIsNumber(parentId,"父节点不能为空"); - if (list != null && list.size() > 0) { - // 内存排序 Sort 降序 code 升序 - list.sort(Comparator.comparing(SysMenu::getMenuSort).reversed().thenComparing(SysMenu::getMenuCode)); - return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(list); - } else { - return ResultBean.fail("操作失败").setCode(ResourceEnumUtil.MESSAGE.FAIL.getCode()).setErrorMsg("菜单信息不存在"); + List result = memTreeService.packTreeSysMenuByUserIdAndParentId(getSessionUser().getUser().getId(), Long.parseLong(parentId)); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result); + } catch (ImppBusiException busExcep) { + LOGGER.error(busExcep.getErrorMsg() + ":{}", busExcep.getErrorDetail(), busExcep); + return ResultBean.fail(busExcep); + } catch (Exception e) { + LOGGER.error(ImppExceptionEnum.SYSTEM_EXCEPTION.getDescription() + ":{}", e.getMessage(), e); + return ResultBean.fail().setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode()); } - } /** diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreMemTreeService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreMemTreeService.java index fb7c79d..2c84304 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreMemTreeService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/CoreMemTreeService.java @@ -610,13 +610,19 @@ public class CoreMemTreeService implements ICoreMemTreeService { @Override public List packTreeSysMenuByUserId(Long userId) { + return packTreeSysMenuByUserIdAndParentId(userId, CommonEnumUtil.PARENT.DEFAULT.getValue()); + } + + @Override + public List packTreeSysMenuByUserIdAndParentId(Long userId, Long parentId) { List roleList = personnelService.findSysRefUserRole(userId); + if(roleList != null && roleList.size() > 0){ List refRoleMenuList = personnelService.findSysRefRoleMenuByRefUserRole(roleList); if(refRoleMenuList != null && refRoleMenuList.size() > 0){ List menuList = personnelService.findSysMenuList(); - List menuRootTree = packTreeSysMenu(menuList, CommonEnumUtil.PARENT.DEFAULT.getValue()); + List menuRootTree = packTreeSysMenu(menuList, parentId); return packTreeSysMenuBySysRefUserOrganize(menuRootTree, refRoleMenuList); } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/PersonnelServiceService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/PersonnelServiceService.java index 3a046ac..d26c41c 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/PersonnelServiceService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/PersonnelServiceService.java @@ -256,12 +256,13 @@ public class PersonnelServiceService implements IPersonnelService { public List findSysMenuList() { LOGGER.info("平台账号权限 SysMenu "); - return menuRDao.findByProperty( - new String[]{"menuStatus","isDeleted","isValid"}, - new Object[]{ - CommonEnumUtil.DATA_STATUS.ENABLE.getValue(), - CommonEnumUtil.IS_DEAL.NO.getValue(), - CommonEnumUtil.IS_VAILD.VAILD.getValue()}); + SysMenu menu = new SysMenu(); + menu.setMenuStatus(CommonEnumUtil.DATA_STATUS.ENABLE.getValue()); + menu.setOrderByParam("menuSort"); + menu.setAscOrDesc(CommonEnumUtil.ASC_OR_DESC.DESC.getValue()); + DdlPackBean packBean = CoreHqlPack.packDdlBeanSysMenu(menu); + + return menuRDao.findByHqlWhere(packBean); } @Override diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java index be301f1..3d3b970 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java @@ -152,6 +152,7 @@ public class SysRoleService implements ISysRoleService { ref.setMenuNameRdd(menu.getName()); ref.setMenuId(menu.getId()); ref.setIsValid(CommonEnumUtil.IS_VAILD.VAILD.getValue()); + ref.setIsDeleted(CommonEnumUtil.IS_DEAL.NO.getValue()); ref.setMenuTypeRdd(menu.getMenuType()); refs.add(ref);