zss
2024-04-16 c219f11b51903d5aeb4c7ca261df593597aa7fe2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?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.yuanchu.mom.mapper.DepartmentMapper">
    <select id="selectDepartment" resultType="com.yuanchu.mom.pojo.Department">
        WITH RECURSIVE DepartmentHierarchy AS (
            SELECT id, name, father_id
            FROM department
            WHERE father_id IS NULL
 
            UNION ALL
 
            SELECT d.id, d.name, d.father_id
            FROM department d
                     JOIN DepartmentHierarchy dh ON d.father_id = dh.id
        )
        SELECT id, name, father_id
        FROM DepartmentHierarchy;
    </select>
    <select id="showUserById" resultType="com.yuanchu.mom.dto.UserDto">
        select * from (select id, name, age, email, phone,depart_id
        from user where FIND_IN_SET( SUBSTRING_INDEX(depart_id, ',', -1) ,#{ids}) > 0 ) a
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
    <select id="selectSonById" resultType="java.lang.Integer">
        WITH RECURSIVE DepartmentHierarchy AS (
            SELECT id, name, father_id
            FROM department
            WHERE id = #{id}
            UNION ALL
            SELECT d.id, d.name, d.father_id
            FROM department d
                     JOIN DepartmentHierarchy dh ON d.father_id = dh.id
        )
        SELECT id
        FROM DepartmentHierarchy;
    </select>
</mapper>