From 79ad74b1ce07b96a2d93ac20e86ac46e00c9f2a9 Mon Sep 17 00:00:00 2001
From: wl <173@qq.com>
Date: 星期四, 20 十月 2022 17:55:21 +0800
Subject: [PATCH] 修改用户获取权限

---
 ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java          |   25 +++++-------
 ycl-common/src/main/java/com/ycl/mapper/user/UmsAdminRoleRelationMapper.java         |    5 ++
 ycl-common/src/main/resources/mapper/user/UmsAdminRoleRelationMapper.xml             |   14 +++++-
 ycl-platform/src/main/java/com/ycl/controller/portal/UmsWebsitePortalController.java |    6 ++
 ycl-common/src/main/java/com/ycl/service/user/UmsMenuService.java                    |    2 +
 ycl-common/src/main/java/com/ycl/service/user/impl/UmsMenuServiceImpl.java           |   21 ++++++++++
 6 files changed, 54 insertions(+), 19 deletions(-)

diff --git a/ycl-common/src/main/java/com/ycl/mapper/user/UmsAdminRoleRelationMapper.java b/ycl-common/src/main/java/com/ycl/mapper/user/UmsAdminRoleRelationMapper.java
index b8f06c7..b7786d6 100644
--- a/ycl-common/src/main/java/com/ycl/mapper/user/UmsAdminRoleRelationMapper.java
+++ b/ycl-common/src/main/java/com/ycl/mapper/user/UmsAdminRoleRelationMapper.java
@@ -2,6 +2,9 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ycl.entity.user.UmsAdminRoleRelation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -10,5 +13,5 @@
  *
  */
 public interface UmsAdminRoleRelationMapper extends BaseMapper<UmsAdminRoleRelation> {
-
+    List<String> selectPermissionById(@Param("id")Long id);
 }
diff --git a/ycl-common/src/main/java/com/ycl/service/user/UmsMenuService.java b/ycl-common/src/main/java/com/ycl/service/user/UmsMenuService.java
index 70ed2e3..ee55ce7 100644
--- a/ycl-common/src/main/java/com/ycl/service/user/UmsMenuService.java
+++ b/ycl-common/src/main/java/com/ycl/service/user/UmsMenuService.java
@@ -41,4 +41,6 @@
 
 
     List<UmsMenuVo> ListTreeMyself(Long id);
+
+    String getPermission(Long userId);
 }
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..bb6d7fe 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,27 +133,24 @@
         }
         //缁戝畾鑿滃崟浜庣敤鎴�
         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);
                     });
         }
diff --git a/ycl-common/src/main/java/com/ycl/service/user/impl/UmsMenuServiceImpl.java b/ycl-common/src/main/java/com/ycl/service/user/impl/UmsMenuServiceImpl.java
index 1ce1c77..03238c5 100644
--- a/ycl-common/src/main/java/com/ycl/service/user/impl/UmsMenuServiceImpl.java
+++ b/ycl-common/src/main/java/com/ycl/service/user/impl/UmsMenuServiceImpl.java
@@ -7,6 +7,7 @@
 import com.ycl.entity.user.UmsMenu;
 import com.ycl.entity.user.vo.UmsMenuVo;
 import com.ycl.mapper.user.AdminMenuRelationMapper;
+import com.ycl.mapper.user.UmsAdminRoleRelationMapper;
 import com.ycl.mapper.user.UmsMenuMapper;
 import com.ycl.service.user.UmsMenuService;
 import org.springframework.beans.BeanUtils;
@@ -28,6 +29,8 @@
     AdminMenuRelationMapper adminMenuRelationMapper;
     @Resource
     UmsMenuMapper umsMenuMapper;
+    @Resource
+    UmsAdminRoleRelationMapper umsAdminRoleRelationMapper;
 
     @Override
     public boolean create(UmsMenu umsMenu) {
@@ -105,6 +108,24 @@
                 .collect(Collectors.toList());
     }
 
+    @Override
+    public String getPermission(Long userId) {
+        List<String> permission = umsAdminRoleRelationMapper.selectPermissionById(userId);
+        if (permission.size()<2){
+            return permission.get(0);
+        }else {
+            if (permission.contains("鎿嶄綔涓旀煡鐪�")){
+                return "operation and view";
+            }
+            else if (permission.contains("鍙搷浣�")&&!permission.contains("浠呮煡鐪�")){
+                return "operation";
+            }
+            else if (permission.contains("浠呮煡鐪�")&&!permission.contains("鍙搷浣�")){
+                return "view";
+            }else return "operation and view";
+        }
+    }
+
     /**
      * 灏哢msMenu杞寲涓篣msMenuNode骞惰缃甤hildren灞炴��
      */
diff --git a/ycl-common/src/main/resources/mapper/user/UmsAdminRoleRelationMapper.xml b/ycl-common/src/main/resources/mapper/user/UmsAdminRoleRelationMapper.xml
index 091d309..fc81f7e 100644
--- a/ycl-common/src/main/resources/mapper/user/UmsAdminRoleRelationMapper.xml
+++ b/ycl-common/src/main/resources/mapper/user/UmsAdminRoleRelationMapper.xml
@@ -4,9 +4,17 @@
 
     <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
     <resultMap id="BaseResultMap" type="com.ycl.entity.user.UmsAdminRoleRelation">
-        <id column="id" property="id" />
-        <result column="admin_id" property="adminId" />
-        <result column="role_id" property="roleId" />
+        <id column="id" property="id"/>
+        <result column="admin_id" property="adminId"/>
+        <result column="role_id" property="roleId"/>
     </resultMap>
 
+    <select id="selectPermissionById" parameterType="java.lang.Long" resultType="java.lang.String">
+        SELECT t3.`name`
+        FROM `ums_admin_role_relation` AS t1
+                 JOIN ums_role t2 on t1.role_id = t2.id
+                 JOIN ums_data_dictionary t3 ON t2.type = t3.id
+        WHERE t1.admin_id = #{id}
+    </select>
+
 </mapper>
diff --git a/ycl-platform/src/main/java/com/ycl/controller/portal/UmsWebsitePortalController.java b/ycl-platform/src/main/java/com/ycl/controller/portal/UmsWebsitePortalController.java
index 3cb4d0f..6df17ef 100644
--- a/ycl-platform/src/main/java/com/ycl/controller/portal/UmsWebsitePortalController.java
+++ b/ycl-platform/src/main/java/com/ycl/controller/portal/UmsWebsitePortalController.java
@@ -22,6 +22,7 @@
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.HashMap;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -112,7 +113,10 @@
     @GetMapping("/menu/search_myself")
     public CommonResult searchMenusMyself() {
         AdminUserDetails user = (AdminUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
-        return CommonResult.success(umsMenuService.ListTreeMyself(user.getUserId()));
+        HashMap<String, Object> map = new HashMap<>();
+        map.put("menu",umsMenuService.ListTreeMyself(user.getUserId()));
+        map.put("permission",umsMenuService.getPermission(user.getUserId()));
+        return CommonResult.success(map);
     }
 
     @ApiOperation("鑿滃崟鏉冮檺-涓汉鑿滃崟鐘舵�佷慨鏀�")

--
Gitblit v1.8.0