diff --git a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/controller/SysRoleController.java b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/controller/SysRoleController.java index 85cfee7d7..d1b48ee56 100644 --- a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/controller/SysRoleController.java +++ b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/controller/SysRoleController.java @@ -47,6 +47,18 @@ public class SysRoleController { return new SuccessResponseData(); } + /** + * 删除系统角色 + * + * @author majianguo + * @date 2020/11/5 上午10:48 + */ + @PostResource(name = "角色删除", path = "/sysRole/delete") + public ResponseData delete(@RequestBody @Validated(SysRoleRequest.delete.class) SysRoleRequest sysRoleRequest) { + sysRoleService.del(sysRoleRequest); + return new SuccessResponseData(); + } + /** * 编辑系统角色 * @@ -60,15 +72,25 @@ public class SysRoleController { } /** - * 删除系统角色 + * 查看系统角色 * * @author majianguo - * @date 2020/11/5 上午10:48 + * @date 2020/11/5 上午10:50 */ - @PostResource(name = "角色删除", path = "/sysRole/delete") - public ResponseData delete(@RequestBody @Validated(SysRoleRequest.delete.class) SysRoleRequest sysRoleRequest) { - sysRoleService.delete(sysRoleRequest); - return new SuccessResponseData(); + @GetResource(name = "角色查看", path = "/sysRole/detail") + public ResponseData detail(@Validated(SysRoleRequest.detail.class) SysRoleRequest sysRoleRequest) { + return new SuccessResponseData(sysRoleService.detail(sysRoleRequest)); + } + + /** + * 查询系统角色 + * + * @author majianguo + * @date 2020/11/5 上午10:19 + */ + @GetResource(name = "查询角色", path = "/sysRole/page") + public ResponseData page(SysRoleRequest sysRoleRequest) { + return new SuccessResponseData(sysRoleService.findPage(sysRoleRequest)); } /** @@ -107,28 +129,6 @@ public class SysRoleController { return new SuccessResponseData(); } - /** - * 查看系统角色 - * - * @author majianguo - * @date 2020/11/5 上午10:50 - */ - @GetResource(name = "角色查看", path = "/sysRole/detail") - public ResponseData detail(@Validated(SysRoleRequest.detail.class) SysRoleRequest sysRoleRequest) { - return new SuccessResponseData(sysRoleService.detail(sysRoleRequest)); - } - - /** - * 查询系统角色 - * - * @author majianguo - * @date 2020/11/5 上午10:19 - */ - @GetResource(name = "查询角色", path = "/sysRole/page") - public ResponseData page(SysRoleRequest sysRoleRequest) { - return new SuccessResponseData(sysRoleService.page(sysRoleRequest)); - } - /** * 系统角色下拉(用于授权角色时选择) * diff --git a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/service/SysRoleService.java b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/service/SysRoleService.java index 12f3aa3df..e0efe4382 100644 --- a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/service/SysRoleService.java +++ b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/role/modular/service/SysRoleService.java @@ -50,6 +50,15 @@ public interface SysRoleService extends IService { */ void add(SysRoleRequest sysRoleRequest); + /** + * 删除系统角色 + * + * @param sysRoleRequest 删除参数 + * @author majianguo + * @date 2020/11/5 上午11:14 + */ + void del(SysRoleRequest sysRoleRequest); + /** * 编辑系统角色 * @@ -59,24 +68,6 @@ public interface SysRoleService extends IService { */ void edit(SysRoleRequest sysRoleRequest); - /** - * 删除系统角色 - * - * @param sysRoleRequest 删除参数 - * @author majianguo - * @date 2020/11/5 上午11:14 - */ - void delete(SysRoleRequest sysRoleRequest); - - /** - * 授权数据范围(组织机构) - * - * @param sysRoleRequest 授权参数 - * @author majianguo - * @date 2020/11/5 上午11:14 - */ - void grantDataScope(SysRoleRequest sysRoleRequest); - /** * 查看系统角色 * @@ -95,7 +86,26 @@ public interface SysRoleService extends IService { * @author majianguo * @date 2020/11/5 上午11:13 */ - PageResult page(SysRoleRequest sysRoleRequest); + PageResult findPage(SysRoleRequest sysRoleRequest); + + /** + * 根据角色名模糊搜索系统角色列表 + * + * @param sysRoleRequest 查询参数 + * @return 增强版hashMap,格式:[{"id":456, "name":"总经理(zjl)"}] + * @author majianguo + * @date 2020/11/5 上午11:13 + */ + List findList(SysRoleRequest sysRoleRequest); + + /** + * 授权数据范围(组织机构) + * + * @param sysRoleRequest 授权参数 + * @author majianguo + * @date 2020/11/5 上午11:14 + */ + void grantDataScope(SysRoleRequest sysRoleRequest); /** * 系统角色下拉(用于授权角色时选择) @@ -116,16 +126,6 @@ public interface SysRoleService extends IService { */ List getRoleDataScope(SysRoleRequest sysRoleRequest); - /** - * 根据角色名模糊搜索系统角色列表 - * - * @param sysRoleRequest 查询参数 - * @return 增强版hashMap,格式:[{"id":456, "name":"总经理(zjl)"}] - * @author majianguo - * @date 2020/11/5 上午11:13 - */ - List list(SysRoleRequest sysRoleRequest); - /** * 根据角色id获取角色名称 * 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 a3b92226d..ca7948add 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 @@ -93,42 +93,31 @@ public class SysRoleServiceImpl extends ServiceImpl impl @Override public void add(SysRoleRequest sysRoleRequest) { + SysRole sysRole = new SysRole(); BeanUtil.copyProperties(sysRoleRequest, sysRole); + // 默认设置为启用 sysRole.setStatusFlag(StatusEnum.ENABLE.getCode()); + // 默认设置为普通角色 sysRole.setRoleSystemFlag(YesOrNotEnum.N.getCode()); + //默认数据范围 sysRole.setDataScopeType(DataScopeTypeEnum.SELF.getCode()); + this.save(sysRole); } - @Override - public void edit(SysRoleRequest sysRoleRequest) { - SysRole sysRole = this.querySysRole(sysRoleRequest); - BeanUtil.copyProperties(sysRoleRequest, sysRole); - - // 不能修改状态,用修改状态接口修改状态 - sysRole.setStatusFlag(null); - - this.updateById(sysRole); - } - @Override @Transactional(rollbackFor = Exception.class) - public void delete(SysRoleRequest sysRoleRequest) { + public void del(SysRoleRequest sysRoleRequest) { SysRole sysRole = this.querySysRole(sysRoleRequest); // 超级管理员不能删除 if (YesOrNotEnum.Y.getCode().equals(sysRole.getRoleSystemFlag())) { throw new ServiceException(SysRoleExceptionEnum.SYSTEM_ROLE_CANT_DELETE); } - // 超级管理员不能删除 - // TODO 暂时弃用 - //if (SYSTEM_ADMIN_ROLE_CODE.equals(sysRole.getRoleCode())) { - // throw new ServiceException(SUPER_ADMIN_CANT_DELETE); - //} // 逻辑删除,设为删除标志 sysRole.setDelFlag(YesOrNotEnum.Y.getCode()); @@ -147,6 +136,62 @@ public class SysRoleServiceImpl extends ServiceImpl impl sysRoleResourceService.deleteRoleResourceListByRoleId(id); } + @Override + public void edit(SysRoleRequest sysRoleRequest) { + SysRole sysRole = this.querySysRole(sysRoleRequest); + BeanUtil.copyProperties(sysRoleRequest, sysRole); + + // 不能修改状态,用修改状态接口修改状态 + sysRole.setStatusFlag(null); + + this.updateById(sysRole); + } + + @Override + public SysRoleResponse detail(SysRoleRequest sysRoleRequest) { + SysRole sysRole = this.querySysRole(sysRoleRequest); + SysRoleResponse roleResponse = new SysRoleResponse(); + BeanUtil.copyProperties(sysRole, roleResponse); + + // 填充数据范围类型枚举 + roleResponse.setDataScopeTypeEnum(DataScopeTypeEnum.codeToEnum(sysRole.getDataScopeType())); + + return roleResponse; + } + + @Override + public PageResult findPage(SysRoleRequest sysRoleRequest) { + LambdaQueryWrapper wrapper = createWrapper(sysRoleRequest); + Page sysRolePage = this.page(PageFactory.defaultPage(), wrapper); + return PageResultFactory.createPageResult(sysRolePage); + } + + @Override + public List findList(SysRoleRequest sysRoleParam) { + List dictList = CollectionUtil.newArrayList(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (ObjectUtil.isNotNull(sysRoleParam)) { + + // 根据角色名称或编码模糊查询 + if (ObjectUtil.isNotEmpty(sysRoleParam.getRoleName())) { + queryWrapper.and(i -> i.like(SysRole::getRoleName, sysRoleParam.getRoleName()).or().like(SysRole::getRoleCode, sysRoleParam.getRoleName())); + } + } + + // 只查询正常状态 + queryWrapper.eq(SysRole::getStatusFlag, StatusEnum.ENABLE.getCode()); + + // 根据排序升序排列,序号越小越在前 + queryWrapper.orderByAsc(SysRole::getRoleSort); + this.list(queryWrapper).forEach(sysRole -> { + SimpleDict simpleDict = new SimpleDict(); + simpleDict.setId(sysRole.getRoleId()); + simpleDict.setName(sysRole.getRoleName() + SymbolConstant.LEFT_SQUARE_BRACKETS + sysRole.getRoleCode() + SymbolConstant.RIGHT_SQUARE_BRACKETS); + dictList.add(simpleDict); + }); + return dictList; + } + @Override @Transactional(rollbackFor = Exception.class) public void grantDataScope(SysRoleRequest sysRoleRequest) { @@ -185,25 +230,6 @@ public class SysRoleServiceImpl extends ServiceImpl impl sysRoleDataScopeService.grantDataScope(sysRoleRequest); } - @Override - public SysRoleResponse detail(SysRoleRequest sysRoleRequest) { - SysRole sysRole = this.querySysRole(sysRoleRequest); - SysRoleResponse roleResponse = new SysRoleResponse(); - BeanUtil.copyProperties(sysRole, roleResponse); - - // 填充数据范围类型枚举 - roleResponse.setDataScopeTypeEnum(DataScopeTypeEnum.codeToEnum(sysRole.getDataScopeType())); - - return roleResponse; - } - - @Override - public PageResult page(SysRoleRequest sysRoleRequest) { - LambdaQueryWrapper wrapper = createWrapper(sysRoleRequest); - Page sysRolePage = this.page(PageFactory.defaultPage(), wrapper); - return PageResultFactory.createPageResult(sysRolePage); - } - @Override public List dropDown() { List dictList = CollectionUtil.newArrayList(); @@ -242,32 +268,6 @@ public class SysRoleServiceImpl extends ServiceImpl impl return sysRoleDataScopeService.getRoleDataScopeIdList(CollectionUtil.newArrayList(sysRole.getRoleId())); } - @Override - public List list(SysRoleRequest sysRoleParam) { - List dictList = CollectionUtil.newArrayList(); - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - if (ObjectUtil.isNotNull(sysRoleParam)) { - - // 根据角色名称或编码模糊查询 - if (ObjectUtil.isNotEmpty(sysRoleParam.getRoleName())) { - queryWrapper.and(i -> i.like(SysRole::getRoleName, sysRoleParam.getRoleName()).or().like(SysRole::getRoleCode, sysRoleParam.getRoleName())); - } - } - - // 只查询正常状态 - queryWrapper.eq(SysRole::getStatusFlag, StatusEnum.ENABLE.getCode()); - - // 根据排序升序排列,序号越小越在前 - queryWrapper.orderByAsc(SysRole::getRoleSort); - this.list(queryWrapper).forEach(sysRole -> { - SimpleDict simpleDict = new SimpleDict(); - simpleDict.setId(sysRole.getRoleId()); - simpleDict.setName(sysRole.getRoleName() + SymbolConstant.LEFT_SQUARE_BRACKETS + sysRole.getRoleCode() + SymbolConstant.RIGHT_SQUARE_BRACKETS); - dictList.add(simpleDict); - }); - return dictList; - } - @Override public String getNameByRoleId(Long roleId) { SysRole sysRole = this.getById(roleId); @@ -277,6 +277,48 @@ public class SysRoleServiceImpl extends ServiceImpl impl return sysRole.getRoleName(); } + @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 void deleteRoleDataScopeListByOrgIdList(Set organizationIds) { sysRoleDataScopeService.deleteRoleDataScopeListByOrgIdList(organizationIds); @@ -382,48 +424,6 @@ public class SysRoleServiceImpl extends ServiceImpl impl return sysRoleMenuButtonResponses; } - @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); - } - - } - /** * 获取系统角色 *