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 a821be9..9474af7 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 @@ -234,6 +234,62 @@ public class AuthController extends CoreBaseController { } } + /************************************ 权限分配是使用接口 ******************************************/ + + /** + * 获取登录用户功能权限信息 + * + * @return 处理结果 + */ + @GetMapping(value = "/menu/module-list") + @ApiOperation(value = "获取登录用户功能权限信息", notes = "获取首页权限信息") + public ResultBean findModuleList() { + List list = null; + if (AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)) { + SysMenu sysMenu = new SysMenu(); + sysMenu.setMenuType(CommonEnumUtil.METHOD_LEVEL.PLUGIN.getValue()); + list = sysMenuService.findAllByBean(sysMenu); + } else { + List menuList = memTreeService.packTreeSysMenuByUserId(getSessionUser().getUser().getId()); + list = memTreeService.packTreeSysMenuByParentIdAndMenuType(menuList, CommonConstWords.SYSTEM_MENU_ROOT_ID, CommonEnumUtil.METHOD_LEVEL.PLUGIN.getValue()); + } + + 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("菜单信息不存在"); + } + } + + /** + * 获取登录用户功能权限信息 + * + * @return 处理结果 + */ + @GetMapping(value = "/menu/module-menu-list") + @ApiOperation(value = "获取登录用户功能权限信息", notes = "获取首页权限信息") + public ResultBean findMenuListByModule() { + List list = null; + if (AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)) { + SysMenu sysMenu = new SysMenu(); + sysMenu.setMenuType(CommonEnumUtil.METHOD_LEVEL.PLUGIN.getValue()); + sysMenuService.findAllByBean(sysMenu); + } else { + List menuList = memTreeService.packTreeSysMenuByUserId(getSessionUser().getUser().getId()); + list = memTreeService.packTreeSysMenuByParentIdAndMenuType(menuList, CommonConstWords.SYSTEM_MENU_ROOT_ID, CommonEnumUtil.METHOD_LEVEL.PLUGIN.getValue()); + } + + 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("菜单信息不存在"); + } + } + // /** // * 根据递归获取所有父节点 ID 获取所有 菜单 diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/BackstageController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/BackstageController.java index a7102a8..cf8ec56 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/BackstageController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/BackstageController.java @@ -2,12 +2,16 @@ package cn.estsh.i3plus.core.apiservice.controller.base; import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService; import cn.estsh.i3plus.core.api.iservice.busi.ICoreMemTreeService; +import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService; import cn.estsh.i3plus.core.api.iservice.busi.ISysMenuService; +import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.model.license.ImppLicense; import cn.estsh.i3plus.pojo.platform.bean.SysMenu; +import cn.estsh.i3plus.pojo.platform.bean.SysRefRoleMenu; +import cn.estsh.i3plus.pojo.platform.bean.SysRole; import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; @@ -23,6 +27,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.*; +import java.util.stream.Collectors; /** * @Description : 后台服务 @@ -47,6 +52,11 @@ public class BackstageController extends CoreBaseController { @Autowired private ICoreMemTreeService memTreeService; + @Autowired + private ISysRoleService sysRoleService; + + @Autowired + private IPersonnelService penfindSysRefUserRole; @GetMapping(value = "/redis-put-all") @ApiOperation(value = "重新加载所有缓存数据",notes = "重新加载所有缓存数据") @@ -190,4 +200,33 @@ public class BackstageController extends CoreBaseController { } } + @GetMapping(value = "/update-clean-ref-role-menu") + @ApiOperation(value = "更新并清理角色功能数据", notes = "更新并清理角色功能数据") + public ResultBean updateRefRoleMenu(){ + try { + List roleIdList = sysRoleService.findAll().stream().map(SysRole::getId).collect(Collectors.toList()); + Map> roleMenuMap = new HashMap<>(); + for (SysRefRoleMenu refRoleMenu : penfindSysRefUserRole.findSysRefRoleMenuByRoleIds(roleIdList)) { + if (!roleMenuMap.containsKey(refRoleMenu.getRoleId())) { + roleMenuMap.put(refRoleMenu.getRoleId(), new HashSet<>()); + } + roleMenuMap.get(refRoleMenu.getRoleId()).add(refRoleMenu.getMenuId()); + } + + for (Map.Entry> longSetEntry : roleMenuMap.entrySet()) { + sysRoleService.refreshSysRoleRef( + longSetEntry.getKey(), + longSetEntry.getValue().toArray(new Long[longSetEntry.getValue().size()]), + "清理垃圾数据" + ); + } + + return ResultBean.success("操作成功"); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ResultBean.fail(e).setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode()); + } + } + } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java index 02b1987..ee38d59 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java @@ -564,9 +564,8 @@ public class WhiteController extends CoreBaseController { } } - @PostMapping(value = "/license") - @ApiOperation(value = "缺失资源开关", notes = "缺失资源开关") + @ApiOperation(value = "更新授权", notes = "更新授权") public ResultBean updateLicense(String content){ try { ImppLicense license = ImppLicenseDecoder.getLicenseDecoder(content); 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 9bb0d2f..2a22446 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 @@ -137,7 +137,7 @@ public class SysRoleService extends CacheCrudService implements ISysRol ref.setMenuId(menu.getId()); ref.setSoftType(menu.getSoftType()); ref.setMenuTypeRdd(menu.getMenuType()); - ConvertBean.serviceModelInitialize(ref, AuthUtil.getSessionUser()); + ConvertBean.serviceModelInitialize(ref, userName); refRoleMenuRDao.insert(ref); }