mirror of https://gitee.com/stylefeng/roses
【role】更新角色相关类
parent
cbe6150a08
commit
47d26efe1b
|
@ -1,7 +1,7 @@
|
|||
package cn.stylefeng.roses.kernel.system;
|
||||
|
||||
import cn.stylefeng.roses.kernel.system.pojo.organization.DataScopeDTO;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.response.SysRoleResponse;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.dto.SysRoleDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
@ -26,6 +26,6 @@ public interface DataScopeApi {
|
|||
* @author majianguo
|
||||
* @date 2020/11/5 上午11:44
|
||||
*/
|
||||
DataScopeDTO getDataScope(Long userId, List<SysRoleResponse> sysRoles);
|
||||
DataScopeDTO getDataScope(Long userId, List<SysRoleDTO> sysRoles);
|
||||
|
||||
}
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package cn.stylefeng.roses.kernel.system;
|
||||
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.response.SysRoleMenuButtonResponse;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.response.SysRoleMenuResponse;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.response.SysRoleResourceResponse;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.response.SysRoleResponse;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.dto.SysRoleDTO;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.dto.SysRoleMenuButtonDTO;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.dto.SysRoleMenuDTO;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.dto.SysRoleResourceDTO;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
@ -24,7 +24,7 @@ public interface RoleServiceApi {
|
|||
* @author fengshuonan
|
||||
* @date 2020/11/21 9:17
|
||||
*/
|
||||
List<SysRoleResponse> getRolesByIds(List<Long> roleIds);
|
||||
List<SysRoleDTO> getRolesByIds(List<Long> roleIds);
|
||||
|
||||
/**
|
||||
* 获取角色对应的组织机构范围集合
|
||||
|
@ -64,7 +64,7 @@ public interface RoleServiceApi {
|
|||
* @author majianguo
|
||||
* @date 2020/11/5 上午11:17
|
||||
*/
|
||||
List<SysRoleResourceResponse> getRoleResourceList(List<Long> roleIdList);
|
||||
List<SysRoleResourceDTO> getRoleResourceList(List<Long> roleIdList);
|
||||
|
||||
/**
|
||||
* 获取角色对应的按钮编码集合
|
||||
|
@ -83,7 +83,7 @@ public interface RoleServiceApi {
|
|||
* @author majianguo
|
||||
* @date 2021/1/9 17:33
|
||||
*/
|
||||
List<SysRoleMenuResponse> getRoleMenuList(List<Long> roleIdList);
|
||||
List<SysRoleMenuDTO> getRoleMenuList(List<Long> roleIdList);
|
||||
|
||||
/**
|
||||
* 获取角色拥有的菜单按钮
|
||||
|
@ -92,6 +92,6 @@ public interface RoleServiceApi {
|
|||
* @author majianguo
|
||||
* @date 2021/1/9 17:33
|
||||
*/
|
||||
List<SysRoleMenuButtonResponse> getRoleMenuButtonList(List<Long> roleIdList);
|
||||
List<SysRoleMenuButtonDTO> getRoleMenuButtonList(List<Long> roleIdList);
|
||||
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package cn.stylefeng.roses.kernel.system.exception.enums;
|
||||
package cn.stylefeng.roses.kernel.system.exception.enums.organization;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.constants.RuleConstants;
|
||||
import cn.stylefeng.roses.kernel.rule.exception.AbstractExceptionEnum;
|
|
@ -1,4 +1,4 @@
|
|||
package cn.stylefeng.roses.kernel.system.exception.enums;
|
||||
package cn.stylefeng.roses.kernel.system.exception.enums.role;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.constants.RuleConstants;
|
||||
import cn.stylefeng.roses.kernel.rule.exception.AbstractExceptionEnum;
|
|
@ -1,4 +1,4 @@
|
|||
package cn.stylefeng.roses.kernel.system.pojo.role.response;
|
||||
package cn.stylefeng.roses.kernel.system.pojo.role.dto;
|
||||
|
||||
import cn.stylefeng.roses.kernel.auth.api.enums.DataScopeTypeEnum;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||
|
@ -11,7 +11,7 @@ import lombok.EqualsAndHashCode;
|
|||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class SysRoleResponse extends BaseRequest {
|
||||
public class SysRoleDTO extends BaseRequest {
|
||||
|
||||
/**
|
||||
* 主键
|
|
@ -1,4 +1,4 @@
|
|||
package cn.stylefeng.roses.kernel.system.pojo.role.response;
|
||||
package cn.stylefeng.roses.kernel.system.pojo.role.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
|
@ -9,7 +9,7 @@ import lombok.Data;
|
|||
* @date 2021/1/9 17:33
|
||||
*/
|
||||
@Data
|
||||
public class SysRoleMenuButtonResponse {
|
||||
public class SysRoleMenuButtonDTO {
|
||||
|
||||
/**
|
||||
* 主键
|
|
@ -1,4 +1,4 @@
|
|||
package cn.stylefeng.roses.kernel.system.pojo.role.response;
|
||||
package cn.stylefeng.roses.kernel.system.pojo.role.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
|
@ -9,7 +9,7 @@ import lombok.Data;
|
|||
* @date 2021/1/9 18:07
|
||||
*/
|
||||
@Data
|
||||
public class SysRoleMenuResponse {
|
||||
public class SysRoleMenuDTO {
|
||||
|
||||
/**
|
||||
* 主键
|
|
@ -1,7 +1,8 @@
|
|||
package cn.stylefeng.roses.kernel.system.pojo.role.response;
|
||||
package cn.stylefeng.roses.kernel.system.pojo.role.dto;
|
||||
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 角色资源关联
|
||||
|
@ -9,8 +10,9 @@ import lombok.Data;
|
|||
* @author fengshuonan
|
||||
* @date 2020/11/5 下午4:30
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class SysRoleResourceResponse extends BaseEntity {
|
||||
public class SysRoleResourceDTO extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键
|
|
@ -1,4 +1,4 @@
|
|||
package cn.stylefeng.roses.kernel.system.pojo;
|
||||
package cn.stylefeng.roses.kernel.system.pojo.role.request;
|
||||
|
||||
import lombok.Data;
|
||||
|
|
@ -33,9 +33,9 @@ import cn.stylefeng.roses.kernel.system.pojo.menu.antd.AntdMenuSelectTreeNode;
|
|||
import cn.stylefeng.roses.kernel.system.pojo.menu.antd.AntdSysMenuDTO;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.layui.LayuiAppIndexMenusVO;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.menu.layui.LayuiMenuAndButtonTreeResponse;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.dto.SysRoleMenuButtonDTO;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.dto.SysRoleMenuDTO;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.request.SysRoleRequest;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.response.SysRoleMenuButtonResponse;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.response.SysRoleMenuResponse;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
@ -291,19 +291,19 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
|
||||
// 查询所有已有的权限
|
||||
// 所有已有的菜单权限
|
||||
List<SysRoleMenuResponse> roleMenuList = roleServiceApi.getRoleMenuList(Collections.singletonList(sysRoleRequest.getRoleId()));
|
||||
List<SysRoleMenuDTO> roleMenuList = roleServiceApi.getRoleMenuList(Collections.singletonList(sysRoleRequest.getRoleId()));
|
||||
// 转换成map方便后续处理
|
||||
Map<Long, SysRoleMenuResponse> roleMenuMap = new HashMap<>();
|
||||
for (SysRoleMenuResponse sysRoleMenuResponse : roleMenuList) {
|
||||
Map<Long, SysRoleMenuDTO> roleMenuMap = new HashMap<>();
|
||||
for (SysRoleMenuDTO sysRoleMenuResponse : roleMenuList) {
|
||||
roleMenuMap.put(sysRoleMenuResponse.getMenuId(), sysRoleMenuResponse);
|
||||
}
|
||||
|
||||
// 所有的按钮权限
|
||||
List<SysRoleMenuButtonResponse> roleMenuButtonList = roleServiceApi.getRoleMenuButtonList(Collections.singletonList(sysRoleRequest.getRoleId()));
|
||||
List<SysRoleMenuButtonDTO> roleMenuButtonList = roleServiceApi.getRoleMenuButtonList(Collections.singletonList(sysRoleRequest.getRoleId()));
|
||||
|
||||
// 转换成map方便后续处理
|
||||
Map<Long, SysRoleMenuButtonResponse> roleMenuButtonMap = new HashMap<>();
|
||||
for (SysRoleMenuButtonResponse buttonResponse : roleMenuButtonList) {
|
||||
Map<Long, SysRoleMenuButtonDTO> roleMenuButtonMap = new HashMap<>();
|
||||
for (SysRoleMenuButtonDTO buttonResponse : roleMenuButtonList) {
|
||||
roleMenuButtonMap.put(buttonResponse.getButtonId(), buttonResponse);
|
||||
}
|
||||
|
||||
|
@ -315,7 +315,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
menuTree.setName(sysMenu.getMenuName());
|
||||
menuTree.setPid(sysMenu.getMenuParentId());
|
||||
// 判断是否已经有了
|
||||
SysRoleMenuResponse roleMenuResponse = roleMenuMap.get(sysMenu.getMenuId());
|
||||
SysRoleMenuDTO roleMenuResponse = roleMenuMap.get(sysMenu.getMenuId());
|
||||
if (ObjectUtil.isEmpty(roleMenuResponse)) {
|
||||
menuTree.setChecked(false);
|
||||
} else {
|
||||
|
@ -335,7 +335,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
buttonTree.setButtonCode(menuButton.getButtonCode());
|
||||
buttonTree.setMenuFlag(false);
|
||||
// 判断是否已经拥有
|
||||
SysRoleMenuButtonResponse buttonResponse = roleMenuButtonMap.get(menuButton.getButtonId());
|
||||
SysRoleMenuButtonDTO buttonResponse = roleMenuButtonMap.get(menuButton.getButtonId());
|
||||
if (ObjectUtil.isNotEmpty(buttonResponse)) {
|
||||
buttonTree.setChecked(true);
|
||||
menuTree.setChecked(true);
|
||||
|
|
|
@ -9,7 +9,7 @@ import cn.stylefeng.roses.kernel.system.UserServiceApi;
|
|||
import cn.stylefeng.roses.kernel.system.exception.SystemModularException;
|
||||
import cn.stylefeng.roses.kernel.system.exception.enums.organization.DataScopeExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.organization.DataScopeDTO;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.response.SysRoleResponse;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.dto.SysRoleDTO;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.user.SysUserOrgResponse;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
@ -41,7 +41,7 @@ public class DataScopeService implements DataScopeApi {
|
|||
private DbOperatorApi dbOperatorApi;
|
||||
|
||||
@Override
|
||||
public DataScopeDTO getDataScope(Long userId, List<SysRoleResponse> sysRoles) {
|
||||
public DataScopeDTO getDataScope(Long userId, List<SysRoleDTO> sysRoles) {
|
||||
|
||||
// 初始化返回结果
|
||||
DataScopeDTO dataScopeResponse = new DataScopeDTO();
|
||||
|
@ -56,7 +56,7 @@ public class DataScopeService implements DataScopeApi {
|
|||
SysUserOrgResponse sysUserOrgResponse = userOrgServiceApi.getUserOrgInfo(userId);
|
||||
|
||||
// 获取角色中的数据范围类型
|
||||
Set<DataScopeTypeEnum> dataScopeTypeEnums = sysRoles.stream().map(SysRoleResponse::getDataScopeTypeEnum).collect(Collectors.toSet());
|
||||
Set<DataScopeTypeEnum> dataScopeTypeEnums = sysRoles.stream().map(SysRoleDTO::getDataScopeTypeEnum).collect(Collectors.toSet());
|
||||
dataScopeResponse.setDataScopeTypeEnums(dataScopeTypeEnums);
|
||||
|
||||
// 1.根据数据范围类型的不同,填充角色拥有的 organizationIds 和 userIds 范围
|
||||
|
@ -69,7 +69,7 @@ public class DataScopeService implements DataScopeApi {
|
|||
if (dataScopeTypeEnums.contains(DataScopeTypeEnum.DEFINE)) {
|
||||
|
||||
// 获取角色对应的组织机构范围
|
||||
List<Long> roleIds = sysRoles.stream().map(SysRoleResponse::getRoleId).collect(Collectors.toList());
|
||||
List<Long> roleIds = sysRoles.stream().map(SysRoleDTO::getRoleId).collect(Collectors.toList());
|
||||
List<Long> orgIds = roleServiceApi.getRoleDataScopes(roleIds);
|
||||
organizationIds.addAll(orgIds);
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ import cn.stylefeng.roses.kernel.rule.enums.StatusEnum;
|
|||
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||
import cn.stylefeng.roses.kernel.system.UserOrgServiceApi;
|
||||
import cn.stylefeng.roses.kernel.system.exception.SystemModularException;
|
||||
import cn.stylefeng.roses.kernel.system.exception.enums.PositionExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.system.exception.enums.organization.PositionExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.system.modular.organization.entity.HrPosition;
|
||||
import cn.stylefeng.roses.kernel.system.modular.organization.mapper.HrPositionMapper;
|
||||
import cn.stylefeng.roses.kernel.system.modular.organization.service.HrPositionService;
|
||||
|
|
|
@ -25,7 +25,7 @@ import cn.stylefeng.roses.kernel.system.ResourceServiceApi;
|
|||
import cn.stylefeng.roses.kernel.system.RoleServiceApi;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.resource.LayuiApiResourceTreeNode;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.resource.ResourceRequest;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.response.SysRoleResourceResponse;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.dto.SysRoleResourceDTO;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
|
@ -109,11 +109,11 @@ public class SysResourceServiceImpl extends ServiceImpl<SysResourceMapper, SysRe
|
|||
List<SysResource> allResource = this.list(sysResourceLambdaQueryWrapper);
|
||||
|
||||
// 查询当前角色已有的接口
|
||||
List<SysRoleResourceResponse> resourceList = roleServiceApi.getRoleResourceList(Collections.singletonList(roleId));
|
||||
List<SysRoleResourceDTO> resourceList = roleServiceApi.getRoleResourceList(Collections.singletonList(roleId));
|
||||
|
||||
// 该角色已拥有权限
|
||||
Map<String, SysRoleResourceResponse> alreadyHave = new HashMap<>(resourceList.size());
|
||||
for (SysRoleResourceResponse sysRoleResponse : resourceList) {
|
||||
Map<String, SysRoleResourceDTO> alreadyHave = new HashMap<>(resourceList.size());
|
||||
for (SysRoleResourceDTO sysRoleResponse : resourceList) {
|
||||
alreadyHave.put(sysRoleResponse.getResourceCode(), sysRoleResponse);
|
||||
}
|
||||
|
||||
|
@ -144,7 +144,7 @@ public class SysResourceServiceImpl extends ServiceImpl<SysResourceMapper, SysRe
|
|||
for (SysResource resource : entry.getValue()) {
|
||||
ResourceTreeNode subItem = new ResourceTreeNode();
|
||||
// 判断是否已经拥有
|
||||
SysRoleResourceResponse resourceResponse = alreadyHave.get(resource.getResourceCode());
|
||||
SysRoleResourceDTO resourceResponse = alreadyHave.get(resource.getResourceCode());
|
||||
if (ObjectUtil.isEmpty(resourceResponse)) {
|
||||
subItem.setChecked(false);
|
||||
} else {
|
||||
|
|
|
@ -8,7 +8,6 @@ import cn.stylefeng.roses.kernel.role.modular.service.SysRoleResourceService;
|
|||
import cn.stylefeng.roses.kernel.role.modular.service.SysRoleService;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
||||
import cn.stylefeng.roses.kernel.system.RoleServiceApi;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.request.SysRoleRequest;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
@ -26,9 +25,6 @@ import javax.annotation.Resource;
|
|||
@ApiResource(name = "系统角色管理")
|
||||
public class SysRoleController {
|
||||
|
||||
@Resource
|
||||
private RoleServiceApi roleServiceApi;
|
||||
|
||||
@Resource
|
||||
private SysRoleService sysRoleService;
|
||||
|
||||
|
@ -94,19 +90,19 @@ public class SysRoleController {
|
|||
}
|
||||
|
||||
/**
|
||||
* 授权角色对应的资源
|
||||
* 角色授权资源
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2020/11/22 19:51
|
||||
*/
|
||||
@PostResource(name = "授权资源", path = "/sysRole/grantResource")
|
||||
@PostResource(name = "角色授权资源", path = "/sysRole/grantResource")
|
||||
public ResponseData grantResource(@RequestBody @Validated(SysRoleRequest.grantResource.class) SysRoleRequest sysRoleParam) {
|
||||
sysRoleResourceService.grantResource(sysRoleParam);
|
||||
return new SuccessResponseData();
|
||||
}
|
||||
|
||||
/**
|
||||
* 授权角色授权菜单和按钮
|
||||
* 角色授权菜单和按钮
|
||||
*
|
||||
* @author majianguo
|
||||
* @date 2021/1/9 18:04
|
||||
|
@ -130,7 +126,7 @@ public class SysRoleController {
|
|||
}
|
||||
|
||||
/**
|
||||
* 系统角色下拉(用于授权角色时选择)
|
||||
* 系统角色下拉(用于用户授权角色时选择)
|
||||
*
|
||||
* @author majianguo
|
||||
* @date 2020/11/6 13:49
|
||||
|
@ -149,7 +145,7 @@ public class SysRoleController {
|
|||
@GetResource(name = "角色拥有菜单", path = "/sysRole/getRoleMenus")
|
||||
public ResponseData getRoleMenus(@Validated(SysRoleRequest.detail.class) SysRoleRequest sysRoleRequest) {
|
||||
Long roleId = sysRoleRequest.getRoleId();
|
||||
return new SuccessResponseData(roleServiceApi.getMenuIdsByRoleIds(ListUtil.toList(roleId)));
|
||||
return new SuccessResponseData(sysRoleService.getMenuIdsByRoleIds(ListUtil.toList(roleId)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package cn.stylefeng.roses.kernel.role.modular.service;
|
||||
|
||||
import cn.stylefeng.roses.kernel.role.modular.entity.SysRoleDataScope;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.SysRoleDataScopeRequest;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.request.SysRoleDataScopeRequest;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.request.SysRoleRequest;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
|
|
|
@ -3,8 +3,9 @@ package cn.stylefeng.roses.kernel.role.modular.service;
|
|||
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||
import cn.stylefeng.roses.kernel.role.modular.entity.SysRole;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.dict.SimpleDict;
|
||||
import cn.stylefeng.roses.kernel.system.RoleServiceApi;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.dto.SysRoleDTO;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.request.SysRoleRequest;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.response.SysRoleResponse;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -15,7 +16,7 @@ import java.util.List;
|
|||
* @author majianguo
|
||||
* @date 2020/11/5 上午11:12
|
||||
*/
|
||||
public interface SysRoleService extends IService<SysRole> {
|
||||
public interface SysRoleService extends IService<SysRole>, RoleServiceApi {
|
||||
|
||||
/**
|
||||
* 添加系统角色
|
||||
|
@ -52,7 +53,7 @@ public interface SysRoleService extends IService<SysRole> {
|
|||
* @author majianguo
|
||||
* @date 2020/11/5 上午11:14
|
||||
*/
|
||||
SysRoleResponse detail(SysRoleRequest sysRoleRequest);
|
||||
SysRoleDTO detail(SysRoleRequest sysRoleRequest);
|
||||
|
||||
/**
|
||||
* 查询系统角色
|
||||
|
@ -74,6 +75,14 @@ public interface SysRoleService extends IService<SysRole> {
|
|||
*/
|
||||
List<SimpleDict> findList(SysRoleRequest sysRoleRequest);
|
||||
|
||||
/**
|
||||
* 授权菜单和按钮
|
||||
*
|
||||
* @author majianguo
|
||||
* @date 2021/1/9 18:13
|
||||
*/
|
||||
void grantMenuAndButton(SysRoleRequest sysRoleMenuButtonRequest);
|
||||
|
||||
/**
|
||||
* 授权数据范围(组织机构)
|
||||
*
|
||||
|
@ -102,21 +111,4 @@ public interface SysRoleService extends IService<SysRole> {
|
|||
*/
|
||||
List<Long> getRoleDataScope(SysRoleRequest sysRoleRequest);
|
||||
|
||||
/**
|
||||
* 根据角色id获取角色名称
|
||||
*
|
||||
* @param roleId 角色id
|
||||
* @return 角色名称
|
||||
* @author majianguo
|
||||
* @date 2020/11/5 上午11:15
|
||||
*/
|
||||
String getNameByRoleId(Long roleId);
|
||||
|
||||
/**
|
||||
* 授权菜单和按钮
|
||||
*
|
||||
* @author majianguo
|
||||
* @date 2021/1/9 18:13
|
||||
*/
|
||||
void grantMenuAndButton(SysRoleRequest sysRoleMenuButtonRequest);
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ import cn.stylefeng.roses.kernel.role.modular.entity.SysRoleDataScope;
|
|||
import cn.stylefeng.roses.kernel.role.modular.mapper.SysRoleDataScopeMapper;
|
||||
import cn.stylefeng.roses.kernel.role.modular.service.SysRoleDataScopeService;
|
||||
import cn.stylefeng.roses.kernel.system.RoleDataScopeServiceApi;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.SysRoleDataScopeRequest;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.request.SysRoleDataScopeRequest;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.request.SysRoleRequest;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
|
|
@ -19,16 +19,15 @@ import cn.stylefeng.roses.kernel.rule.enums.StatusEnum;
|
|||
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.dict.SimpleDict;
|
||||
import cn.stylefeng.roses.kernel.system.RoleServiceApi;
|
||||
import cn.stylefeng.roses.kernel.system.UserServiceApi;
|
||||
import cn.stylefeng.roses.kernel.system.exception.SystemModularException;
|
||||
import cn.stylefeng.roses.kernel.system.exception.enums.SysRoleExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.system.exception.enums.role.SysRoleExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.dto.SysRoleDTO;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.dto.SysRoleMenuButtonDTO;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.dto.SysRoleMenuDTO;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.dto.SysRoleResourceDTO;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.request.SysRoleMenuButtonRequest;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.request.SysRoleRequest;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.response.SysRoleMenuButtonResponse;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.response.SysRoleMenuResponse;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.response.SysRoleResourceResponse;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.response.SysRoleResponse;
|
||||
import cn.stylefeng.roses.kernel.system.util.DataScopeUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
@ -50,7 +49,7 @@ import java.util.stream.Collectors;
|
|||
* @date 2020/11/5 上午11:33
|
||||
*/
|
||||
@Service
|
||||
public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> implements SysRoleService, RoleServiceApi {
|
||||
public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> implements SysRoleService {
|
||||
|
||||
@Resource
|
||||
private UserServiceApi userServiceApi;
|
||||
|
@ -124,9 +123,9 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|||
}
|
||||
|
||||
@Override
|
||||
public SysRoleResponse detail(SysRoleRequest sysRoleRequest) {
|
||||
public SysRoleDTO detail(SysRoleRequest sysRoleRequest) {
|
||||
SysRole sysRole = this.querySysRole(sysRoleRequest);
|
||||
SysRoleResponse roleResponse = new SysRoleResponse();
|
||||
SysRoleDTO roleResponse = new SysRoleDTO();
|
||||
BeanUtil.copyProperties(sysRole, roleResponse);
|
||||
|
||||
// 填充数据范围类型枚举
|
||||
|
@ -168,6 +167,48 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|||
return dictList;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void grantMenuAndButton(SysRoleRequest sysRoleMenuButtonRequest) {
|
||||
|
||||
// 清除该角色之前的菜单
|
||||
LambdaQueryWrapper<SysRoleMenu> sysRoleMenuLqw = new LambdaQueryWrapper<>();
|
||||
sysRoleMenuLqw.eq(SysRoleMenu::getRoleId, sysRoleMenuButtonRequest.getRoleId());
|
||||
roleMenuService.remove(sysRoleMenuLqw);
|
||||
|
||||
// 清除该角色之前的按钮授权
|
||||
LambdaQueryWrapper<SysRoleMenuButton> menuButtonLqw = new LambdaQueryWrapper<>();
|
||||
menuButtonLqw.eq(SysRoleMenuButton::getRoleId, sysRoleMenuButtonRequest.getRoleId());
|
||||
sysRoleMenuButtonService.remove(menuButtonLqw);
|
||||
|
||||
// 新增菜单
|
||||
List<Long> menuIdList = sysRoleMenuButtonRequest.getGrantMenuIdList();
|
||||
if (ObjectUtil.isNotEmpty(menuIdList)) {
|
||||
List<SysRoleMenu> sysRoleMenus = new ArrayList<>();
|
||||
for (Long menuId : menuIdList) {
|
||||
SysRoleMenu item = new SysRoleMenu();
|
||||
item.setRoleId(sysRoleMenuButtonRequest.getRoleId());
|
||||
item.setMenuId(menuId);
|
||||
sysRoleMenus.add(item);
|
||||
}
|
||||
roleMenuService.saveBatch(sysRoleMenus);
|
||||
}
|
||||
|
||||
// 新增按钮
|
||||
List<SysRoleMenuButtonRequest> menuButtonList = sysRoleMenuButtonRequest.getGrantMenuButtonIdList();
|
||||
if (ObjectUtil.isNotEmpty(menuButtonList)) {
|
||||
List<SysRoleMenuButton> sysRoleMenuButtons = new ArrayList<>();
|
||||
for (SysRoleMenuButtonRequest menuButton : menuButtonList) {
|
||||
SysRoleMenuButton item = new SysRoleMenuButton();
|
||||
item.setRoleId(sysRoleMenuButtonRequest.getRoleId());
|
||||
item.setButtonId(menuButton.getButtonId());
|
||||
item.setButtonCode(menuButton.getButtonCode());
|
||||
sysRoleMenuButtons.add(item);
|
||||
}
|
||||
sysRoleMenuButtonService.saveBatch(sysRoleMenuButtons);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void grantDataScope(SysRoleRequest sysRoleRequest) {
|
||||
|
@ -245,60 +286,9 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getNameByRoleId(Long roleId) {
|
||||
SysRole sysRole = this.getById(roleId);
|
||||
if (ObjectUtil.isEmpty(sysRole)) {
|
||||
throw new SystemModularException(SysRoleExceptionEnum.ROLE_NOT_EXIST);
|
||||
}
|
||||
return sysRole.getRoleName();
|
||||
}
|
||||
public List<SysRoleDTO> getRolesByIds(List<Long> roleIds) {
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void grantMenuAndButton(SysRoleRequest sysRoleMenuButtonRequest) {
|
||||
// 清除该角色之前的菜单
|
||||
LambdaQueryWrapper<SysRoleMenu> sysRoleMenuLqw = new LambdaQueryWrapper<>();
|
||||
sysRoleMenuLqw.eq(SysRoleMenu::getRoleId, sysRoleMenuButtonRequest.getRoleId());
|
||||
roleMenuService.remove(sysRoleMenuLqw);
|
||||
|
||||
// 清除该角色之前的按钮授权
|
||||
LambdaQueryWrapper<SysRoleMenuButton> menuButtonLqw = new LambdaQueryWrapper<>();
|
||||
menuButtonLqw.eq(SysRoleMenuButton::getRoleId, sysRoleMenuButtonRequest.getRoleId());
|
||||
sysRoleMenuButtonService.remove(menuButtonLqw);
|
||||
|
||||
// 新增菜单
|
||||
List<Long> menuIdList = sysRoleMenuButtonRequest.getGrantMenuIdList();
|
||||
if (ObjectUtil.isNotEmpty(menuIdList)) {
|
||||
List<SysRoleMenu> sysRoleMenus = new ArrayList<>();
|
||||
for (Long menuId : menuIdList) {
|
||||
SysRoleMenu item = new SysRoleMenu();
|
||||
item.setRoleId(sysRoleMenuButtonRequest.getRoleId());
|
||||
item.setMenuId(menuId);
|
||||
sysRoleMenus.add(item);
|
||||
}
|
||||
roleMenuService.saveBatch(sysRoleMenus);
|
||||
}
|
||||
|
||||
// 新增按钮
|
||||
List<SysRoleMenuButtonRequest> menuButtonList = sysRoleMenuButtonRequest.getGrantMenuButtonIdList();
|
||||
if (ObjectUtil.isNotEmpty(menuButtonList)) {
|
||||
List<SysRoleMenuButton> sysRoleMenuButtons = new ArrayList<>();
|
||||
for (SysRoleMenuButtonRequest menuButton : menuButtonList) {
|
||||
SysRoleMenuButton item = new SysRoleMenuButton();
|
||||
item.setRoleId(sysRoleMenuButtonRequest.getRoleId());
|
||||
item.setButtonId(menuButton.getButtonId());
|
||||
item.setButtonCode(menuButton.getButtonCode());
|
||||
sysRoleMenuButtons.add(item);
|
||||
}
|
||||
sysRoleMenuButtonService.saveBatch(sysRoleMenuButtons);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysRoleResponse> getRolesByIds(List<Long> roleIds) {
|
||||
|
||||
ArrayList<SysRoleResponse> sysRoleResponses = new ArrayList<>();
|
||||
ArrayList<SysRoleDTO> sysRoleResponses = new ArrayList<>();
|
||||
|
||||
LambdaQueryWrapper<SysRole> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.in(SysRole::getRoleId, roleIds);
|
||||
|
@ -307,7 +297,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|||
// 角色列表不为空,角色信息转化为SysRoleResponse
|
||||
if (!sysRoles.isEmpty()) {
|
||||
for (SysRole sysRole : sysRoles) {
|
||||
SysRoleResponse sysRoleResponse = new SysRoleResponse();
|
||||
SysRoleDTO sysRoleResponse = new SysRoleDTO();
|
||||
BeanUtil.copyProperties(sysRole, sysRoleResponse);
|
||||
// 填充数据范围类型枚举
|
||||
sysRoleResponse.setDataScopeTypeEnum(DataScopeTypeEnum.codeToEnum(sysRole.getDataScopeType()));
|
||||
|
@ -361,11 +351,11 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|||
}
|
||||
|
||||
@Override
|
||||
public List<SysRoleResourceResponse> getRoleResourceList(List<Long> roleIdList) {
|
||||
public List<SysRoleResourceDTO> getRoleResourceList(List<Long> roleIdList) {
|
||||
LambdaQueryWrapper<SysRoleResource> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.in(SysRoleResource::getRoleId, roleIdList);
|
||||
List<SysRoleResource> sysRoleResources = sysRoleResourceService.list(queryWrapper);
|
||||
return sysRoleResources.parallelStream().map(item -> BeanUtil.copyProperties(item, SysRoleResourceResponse.class)).collect(Collectors.toList());
|
||||
return sysRoleResources.parallelStream().map(item -> BeanUtil.copyProperties(item, SysRoleResourceDTO.class)).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -378,21 +368,19 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|||
}
|
||||
|
||||
@Override
|
||||
public List<SysRoleMenuResponse> getRoleMenuList(List<Long> roleIdList) {
|
||||
public List<SysRoleMenuDTO> getRoleMenuList(List<Long> roleIdList) {
|
||||
LambdaQueryWrapper<SysRoleMenu> sysRoleMenuLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
sysRoleMenuLambdaQueryWrapper.in(SysRoleMenu::getRoleId, roleIdList);
|
||||
List<SysRoleMenu> roleMenus = roleMenuService.list(sysRoleMenuLambdaQueryWrapper);
|
||||
List<SysRoleMenuResponse> sysRoleMenuResponses = roleMenus.parallelStream().map(item -> BeanUtil.copyProperties(item, SysRoleMenuResponse.class)).collect(Collectors.toList());
|
||||
return sysRoleMenuResponses;
|
||||
return roleMenus.parallelStream().map(item -> BeanUtil.copyProperties(item, SysRoleMenuDTO.class)).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysRoleMenuButtonResponse> getRoleMenuButtonList(List<Long> roleIdList) {
|
||||
public List<SysRoleMenuButtonDTO> getRoleMenuButtonList(List<Long> roleIdList) {
|
||||
LambdaQueryWrapper<SysRoleMenuButton> sysRoleMenuButtonLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
sysRoleMenuButtonLambdaQueryWrapper.in(SysRoleMenuButton::getRoleId, roleIdList);
|
||||
List<SysRoleMenuButton> sysRoleMenuButtons = sysRoleMenuButtonService.list(sysRoleMenuButtonLambdaQueryWrapper);
|
||||
List<SysRoleMenuButtonResponse> sysRoleMenuButtonResponses = sysRoleMenuButtons.parallelStream().map(item -> BeanUtil.copyProperties(item, SysRoleMenuButtonResponse.class)).collect(Collectors.toList());
|
||||
return sysRoleMenuButtonResponses;
|
||||
return sysRoleMenuButtons.parallelStream().map(item -> BeanUtil.copyProperties(item, SysRoleMenuButtonDTO.class)).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -418,18 +406,6 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|||
*/
|
||||
private LambdaQueryWrapper<SysRole> createWrapper(SysRoleRequest sysRoleRequest) {
|
||||
LambdaQueryWrapper<SysRole> queryWrapper = new LambdaQueryWrapper<>();
|
||||
if (ObjectUtil.isNotNull(sysRoleRequest)) {
|
||||
|
||||
// 根据名称模糊查询
|
||||
if (ObjectUtil.isNotEmpty(sysRoleRequest.getRoleName())) {
|
||||
queryWrapper.like(SysRole::getRoleName, sysRoleRequest.getRoleName());
|
||||
}
|
||||
|
||||
// 根据编码模糊查询
|
||||
if (ObjectUtil.isNotEmpty(sysRoleRequest.getRoleCode())) {
|
||||
queryWrapper.like(SysRole::getRoleCode, sysRoleRequest.getRoleCode());
|
||||
}
|
||||
}
|
||||
|
||||
// 查询未删除的
|
||||
queryWrapper.eq(SysRole::getDelFlag, YesOrNotEnum.N.getCode());
|
||||
|
@ -437,6 +413,17 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|||
// 根据排序升序排列,序号越小越在前
|
||||
queryWrapper.orderByAsc(SysRole::getRoleSort);
|
||||
|
||||
if (ObjectUtil.isEmpty(sysRoleRequest)) {
|
||||
return queryWrapper;
|
||||
}
|
||||
|
||||
// 根据名称模糊查询
|
||||
queryWrapper.like(ObjectUtil.isNotEmpty(sysRoleRequest.getRoleName()), SysRole::getRoleName, sysRoleRequest.getRoleName());
|
||||
|
||||
// 根据编码模糊查询
|
||||
queryWrapper.like(ObjectUtil.isNotEmpty(sysRoleRequest.getRoleCode()), SysRole::getRoleCode, sysRoleRequest.getRoleCode());
|
||||
|
||||
|
||||
return queryWrapper;
|
||||
}
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ import cn.stylefeng.roses.kernel.auth.api.prop.LoginUserPropExpander;
|
|||
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.entity.SysUser;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.organization.DataScopeDTO;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.response.SysRoleResponse;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.dto.SysRoleDTO;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.user.SysUserOrgResponse;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.user.UserLoginInfoDTO;
|
||||
|
||||
|
@ -36,7 +36,7 @@ public class UserLoginInfoFactory {
|
|||
* @date 2020/12/26 17:53
|
||||
*/
|
||||
public static UserLoginInfoDTO userLoginInfoDTO(SysUser sysUser,
|
||||
List<SysRoleResponse> roleResponseList,
|
||||
List<SysRoleDTO> roleResponseList,
|
||||
DataScopeDTO dataScopeResponse,
|
||||
SysUserOrgResponse userOrgInfo,
|
||||
Set<String> resourceUrlsListByCodes,
|
||||
|
@ -64,7 +64,7 @@ public class UserLoginInfoFactory {
|
|||
// 填充用户角色信息
|
||||
if (!roleResponseList.isEmpty()) {
|
||||
ArrayList<SimpleRoleInfo> simpleRoleInfos = new ArrayList<>();
|
||||
for (SysRoleResponse sysRoleResponse : roleResponseList) {
|
||||
for (SysRoleDTO sysRoleResponse : roleResponseList) {
|
||||
SimpleRoleInfo simpleRoleInfo = new SimpleRoleInfo();
|
||||
BeanUtil.copyProperties(sysRoleResponse, simpleRoleInfo);
|
||||
simpleRoleInfos.add(simpleRoleInfo);
|
||||
|
|
|
@ -41,7 +41,7 @@ import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserRoleService;
|
|||
import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserService;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.organization.DataScopeDTO;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.organization.HrOrganizationDTO;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.response.SysRoleResponse;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.role.dto.SysRoleDTO;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.user.*;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.user.request.OnlineUserRequest;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.user.request.SysUserRequest;
|
||||
|
@ -427,7 +427,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||
|
||||
// 2. 获取用户角色信息
|
||||
List<Long> roleIds = sysUserRoleService.findRoleIdsByUserId(userId);
|
||||
List<SysRoleResponse> roleResponseList = roleServiceApi.getRolesByIds(roleIds);
|
||||
List<SysRoleDTO> roleResponseList = roleServiceApi.getRolesByIds(roleIds);
|
||||
|
||||
// 3. 获取用户的数据范围
|
||||
DataScopeDTO dataScopeResponse = dataScopeApi.getDataScope(userId, roleResponseList);
|
||||
|
|
Loading…
Reference in New Issue