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