From 3eb801e80941304a3174d1b90a8d161b41eb3d67 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期五, 28 十月 2022 15:08:04 +0800
Subject: [PATCH] 动态菜单权限

---
 ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java |   52 +++++++++++++++++++++++++++-------------------------
 1 files changed, 27 insertions(+), 25 deletions(-)

diff --git a/ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java b/ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java
index 65afe5c..83b2858 100644
--- a/ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java
+++ b/ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java
@@ -133,34 +133,38 @@
         }
         //缁戝畾鑿滃崟浜庣敤鎴�
         if (!ids.isEmpty()) {
-            Integer size = 0;
-            Long maxId = null;
+            ArrayList<UmsRoleMenuRelation> umsRoleMenuRelations = new ArrayList<>();
             for (Long id : ids) {
-                if (size < umsRoleMenuRelationMapper
+                umsRoleMenuRelations.addAll(umsRoleMenuRelationMapper
                         .selectList(new LambdaQueryWrapper<UmsRoleMenuRelation>()
-                                .eq(UmsRoleMenuRelation::getRoleId, id)).size()) {
-                    size = umsRoleMenuRelationMapper
-                            .selectList(new LambdaQueryWrapper<UmsRoleMenuRelation>()
-                                    .eq(UmsRoleMenuRelation::getRoleId, id)).size();
-                    maxId = id;
-                }
+                                .eq(UmsRoleMenuRelation::getRoleId, id)));
             }
-            umsRoleMenuRelationMapper
-                    .selectList(new LambdaQueryWrapper<UmsRoleMenuRelation>()
-                            .eq(UmsRoleMenuRelation::getRoleId, maxId))
+            umsRoleMenuRelations
+                    .stream()
+                    .map(item->item.getMenuId())
+                    .collect(Collectors.toList())
+                    .stream()
+                    .distinct()
+                    .collect(Collectors.toList())
                     .stream()
                     .forEach(item -> {
                         AdminMenuRelation adminMenuRelation = new AdminMenuRelation();
                         adminMenuRelation.setAdminId(umsAdmin.getId());
-                        adminMenuRelation.setMenuId(item.getMenuId());
-                        adminMenuRelation.setSort(umsMenuMapper.selectOne(new LambdaQueryWrapper<UmsMenu>().eq(UmsMenu::getId, item.getMenuId())).getSort());
+                        adminMenuRelation.setMenuId(item);
                         adminMenuRelationMapper.insert(adminMenuRelation);
                     });
         }
         //瀵圭敤鎴峰悕绯荤粺榛樿娣诲姞
         //umsAdmin.setNickName(RandomUtils.getUserId(umsAdmin.getId()));
-        baseMapper.updateById(umsAdmin);
+        //娣诲姞閮ㄩ棬
+        UmsDepartManage departManage = new UmsDepartManage();
+        departManage.setUserId(umsAdmin.getId());
+        departManage.setDepartId(umsAdmin.getDepartmentId());
+        departManage.setCreateTime(new Date());
+        departManage.setUpdateTime(new Date());
+        umsDepartManageMapper.insert(departManage);
 
+        baseMapper.updateById(umsAdmin);
         return umsAdmin;
     }
 
@@ -291,16 +295,14 @@
     }
 
     @Override
-    public List<UmsResource> getResourceList(Long adminId) {
-        List<UmsResource> resourceList = getCacheService().getResourceList(adminId);
-        if (CollUtil.isNotEmpty(resourceList)) {
-            return resourceList;
+    public List<UmsMenu> getResourceList(Long adminId) {
+        List<UmsMenu> umsMenuList = getCacheService().getResourceList(adminId);
+        if (CollUtil.isNotEmpty(umsMenuList)) {
+            return umsMenuList;
         }
-        resourceList = umsResourceMapper.getResourceList(adminId);
-        if (CollUtil.isNotEmpty(resourceList)) {
-            getCacheService().setResourceList(adminId, resourceList);
-        }
-        return resourceList;
+        umsMenuList = umsMenuMapper.getMenuList(adminId);
+            getCacheService().setResourceList(adminId, umsMenuList);
+        return umsMenuList;
     }
 
     @Override
@@ -331,7 +333,7 @@
         //鑾峰彇鐢ㄦ埛淇℃伅
         UmsAdmin admin = getAdminByUsername(username);
         if (admin != null) {
-            List<UmsResource> resourceList = getResourceList(admin.getId());
+            List<UmsMenu> resourceList = getResourceList(admin.getId());
             return new AdminUserDetails(admin, resourceList);
         }
         throw new UsernameNotFoundException("鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒");

--
Gitblit v1.8.0