From 36a143b19cc919c9a814d065029b2340ef7330d7 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Mon, 13 Jun 2022 14:56:25 +0800 Subject: [PATCH] 20220606 --- src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/RoleServiceImpl.java | 61 +++++++++++++++++++++++++++--- 1 files changed, 54 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/RoleServiceImpl.java b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/RoleServiceImpl.java index 1699bef..54ac970 100644 --- a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/RoleServiceImpl.java +++ b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/RoleServiceImpl.java @@ -9,11 +9,13 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xcong.farmer.cms.common.response.Result; import com.xcong.farmer.cms.modules.system.dto.AdminAddRoleDto; +import com.xcong.farmer.cms.modules.system.dto.AdminDeleteDto; import com.xcong.farmer.cms.modules.system.dto.AdminRoleDto; import com.xcong.farmer.cms.modules.system.dto.AdminUpdateRoleDto; import com.xcong.farmer.cms.modules.system.entity.*; import com.xcong.farmer.cms.modules.system.mapper.*; import com.xcong.farmer.cms.modules.system.service.IRoleService; +import com.xcong.farmer.cms.modules.system.util.LoginUserUtil; import com.xcong.farmer.cms.modules.system.vo.AdminMenuInfoVo; import com.xcong.farmer.cms.modules.system.vo.AdminRoleVo; import com.xcong.farmer.cms.modules.system.vo.AdminSeeRoleInfoVo; @@ -45,10 +47,15 @@ @Override public Result getRoleInPage(AdminRoleDto adminRoleDto) { + UserEntity userlogin = LoginUserUtil.getLoginUser(); Page<AdminRoleVo> page = new Page<>(adminRoleDto.getPageNum(), adminRoleDto.getPageSize()); RoleEntity roleEntity = new RoleEntity(); + Long belongId = userlogin.getBelongId() == null ? UserEntity.USER_BELONG_TOP : userlogin.getBelongId(); if(StrUtil.isNotEmpty(adminRoleDto.getRoleName())){ roleEntity.setRoleName(adminRoleDto.getRoleName()); + } + if(belongId > UserEntity.USER_BELONG_TOP){ + roleEntity.setBelongId(belongId); } IPage<AdminRoleVo> list = this.baseMapper.selectAdminRoleVoInPage(page,roleEntity); return Result.ok(list); @@ -57,6 +64,7 @@ @Override @Transactional public Result addRole(AdminAddRoleDto adminAddRoleDto) { + UserEntity userlogin = LoginUserUtil.getLoginUser(); String roleName = adminAddRoleDto.getRoleName(); if(StrUtil.isEmpty(roleName)){ return Result.fail("请输入角色名称"); @@ -71,6 +79,7 @@ roleEntity.setRemark(remark); } roleEntity.setRoleName(roleName); + roleEntity.setBelongId(userlogin.getBelongId() == null?UserEntity.USER_BELONG_TOP:userlogin.getBelongId()); int insert = this.baseMapper.insert(roleEntity); if(insert > 0){ saveRoleMenus(menuIds,roleEntity.getId()); @@ -94,6 +103,10 @@ return Result.fail("当前角色下还有用户,请重新分配角色"); } this.baseMapper.deleteById(id); + + QueryWrapper<RoleMenuEntity> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("role_id",id); + roleMenuMapper.delete(queryWrapper); return Result.ok("删除成功"); } @@ -109,15 +122,22 @@ adminSeeRoleInfoVo.setRemark(roleEntity.getRemark()); List<RoleMenuEntity> roleMenuEntities = roleMenuMapper.selectListByRoleId(id); if(CollUtil.isNotEmpty(roleMenuEntities)){ - List<AdminMenuInfoVo> adminMenuInfoVos = new ArrayList<>(); + List<Long> menuIds = new ArrayList<>(); for(RoleMenuEntity roleMenuEntity : roleMenuEntities){ - MenuEntity menuEntity = menuMapper.selectById(roleMenuEntity.getMenuId()); - AdminMenuInfoVo adminMenuInfoVo = new AdminMenuInfoVo(); - adminMenuInfoVo.setId(menuEntity.getId()); - adminMenuInfoVo.setMenuName(menuEntity.getMenuName()); - adminMenuInfoVos.add(adminMenuInfoVo); +// //这个子菜单 +// MenuEntity menuEntity = menuMapper.selectMenuEntityByIdAndParentId(roleMenuEntity.getMenuId(),MenuEntity.PARENTID_DEFAULT); +// if(ObjectUtil.isNotEmpty(menuEntity)){ +// menuIds.add(menuEntity.getId()); +// } + //查询该角色拥有的菜单栏是否拥有子菜单 + QueryWrapper<MenuEntity> objectQueryWrapper = new QueryWrapper<>(); + objectQueryWrapper.eq("parent_id",roleMenuEntity.getMenuId()); + List<MenuEntity> menuEntities = menuMapper.selectList(objectQueryWrapper); + if(CollUtil.isEmpty(menuEntities)){ + menuIds.add(roleMenuEntity.getMenuId()); + } } - adminSeeRoleInfoVo.setMenuInfoVos(adminMenuInfoVos); + adminSeeRoleInfoVo.setMenuIds(menuIds); } return Result.ok(adminSeeRoleInfoVo); } @@ -150,6 +170,33 @@ return Result.ok("更新成功"); } + @Override + @Transactional + public Result delObjs(AdminDeleteDto adminDeleteDto) { + String ids = adminDeleteDto.getIds(); + if(StrUtil.isNotEmpty(ids)){ + String[] roleIds = ids.split(StringPool.COMMA); + for(String roleIdStr : roleIds){ + Long roleId = Long.valueOf(roleIdStr); + RoleEntity roleEntity = this.baseMapper.selectById(roleId); + if(RoleEntity.ROLE_ADMIN_NAME.equals(roleEntity.getRoleName()) + || RoleEntity.ROLE_SUPER_NAME.equals(roleEntity.getRoleName())){ + return Result.fail(RoleEntity.ROLE_ADMIN_NAME + RoleEntity.ROLE_SUPER_NAME +"角色无法删除"); + } + QueryWrapper<UserRoleEntity> objectQueryWrapper = new QueryWrapper<>(); + objectQueryWrapper.eq("role_id",roleId); + userRoleMapper.delete(objectQueryWrapper); + + QueryWrapper<RoleMenuEntity> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("role_id",roleId); + roleMenuMapper.delete(queryWrapper); + + this.baseMapper.deleteById(roleId); + } + } + return Result.ok("删除成功"); + } + private void saveRoleMenus(String menuIds,Long roleId) { if (StrUtil.isNotEmpty(menuIds)) { String[] menuIdList = menuIds.split(StringPool.COMMA); -- Gitblit v1.9.1