From 47d26efe1bfbbc8de61c9c965602132c04275a2b Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Mon, 8 Feb 2021 22:59:12 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90role=E3=80=91=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E8=A7=92=E8=89=B2=E7=9B=B8=E5=85=B3=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../roses/kernel/system/DataScopeApi.java | 4 +- .../roses/kernel/system/RoleServiceApi.java | 16 +- .../PositionExceptionEnum.java | 2 +- .../{ => role}/SysRoleExceptionEnum.java | 2 +- .../SysRoleDTO.java} | 4 +- .../SysRoleMenuButtonDTO.java} | 4 +- .../SysRoleMenuDTO.java} | 4 +- .../SysRoleResourceDTO.java} | 6 +- .../request}/SysRoleDataScopeRequest.java | 2 +- .../service/impl/SysMenuServiceImpl.java | 20 +-- .../service/DataScopeService.java | 8 +- .../service/impl/HrPositionServiceImpl.java | 2 +- .../service/impl/SysResourceServiceImpl.java | 10 +- .../modular/controller/SysRoleController.java | 14 +- .../service/SysRoleDataScopeService.java | 2 +- .../role/modular/service/SysRoleService.java | 32 ++-- .../impl/SysRoleDataScopeServiceImpl.java | 2 +- .../service/impl/SysRoleServiceImpl.java | 153 ++++++++---------- .../user/factory/UserLoginInfoFactory.java | 6 +- .../user/service/impl/SysUserServiceImpl.java | 4 +- 20 files changed, 137 insertions(+), 160 deletions(-) rename kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/exception/enums/{ => organization}/PositionExceptionEnum.java (93%) rename kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/exception/enums/{ => role}/SysRoleExceptionEnum.java (96%) rename kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/{response/SysRoleResponse.java => dto/SysRoleDTO.java} (90%) rename kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/{response/SysRoleMenuButtonResponse.java => dto/SysRoleMenuButtonDTO.java} (78%) rename kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/{response/SysRoleMenuResponse.java => dto/SysRoleMenuDTO.java} (75%) rename kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/{response/SysRoleResourceResponse.java => dto/SysRoleResourceDTO.java} (67%) rename kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/{ => role/request}/SysRoleDataScopeRequest.java (84%) diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/DataScopeApi.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/DataScopeApi.java index 5a1dd59f8..7a40cb4e6 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/DataScopeApi.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/DataScopeApi.java @@ -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 sysRoles); + DataScopeDTO getDataScope(Long userId, List sysRoles); } diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/RoleServiceApi.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/RoleServiceApi.java index a87a0f44c..cdf65611c 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/RoleServiceApi.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/RoleServiceApi.java @@ -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 getRolesByIds(List roleIds); + List getRolesByIds(List roleIds); /** * 获取角色对应的组织机构范围集合 @@ -64,7 +64,7 @@ public interface RoleServiceApi { * @author majianguo * @date 2020/11/5 上午11:17 */ - List getRoleResourceList(List roleIdList); + List getRoleResourceList(List roleIdList); /** * 获取角色对应的按钮编码集合 @@ -83,7 +83,7 @@ public interface RoleServiceApi { * @author majianguo * @date 2021/1/9 17:33 */ - List getRoleMenuList(List roleIdList); + List getRoleMenuList(List roleIdList); /** * 获取角色拥有的菜单按钮 @@ -92,6 +92,6 @@ public interface RoleServiceApi { * @author majianguo * @date 2021/1/9 17:33 */ - List getRoleMenuButtonList(List roleIdList); + List getRoleMenuButtonList(List roleIdList); } diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/exception/enums/PositionExceptionEnum.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/exception/enums/organization/PositionExceptionEnum.java similarity index 93% rename from kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/exception/enums/PositionExceptionEnum.java rename to kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/exception/enums/organization/PositionExceptionEnum.java index 0a7af835a..b73b551a8 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/exception/enums/PositionExceptionEnum.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/exception/enums/organization/PositionExceptionEnum.java @@ -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; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/exception/enums/SysRoleExceptionEnum.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/exception/enums/role/SysRoleExceptionEnum.java similarity index 96% rename from kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/exception/enums/SysRoleExceptionEnum.java rename to kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/exception/enums/role/SysRoleExceptionEnum.java index 6672c26ef..1c4eef200 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/exception/enums/SysRoleExceptionEnum.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/exception/enums/role/SysRoleExceptionEnum.java @@ -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; diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/response/SysRoleResponse.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/dto/SysRoleDTO.java similarity index 90% rename from kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/response/SysRoleResponse.java rename to kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/dto/SysRoleDTO.java index a1d15c652..32956b3f8 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/response/SysRoleResponse.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/dto/SysRoleDTO.java @@ -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 { /** * 主键 diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/response/SysRoleMenuButtonResponse.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/dto/SysRoleMenuButtonDTO.java similarity index 78% rename from kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/response/SysRoleMenuButtonResponse.java rename to kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/dto/SysRoleMenuButtonDTO.java index 772e0ab6e..2e5a8c180 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/response/SysRoleMenuButtonResponse.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/dto/SysRoleMenuButtonDTO.java @@ -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 { /** * 主键 diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/response/SysRoleMenuResponse.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/dto/SysRoleMenuDTO.java similarity index 75% rename from kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/response/SysRoleMenuResponse.java rename to kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/dto/SysRoleMenuDTO.java index 987b1ee6d..973e5e49c 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/response/SysRoleMenuResponse.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/dto/SysRoleMenuDTO.java @@ -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 { /** * 主键 diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/response/SysRoleResourceResponse.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/dto/SysRoleResourceDTO.java similarity index 67% rename from kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/response/SysRoleResourceResponse.java rename to kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/dto/SysRoleResourceDTO.java index 3babf794e..89e28b622 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/response/SysRoleResourceResponse.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/dto/SysRoleResourceDTO.java @@ -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 { /** * 主键 diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/SysRoleDataScopeRequest.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/request/SysRoleDataScopeRequest.java similarity index 84% rename from kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/SysRoleDataScopeRequest.java rename to kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/request/SysRoleDataScopeRequest.java index 4a453faf1..ee00cf3b4 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/SysRoleDataScopeRequest.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/role/request/SysRoleDataScopeRequest.java @@ -1,4 +1,4 @@ -package cn.stylefeng.roses.kernel.system.pojo; +package cn.stylefeng.roses.kernel.system.pojo.role.request; import lombok.Data; diff --git a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/service/impl/SysMenuServiceImpl.java b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/service/impl/SysMenuServiceImpl.java index f62737561..592668f76 100644 --- a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/service/impl/SysMenuServiceImpl.java +++ b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/service/impl/SysMenuServiceImpl.java @@ -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 impl // 查询所有已有的权限 // 所有已有的菜单权限 - List roleMenuList = roleServiceApi.getRoleMenuList(Collections.singletonList(sysRoleRequest.getRoleId())); + List roleMenuList = roleServiceApi.getRoleMenuList(Collections.singletonList(sysRoleRequest.getRoleId())); // 转换成map方便后续处理 - Map roleMenuMap = new HashMap<>(); - for (SysRoleMenuResponse sysRoleMenuResponse : roleMenuList) { + Map roleMenuMap = new HashMap<>(); + for (SysRoleMenuDTO sysRoleMenuResponse : roleMenuList) { roleMenuMap.put(sysRoleMenuResponse.getMenuId(), sysRoleMenuResponse); } // 所有的按钮权限 - List roleMenuButtonList = roleServiceApi.getRoleMenuButtonList(Collections.singletonList(sysRoleRequest.getRoleId())); + List roleMenuButtonList = roleServiceApi.getRoleMenuButtonList(Collections.singletonList(sysRoleRequest.getRoleId())); // 转换成map方便后续处理 - Map roleMenuButtonMap = new HashMap<>(); - for (SysRoleMenuButtonResponse buttonResponse : roleMenuButtonList) { + Map roleMenuButtonMap = new HashMap<>(); + for (SysRoleMenuButtonDTO buttonResponse : roleMenuButtonList) { roleMenuButtonMap.put(buttonResponse.getButtonId(), buttonResponse); } @@ -315,7 +315,7 @@ public class SysMenuServiceImpl extends ServiceImpl 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 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); diff --git a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/DataScopeService.java b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/DataScopeService.java index 0b559c2c1..f9c937c65 100644 --- a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/DataScopeService.java +++ b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/DataScopeService.java @@ -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 sysRoles) { + public DataScopeDTO getDataScope(Long userId, List sysRoles) { // 初始化返回结果 DataScopeDTO dataScopeResponse = new DataScopeDTO(); @@ -56,7 +56,7 @@ public class DataScopeService implements DataScopeApi { SysUserOrgResponse sysUserOrgResponse = userOrgServiceApi.getUserOrgInfo(userId); // 获取角色中的数据范围类型 - Set dataScopeTypeEnums = sysRoles.stream().map(SysRoleResponse::getDataScopeTypeEnum).collect(Collectors.toSet()); + Set 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 roleIds = sysRoles.stream().map(SysRoleResponse::getRoleId).collect(Collectors.toList()); + List roleIds = sysRoles.stream().map(SysRoleDTO::getRoleId).collect(Collectors.toList()); List orgIds = roleServiceApi.getRoleDataScopes(roleIds); organizationIds.addAll(orgIds); } diff --git a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/impl/HrPositionServiceImpl.java b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/impl/HrPositionServiceImpl.java index 6c36361b6..3359d9f10 100644 --- a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/impl/HrPositionServiceImpl.java +++ b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/impl/HrPositionServiceImpl.java @@ -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; diff --git a/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/resource/modular/service/impl/SysResourceServiceImpl.java b/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/resource/modular/service/impl/SysResourceServiceImpl.java index 05b89cb4d..dccdaa674 100644 --- a/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/resource/modular/service/impl/SysResourceServiceImpl.java +++ b/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/resource/modular/service/impl/SysResourceServiceImpl.java @@ -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 allResource = this.list(sysResourceLambdaQueryWrapper); // 查询当前角色已有的接口 - List resourceList = roleServiceApi.getRoleResourceList(Collections.singletonList(roleId)); + List resourceList = roleServiceApi.getRoleResourceList(Collections.singletonList(roleId)); // 该角色已拥有权限 - Map alreadyHave = new HashMap<>(resourceList.size()); - for (SysRoleResourceResponse sysRoleResponse : resourceList) { + Map alreadyHave = new HashMap<>(resourceList.size()); + for (SysRoleResourceDTO sysRoleResponse : resourceList) { alreadyHave.put(sysRoleResponse.getResourceCode(), sysRoleResponse); } @@ -144,7 +144,7 @@ public class SysResourceServiceImpl extends ServiceImpl { +public interface SysRoleService extends IService, RoleServiceApi { /** * 添加系统角色 @@ -52,7 +53,7 @@ public interface SysRoleService extends IService { * @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 { */ List findList(SysRoleRequest sysRoleRequest); + /** + * 授权菜单和按钮 + * + * @author majianguo + * @date 2021/1/9 18:13 + */ + void grantMenuAndButton(SysRoleRequest sysRoleMenuButtonRequest); + /** * 授权数据范围(组织机构) * @@ -102,21 +111,4 @@ public interface SysRoleService extends IService { */ List 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); } diff --git a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/service/impl/SysRoleDataScopeServiceImpl.java b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/service/impl/SysRoleDataScopeServiceImpl.java index 878424db0..d5c95acec 100644 --- a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/service/impl/SysRoleDataScopeServiceImpl.java +++ b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/service/impl/SysRoleDataScopeServiceImpl.java @@ -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; diff --git a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/service/impl/SysRoleServiceImpl.java b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/service/impl/SysRoleServiceImpl.java index 2fe26526f..63d6e932c 100644 --- a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/service/impl/SysRoleServiceImpl.java +++ b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/service/impl/SysRoleServiceImpl.java @@ -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 implements SysRoleService, RoleServiceApi { +public class SysRoleServiceImpl extends ServiceImpl implements SysRoleService { @Resource private UserServiceApi userServiceApi; @@ -124,9 +123,9 @@ public class SysRoleServiceImpl extends ServiceImpl 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 impl return dictList; } + @Override + @Transactional(rollbackFor = Exception.class) + public void grantMenuAndButton(SysRoleRequest sysRoleMenuButtonRequest) { + + // 清除该角色之前的菜单 + LambdaQueryWrapper sysRoleMenuLqw = new LambdaQueryWrapper<>(); + sysRoleMenuLqw.eq(SysRoleMenu::getRoleId, sysRoleMenuButtonRequest.getRoleId()); + roleMenuService.remove(sysRoleMenuLqw); + + // 清除该角色之前的按钮授权 + LambdaQueryWrapper menuButtonLqw = new LambdaQueryWrapper<>(); + menuButtonLqw.eq(SysRoleMenuButton::getRoleId, sysRoleMenuButtonRequest.getRoleId()); + sysRoleMenuButtonService.remove(menuButtonLqw); + + // 新增菜单 + List menuIdList = sysRoleMenuButtonRequest.getGrantMenuIdList(); + if (ObjectUtil.isNotEmpty(menuIdList)) { + List 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 menuButtonList = sysRoleMenuButtonRequest.getGrantMenuButtonIdList(); + if (ObjectUtil.isNotEmpty(menuButtonList)) { + List 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 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 getRolesByIds(List roleIds) { - @Override - @Transactional(rollbackFor = Exception.class) - public void grantMenuAndButton(SysRoleRequest sysRoleMenuButtonRequest) { - // 清除该角色之前的菜单 - LambdaQueryWrapper sysRoleMenuLqw = new LambdaQueryWrapper<>(); - sysRoleMenuLqw.eq(SysRoleMenu::getRoleId, sysRoleMenuButtonRequest.getRoleId()); - roleMenuService.remove(sysRoleMenuLqw); - - // 清除该角色之前的按钮授权 - LambdaQueryWrapper menuButtonLqw = new LambdaQueryWrapper<>(); - menuButtonLqw.eq(SysRoleMenuButton::getRoleId, sysRoleMenuButtonRequest.getRoleId()); - sysRoleMenuButtonService.remove(menuButtonLqw); - - // 新增菜单 - List menuIdList = sysRoleMenuButtonRequest.getGrantMenuIdList(); - if (ObjectUtil.isNotEmpty(menuIdList)) { - List 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 menuButtonList = sysRoleMenuButtonRequest.getGrantMenuButtonIdList(); - if (ObjectUtil.isNotEmpty(menuButtonList)) { - List 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 getRolesByIds(List roleIds) { - - ArrayList sysRoleResponses = new ArrayList<>(); + ArrayList sysRoleResponses = new ArrayList<>(); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.in(SysRole::getRoleId, roleIds); @@ -307,7 +297,7 @@ public class SysRoleServiceImpl extends ServiceImpl 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 impl } @Override - public List getRoleResourceList(List roleIdList) { + public List getRoleResourceList(List roleIdList) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.in(SysRoleResource::getRoleId, roleIdList); List 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 impl } @Override - public List getRoleMenuList(List roleIdList) { + public List getRoleMenuList(List roleIdList) { LambdaQueryWrapper sysRoleMenuLambdaQueryWrapper = new LambdaQueryWrapper<>(); sysRoleMenuLambdaQueryWrapper.in(SysRoleMenu::getRoleId, roleIdList); List roleMenus = roleMenuService.list(sysRoleMenuLambdaQueryWrapper); - List 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 getRoleMenuButtonList(List roleIdList) { + public List getRoleMenuButtonList(List roleIdList) { LambdaQueryWrapper sysRoleMenuButtonLambdaQueryWrapper = new LambdaQueryWrapper<>(); sysRoleMenuButtonLambdaQueryWrapper.in(SysRoleMenuButton::getRoleId, roleIdList); List sysRoleMenuButtons = sysRoleMenuButtonService.list(sysRoleMenuButtonLambdaQueryWrapper); - List 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 impl */ private LambdaQueryWrapper createWrapper(SysRoleRequest sysRoleRequest) { LambdaQueryWrapper 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 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; } diff --git a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/factory/UserLoginInfoFactory.java b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/factory/UserLoginInfoFactory.java index f13b04bd2..93fe51e9e 100644 --- a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/factory/UserLoginInfoFactory.java +++ b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/factory/UserLoginInfoFactory.java @@ -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 roleResponseList, + List roleResponseList, DataScopeDTO dataScopeResponse, SysUserOrgResponse userOrgInfo, Set resourceUrlsListByCodes, @@ -64,7 +64,7 @@ public class UserLoginInfoFactory { // 填充用户角色信息 if (!roleResponseList.isEmpty()) { ArrayList simpleRoleInfos = new ArrayList<>(); - for (SysRoleResponse sysRoleResponse : roleResponseList) { + for (SysRoleDTO sysRoleResponse : roleResponseList) { SimpleRoleInfo simpleRoleInfo = new SimpleRoleInfo(); BeanUtil.copyProperties(sysRoleResponse, simpleRoleInfo); simpleRoleInfos.add(simpleRoleInfo); diff --git a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/service/impl/SysUserServiceImpl.java b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/service/impl/SysUserServiceImpl.java index 3eca6084a..76639ff0e 100644 --- a/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/service/impl/SysUserServiceImpl.java +++ b/kernel-s-system/system-business-user/src/main/java/cn/stylefeng/roses/kernel/system/modular/user/service/impl/SysUserServiceImpl.java @@ -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 impl // 2. 获取用户角色信息 List roleIds = sysUserRoleService.findRoleIdsByUserId(userId); - List roleResponseList = roleServiceApi.getRolesByIds(roleIds); + List roleResponseList = roleServiceApi.getRolesByIds(roleIds); // 3. 获取用户的数据范围 DataScopeDTO dataScopeResponse = dataScopeApi.getDataScope(userId, roleResponseList);