zhangherong
2025-06-25 23855599412c4d61b38d78f0f3abd3430a48b5b1
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysDictMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,241 @@
<?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="queryEnableDictItemsByCode" 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})
         and s.status = 1
         order by s.sort_order asc
   </select>
   <!-- é€šè¿‡å¤šä¸ªå­—å…¸code获取字典数据 -->
   <select id="queryDictItemsByCodeList" parameterType="String" resultType="org.jeecg.common.system.vo.DictModelMany">
      SELECT
         dict.dict_code,
         item.item_text AS "text",
         item.item_value AS "value"
      FROM
         sys_dict_item item
      INNER JOIN sys_dict dict ON dict.id = item.dict_id
      WHERE dict.dict_code IN (
         <foreach item="dictCode" collection="dictCodeList" separator=",">
            #{dictCode}
         </foreach>
      )
      ORDER BY item.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>
   <!-- é€šè¿‡å­—å…¸code获取字典数据,可批量查询 -->
   <select id="queryManyDictByKeys" parameterType="String"  resultType="org.jeecg.common.system.vo.DictModelMany">
      SELECT
         dict.dict_code,
         item.item_text AS "text",
         item.item_value AS "value"
      FROM
         sys_dict_item item
      INNER JOIN sys_dict dict ON dict.id = item.dict_id
      WHERE dict.dict_code IN (
         <foreach item="dictCode" collection="dictCodeList" separator=",">
            #{dictCode}
         </foreach>
      )
      AND item.item_value IN (
         <foreach item="key" collection="keys" separator=",">
            #{key}
         </foreach>
      )
   </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 èŽ·å–å­—å…¸å€¼ï¼Œå¯æ‰¹é‡æŸ¥è¯¢
   <select id="queryTableDictTextByKeys" 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="keys" separator=",">
            #{key}
         </foreach>
      )
   </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(1) FROM ${tableName} WHERE ${fieldName} = #{fieldVal} and id &lt;&gt; #{dataId}
      <if test="delFlag != null and delFlag ">
         and del_flag=0
      </if>
   </select>
   <!-- é‡å¤æ ¡éªŒ sql语句 -->
   <select id="duplicateCheckCountSqlNoDataId" resultType="Long" parameterType="org.jeecg.modules.system.model.DuplicateCheckVo">
      SELECT COUNT(1) FROM ${tableName} WHERE ${fieldName} = #{fieldVal}
      <if test="delFlag != null and delFlag ">
         and del_flag=0
      </if>
   </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",
            <!-- udapte-begin-author:taoyan date:20211115 for: è‡ªå®šä¹‰æ ‘控件只显示父节点,子节点无法展开 (此处还原不可再改) /issues/I4HZAL -->
            <if test="hasChildField != null and hasChildField != ''">
               <choose>
                  <when test="converIsLeafVal!=null and converIsLeafVal==1">
                     (case when ${hasChildField} = '1' then 0 else 1 end) as isLeaf,
                  </when>
                  <otherwise>
                     ${hasChildField} as isLeaf,
                  </otherwise>
               </choose>
            </if>
            <!-- udapte-end-author:taoyan date:20211115 for: è‡ªå®šä¹‰æ ‘控件只显示父节点,子节点无法展开 (此处还原不可再改) /issues/I4HZAL -->
            ${pidField} as parentId
            from ${table}
            where
            <!-- udapte-begin-author:sunjianlei date:20220110 for: ã€JTC-597】自定义树查询条件查不出数据 -->
            <if test="query == null">
               <choose>
                  <when test="pid != null and pid != ''">
                     ${pidField} = #{pid}
                  </when>
                  <otherwise>
                     (${pidField} = '' OR ${pidField} IS NULL)
                  </otherwise>
               </choose>
            </if>
            <if test="query!= null">
                1 = 1
               <foreach collection="query.entrySet()" item="value"  index="key" >
                  and ${key} LIKE #{value}
               </foreach>
                <!-- udapte-end-author:sunjianlei date:20220615 for: ã€issues/3709】自定义树查询条件没有处理父ID,没有树状结构了 -->
                <choose>
                   <when test="pid != null and pid != ''">
                      and ${pidField} = #{pid}
                   </when>
                   <otherwise>
                      and (${pidField} = '' OR ${pidField} IS NULL)
                   </otherwise>
                </choose>
                <!-- udapte-end-author:sunjianlei date:20220615 for: ã€issues/3709】自定义树查询条件没有处理父ID,没有树状结构了 -->
            </if>
            <!-- udapte-end-author:sunjianlei date:20220110 for: ã€JTC-597】自定义树查询条件查不出数据 -->
   </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 != ''">
         <bind name="bindKeyword" value="'%'+query.keyword+'%'"/>
         and (${query.text} like #{bindKeyword} or ${query.code} like #{bindKeyword})
      </if>
      <if test="query.codeValue != null and query.codeValue != ''">
         and ${query.code} = #{query.codeValue}
      </if>
   </select>
   <!--通过查询指定table的 text code èŽ·å–å­—å…¸æ•°æ®ï¼Œä¸”æ”¯æŒå…³é”®å­—å’Œè‡ªå®šä¹‰æŸ¥è¯¢æ¡ä»¶æŸ¥è¯¢ åˆ†é¡µ-->
   <select id="queryTableDictWithFilter" parameterType="String"  resultType="org.jeecg.common.system.vo.DictModel">
      select ${text} as "text", ${code} as "value" from ${table}
      <if test="filterSql != null and filterSql != ''">
         ${filterSql}
      </if>
   </select>
   <!--通过查询指定table的 text code èŽ·å–å­—å…¸æ•°æ®ï¼Œä¸”æ”¯æŒå…³é”®å­—å’Œè‡ªå®šä¹‰æŸ¥è¯¢æ¡ä»¶æŸ¥è¯¢ èŽ·å–æ‰€æœ‰ -->
   <select id="queryAllTableDictItems" parameterType="String"  resultType="org.jeecg.common.system.vo.DictModel">
      select ${text} as "text", ${code} as "value" from ${table}
      <if test="filterSql != null and filterSql != ''">
         ${filterSql}
      </if>
   </select>
   <!-- æŸ¥è¯¢å­—典表的数据 æ”¯æŒè®¾ç½®è¿‡æ»¤æ¡ä»¶ã€è®¾ç½®å­˜å‚¨å€¼ä½œä¸ºin查询条件 -->
   <select id="queryTableDictByKeysAndFilterSql" 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="codeValues" separator=",">
         #{key}
      </foreach>
      )
      <if test="filterSql != null and filterSql != ''">
         and ${filterSql}
      </if>
   </select>
    <select id="queryTableDictTextBySubSql" resultType="java.lang.String">
      select ${text} as "text" from ${table} where ${subSql}
   </select>
   <select id="queryTableFieldByParams" resultType="java.util.Map">
      select ${columns},${paramName} as paramValue
      from ${table} where ${paramName} in
      <foreach item="key" collection="paramValues" open="(" separator="," close=")">
         #{key}
      </foreach>
   </select>
   <!-- é€šè¿‡å­—å…¸code,itemText获取itemValue -->
   <select id="queryDictItemValueByCodeAndText" 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})
      and s.item_text = #{itemText}
      order by s.sort_order asc
   </select>
</mapper>