【8.0.1】【role】更新接口,通过角色编码获取角色包含的所有功能编码集合

pull/57/head
fengshuonan 2023-10-10 14:41:10 +08:00
parent 465aa8208f
commit 29fe431a97
2 changed files with 47 additions and 0 deletions

View File

@ -24,6 +24,8 @@
*/ */
package cn.stylefeng.roses.kernel.sys.api; package cn.stylefeng.roses.kernel.sys.api;
import java.util.List;
/** /**
* Api * Api
* *
@ -50,4 +52,12 @@ public interface SysRoleServiceApi {
*/ */
String getRoleNameByRoleId(Long roleId); String getRoleNameByRoleId(Long roleId);
/**
*
*
* @author fengshuonan
* @since 2023/10/10 14:33
*/
List<String> getRoleMenuOptionsByRoleId(String roleCode);
} }

View File

@ -2,6 +2,7 @@ package cn.stylefeng.roses.kernel.sys.modular.role.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.extra.spring.SpringUtil; import cn.hutool.extra.spring.SpringUtil;
import cn.stylefeng.roses.kernel.auth.api.context.LoginContext; import cn.stylefeng.roses.kernel.auth.api.context.LoginContext;
@ -16,10 +17,12 @@ import cn.stylefeng.roses.kernel.sys.api.SysUserRoleServiceApi;
import cn.stylefeng.roses.kernel.sys.api.callback.RemoveRoleCallbackApi; import cn.stylefeng.roses.kernel.sys.api.callback.RemoveRoleCallbackApi;
import cn.stylefeng.roses.kernel.sys.api.constants.SysConstants; import cn.stylefeng.roses.kernel.sys.api.constants.SysConstants;
import cn.stylefeng.roses.kernel.sys.api.enums.permission.DataScopeTypeEnum; import cn.stylefeng.roses.kernel.sys.api.enums.permission.DataScopeTypeEnum;
import cn.stylefeng.roses.kernel.sys.modular.menu.service.SysMenuOptionsService;
import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRole; import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRole;
import cn.stylefeng.roses.kernel.sys.modular.role.enums.exception.SysRoleExceptionEnum; import cn.stylefeng.roses.kernel.sys.modular.role.enums.exception.SysRoleExceptionEnum;
import cn.stylefeng.roses.kernel.sys.modular.role.mapper.SysRoleMapper; import cn.stylefeng.roses.kernel.sys.modular.role.mapper.SysRoleMapper;
import cn.stylefeng.roses.kernel.sys.modular.role.pojo.request.SysRoleRequest; import cn.stylefeng.roses.kernel.sys.modular.role.pojo.request.SysRoleRequest;
import cn.stylefeng.roses.kernel.sys.modular.role.service.SysRoleMenuOptionsService;
import cn.stylefeng.roses.kernel.sys.modular.role.service.SysRoleService; import cn.stylefeng.roses.kernel.sys.modular.role.service.SysRoleService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@ -29,6 +32,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@ -45,6 +49,12 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
@Resource @Resource
private SysUserRoleServiceApi sysUserRoleServiceApi; private SysUserRoleServiceApi sysUserRoleServiceApi;
@Resource
private SysRoleMenuOptionsService sysRoleMenuOptionsService;
@Resource
private SysMenuOptionsService sysMenuOptionsService;
@Override @Override
public void add(SysRoleRequest sysRoleRequest) { public void add(SysRoleRequest sysRoleRequest) {
SysRole sysRole = new SysRole(); SysRole sysRole = new SysRole();
@ -258,6 +268,33 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
return ""; return "";
} }
@Override
public List<String> getRoleMenuOptionsByRoleId(String roleCode) {
if (ObjectUtil.isEmpty(roleCode)) {
return new ArrayList<>();
}
// 获取角色编码对应的角色id
LambdaQueryWrapper<SysRole> sysRoleLambdaQueryWrapper = new LambdaQueryWrapper<>();
sysRoleLambdaQueryWrapper.eq(SysRole::getRoleCode, roleCode);
sysRoleLambdaQueryWrapper.select(SysRole::getRoleId);
SysRole sysRole = this.getOne(sysRoleLambdaQueryWrapper, false);
if (sysRole == null) {
return new ArrayList<>();
}
Long roleId = sysRole.getRoleId();
// 获取角色的角色功能id集合
List<Long> roleBindMenuOptionsIdList = sysRoleMenuOptionsService.getRoleBindMenuOptionsIdList(ListUtil.list(false, roleId));
if (ObjectUtil.isEmpty(roleBindMenuOptionsIdList)) {
return new ArrayList<>();
}
// 获取角色功能id的集合对应的功能编码集合
return sysMenuOptionsService.getOptionsCodeList(roleBindMenuOptionsIdList);
}
/** /**
* *
* *