【8.3.3】【role】更新获取角色树接口

pull/62/head
stylefeng 2025-01-24 14:47:46 +08:00
parent 7007cf31c7
commit 4965e0f15f
5 changed files with 48 additions and 45 deletions

View File

@ -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);
}

View File

@ -69,6 +69,14 @@ public class SysRoleTreeDTO implements AbstractTreeNode<SysRoleTreeDTO> {
@ChineseDescription("角色类型10-系统角色15-业务角色20-公司角色")
private Integer roleType;
/**
*
* <p>
*
*/
@ChineseDescription("是否选中")
private Boolean checkedFlag;
/**
*
*/

View File

@ -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);
}

View File

@ -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);
}
/**
*
*

View File

@ -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);
}
/**
*
*