From b9a976e715d71771de006bf50ad734859d1a3e35 Mon Sep 17 00:00:00 2001 From: huangfeng Date: Wed, 20 Mar 2024 14:22:54 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=99=BB=E5=85=A5=E6=97=B6=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E8=8F=9C=E5=8D=95=E8=B5=84=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shxy/xymanager_common/entity/SysUser.java | 4 +++ .../impl/RolePermissionServiceImpl.java | 25 ++++++++++++++++--- .../impl/UserServiceImpl.java | 10 ++++++++ .../service/RolePermissionService.java | 2 ++ 4 files changed, 37 insertions(+), 4 deletions(-) diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/SysUser.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/SysUser.java index 7f8834e..d937fcd 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/SysUser.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/SysUser.java @@ -7,6 +7,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; +import java.util.List; @Data @JsonInclude(JsonInclude.Include.NON_NULL) @@ -57,4 +58,7 @@ public class SysUser { @ApiModelProperty(value="权限信息") PermissionDetail permission; + @ApiModelProperty(value="菜单资源信息") + List resources; + } diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/RolePermissionServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/RolePermissionServiceImpl.java index ff069dd..5871885 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/RolePermissionServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/RolePermissionServiceImpl.java @@ -1,13 +1,11 @@ package com.shxy.xymanager_service.impl; import com.shxy.xymanager_common.bean.PermissionDetail; -import com.shxy.xymanager_common.entity.TbPermission; -import com.shxy.xymanager_common.entity.TbPermissionExample; -import com.shxy.xymanager_common.entity.TbRoleResource; -import com.shxy.xymanager_common.entity.TbRoleResourceExample; +import com.shxy.xymanager_common.entity.*; import com.shxy.xymanager_common.enums.PermissionDetailEnum; import com.shxy.xymanager_dao.dao.TbPermissionMapper; import com.shxy.xymanager_dao.dao.TbRoleResourceMapper; +import com.shxy.xymanager_service.service.ResourceService; import com.shxy.xymanager_service.service.RolePermissionService; import lombok.extern.slf4j.Slf4j; import org.springframework.cache.annotation.CacheEvict; @@ -15,6 +13,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; @Service @@ -24,6 +23,8 @@ public class RolePermissionServiceImpl implements RolePermissionService { @Resource TbRoleResourceMapper mapper; + @Resource + ResourceService resourceService; @Override @@ -50,4 +51,20 @@ public class RolePermissionServiceImpl implements RolePermissionService { } } + @Override + public List getPermitResource(Integer roleId) { + List result = new ArrayList<>(); + List resourceList = resourceService.listAll(); + List list = this.getPermission(roleId); + for (TbRoleResource item : list) { + for (TbResource resource : resourceList) { + if (resource.getId().equals(item.getResourceId())) { + result.add(resource); + break; + } + } + } + return result; + } + } diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/UserServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/UserServiceImpl.java index c46fddc..d392f3f 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/UserServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/UserServiceImpl.java @@ -6,6 +6,7 @@ import com.shxy.xymanager_common.config.CustomRsaProperties; import com.shxy.xymanager_common.constant.HttpStatusCode; import com.shxy.xymanager_common.entity.SysUser; import com.shxy.xymanager_common.dto.TerminalsAndStatusDto; +import com.shxy.xymanager_common.entity.TbResource; import com.shxy.xymanager_common.enums.CommonStatus; import com.shxy.xymanager_common.exception.ApiException; import com.shxy.xymanager_common.exception.Asserts; @@ -15,6 +16,7 @@ import com.shxy.xymanager_common.util.StringUtils; import com.shxy.xymanager_common.util.TokenUtil; import com.shxy.xymanager_dao.dao.*; import com.shxy.xymanager_service.service.PermissionService; +import com.shxy.xymanager_service.service.RolePermissionService; import com.shxy.xymanager_service.service.SysUserService; import com.shxy.xymanager_service.service.UserService; import lombok.extern.slf4j.Slf4j; @@ -35,6 +37,8 @@ public class UserServiceImpl implements UserService { @Resource PermissionService permissionService; + @Resource + RolePermissionService rolePermissionService; @Autowired TerminalsDao terminalsDao; @@ -59,6 +63,12 @@ public class UserServiceImpl implements UserService { } String token = tokenUtil.generateToken(user.getUid()); user.setToken(token); + + if (SUPER_ADMIN != user.getRole()) { + // 获取菜单资源 + List resourceList = rolePermissionService.getPermitResource(user.getRole()); + user.setResources(resourceList); + } return user; } diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/RolePermissionService.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/RolePermissionService.java index 4e02fbb..e927e79 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/service/RolePermissionService.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/service/RolePermissionService.java @@ -1,5 +1,6 @@ package com.shxy.xymanager_service.service; +import com.shxy.xymanager_common.entity.TbResource; import com.shxy.xymanager_common.entity.TbRoleResource; import java.util.List; @@ -10,4 +11,5 @@ public interface RolePermissionService { void changePermission(Integer roleId, List list) throws Exception; + List getPermitResource(Integer roleId); }