You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
1.7 KiB

<?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.example.demo.mapper.coin.MenuMapper">
<update id="updateMenu">
<foreach collection="roleMenuList" item="item" separator=";">
UPDATE role_menu
<set>
<if test="item.menuId != null">
menu_id = #{item.menuId},
</if>
</set>
WHERE role_id = #{item.roleId}
</foreach>
</update>
<delete id="deleteMenu">
DELETE FROM role_menu
WHERE role_id = #{id}
</delete>
<select id="selectMenusByRoleId" resultType="com.example.demo.domain.vo.coin.MenuVo">
SELECT DISTINCT
m.id,
m.menu_name,
m.parent_id,
m.menu_type,
m.priority
FROM
role r
LEFT JOIN role_menu rm ON r.id = rm.role_id
LEFT JOIN menu m ON rm.menu_id = m.id
WHERE
r.id = #{roleId}
AND m.id IS NOT NULL
ORDER BY
m.parent_id,m.priority
</select>
<insert id="addPermission">
INSERT INTO role_menu (role_id, menu_id)
VALUES
<foreach collection="list" item="item" separator=",">
(#{item.roleId}, #{item.menuId})
</foreach>
</insert>
<select id="selectByMenuId" resultType="com.example.demo.domain.entity.Menu">
SELECT menu_name FROM menu
<where>
id = #{id}
</where>
</select>
<select id="selectFatherId" resultType="int">
SELECT parent_id FROM menu
<where>
id = #{id}
</where>
</select>
</mapper>