【role】更新角色相关类

pull/3/head
fengshuonan 2021-02-08 22:59:12 +08:00
parent cbe6150a08
commit 47d26efe1b
20 changed files with 137 additions and 160 deletions

View File

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

View File

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

View File

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

View File

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

View File

@ -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 {
/**
*

View File

@ -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 {
/**
*

View File

@ -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 {
/**
*

View File

@ -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 {
/**
*

View File

@ -1,4 +1,4 @@
package cn.stylefeng.roses.kernel.system.pojo;
package cn.stylefeng.roses.kernel.system.pojo.role.request;
import lombok.Data;

View File

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

View File

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

View File

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

View File

@ -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 {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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