Browse Source

权限相关

gaodm 5 years atrás
parent
commit
17764539a1

+ 33 - 0
src/main/java/com/diagbot/dto/SysUserPermissionDTO.java

@@ -0,0 +1,33 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/4/27 17:14
+ */
+@Getter
+@Setter
+public class SysUserPermissionDTO {
+    /**
+     * 菜单ID
+     */
+    private Long menuId;
+
+    /**
+     * 权限ID
+     */
+    private Long permissionId;
+
+    /**
+     * 资源名称
+     */
+    private String name;
+
+    /**
+     * 资源编码
+     */
+    private String code;
+}

+ 2 - 1
src/main/java/com/diagbot/entity/wrapper/SysMenuWrapper.java

@@ -1,5 +1,6 @@
 package com.diagbot.entity.wrapper;
 
+import com.diagbot.dto.SysUserPermissionDTO;
 import com.diagbot.entity.SysMenu;
 import lombok.Getter;
 import lombok.Setter;
@@ -15,6 +16,6 @@ import java.util.List;
 @Getter
 @Setter
 public class SysMenuWrapper extends SysMenu {
-
+    private List<SysUserPermissionDTO> sysUserPermissionDTOList = new ArrayList<>();
     private List<SysMenuWrapper> subMenuList = new ArrayList<>();
 }

+ 12 - 3
src/main/java/com/diagbot/facade/SysUserFacade.java

@@ -5,6 +5,7 @@ import com.diagbot.client.AuthServiceClient;
 import com.diagbot.dto.BasHospitalInfoDTO;
 import com.diagbot.dto.JwtDTO;
 import com.diagbot.dto.LoginDTO;
+import com.diagbot.dto.SysUserPermissionDTO;
 import com.diagbot.dto.UserLoginDTO;
 import com.diagbot.entity.BasHospitalInfo;
 import com.diagbot.entity.JWT;
@@ -227,10 +228,12 @@ public class SysUserFacade extends SysUserServiceImpl {
 
         //添加菜单信息
         List<SysMenuWrapper> menuList = sysMenuFacade.getByRole(user.getId());
+        List<SysUserPermissionDTO> sysUserPermissionDTOList = sysMenuFacade.getByRolePermission(user.getId());
         Map<Long, List<SysMenuWrapper>> menuMap = EntityUtil.makeEntityListMap(menuList, "parentId");
+        Map<Long, List<SysUserPermissionDTO>> menuPermissionMap = EntityUtil.makeEntityListMap(sysUserPermissionDTOList, "menuId");
         List<SysMenuWrapper> menuRes = menuMap.get(-1L);
         for (SysMenuWrapper bean : menuRes) {
-            getSonMenu(bean, menuMap);
+            getSonMenu(bean, menuMap, menuPermissionMap);
         }
         data.setMenuWrappers(menuRes);
         return data;
@@ -244,13 +247,19 @@ public class SysUserFacade extends SysUserServiceImpl {
      * @param menuMap 菜单集
      * @return 菜单结构
      */
-    public List<SysMenuWrapper> getSonMenu(SysMenuWrapper menu, Map<Long, List<SysMenuWrapper>> menuMap) {
+    public List<SysMenuWrapper> getSonMenu(SysMenuWrapper menu,
+                                           Map<Long, List<SysMenuWrapper>> menuMap,
+                                           Map<Long, List<SysUserPermissionDTO>> menuPermissionMap) {
         List<SysMenuWrapper> res = new ArrayList<>();
         List<SysMenuWrapper> list = menuMap.get(menu.getId());
+        List<SysUserPermissionDTO> listPermission = menuPermissionMap.get(menu.getId());
+        if (ListUtil.isNotEmpty(listPermission)){
+            menu.setSysUserPermissionDTOList(listPermission);
+        }
         if (ListUtil.isNotEmpty(list)) {
             menu.setSubMenuList(list);
             for (SysMenuWrapper bean : list) {
-                getSonMenu(bean, menuMap);
+                getSonMenu(bean, menuMap, menuPermissionMap);
             }
         }
         return res;

+ 3 - 0
src/main/java/com/diagbot/mapper/SysMenuMapper.java

@@ -1,5 +1,6 @@
 package com.diagbot.mapper;
 
+import com.diagbot.dto.SysUserPermissionDTO;
 import com.diagbot.entity.SysMenu;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.diagbot.entity.wrapper.SysMenuWrapper;
@@ -29,4 +30,6 @@ public interface SysMenuMapper extends BaseMapper<SysMenu> {
      * @Date: 2018/9/14 13:59
      */
     public List<SysMenuWrapper> getSubMenuById(Long id);
+
+    public List<SysUserPermissionDTO> getByRolePermission(Long userId);
 }

+ 3 - 0
src/main/java/com/diagbot/service/SysMenuService.java

@@ -1,5 +1,6 @@
 package com.diagbot.service;
 
+import com.diagbot.dto.SysUserPermissionDTO;
 import com.diagbot.entity.SysMenu;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.entity.wrapper.SysMenuWrapper;
@@ -30,4 +31,6 @@ public interface SysMenuService extends IService<SysMenu> {
      * @Date: 2018/9/17 15:44
      */
     public List<SysMenuWrapper> getSubMenuById(Long id);
+
+    public List<SysUserPermissionDTO> getByRolePermission(Long userId);
 }

+ 6 - 0
src/main/java/com/diagbot/service/impl/SysMenuServiceImpl.java

@@ -1,5 +1,6 @@
 package com.diagbot.service.impl;
 
+import com.diagbot.dto.SysUserPermissionDTO;
 import com.diagbot.entity.SysMenu;
 import com.diagbot.entity.wrapper.SysMenuWrapper;
 import com.diagbot.mapper.SysMenuMapper;
@@ -42,4 +43,9 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
     public List<SysMenuWrapper> getSubMenuById(Long id) {
         return baseMapper.getSubMenuById(id);
     }
+
+    @Override
+    public List<SysUserPermissionDTO> getByRolePermission(Long userId){
+        return baseMapper.getByRolePermission(userId);
+    }
 }

+ 23 - 0
src/main/resources/mapper/SysMenuMapper.xml

@@ -28,4 +28,27 @@
         select a.* from sys_menu a where a.is_deleted = 'N' and parent_id = #{id} ORDER BY order_no
     </select>
 
+    <select id="getByRolePermission" resultType="com.diagbot.dto.SysUserPermissionDTO">
+        SELECT DISTINCT
+            a.menu_id AS menuId,
+            d.id AS permissionId,
+            d.`name` AS NAME,
+            d. CODE AS CODE
+        FROM
+            sys_menu_permission a,
+            sys_role_permission b,
+            sys_user_role c,
+            sys_permission d
+        WHERE
+            a.permission_id = b.permission_id
+        AND b.role_id
+        AND b.role_id = c.role_id
+        AND d.id = b.permission_id
+        AND c.user_id = #{userId}
+        AND a.is_deleted = 'N'
+        AND b.is_deleted = 'N'
+        AND c.is_deleted = 'N'
+        AND d.is_deleted = 'N'
+    </select>
+
 </mapper>

+ 1 - 1
src/main/resources/mapper/SysRoleMapper.xml

@@ -18,7 +18,7 @@
     </resultMap>
 
     <select id="getMenuPermission" parameterType="com.diagbot.vo.SysRoleMenuQueryVO" resultType="com.diagbot.dto.SysMenuPermissionDTO">
-        SELECT
+        SELECT DISTINCT
             t4.menuId AS menuId,
             t4.menuName AS menuName,
             t4.parentId AS parentId,