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 | 79 +++++++++++++++++++++++++++++---------- 1 files changed, 58 insertions(+), 21 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 4078bbd..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 @@ -9,17 +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.MenuEntity; -import com.xcong.farmer.cms.modules.system.entity.RoleEntity; -import com.xcong.farmer.cms.modules.system.entity.RoleMenuEntity; -import com.xcong.farmer.cms.modules.system.entity.UserRoleEntity; -import com.xcong.farmer.cms.modules.system.mapper.MenuMapper; -import com.xcong.farmer.cms.modules.system.mapper.RoleMapper; -import com.xcong.farmer.cms.modules.system.mapper.RoleMenuMapper; -import com.xcong.farmer.cms.modules.system.mapper.UserRoleMapper; +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,14 +41,21 @@ @Resource private UserRoleMapper userRoleMapper; @Resource + private UserMapper userMapper; + @Resource private MenuMapper menuMapper; @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); @@ -61,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()); @@ -98,6 +97,10 @@ return Result.fail("当前角色下还有用户,请重新分配角色"); } this.baseMapper.deleteById(id); + + QueryWrapper<RoleMenuEntity> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("role_id",id); + roleMenuMapper.delete(queryWrapper); return Result.ok("删除成功"); } @@ -113,15 +116,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); } @@ -154,6 +164,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