<?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.lutao.cloud.admin.mapper.SysDeptRelationMapper">

	<!-- 通用查询映射结果 -->
	<resultMap id="BaseResultMap" type="com.lutao.cloud.admin.api.entity.SysDeptRelation">
		<id column="ancestor" property="ancestor"/>
		<result column="descendant" property="descendant"/>
	</resultMap>

	<!-- 通用查询结果列 -->
	<sql id="Base_Column_List">
        ancestor, descendant
    </sql>

	<!-- 更新部门关系 -->
	<update id="updateDeptRelations">
        DELETE FROM sys_dept_relation
        WHERE
        	descendant IN ( SELECT temp.descendant FROM
        	( SELECT descendant FROM sys_dept_relation WHERE ancestor = #{descendant} ) temp )
        AND ancestor IN ( SELECT temp.ancestor FROM ( SELECT ancestor FROM
        	sys_dept_relation WHERE descendant = #{descendant} AND ancestor != descendant ) temp );

		INSERT INTO sys_dept_relation (ancestor, descendant)
		SELECT a.ancestor, b.descendant
		FROM sys_dept_relation a
			CROSS JOIN sys_dept_relation b
		WHERE a.descendant = #{ancestor}
			AND b.ancestor = #{descendant};
	</update>

	<!--删除部门-->
	<delete id="deleteDeptRelationsById">
        DELETE
        FROM
            sys_dept_relation
        WHERE
            descendant IN (
                SELECT
                    temp.descendant
                FROM
                    (
                        SELECT
                            descendant
                        FROM
                            sys_dept_relation
                        WHERE
                            ancestor = #{id}
                    ) temp
            )
    </delete>
</mapper>
