Bladeren bron

权限相关

gaodm 5 jaren geleden
bovenliggende
commit
e56b175d5e

+ 21 - 0
src/main/java/com/diagbot/dto/SysMenuPermissionDTO.java

@@ -0,0 +1,21 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/4/27 13:40
+ */
+@Getter
+@Setter
+public class SysMenuPermissionDTO {
+    private Long menuId;
+    private String menuName;
+    private Long parentId;
+    private Integer haveMenu;
+    private Long permissionId;
+    private String permissionName;
+    private Integer havePermission;
+}

+ 17 - 0
src/main/java/com/diagbot/dto/SysPermissionDTO.java

@@ -0,0 +1,17 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/4/27 13:40
+ */
+@Getter
+@Setter
+public class SysPermissionDTO {
+    private Long permissionId;
+    private String permissionName;
+    private Integer havePermission;
+}

+ 55 - 0
src/main/java/com/diagbot/dto/SysRoleDTO.java

@@ -0,0 +1,55 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/4/27 10:59
+ */
+@Getter
+@Setter
+public class SysRoleDTO {
+    /**
+     * 角色ID
+     */
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 角色名称
+     */
+    private String name;
+
+    /**
+     * 角色描述
+     */
+    private String descritpion;
+}

+ 24 - 0
src/main/java/com/diagbot/dto/SysRoleMenuDTO.java

@@ -0,0 +1,24 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/4/27 11:06
+ */
+@Getter
+@Setter
+public class SysRoleMenuDTO {
+    private Long menuId;
+    private String menuName;
+    private Long parentId;
+    private Integer haveMenu;
+    //权限
+    private List<SysPermissionDTO> sysPermissionDTOList;
+    //子菜单
+    private List<SysRoleMenuDTO> sonMenuDTOList;
+}

+ 32 - 20
src/main/java/com/diagbot/entity/SysRole.java

@@ -1,10 +1,12 @@
 package com.diagbot.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * <p>
