修改组合筛选查询功能
This commit is contained in:
@@ -200,33 +200,38 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="params != null and !params.isEmpty()">
|
||||
<!-- 空值条件 -->
|
||||
<foreach collection="params.entrySet()" item="value" index="key">
|
||||
<if test="value == 'IS_NULL'">
|
||||
<if test="value != null and value.toString() == 'IS_NULL'">
|
||||
AND ${key} IS NULL
|
||||
</if>
|
||||
<if test="value == 'NOT_NULL'">
|
||||
<if test="value != null and value.toString() == 'NOT_NULL'">
|
||||
AND ${key} IS NOT NULL
|
||||
</if>
|
||||
</foreach>
|
||||
|
||||
<!-- 范围条件 -->
|
||||
<foreach collection="params.entrySet()" item="value" index="key">
|
||||
<if test="value != null and value.toString().startsWith('GT:')">
|
||||
AND ${key} > #{value.toString().substring(3)}
|
||||
</if>
|
||||
<if test="value != null and value.toString().startsWith('LT:')">
|
||||
AND ${key} < #{value.toString().substring(3)}
|
||||
</if>
|
||||
<if test="value != null and value.toString().startsWith('GE:')">
|
||||
AND ${key} >= #{value.toString().substring(3)}
|
||||
</if>
|
||||
<if test="value != null and value.toString().startsWith('LE:')">
|
||||
AND ${key} <= #{value.toString().substring(3)}
|
||||
<!-- 显式将 value 转换为字符串 -->
|
||||
<if test="value != null and value.toString() != null">
|
||||
<choose>
|
||||
<when test="value.toString().startsWith('GT:')">
|
||||
AND ${key} > #{value.toString().substring(3)}
|
||||
</when>
|
||||
<when test="value.toString().startsWith('LT:')">
|
||||
AND ${key} < #{value.toString().substring(3)}
|
||||
</when>
|
||||
<when test="value.toString().startsWith('GE:')">
|
||||
AND ${key} >= #{value.toString().substring(3)}
|
||||
</when>
|
||||
<when test="value.toString().startsWith('LE:')">
|
||||
AND ${key} <= #{value.toString().substring(3)}
|
||||
</when>
|
||||
</choose>
|
||||
</if>
|
||||
</foreach>
|
||||
|
||||
<!-- 列表条件 -->
|
||||
<foreach collection="params.entrySet()" item="value" index="key">
|
||||
<if test="value != null and value.toString().contains(',')">
|
||||
<if test="value != null and value.toString() != null and value.toString().contains(',')">
|
||||
AND ${key} IN
|
||||
<foreach collection="value.toString().split(',')" item="item" open="(" separator="," close=")">
|
||||
#{item}
|
||||
@@ -236,35 +241,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
|
||||
<!-- 模糊查询条件(针对文本字段) -->
|
||||
<foreach collection="params.entrySet()" item="value" index="key">
|
||||
<if test="value != null and
|
||||
(key == 'bs_manage_tags' or key == 'electronic_tags' or
|
||||
key == 'dr_ranch' or key == 'sheepfold_name' or
|
||||
key == 'variety' or key == 'family' or
|
||||
key == 'name' or key == 'breed' or
|
||||
key == 'father_manage_tags' or key == 'mother_manage_tags' or
|
||||
key == 'receptor_manage_tags') and
|
||||
value != 'IS_NULL' and value != 'NOT_NULL' and
|
||||
!value.toString().startsWith('GT:') and !value.toString().startsWith('LT:') and
|
||||
!value.toString().startsWith('GE:') and !value.toString().startsWith('LE:') and
|
||||
!value.toString().contains(',')">
|
||||
AND ${key} LIKE CONCAT('%', #{value}, '%')
|
||||
</if>
|
||||
</foreach>
|
||||
|
||||
<!-- 普通等于条件 -->
|
||||
<foreach collection="params.entrySet()" item="value" index="key">
|
||||
<if test="value != null and
|
||||
value != 'IS_NULL' and value != 'NOT_NULL' and
|
||||
!value.toString().startsWith('GT:') and !value.toString().startsWith('LT:') and
|
||||
!value.toString().startsWith('GE:') and !value.toString().startsWith('LE:') and
|
||||
!value.toString().contains(',') and
|
||||
!(key == 'bs_manage_tags' or key == 'electronic_tags' or
|
||||
key == 'dr_ranch' or key == 'sheepfold_name' or
|
||||
key == 'variety' or key == 'family' or
|
||||
key == 'name' or key == 'breed' or
|
||||
key == 'father_manage_tags' or key == 'mother_manage_tags' or
|
||||
key == 'receptor_manage_tags')">
|
||||
AND ${key} = #{value}
|
||||
<if test="value != null and value.toString() != null">
|
||||
<choose>
|
||||
<when test="key == 'bs_manage_tags' or key == 'electronic_tags' or
|
||||
key == 'dr_ranch' or key == 'sheepfold_name' or
|
||||
key == 'variety' or key == 'family' or
|
||||
key == 'name' or key == 'breed' or
|
||||
key == 'father_manage_tags' or key == 'mother_manage_tags' or
|
||||
key == 'receptor_manage_tags'">
|
||||
AND ${key} LIKE CONCAT('%', #{value}, '%')
|
||||
</when>
|
||||
<otherwise>
|
||||
<!-- 普通等于条件 -->
|
||||
AND ${key} = #{value}
|
||||
</otherwise>
|
||||
</choose>
|
||||
</if>
|
||||
</foreach>
|
||||
</if>
|
||||
|
||||
Reference in New Issue
Block a user