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