From 49dbcdadd860b7613063ee618fbe38a0593d5bd9 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 11 Jul 2022 15:45:29 +0800
Subject: [PATCH] fix
---
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