From 2dc478231fd09a88a4d86d44388ae807aca08bc5 Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期三, 01 一月 2025 10:14:28 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysRoleServiceImpl.java | 32 +++++++++++++++++++++++++------- 1 files changed, 25 insertions(+), 7 deletions(-) diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysRoleServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysRoleServiceImpl.java index cdb4916..c7194ea 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysRoleServiceImpl.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysRoleServiceImpl.java @@ -1,5 +1,6 @@ package com.sinata.system.service.impl; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.sinata.common.annotation.DataScope; @@ -468,11 +469,14 @@ if (!this.checkRoleNameUnique(sysRole)) { throw new ServiceException("保存角色'" + sysRole.getRoleName() + "'失败,角色名称已存在"); } - if (Objects.nonNull(sysRole.getRoleId())) { + if (Objects.isNull(sysRole.getRoleId())) { baseMapper.insert(sysRole); } else { + // 删除角色与菜单关联 + roleMenuMapper.deleteRoleMenuByRoleId(sysRole.getRoleId()); baseMapper.updateById(sysRole); } + insertRoleMenu(sysRole); } /** @@ -502,12 +506,15 @@ @Override public List<SysRoleVO> getManageRoleList(LoginUser loginUser) { List<SysRoleVO> res = CollUtils.emptyList(); - Long roleId = loginUser.getUser().getRoleId(); - SysRole role = this.getById(roleId); - if (Objects.nonNull(role)) { - List<SysRole> list = this.lambdaQuery().in(SysRole::getRoleId, Arrays.asList(role.getManageRoleIdStr().split(","))).list(); - if (CollUtils.isNotEmpty(list)) { - res = BeanUtils.copyToList(list, SysRoleVO.class); + Long userId = loginUser.getUserId(); + SysUserRole sysUserRole = userRoleMapper.selectOne(Wrappers.lambdaQuery(SysUserRole.class).eq(SysUserRole::getUserId, userId).last("LIMIT 1")); + if (Objects.nonNull(sysUserRole)) { + SysRole role = this.getById(sysUserRole.getRoleId()); + if (Objects.nonNull(role)) { + List<SysRole> list = this.lambdaQuery().in(SysRole::getRoleId, Arrays.asList(role.getManageRoleIdStr().split(","))).list(); + if (CollUtils.isNotEmpty(list)) { + res = BeanUtils.copyToList(list, SysRoleVO.class); + } } } return res; @@ -554,4 +561,15 @@ // 获取当前的权限菜单(有层级) return this.getMenuLevelList(menusId); } + + /** + * 角色列表 + * + * @return + */ + @Override + public List<SysRoleVO> queryList() { + List<SysRole> list = list(); + return BeanUtils.copyToList(list, SysRoleVO.class); + } } -- Gitblit v1.7.1