<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Copyright (c) 2020 yifu4cloud Authors. All Rights Reserved.
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~     http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yifu.cloud.plus.v1.yifu.admin.mapper.SysDeptRelationMapper">
	<!-- 删除部门节点关系	-->
	<delete id="deleteDeptRelations">
		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)
	</delete>

	<!--删除部门节点关系,同时删除所有关联此部门子节点的部门关系-->
	<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>

	<!-- 新增部门节点关系	-->
	<insert id="insertDeptRelations">
		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}
	</insert>
</mapper>
