<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~
  ~      Copyright (c) 2018-2025, hnqz All rights reserved.
  ~
  ~  Redistribution and use in source and binary forms, with or without
  ~  modification, are permitted provided that the following conditions are met:
  ~
  ~ Redistributions of source code must retain the above copyright notice,
  ~  this list of conditions and the following disclaimer.
  ~  Redistributions in binary form must reproduce the above copyright
  ~  notice, this list of conditions and the following disclaimer in the
  ~  documentation and/or other materials provided with the distribution.
  ~  Neither the name of the pig4cloud.com developer nor the names of its
  ~  contributors may be used to endorse or promote products derived from
  ~  this software without specific prior written permission.
  ~  Author: hnqz
  ~
  -->

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qunzhixinxi.hnqz.admin.mapper.SysMenuMapper">

	<!-- 通用查询映射结果 -->
	<resultMap id="BaseResultMap" type="com.qunzhixinxi.hnqz.admin.api.entity.SysMenu">
		<id column="menu_id" property="menuId"/>
		<result column="name" property="name"/>
		<result column="permission" property="permission"/>
		<result column="path" property="path"/>
		<result column="parent_id" property="parentId"/>
		<result column="icon" property="icon"/>
		<result column="sort" property="sort"/>
		<result column="type" property="type"/>
		<result column="keep_alive" property="keepAlive"/>
		<result column="create_time" property="createTime"/>
		<result column="update_time" property="updateTime"/>
		<result column="del_flag" property="delFlag"/>
	</resultMap>

	<resultMap id="MenuVoResultMap" type="com.qunzhixinxi.hnqz.admin.api.vo.MenuVO">
		<id column="menu_id" property="menuId"/>
		<result column="name" property="name"/>
		<result column="permission" property="permission"/>
		<result column="parent_id" property="parentId"/>
		<result column="icon" property="icon"/>
		<result column="path" property="path"/>
		<result column="sort" property="sort"/>
		<result column="keep_alive" property="keepAlive"/>
		<result column="type" property="type"/>
		<result column="create_time" property="createTime"/>
		<result column="update_time" property="updateTime"/>
		<result column="del_flag" property="delFlag"/>
	</resultMap>

	<!--通过角色查询菜单信息-->
	<select id="listMenusByRoleId" resultMap="MenuVoResultMap">
		SELECT
			sys_menu.*
		FROM
			sys_menu
		LEFT JOIN sys_role_menu ON sys_menu.menu_id = sys_role_menu.menu_id
		WHERE
			sys_menu.del_flag = 0
		AND sys_role_menu.role_id = #{roleId}
		ORDER BY
			sys_menu.sort DESC
    </select>

	<!--通过角色ID 查询权限-->
	<select id="listPermissionsByRoleIds" resultType="java.lang.String">
        SELECT
            m.permission
        FROM
        sys_menu m, sys_role_menu rm WHERE m.menu_id = rm.menu_id AND m.del_flag = 0 AND rm.role_id IN (#{roleIds})
    </select>
</mapper>
