mirror of https://gitee.com/stylefeng/roses
【8.3.3】【role】更新获取角色树接口
parent
7007cf31c7
commit
4965e0f15f
|
@ -25,6 +25,7 @@
|
|||
package cn.stylefeng.roses.kernel.sys.api;
|
||||
|
||||
import cn.stylefeng.roses.kernel.sys.api.pojo.role.SysRoleDTO;
|
||||
import cn.stylefeng.roses.kernel.sys.api.pojo.role.SysRoleTreeDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
@ -80,4 +81,12 @@ public interface SysRoleServiceApi {
|
|||
*/
|
||||
List<SysRoleDTO> getBusinessRoleAndCompanyRole(List<Long> companyIdList);
|
||||
|
||||
/**
|
||||
* 获取角色分类和角色组成的树结构
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2025/1/24 11:10
|
||||
*/
|
||||
List<SysRoleTreeDTO> roleCategoryAndRoleTreeList(Integer roleType, Long companyId);
|
||||
|
||||
}
|
||||
|
|
|
@ -69,6 +69,14 @@ public class SysRoleTreeDTO implements AbstractTreeNode<SysRoleTreeDTO> {
|
|||
@ChineseDescription("角色类型:10-系统角色,15-业务角色,20-公司角色")
|
||||
private Integer roleType;
|
||||
|
||||
/**
|
||||
* 是否选中
|
||||
* <p>
|
||||
* 用在用户绑定角色上,选中的则是绑定的
|
||||
*/
|
||||
@ChineseDescription("是否选中")
|
||||
private Boolean checkedFlag;
|
||||
|
||||
/**
|
||||
* 子节点
|
||||
*/
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package cn.stylefeng.roses.kernel.sys.modular.role.service;
|
||||
|
||||
import cn.stylefeng.roses.kernel.sys.api.pojo.role.SysRoleTreeDTO;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.entity.RoleCategory;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.pojo.request.RoleCategoryRequest;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
@ -61,12 +60,4 @@ public interface RoleCategoryService extends IService<RoleCategory> {
|
|||
*/
|
||||
RoleCategory detail(RoleCategoryRequest roleCategoryRequest);
|
||||
|
||||
/**
|
||||
* 获取角色分类和角色组成的树结构
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2025/1/24 11:10
|
||||
*/
|
||||
List<SysRoleTreeDTO> roleCategoryAndRoleTreeList(Integer roleType, Long companyId);
|
||||
|
||||
}
|
||||
|
|
|
@ -8,15 +8,11 @@ import cn.stylefeng.roses.kernel.rule.pidset.CalcParentIdListUtil;
|
|||
import cn.stylefeng.roses.kernel.rule.pidset.callback.PidGetterService;
|
||||
import cn.stylefeng.roses.kernel.rule.pidset.pojo.ParentIdInfoPojo;
|
||||
import cn.stylefeng.roses.kernel.rule.tree.factory.DefaultTreeBuildFactory;
|
||||
import cn.stylefeng.roses.kernel.sys.api.pojo.role.SysRoleTreeDTO;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.entity.RoleCategory;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRole;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.enums.RoleCategoryExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.factory.RoleTreeFactory;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.mapper.RoleCategoryMapper;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.pojo.request.RoleCategoryRequest;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.service.RoleCategoryService;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.service.SysRoleService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
@ -40,9 +36,6 @@ public class RoleCategoryServiceImpl extends ServiceImpl<RoleCategoryMapper, Rol
|
|||
@Resource
|
||||
private DbOperatorApi dbOperatorApi;
|
||||
|
||||
@Resource
|
||||
private SysRoleService sysRoleService;
|
||||
|
||||
@Override
|
||||
public List<RoleCategory> treeList(RoleCategoryRequest roleCategoryRequest) {
|
||||
LambdaQueryWrapper<RoleCategory> wrapper = this.createWrapper(roleCategoryRequest);
|
||||
|
@ -106,34 +99,10 @@ public class RoleCategoryServiceImpl extends ServiceImpl<RoleCategoryMapper, Rol
|
|||
public RoleCategory detail(RoleCategoryRequest roleCategoryRequest) {
|
||||
LambdaQueryWrapper<RoleCategory> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(RoleCategory::getId, roleCategoryRequest.getId());
|
||||
queryWrapper.select(RoleCategory::getId, RoleCategory::getCategoryParentId, RoleCategory::getCategoryPids, RoleCategory::getCategoryType, RoleCategory::getRoleCategoryName,
|
||||
RoleCategory::getFldSort);
|
||||
queryWrapper.select(RoleCategory::getId, RoleCategory::getCategoryParentId, RoleCategory::getCategoryPids, RoleCategory::getCategoryType, RoleCategory::getRoleCategoryName, RoleCategory::getFldSort);
|
||||
return this.getOne(queryWrapper, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysRoleTreeDTO> roleCategoryAndRoleTreeList(Integer roleType, Long companyId) {
|
||||
|
||||
// 根据业务类型或者公司类型,获取所有的角色分类列表
|
||||
LambdaQueryWrapper<RoleCategory> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(RoleCategory::getCategoryType, roleType);
|
||||
if (ObjectUtil.isNotEmpty(companyId)) {
|
||||
queryWrapper.eq(RoleCategory::getCompanyId, companyId);
|
||||
}
|
||||
List<RoleCategory> roleCategoryList = this.list(queryWrapper);
|
||||
|
||||
// 根据业务类型,获取所有的角色列表
|
||||
LambdaQueryWrapper<SysRole> roleQueryWrapper = new LambdaQueryWrapper<>();
|
||||
roleQueryWrapper.eq(SysRole::getRoleType, roleType);
|
||||
if (ObjectUtil.isNotEmpty(companyId)) {
|
||||
roleQueryWrapper.eq(SysRole::getRoleCompanyId, companyId);
|
||||
}
|
||||
List<SysRole> sysRoleList = this.sysRoleService.list(roleQueryWrapper);
|
||||
|
||||
// 将角色类型和角色树组成一颗完整的树
|
||||
return RoleTreeFactory.createRoleTree(roleCategoryList, sysRoleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取信息
|
||||
*
|
||||
|
|
|
@ -20,17 +20,17 @@ import cn.stylefeng.roses.kernel.sys.api.constants.SysConstants;
|
|||
import cn.stylefeng.roses.kernel.sys.api.entity.SysMenuOptions;
|
||||
import cn.stylefeng.roses.kernel.sys.api.enums.role.RoleTypeEnum;
|
||||
import cn.stylefeng.roses.kernel.sys.api.pojo.role.SysRoleDTO;
|
||||
import cn.stylefeng.roses.kernel.sys.api.pojo.role.SysRoleTreeDTO;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.menu.entity.SysMenu;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.menu.service.SysMenuOptionsService;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.menu.service.SysMenuService;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.entity.RoleCategory;
|
||||
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.factory.RoleTreeFactory;
|
||||
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.service.SysRoleLimitService;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.service.SysRoleMenuOptionsService;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.service.SysRoleMenuService;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.service.SysRoleService;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.role.service.*;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
@ -71,6 +71,9 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|||
@Resource(name = "roleNameCache")
|
||||
private CacheOperatorApi<String> roleNameCache;
|
||||
|
||||
@Resource
|
||||
private RoleCategoryService roleCategoryService;
|
||||
|
||||
@Override
|
||||
public void add(SysRoleRequest sysRoleRequest) {
|
||||
|
||||
|
@ -426,6 +429,29 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysRoleTreeDTO> roleCategoryAndRoleTreeList(Integer roleType, Long companyId) {
|
||||
|
||||
// 根据业务类型或者公司类型,获取所有的角色分类列表
|
||||
LambdaQueryWrapper<RoleCategory> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(RoleCategory::getCategoryType, roleType);
|
||||
if (ObjectUtil.isNotEmpty(companyId)) {
|
||||
queryWrapper.eq(RoleCategory::getCompanyId, companyId);
|
||||
}
|
||||
List<RoleCategory> roleCategoryList = this.roleCategoryService.list(queryWrapper);
|
||||
|
||||
// 根据业务类型,获取所有的角色列表
|
||||
LambdaQueryWrapper<SysRole> roleQueryWrapper = new LambdaQueryWrapper<>();
|
||||
roleQueryWrapper.eq(SysRole::getRoleType, roleType);
|
||||
if (ObjectUtil.isNotEmpty(companyId)) {
|
||||
roleQueryWrapper.eq(SysRole::getRoleCompanyId, companyId);
|
||||
}
|
||||
List<SysRole> sysRoleList = this.list(roleQueryWrapper);
|
||||
|
||||
// 将角色类型和角色树组成一颗完整的树
|
||||
return RoleTreeFactory.createRoleTree(roleCategoryList, sysRoleList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取信息
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue