业务
一个菜单表,一个角色表,一个角色对应多个菜单,一个菜单也可以在多个角色里出现,多对多关系,出现了第三张表,角色权限表authfunctionrole,用于角色和用户的授权,业务是根据前端传过来的菜单查出有
前端是一个常量,数据库里存的是用逗号分隔的多个值的字符串,满足条件的查出来记录
数据库里的表
CREATE TABLE `authfunctionrole` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id 主键',
`code` varchar(100) DEFAULT NULL COMMENT '角色编码',
`name` varchar(200) NOT NULL COMMENT '角色名称',
`comment` varchar(1024) DEFAULT NULL COMMENT '备注',
`menuIds` varchar(2048) DEFAULT NULL COMMENT '菜单IDs',
`isEnable` int(11) NOT NULL DEFAULT '1' COMMENT '是否启用 0 未启用 1启用',
`gmtCreate` bigint(20) DEFAULT NULL COMMENT '创建时间',
`gmtModified` bigint(20) DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8mb4 COMMENT='功能角色表';
2,6,45,3,7等都是菜单的id ,菜单在另外一张表里,
sql
<select id="selectFunctionByPriorityId" resultType="java.lang.Integer">
select
id
FROM authfunctionrole where isEnable = 1 and FIND_IN_SET(#{priorityId},menuIds)
</select>