mysql之table表
DROP TABLE IF EXISTS `auth_priority`;
CREATE TABLE `auth_priority` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '权限ID',
`priority_code` varchar(50) COLLATE utf8_bin NOT NULL COMMENT '权限编号',
`priority_name` varchar(10) COLLATE utf8_bin NOT NULL COMMENT '权限名称',
`priority_type` varchar(1) COLLATE utf8_bin NOT NULL COMMENT '权限类型,根目录:G,模块:D,目录:M,菜单:C,按钮:F',
`icon` varchar(100) COLLATE utf8_bin DEFAULT NULL COMMENT '菜单图标',
`order_num` int(11) NOT NULL COMMENT '排序',
`path` varchar(100) COLLATE utf8_bin DEFAULT NULL COMMENT '路由地址',
`parent_id` int(10) DEFAULT NULL COMMENT '父权限ID',
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态,1启用,0.禁用',
`is_del` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除(0:否,1:是)',
`creater` varchar(30) COLLATE utf8_bin NOT NULL COMMENT '添加人',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间',
`modifier` varchar(30) COLLATE utf8_bin NOT NULL COMMENT '修改人',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`component` varchar(100) COLLATE utf8_bin DEFAULT NULL COMMENT '组件路径',
`hidden` tinyint(1) NOT NULL COMMENT '是否隐藏(0否1是)',
PRIMARY KEY (`id`) USING BTREE,
KEY `parent_id_index` (`parent_id`,`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin ROW_FORMAT=DYNAMIC COMMENT='权限表';
pojo实体类
@TableName("auth_priority")
@ApiModel(value="Priority对象", description="权限表")
public class Priority extends BaseEntity {
private static final long serialVersionUID = -8116456288413154528L;
@TableId(type = IdType.AUTO)
private Long id;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@ApiModelProperty(value = "权限编号")
private String priorityCode;
@ApiModelProperty(value = "权限名称")
private String priorityName;
@ApiModelProperty(value = "权限类型,模块:module,目录:directory,菜单:menu,按钮:button")
private String priorityType;
@ApiModelProperty(value = "菜单图标")
private String icon;
@ApiModelProperty(value = "排序")
private Integer orderNum;
@ApiModelProperty(value = "路由地址")
private String path;
@ApiModelProperty(value = "父权限ID")
private Integer parentId;
@ApiModelProperty(value = "状态,1启用,0.禁用")
private Integer status;
@ApiModelProperty(value = "是否删除(0:否,1:是)")
private Integer isDel;
@ApiModelProperty(value = "添加人")
private String creater;
@ApiModelProperty(value = "添加时间")
private LocalDateTime createTime;
@ApiModelProperty(value = "修改人")
private String modifier;
@ApiModelProperty(value = "修改时间")
private LocalDateTime updateTime;
public String getPriorityCode() {
return priorityCode;
}
public void setPriorityCode(String priorityCode) {
this.priorityCode = priorityCode;
}
public String getPriorityName() {
return priorityName;
}
public void setPriorityName(String priorityName) {
this.priorityName = priorityName;
}
public String getPriorityType() {
return priorityType;
}
public void setPriorityType(String priorityType) {
this.priorityType = priorityType;
}
public String getIcon() {
return icon;
}
public void setIcon(String icon) {
this.icon = icon;
}
public Integer getOrderNum() {
return orderNum;
}
public void setOrderNum(Integer orderNum) {
this.orderNum = orderNum;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public Integer getParentId() {
return parentId;
}
public void setParentId(Integer parentId) {
this.parentId = parentId;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Integer getIsDel() {
return isDel;
}
public void setIsDel(Integer isDel) {
this.isDel = isDel;
}
public String getCreater() {
return creater;
}
public void setCreater(String creater) {
this.creater = creater;
}
public LocalDateTime getCreateTime() {
return createTime;
}
public void setCreateTime(LocalDateTime createTime) {
this.createTime = createTime;
}
public String getModifier() {
return modifier;
}
public void setModifier(String modifier) {
this.modifier = modifier;
}
public LocalDateTime getUpdateTime() {
return updateTime;
}
public void setUpdateTime(LocalDateTime updateTime) {
this.updateTime = updateTime;
}
}
ServiceImpl类
/**
* 根据角色id获取权限
* @param roleId
*/
public List<PriorityVO> selectPriorsByRoleId(Long roleId) {
//先获取根目录
List<Priority> list = baseMapper.selectList(
Wrappers.<Priority>lambdaQuery()
.eq(Priority::getIsDel,StatusEnum.STATUS_NO.getCode())
.eq(Priority::getParentId, NumberConstant.NUMBER_ZERO));
//获取子菜单
List<PriorityVO> vos = list.stream().map(po -> {
PriorityVO vo = po2Vo(po);
getChildren(vo);
return vo;
}).collect(Collectors.toList());
return vos;
}
/**
* 根据父菜单获取子菜单
* @param vo
*/
private void getChildren(PriorityVO vo){
//获取当前的子菜单
List<Priority> list = baseMapper.selectList(
Wrappers.<Priority>lambdaQuery()
.eq(Priority::getParentId,vo.getId())
.eq(Priority::getStatus,StatusEnum.STATUS_YES.getCode()));
List<PriorityVO> vos = list.stream().map(p->{
PriorityVO vop = po2Vo(p);
getChildren(vop);
return vop;
}).collect(Collectors.toList());
vo.setChildren(vos);
}