<?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.his.api.db.dao.PermissionDao">

    <resultMap id="PermissionAll" type="com.example.his.api.db.pojo.PermissionEntity">
            <id property="id" column="id" jdbcType="INTEGER"/>
            <result property="parentId" column="parent_id" jdbcType="INTEGER"/>
            <result property="permissionName" column="permission_name" jdbcType="VARCHAR"/>
            <result property="moduleName" column="module_name" jdbcType="VARCHAR"/>
            <result property="menuType" column="menu_type" jdbcType="VARCHAR"/>
            <result property="icon" column="icon" jdbcType="VARCHAR"/>
            <result property="path" column="path" jdbcType="VARCHAR"/>
            <result property="createTime" column="create_time" jdbcType="VARCHAR"/>
    </resultMap>

    <resultMap id="PermissionMenu" type="com.example.his.api.resp.PermissionMenuResp">
        <id property="id" column="id" jdbcType="INTEGER"/>
        <result property="parentId" column="parent_id" jdbcType="INTEGER"/>
        <result property="permissionName" column="permission_name" jdbcType="VARCHAR"/>
        <result property="moduleName" column="module_name" jdbcType="VARCHAR"/>
        <result property="menuType" column="menu_type" jdbcType="VARCHAR"/>
        <result property="icon" column="icon" jdbcType="VARCHAR"/>
        <result property="path" column="path" jdbcType="VARCHAR"/>
        <result property="createTime" column="create_time" jdbcType="VARCHAR"/>
    </resultMap>


    <!-- 权限管理-查询全部权限 -->
    <select id="searchAllPermissions" resultMap="PermissionAll">
        select * from tb_permission
    </select>
    <!-- 查询用户现有权限 -->
    <select id="searchPermissions" resultMap="PermissionMenu">
        select * from tb_permission
    </select>
    <!-- 查询用户现有权限-->
    <select id="searchUserPermissions" resultMap="PermissionAll">
        select * from tb_permission where permission_name in
        <foreach collection="list" item="item" open="(" separator="," close=")">#{item}</foreach>
    </select>

    <!-- 权限管理-新增 -->
    <insert id="insertPermission">
        insert into tb_permission values(#{id},#{parentId},#{permissionName},#{moduleName},#{menuType},#{icon},#{path},#{createTime})
    </insert>

    <!-- 权限管理-更新 -->
    <update id="updatePermission">
        update tb_permission set
        `parent_id` = #{parentId},
        `permission_name` = #{permissionName},
        `module_name` = #{moduleName},
        `menu_type` = #{menuType},
        `icon` = #{icon},
        `path` = #{path},
        `create_time` = #{createTime}
        where id = #{id}
    </update>

    <!-- 权限管理-批量删除 -->
    <delete id="deleteBatchPermission">
        delete from tb_permission where id in
        <foreach collection="ids" item="id" open="(" separator="," close=")">#{id}</foreach>
    </delete>

</mapper>
