From 187bca28db728904da9a9136bcae751767879045 Mon Sep 17 00:00:00 2001
From: wl <173@qq.com>
Date: 星期三, 12 十月 2022 15:50:44 +0800
Subject: [PATCH] 菜单权限 和启用菜单 然后日志功能

---
 ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java |   72 +++++++++++++++++++++++++++++++----
 1 files changed, 63 insertions(+), 9 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 0774bac..c4f418f 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
@@ -13,12 +13,8 @@
 import com.ycl.entity.depart.UmsDepart;
 import com.ycl.entity.user.*;
 import com.ycl.exception.Asserts;
-import com.ycl.mapper.user.UmsAdminLoginLogMapper;
-import com.ycl.mapper.user.UmsAdminMapper;
-import com.ycl.mapper.user.UmsResourceMapper;
-import com.ycl.mapper.user.UmsRoleMapper;
+import com.ycl.mapper.user.*;
 import com.ycl.service.depart.UmsDepartService;
-import com.ycl.service.user.UmsDepartManageService;
 import com.ycl.service.redis.RedisService;
 import com.ycl.service.user.UmsAdminCacheService;
 import com.ycl.service.user.UmsAdminRoleRelationService;
@@ -53,6 +49,7 @@
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 鍚庡彴绠$悊鍛樼鐞哠ervice瀹炵幇绫�
@@ -76,9 +73,13 @@
     @Resource
     private UmsDepartService departService;
     @Resource
-    private UmsDepartManageService umsAdminDepartService;
-    @Resource
     private RedisService redisService;
+    @Resource
+    private UmsDepartManageMapper umsDepartManageMapper;
+    @Resource
+    UmsRoleMenuRelationMapper umsRoleMenuRelationMapper;
+    @Resource
+    AdminMenuRelationMapper adminMenuRelationMapper;
 
     @Override
     public UmsAdmin getAdminByUsername(String username) {
@@ -115,6 +116,44 @@
         String encodePassword = passwordEncoder.encode(umsAdmin.getPassword());
         umsAdmin.setPassword(encodePassword);
         baseMapper.insert(umsAdmin);
+
+        //娣诲姞瑙掕壊鎺堟潈
+        List<Long> ids = umsAdminParam.getRoleIds();
+        if (!ids.isEmpty()) {
+            List<UmsAdminRoleRelation> roleIds = new ArrayList<>();
+            for (Long id : ids) {
+                UmsAdminRoleRelation urr = new UmsAdminRoleRelation();
+                urr.setAdminId(umsAdmin.getId());
+                urr.setRoleId(id);
+                roleIds.add(urr);
+            }
+            umsAdminRoleRelationService.saveBatch(roleIds);
+        }
+        //缁戝畾鑿滃崟浜庣敤鎴�
+        if (!ids.isEmpty()) {
+            Integer size = 0;
+            Long maxId = null;
+            for (Long id : ids) {
+                if (size < umsRoleMenuRelationMapper
+                        .selectList(new LambdaQueryWrapper<UmsRoleMenuRelation>()
+                                .eq(UmsRoleMenuRelation::getRoleId, id)).size()) {
+                    size = umsRoleMenuRelationMapper
+                            .selectList(new LambdaQueryWrapper<UmsRoleMenuRelation>()
+                                    .eq(UmsRoleMenuRelation::getRoleId, id)).size();
+                    maxId = id;
+                }
+            }
+            umsRoleMenuRelationMapper
+                    .selectList(new LambdaQueryWrapper<UmsRoleMenuRelation>()
+                            .eq(UmsRoleMenuRelation::getRoleId, maxId))
+                    .stream()
+                    .forEach(item->{
+                        AdminMenuRelation adminMenuRelation = new AdminMenuRelation();
+                        adminMenuRelation.setAdminId(umsAdmin.getId());
+                        adminMenuRelation.setMenuId(item.getMenuId());
+                        adminMenuRelationMapper.insert(adminMenuRelation);
+                    });
+        }
         //瀵圭敤鎴峰悕绯荤粺榛樿娣诲姞
         umsAdmin.setNickName(RandomUtils.getUserId(umsAdmin.getId()));
         baseMapper.updateById(umsAdmin);
@@ -329,6 +368,9 @@
                 if (null != umsDepart) {
                     e.setDepartName(umsDepart.getDepartName());
                 }
+                //鑾峰彇瑙掕壊鍒楄〃
+                List<UmsRole> roles = umsRoleMapper.getRoleList(e.getId());
+                e.setRoles(roles);
             });
         }
         return page1;
@@ -345,12 +387,24 @@
     public boolean updateStatusBatch(List<Long> ids, Integer status) {
         List<UmsAdmin> users = new ArrayList<>();
         for (Long id : ids) {
-            UmsAdmin umsAdmin =  UmsAdmin.builder().
+            UmsAdmin umsAdmin = UmsAdmin.builder().
                     id(id).status(status).build();
             users.add(umsAdmin);
         }
-        updateBatchById(users,users.size());
+        updateBatchById(users, users.size());
         getCacheService().delBatchAdmin(ids);
         return true;
     }
+
+    @Override
+    public List<UmsAdmin> getDepartUser(Long departId) {
+        QueryWrapper<UmsDepartManage> wrapper = new QueryWrapper<>();
+        wrapper.lambda().eq(UmsDepartManage::getDepartId, departId);
+        List<UmsDepartManage> list = umsDepartManageMapper.selectList(wrapper);
+        List<Long> userIds = list.stream().map(UmsDepartManage::getUserId).collect(Collectors.toList());
+        QueryWrapper<UmsAdmin> wrapperUser = new QueryWrapper<>();
+        wrapperUser.in("id", userIds);
+        List<UmsAdmin> adminList = baseMapper.selectList(wrapperUser);
+        return adminList;
+    }
 }

--
Gitblit v1.8.0