From 9b51a62597487073b54aa27cdd059828ebfcb2ac Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Fri, 08 Jul 2022 19:19:47 +0800 Subject: [PATCH] 加synchronized --- src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/RoleServiceImpl.java | 34 ++++++++++++++++++++++++---------- 1 files changed, 24 insertions(+), 10 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 7029418..216f8ad 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 @@ -15,6 +15,7 @@ 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; @@ -46,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 companyId = userlogin.getCompanyId() == null ? UserEntity.USER_BELONG_TOP : userlogin.getCompanyId(); if(StrUtil.isNotEmpty(adminRoleDto.getRoleName())){ roleEntity.setRoleName(adminRoleDto.getRoleName()); + } + if(companyId > UserEntity.USER_BELONG_TOP){ + roleEntity.setCompanyId(companyId); } IPage<AdminRoleVo> list = this.baseMapper.selectAdminRoleVoInPage(page,roleEntity); return Result.ok(list); @@ -58,20 +64,16 @@ @Override @Transactional public Result addRole(AdminAddRoleDto adminAddRoleDto) { + UserEntity userlogin = LoginUserUtil.getLoginUser(); String roleName = adminAddRoleDto.getRoleName(); - if(StrUtil.isEmpty(roleName)){ - return Result.fail("请输入角色名称"); - } String menuIds = adminAddRoleDto.getMenuIds(); - if(StrUtil.isEmpty(menuIds)){ - return Result.fail("请选择角色权限"); - } RoleEntity roleEntity = new RoleEntity(); String remark = adminAddRoleDto.getRemark(); if(StrUtil.isNotEmpty(remark)){ roleEntity.setRemark(remark); } roleEntity.setRoleName(roleName); + roleEntity.setCompanyId(userlogin.getCompanyId() == null?UserEntity.USER_BELONG_TOP:userlogin.getCompanyId()); int insert = this.baseMapper.insert(roleEntity); if(insert > 0){ saveRoleMenus(menuIds,roleEntity.getId()); @@ -116,9 +118,17 @@ if(CollUtil.isNotEmpty(roleMenuEntities)){ List<Long> menuIds = new ArrayList<>(); for(RoleMenuEntity roleMenuEntity : roleMenuEntities){ - MenuEntity menuEntity = menuMapper.selectMenuEntityByIdAndParentId(roleMenuEntity.getMenuId(),MenuEntity.PARENTID_DEFAULT); - if(ObjectUtil.isNotEmpty(menuEntity)){ - menuIds.add(menuEntity.getId()); +// //这个子菜单 +// 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.setMenuIds(menuIds); @@ -162,7 +172,11 @@ 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); -- Gitblit v1.9.1