qa_kangzai/src/main/resources/mapper/sys/SysDictionariesDao.xml

42 lines
1.4 KiB
XML

<?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.zcloud.modules.sys.dao.SysDictionariesDao">
<select id="queryListParentId" resultType="com.zcloud.modules.sys.entity.SysDictionariesEntity">
select d.*,
(select count(1) from sys_dictionaries c where c.parent_id = d.dictionaries_id) has_children
from sys_dictionaries d where d.parent_id = #{parentId} order by d.order_by asc
</select>
<select id="getRecurrenceIds" resultType="java.lang.String">
select getFullDIcId(#{id})
</select>
<select id="cteldAll" parameterType="String" resultType="com.zcloud.modules.sys.entity.SysDictionariesEntity">
with recursive cte as (
select * from sys_dictionaries where parent_id = #{parentId}
union all
select d.* from sys_dictionaries d inner join cte c on d.parent_id = c.dictionaries_id
)
select * from cte order by order_by asc
</select>
<delete id="deleteCte" parameterType="string">
WITH RECURSIVE descendant_ids AS (
SELECT dictionaries_id
FROM sys_dictionaries
WHERE parent_id = #{parentId}
UNION ALL
SELECT child.dictionaries_id
FROM sys_dictionaries child
JOIN descendant_ids parent ON child.parent_id = parent.dictionaries_id
)
DELETE FROM sys_dictionaries
WHERE dictionaries_id IN (SELECT dictionaries_id FROM descendant_ids);
</delete>
</mapper>