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