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); } ycl-common/src/main/java/com/ycl/service/user/UmsMenuService.java
@@ -41,4 +41,6 @@ List<UmsMenuVo> ListTreeMyself(Long id); String getPermission(Long userId); } 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); }); } 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"; } } /** * 将UmsMenu转化为UmsMenuNode并设置children属性 */ 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> 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("菜单权限-个人菜单状态修改")