cuikaidong
2025-06-12 44e283b774bb1168d0c17dfe5070a1ca8e2274cd
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
<?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="org.jeecg.modules.system.mapper.SysDictMapper">
 
    <!-- 通过字典code获取字典数据 -->
    <select id="queryDictItemsByCode" parameterType="String"  resultType="org.jeecg.common.system.vo.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>
    
    <!-- 通过字典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>
 
 
    <!--通过查询指定table的 text code 获取字典-->
    <select id="queryTableDictItemsByCode" parameterType="String"  resultType="org.jeecg.common.system.vo.DictModel">
           select ${text} as "text",${code} as "value" from ${table}
    </select>
    
    <!--通过查询指定table的 text code 获取字典(指定查询条件)-->
    <select id="queryTableDictItemsByCodeAndFilter" parameterType="String"  resultType="org.jeecg.common.system.vo.DictModel">
           select ${text} as "text",${code} as "value" from ${table}
        <if test="filterSql != null and filterSql != ''">
            where ${filterSql}
        </if>
    </select>
    
    <!--通过查询指定table的 text code key 获取字典值-->
    <select id="queryTableDictTextByKey" parameterType="String" resultType="String">
           select ${text} as "text" from ${table} where ${code}= #{key}
    </select>
 
    <!--通过查询指定table的 text code key 获取字典值,包含value-->
    <select id="queryTableDictByKeys" parameterType="String" resultType="org.jeecg.common.system.vo.DictModel">
        select ${text} as "text", ${code} as "value" from ${table} where ${code} in
        <foreach item="key" collection="keyArray" open="(" separator="," close=")">
            #{key}
        </foreach>
    </select>
 
    <!-- 重复校验 sql语句 -->
    <select id="duplicateCheckCountSql" resultType="Long" parameterType="org.jeecg.modules.system.model.DuplicateCheckVo">
        SELECT COUNT(*) FROM ${tableName} WHERE ${fieldName} = #{fieldVal} and id &lt;&gt; #{dataId}
    </select>
    
    <!-- 重复校验 sql语句 -->
    <select id="duplicateCheckCountSqlNoDataId" resultType="Long" parameterType="org.jeecg.modules.system.model.DuplicateCheckVo">
        SELECT COUNT(*) FROM ${tableName} WHERE ${fieldName} = #{fieldVal}
    </select>
        
    <!-- 查询部门信息 作为字典数据 -->
    <select id="queryAllDepartBackDictModel" resultType="org.jeecg.common.system.vo.DictModel">
        select id as "value",depart_name as "text" from sys_depart where del_flag = '0'
    </select>
    
        <!-- 查询用户信息 作为字典数据 -->
    <select id="queryAllUserBackDictModel" resultType="org.jeecg.common.system.vo.DictModel">
        select username as "value",realname as "text" from sys_user where del_flag = '0'
    </select>
    
    <!--通过查询指定table的 text code 获取字典数据,且支持关键字查询 -->
    <select id="queryTableDictItems" parameterType="String"  resultType="org.jeecg.common.system.vo.DictModel">
        select ${text} as "text",${code} as "value" from ${table} where ${text} like #{keyword}
    </select>
    
    <!-- 根据表名、显示字段名、存储字段名、父ID查询树 -->
    <select id="queryTreeList" parameterType="Object" resultType="org.jeecg.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>
 
 
    <!-- 分页查询字典表数据 -->
    <select id="queryDictTablePageList" parameterType="Object" resultType="org.jeecg.common.system.vo.DictModel">
        select ${query.text} as "text",${query.code} as "value" from ${query.table}
        where 1 = 1
        <if test="query.keyword != null and query.keyword != ''">
            and (${query.text} like '%${query.keyword}%' or ${query.code} like '%${query.keyword}%')
        </if>
        <if test="query.codeValue != null and query.codeValue != ''">
            and ${query.code} = #{query.codeValue}
        </if>
    </select>
 
</mapper>