peng
2026-03-18 e59a0201057ba67cad425fed804c82ff4ba0c6f1
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
<?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.tievd.cube.modules.system.mapper.SysDictMapper">
 
    <!-- 通过字典code获取字典数据 -->
    <select id="queryDictItemsByCode" parameterType="String" resultType="com.tievd.cube.modules.system.model.DictModel">
        select s.item_value as "value",s.item_text as "text" from sys_dict_item s
        where dict_id = (select id from sys_dict where dict_code = #{code})
        order by s.sort_order asc
    </select>
 
    <!--通过查询指定table的 text code 获取字典(指定查询条件)-->
    <select id="queryTableDictItemsByCodeAndFilter" parameterType="String" resultType="com.tievd.cube.modules.system.model.DictModel">
        select ${text} as "text", ${code} as "value" from ${table}
        <if test="filterSql != null and filterSql != ''">
            where ${filterSql}
        </if>
    </select>
 
    <!-- 通过字典code获取字典数据 -->
    <select id="queryDictTextByKey" parameterType="String" resultType="String">
        select s.item_text from sys_dict_item s
        where s.dict_id = (select id from sys_dict where dict_code = #{code})
        and s.item_value = #{key}
    </select>
 
    <!-- 通过字典code获取字典数据 -->
    <select id="queryDictKeyByText" parameterType="String" resultType="String">
        select s.item_value from sys_dict_item s
        where s.dict_id = (select id from sys_dict where dict_code = #{code})
        and s.item_text = #{text}
    </select>
 
    <!--通过查询指定table的 text code key 获取字典值,包含value-->
    <select id="queryTableDictByKeys" parameterType="String" resultType="com.tievd.cube.modules.system.model.DictModel">
        select ${text} as "text", ${code} as "value" from ${table} where ${code} in
        <foreach item="key" collection="keyArray" open="(" separator="," close=")">
            #{key}
        </foreach>
    </select>
 
    <select id="queryTableDictByText" parameterType="String" resultType="String">
        select ${code} from ${table} where ${text} = '${value}' limit 1
    </select>
 
    <!-- 重复校验 sql语句 -->
    <select id="duplicateCheckCountSql" resultType="Long" parameterType="com.tievd.cube.modules.system.model.api.request.DuplicateCheckRequest">
        SELECT COUNT(*) FROM ${tableName} WHERE ${fieldName} = #{fieldVal}
        <if test="dataId != null and dataId != ''">
            and id != #{dataId}
        </if>
    </select>
 
    <!-- 查询部门信息 作为字典数据 -->
    <select id="queryAllDepartBackDictModel" resultType="com.tievd.cube.modules.system.model.DictModel">
        select id as "value", depart_name as "text" from sys_depart where del_flag = '0'
    </select>
 
    <!-- 根据表名、显示字段名、存储字段名、父ID查询树 -->
    <select id="queryTreeList" parameterType="Object" resultType="com.tievd.cube.modules.system.model.TreeSelectModel">
        select ${text} as "title",
        ${code} as "key",
        <if test="hasChildField != null and hasChildField != ''">
            (case when ${hasChildField} = '1' then 0 else 1 end) as isLeaf,
        </if>
        ${pidField} as parentId
        from ${table}
        where
        <choose>
            <when test="pid != null and pid != ''">
                ${pidField} = #{pid}
            </when>
            <otherwise>
                (${pidField} = '' OR ${pidField} IS NULL)
            </otherwise>
        </choose>
        <if test="query != null">
            <foreach collection="query.entrySet()" item="value" index="key">
                and ${key} = #{value}
            </foreach>
        </if>
    </select>
</mapper>