管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2024-12-18 0c8cd957630d43aa71183d34ecb1faf60689f8a4
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<?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.lf.server.mapper.data.DirMapper">
    <select id="selectDir" resultType="com.lf.server.entity.data.DirEntity">
        select a.*, fn_get_fullname(a.code, 2) fullName from lf.sys_dir a where id = #{id}
    </select>
    <select id="selectByCode" resultType="com.lf.server.entity.data.DirEntity">
        select a.*, fn_get_fullname(a.code, 2) fullName from lf.sys_dir a where code = #{code}
    </select>
 
    <select id="selectDirAll" resultType="com.lf.server.entity.data.DirEntity">
        select a.*, fn_get_fullname(a.code, 2) fullName from lf.sys_dir a order by order_num;
    </select>
 
    <select id="selectDirRoot" resultType="com.lf.server.entity.data.DirEntity">
        select a.*, fn_get_fullname(a.code, 2) fullName
        from lf.sys_dir a
        where pid = 0
        order by order_num, code;
    </select>
 
    <select id="selectProject" resultType="com.lf.server.entity.data.DirEntity">
        select a.*, fn_get_fullname(a.code, 2) fullName
        from lf.sys_dir a
        <where>
            pid = 0 and id > 1
            <if test="name != null">
                and upper(name) like #{name}
            </if>
        </where>
        order by order_num, code;
    </select>
 
    <select id="selectDirRecursive" resultType="com.lf.server.entity.data.DirEntity">
        with recursive rs as(
            select a.*, fn_get_fullname(a.code, 2) fullName from lf.sys_dir a where name = #{name}
            union
            select b.*, fn_get_fullname(b.code, 2) fullName from lf.sys_dir b, rs c where b.pid = c.id)
        select * from rs
        order by order_num, code;
    </select>
 
    <select id="selectRecursiveById" resultType="com.lf.server.entity.data.DirEntity">
        with recursive rs as(
            select a.*, fn_get_fullname(a.code, 2) fullName from lf.sys_dir a where id = #{id}
            union
            select b.*, fn_get_fullname(b.code, 2) fullName from lf.sys_dir b, rs c where b.pid = c.id)
        select * from rs
        order by code;
    </select>
 
    <select id="selectByPid" resultType="com.lf.server.entity.data.DirEntity">
        with recursive rs as(
            select a.* from lf.sys_dir a where id = #{pid}
            union
            select b.* from lf.sys_dir b, rs c where b.pid = c.id)
        select * from rs
        order by code;
    </select>
 
    <select id="selectDirsForPrj" resultType="com.lf.server.entity.data.DirEntity">
        select a.* from lf.sys_dir a where code not like '00%' order by code;
    </select>
 
    <select id="selectMaxOrderNum" resultType="java.lang.Integer">
        select coalesce(max(order_num), 0) + 1 from lf.sys_dir;
    </select>
 
    <select id="selectDirByName" resultType="com.lf.server.entity.data.DirEntity">
        select * from lf.sys_dir
        <where>
            upper(name) = #{name}
            <if test="pid != null">
                and pid = #{pid}
            </if>
        </where>
    </select>
 
    <select id="selectNameByCode" resultType="java.lang.String">
        select name from lf.sys_dir where code = #{code};
    </select>
 
    <!-- 插入一条 -->
    <insert id="insert" parameterType="com.lf.server.entity.data.DirEntity">
        <selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">
            select currval('lf.sys_dir_id_seq'::regclass) as id
        </selectKey>
 
        insert into lf.sys_dir
        (pid,name,exts,descr,level,order_num,create_user,create_time,checks,bak,code)
        values
        (#{pid},#{name},#{exts},#{descr},#{level},#{orderNum},#{createUser},now(),#{checks},#{bak},#{code});
    </insert>
 
    <!-- 插入多条 -->
    <insert id="inserts">
        insert into lf.sys_dir
        (pid,name,exts,descr,level,order_num,create_user,create_time,checks,bak,code)
        values
        <foreach collection="list" item="item" index="index" separator=",">
            (#{item.pid},#{item.name},#{item.exts},#{item.descr},#{item.level},#{item.orderNum},#{item.createUser},now(),#{item.checks},#{item.bak},#{item.code})
        </foreach>
    </insert>
 
    <delete id="deleteDir">
        delete from lf.sys_dir where id = #{id}
    </delete>
 
    <delete id="deleteDirs">
        delete from lf.sys_dir where id in
        <foreach item="id" collection="ids" index="index" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
 
    <!-- 更新一条 -->
    <update id="update">
        update lf.sys_dir
        set pid=#{pid},name=#{name},exts=#{exts},descr=#{descr},level=#{level},order_num=#{orderNum},
            update_user=#{updateUser},update_time=now(),checks=#{checks},bak=#{bak},code=#{code}
        where id=#{id}
    </update>
 
    <!-- 更新多条 -->
    <update id="updates">
        <foreach collection="list" item="item" index="index" separator=";">
            update lf.sys_dir
            <set>
                pid=#{item.pid},name=#{item.name},exts=#{item.exts},descr=#{item.descr},level=#{item.level},order_num=#{item.orderNum},
                update_user=#{item.updateUser},update_time=now(),checks=#{item.checks},bak=#{item.bak},code=#{item.code}
            </set>
            where id = #{item.id}
        </foreach>
    </update>
</mapper>