wms/nflg-wms-repository/src/main/resources/mapper/MenuMapper.xml

48 lines
2.0 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nflg.wms.repository.mapper.MenuMapper">
<select id="getButtonsByMenuId" resultType="com.nflg.wms.common.pojo.vo.ButtonVO">
SELECT DISTINCT mb.name, mb.code
FROM role r
INNER JOIN role_button_map rbm ON r.id = rbm.role_id
INNER JOIN menu_button mb ON rbm.button_id = mb.id
INNER JOIN user_role_map urm ON urm.role_id = r.id
WHERE mb.enable = TRUE
AND mb.menu_id = #{menuId}
AND urm.user_id = #{userId}
</select>
<select id="menuIsSelected" resultType="java.lang.Boolean">
SELECT EXISTS(SELECT 1
FROM role_menu_map
WHERE menu_id = #{menuId}
AND role_id = #{roleId})
</select>
<select id="getAllDataForAuthorize" resultType="com.nflg.wms.common.pojo.vo.MenuAuthorizeVO">
select id,
parent_id,
"name",
CONCAT('menu-', id) as key,
sort,
1 as type,
case when b.menu_id is null then false else true end as selected
from menu a
left join (select menu_id from role_menu_map where role_id = #{roleId}) b on a.id = b.menu_id
where "enable" = true
UNION
select id,
menu_id,
"name",
CONCAT('button-', id) as key,
sort,
2 as type,
case when b.button_id is null then false else true end as selected
from menu_button a
left join (select button_id from role_button_map where role_id = #{roleId}) b on a.id = b.button_id
where "enable" = true
order by sort;
</select>
</mapper>