| | |
| | | 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; |
| | |
| | | @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); |
| | |
| | | @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()); |
| | |
| | | return Result.fail("当前角色下还有用户,请重新分配角色"); |
| | | } |
| | | this.baseMapper.deleteById(id); |
| | | |
| | | QueryWrapper<RoleMenuEntity> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.eq("role_id",id); |
| | | roleMenuMapper.delete(queryWrapper); |
| | | return Result.ok("删除成功"); |
| | | } |
| | | |
| | |
| | | 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); |
| | | } |
| | |
| | | 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); |