@@ -32,12 +34,12 @@ public class SysRole implements Serializable {
     /**
      * 记录创建时间
      */
-    private LocalDateTime gmtCreate;
+    private Date gmtCreate;
 
     /**
      * 记录修改时间,如果时间是1970年则表示纪录未修改
      */
-    private LocalDateTime gmtModified;
+    private Date gmtModified;
 
     /**
      * 创建人,0表示无创建人值
@@ -83,6 +85,7 @@ public class SysRole implements Serializable {
     public void setId(Long id) {
         this.id = id;
     }
+
     public String getIsDeleted() {
         return isDeleted;
     }
@@ -90,20 +93,23 @@ public class SysRole implements Serializable {
     public void setIsDeleted(String isDeleted) {
         this.isDeleted = isDeleted;
     }
-    public LocalDateTime getGmtCreate() {
+
+    public Date getGmtCreate() {
         return gmtCreate;
     }
 
-    public void setGmtCreate(LocalDateTime gmtCreate) {
+    public void setGmtCreate(Date gmtCreate) {
         this.gmtCreate = gmtCreate;
     }
-    public LocalDateTime getGmtModified() {
+
+    public Date getGmtModified() {
         return gmtModified;
     }
 
-    public void setGmtModified(LocalDateTime gmtModified) {
+    public void setGmtModified(Date gmtModified) {
         this.gmtModified = gmtModified;
     }
+
     public String getCreator() {
         return creator;
     }
@@ -111,6 +117,7 @@ public class SysRole implements Serializable {
     public void setCreator(String creator) {
         this.creator = creator;
     }
+
     public String getModifier() {
         return modifier;
     }
@@ -118,6 +125,7 @@ public class SysRole implements Serializable {
     public void setModifier(String modifier) {
         this.modifier = modifier;
     }
+
     public String getName() {
         return name;
     }
@@ -125,6 +133,7 @@ public class SysRole implements Serializable {
     public void setName(String name) {
         this.name = name;
     }
+
     public Integer getRoleLevel() {
         return roleLevel;
     }
@@ -132,6 +141,7 @@ public class SysRole implements Serializable {
     public void setRoleLevel(Integer roleLevel) {
         this.roleLevel = roleLevel;
     }
+
     public String getDescritpion() {
         return descritpion;
     }
@@ -139,6 +149,7 @@ public class SysRole implements Serializable {
     public void setDescritpion(String descritpion) {
         this.descritpion = descritpion;
     }
+
     public String getMenuItems() {
         return menuItems;
     }
@@ -146,6 +157,7 @@ public class SysRole implements Serializable {
     public void setMenuItems(String menuItems) {
         this.menuItems = menuItems;
     }
+
     public String getRemark() {
         return remark;
     }
@@ -157,17 +169,17 @@ public class SysRole implements Serializable {
     @Override
     public String toString() {
         return "SysRole{" +
-            "id=" + id +
-            ", isDeleted=" + isDeleted +
-            ", gmtCreate=" + gmtCreate +
-            ", gmtModified=" + gmtModified +
-            ", creator=" + creator +
-            ", modifier=" + modifier +
-            ", name=" + name +
-            ", roleLevel=" + roleLevel +
-            ", descritpion=" + descritpion +
-            ", menuItems=" + menuItems +
-            ", remark=" + remark +
-        "}";
+                "id=" + id +
+                ", isDeleted=" + isDeleted +
+                ", gmtCreate=" + gmtCreate +
+                ", gmtModified=" + gmtModified +
+                ", creator=" + creator +
+                ", modifier=" + modifier +
+                ", name=" + name +
+                ", roleLevel=" + roleLevel +
+                ", descritpion=" + descritpion +
+                ", menuItems=" + menuItems +
+                ", remark=" + remark +
+                "}";
     }
 }

+ 27 - 17
src/main/java/com/diagbot/entity/SysTaskCron.java

@@ -2,8 +2,9 @@ package com.diagbot.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
+
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * <p>
@@ -31,12 +32,12 @@ public class SysTaskCron implements Serializable {
     /**
      * 记录创建时间
      */
-    private LocalDateTime gmtCreate;
+    private Date gmtCreate;
 
     /**
      * 记录修改时间,如果时间是1970年则表示纪录未修改
      */
-    private LocalDateTime gmtModified;
+    private Date gmtModified;
 
     /**
      * 创建人,0表示无创建人值
@@ -75,6 +76,7 @@ public class SysTaskCron implements Serializable {
     public void setId(Long id) {
         this.id = id;
     }
+
     public String getIsDeleted() {
         return isDeleted;
     }
@@ -82,20 +84,23 @@ public class SysTaskCron implements Serializable {
     public void setIsDeleted(String isDeleted) {
         this.isDeleted = isDeleted;
     }
-    public LocalDateTime getGmtCreate() {
+
+    public Date getGmtCreate() {
         return gmtCreate;
     }
 
-    public void setGmtCreate(LocalDateTime gmtCreate) {
+    public void setGmtCreate(Date gmtCreate) {
         this.gmtCreate = gmtCreate;
     }
-    public LocalDateTime getGmtModified() {
+
+    public Date getGmtModified() {
         return gmtModified;
     }
 
-    public void setGmtModified(LocalDateTime gmtModified) {
+    public void setGmtModified(Date gmtModified) {
         this.gmtModified = gmtModified;
     }
+
     public String getCreator() {
         return creator;
     }
@@ -103,6 +108,7 @@ public class SysTaskCron implements Serializable {
     public void setCreator(String creator) {
         this.creator = creator;
     }
+
     public String getModifier() {
         return modifier;
     }
@@ -110,6 +116,7 @@ public class SysTaskCron implements Serializable {
     public void setModifier(String modifier) {
         this.modifier = modifier;
     }
+
     public String getCronCode() {
         return cronCode;
     }
@@ -117,6 +124,7 @@ public class SysTaskCron implements Serializable {
     public void setCronCode(String cronCode) {
         this.cronCode = cronCode;
     }
+
     public String getCron() {
         return cron;
     }
@@ -124,6 +132,7 @@ public class SysTaskCron implements Serializable {
     public void setCron(String cron) {
         this.cron = cron;
     }
+
     public Integer getIsUsed() {
         return isUsed;
     }
@@ -131,6 +140,7 @@ public class SysTaskCron implements Serializable {
     public void setIsUsed(Integer isUsed) {
         this.isUsed = isUsed;
     }
+
     public String getRemark() {
         return remark;
     }
@@ -142,15 +152,15 @@ public class SysTaskCron implements Serializable {
     @Override
     public String toString() {
         return "SysTaskCron{" +
-            "id=" + id +
-            ", isDeleted=" + isDeleted +
-            ", gmtCreate=" + gmtCreate +
-            ", gmtModified=" + gmtModified +
-            ", creator=" + creator +
-            ", modifier=" + modifier +
-            ", cronCode=" + cronCode +
-            ", cron=" + cron +
-            ", remark=" + remark +
-        "}";
+                "id=" + id +
+                ", isDeleted=" + isDeleted +
+                ", gmtCreate=" + gmtCreate +
+                ", gmtModified=" + gmtModified +
+                ", creator=" + creator +
+                ", modifier=" + modifier +
+                ", cronCode=" + cronCode +
+                ", cron=" + cron +
+                ", remark=" + remark +
+                "}";
     }
 }

+ 63 - 1
src/main/java/com/diagbot/facade/SysRoleFacade.java

@@ -1,12 +1,74 @@
 package com.diagbot.facade;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.SysMenuPermissionDTO;
+import com.diagbot.dto.SysRoleDTO;
+import com.diagbot.dto.SysRoleMenuDTO;
+import com.diagbot.entity.SysRole;
+import com.diagbot.entity.wrapper.SysMenuWrapper;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.impl.SysRoleServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.vo.SysRoleMenuQueryVO;
+import com.diagbot.vo.SysRoleMenuSaveVO;
+import com.diagbot.vo.SysRoleQueryVO;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
 /**
  * @Description:
  * @author: gaodm
  * @time: 2020/4/27 10:13
  */
 @Component
-public class SysRoleFacade {
+public class SysRoleFacade extends SysRoleServiceImpl {
+
+    public List<SysRoleDTO> page(SysRoleQueryVO sysRoleQueryVO) {
+        List<SysRole> sysRoleList = this.list(new QueryWrapper<SysRole>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .gt("id", -1L)
+        );
+        List<SysRoleDTO> sysRoleDTOList = BeanUtil.listCopyTo(sysRoleList, SysRoleDTO.class);
+        return sysRoleDTOList;
+    }
+
+//    public SysRoleMenuDTO getRoleMenu(SysRoleMenuQueryVO sysRoleMenuQueryVO) {
+//        List<SysMenuPermissionDTO> sysMenuPermissionDTOList = this.getMenuPermission(sysRoleMenuQueryVO);
+//        Map<Long, List<SysMenuPermissionDTO>> menuMap = EntityUtil.makeEntityListMap(sysMenuPermissionDTOList, "menuId");
+//        List<SysMenuPermissionDTO> menuRes = menuMap.get(-1L);
+//        for (SysMenuPermissionDTO bean : menuRes) {
+//            getSonMenu(bean, menuMap);
+//        }
+//        return null;
+//    }
+//
+//    /**
+//     * 递归获取菜单结构
+//     *
+//     * @param menu    当前菜单
+//     * @param menuMap 菜单集
+//     * @return 菜单结构
+//     */
+//    public List<SysRoleMenuDTO> getSonMenu(SysMenuPermissionDTO menu, Map<Long, List<SysMenuPermissionDTO>> menuMap) {
+//        List<SysMenuPermissionDTO> res = new ArrayList<>();
+//        List<SysMenuPermissionDTO> list = menuMap.get(menu.getMenuId());
+//        if (ListUtil.isNotEmpty(list)) {
+//            List
+//            menu.set(list);
+//            for (SysMenuWrapper bean : list) {
+//                getSonMenu(bean, menuMap);
+//            }
+//        }
+//        return res;
+//    }
+
+    public Boolean saveRoleMenu(SysRoleMenuSaveVO sysRoleMenuSaveVO) {
+        return null;
+    }
 }

+ 6 - 1
src/main/java/com/diagbot/mapper/SysRoleMapper.java

@@ -1,7 +1,12 @@
 package com.diagbot.mapper;
 
+import com.diagbot.dto.SysMenuPermissionDTO;
+import com.diagbot.dto.SysRoleMenuDTO;
 import com.diagbot.entity.SysRole;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.vo.SysRoleMenuQueryVO;
+
+import java.util.List;
 
 /**
  * <p>
@@ -12,5 +17,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2020-04-27
  */
 public interface SysRoleMapper extends BaseMapper<SysRole> {
-
+    List<SysMenuPermissionDTO> getMenuPermission(SysRoleMenuQueryVO sysRoleMenuQueryVO);
 }

+ 5 - 1
src/main/java/com/diagbot/service/SysRoleService.java

@@ -1,7 +1,11 @@
 package com.diagbot.service;
 
+import com.diagbot.dto.SysMenuPermissionDTO;
 import com.diagbot.entity.SysRole;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.vo.SysRoleMenuQueryVO;
+
+import java.util.List;
 
 /**
  * <p>
@@ -12,5 +16,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @since 2020-04-27
  */
 public interface SysRoleService extends IService<SysRole> {
-
+    List<SysMenuPermissionDTO> getMenuPermission(SysRoleMenuQueryVO sysRoleMenuQueryVO);
 }

+ 9 - 2
src/main/java/com/diagbot/service/impl/SysRoleServiceImpl.java

@@ -1,11 +1,15 @@
 package com.diagbot.service.impl;
 
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.dto.SysMenuPermissionDTO;
 import com.diagbot.entity.SysRole;
 import com.diagbot.mapper.SysRoleMapper;
 import com.diagbot.service.SysRoleService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.vo.SysRoleMenuQueryVO;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  * 系统角色表 服务实现类
@@ -16,5 +20,8 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> implements SysRoleService {
-
+    @Override
+    public List<SysMenuPermissionDTO> getMenuPermission(SysRoleMenuQueryVO sysRoleMenuQueryVO) {
+        return baseMapper.getMenuPermission(sysRoleMenuQueryVO);
+    }
 }

+ 16 - 0
src/main/java/com/diagbot/vo/SysRoleMenuQueryVO.java

@@ -0,0 +1,16 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/4/27 11:07
+ */
+@Getter
+@Setter
+public class SysRoleMenuQueryVO {
+    //角色ID
+    private Long roleId;
+}

+ 14 - 0
src/main/java/com/diagbot/vo/SysRoleMenuSaveVO.java

@@ -0,0 +1,14 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/4/27 11:07
+ */
+@Getter
+@Setter
+public class SysRoleMenuSaveVO {
+}

+ 14 - 0
src/main/java/com/diagbot/vo/SysRoleQueryVO.java

@@ -0,0 +1,14 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/4/27 11:09
+ */
+@Getter
+@Setter
+public class SysRoleQueryVO {
+}

+ 37 - 2
src/main/java/com/diagbot/web/SysRoleController.java

@@ -1,13 +1,24 @@
 package com.diagbot.web;
 
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.SysRoleDTO;
+import com.diagbot.dto.SysRoleMenuDTO;
 import com.diagbot.facade.SysRoleFacade;
+import com.diagbot.vo.SysRoleMenuQueryVO;
+import com.diagbot.vo.SysRoleMenuSaveVO;
+import com.diagbot.vo.SysRoleQueryVO;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 /**
  * <p>
  * 系统角色表 前端控制器
@@ -24,4 +35,28 @@ public class SysRoleController {
     @Autowired
     private SysRoleFacade sysRoleFacade;
 
+    @ApiOperation(value = "获取角色列表分页信息[by:gaodm]",
+            notes = "")
+    @PostMapping("/page")
+    @SysLogger("page")
+    public RespDTO<List<SysRoleDTO>> page(@RequestBody SysRoleQueryVO sysRoleQueryVO) {
+        return RespDTO.onSuc(sysRoleFacade.page(sysRoleQueryVO));
+    }
+
+    @ApiOperation(value = "获取角色菜权限单等数据[by:gaodm]",
+            notes = "")
+    @PostMapping("/getRoleMenu")
+    @SysLogger("getRoleMenu")
+    public RespDTO<SysRoleMenuDTO> getRoleMenu(@RequestBody SysRoleMenuQueryVO sysRoleMenuQueryVO) {
+        return RespDTO.onSuc(sysRoleFacade.getRoleMenu(sysRoleMenuQueryVO));
+    }
+
+    @ApiOperation(value = "修改角色菜单权限数据[by:gaodm]",
+            notes = "")
+    @PostMapping("/saveRoleMenu")
+    @SysLogger("saveRoleMenu")
+    @Transactional
+    public RespDTO<Boolean> saveRoleMenu(@RequestBody SysRoleMenuSaveVO sysRoleMenuSaveVO) {
+        return RespDTO.onSuc(sysRoleFacade.saveRoleMenu(sysRoleMenuSaveVO));
+    }
 }

+ 38 - 0
src/main/resources/mapper/SysRoleMapper.xml

@@ -17,4 +17,42 @@
         <result column="remark" property="remark" />
     </resultMap>
 
+    <select id="getMenuPermission" parameterType="com.diagbot.vo.SysRoleMenuQueryVO" resultType="com.diagbot.dto.SysMenuPermissionDTO">
+        SELECT
+            t4.menuId AS menuId,
+            t4.menuName AS menuName,
+            t4.parentId AS parentId,
+            t4.permissionId AS permissionId,
+            t4.permissionName AS permissionName,
+            t4.orderNo AS orderNo,
+            IF (IFNULL(t5.id, 0) = 0, 0, 1) AS haveMenu,
+            IF (IFNULL(t6.id, 0) = 0, 0, 1) AS havePermission
+        FROM
+            (
+                SELECT
+                    t2.id AS menuId,
+                    t2.`name` AS menuName,
+                    t2.parent_id AS parentId,
+                    t3.id AS permissionId,
+                    t3.`name` AS permissionName,
+                    t2.order_no AS orderNo
+                FROM
+                    sys_menu t2
+                LEFT JOIN sys_menu_permission t1 ON t1.is_deleted = 'N'
+                AND t1.menu_id = t2.id
+                LEFT JOIN sys_permission t3 ON t3.is_deleted = 'N'
+                AND t1.permission_id = t3.id
+                WHERE
+                    t2.is_deleted = 'N'
+                AND t2.maintain_status = 1
+            ) t4
+        LEFT JOIN sys_role_menu t5 ON t5.is_deleted = 'N'
+        AND t5.menu_id = t4.menuId
+        AND t5.role_id = #{roleId}
+        LEFT JOIN sys_role_permission t6 ON t6.is_deleted = 'N'
+        AND t6.permission_id = t4.permissionId
+        AND t6.role_id = #{roleId}
+        ORDER BY
+            orderNo ASC,menuId ASC
+     </select>
 </mapper>