refactor: 完善 mapper.xml 日期条件查询

This commit is contained in:
ray
2024-07-31 07:46:57 +08:00
parent 837dac6e17
commit 56ab702568

View File

@@ -9,7 +9,7 @@
#set ($fields = []) #set ($fields = [])
#foreach($fieldConfig in ${fieldConfigs}) #foreach($fieldConfig in ${fieldConfigs})
#if($fieldConfig.isShowInList) #if($fieldConfig.isShowInList)
#set ($discard = $fields.add(${fieldConfig.columnName})) #set ($discard = $fields.add(${fieldConfig.columnName}))
#end #end
#end #end
#foreach($field in $fields) #foreach($field in $fields)
@@ -22,32 +22,38 @@
#if($fieldConfigs) #if($fieldConfigs)
#foreach($fieldConfig in ${fieldConfigs}) #foreach($fieldConfig in ${fieldConfigs})
#if($fieldConfig.isShowInQuery) #if($fieldConfig.isShowInQuery)
<if test="queryParams.${fieldConfig.fieldName} != null"> <if test="queryParams.${fieldConfig.fieldName} != null">
#set ($queryType = ${fieldConfig.queryType}) #set ($queryType = ${fieldConfig.queryType})
#if($queryType == "EQ") #if($queryType == "EQ")
AND ${fieldConfig.columnName} = #{queryParams.${fieldConfig.fieldName}} AND ${fieldConfig.columnName} = #{queryParams.${fieldConfig.fieldName}}
#elseif($queryType == "LIKE") #elseif($queryType == "LIKE")
AND ${fieldConfig.columnName} LIKE CONCAT('%', #{queryParams.${fieldConfig.fieldName}}, '%') AND ${fieldConfig.columnName} LIKE CONCAT('%', #{queryParams.${fieldConfig.fieldName}}, '%')
#elseif($queryType == "IN") #elseif($queryType == "IN")
AND ${fieldConfig.columnName} IN <if test="queryParams.${fieldConfig.fieldName}.size() > 0">
AND ${fieldConfig.columnName} IN <foreach collection="queryParams.${fieldConfig.fieldName}" item="item" open="(" close=")" separator=",">#{item}</foreach>
</if>
#elseif($queryType == "BETWEEN") #elseif($queryType == "BETWEEN")
AND ${fieldConfig.columnName} BETWEEN #{queryParams.${fieldConfig.fieldName}Start} AND #{queryParams.${fieldConfig.fieldName}End} #if(${fieldConfig.fieldType} == "LocalDateTime")
AND ${fieldConfig.columnName} BETWEEN STR_TO_DATE(#{queryParams.${fieldConfig.fieldName}Start}, '%Y-%m-%d %H:%i:%s') AND STR_TO_DATE(#{queryParams.${fieldConfig.fieldName}End}, '%Y-%m-%d %H:%i:%s')
#else
AND ${fieldConfig.columnName} BETWEEN #{queryParams.${fieldConfig.fieldName}Start} AND #{queryParams.${fieldConfig.fieldName}End}
#end
#elseif($queryType == "GT") #elseif($queryType == "GT")
AND ${fieldConfig.columnName} > #{queryParams.${fieldConfig.fieldName}} AND ${fieldConfig.columnName} > #{queryParams.${fieldConfig.fieldName}}
#elseif($queryType == "GE") #elseif($queryType == "GE")
AND ${fieldConfig.columnName} >= #{queryParams.${fieldConfig.fieldName}} AND ${fieldConfig.columnName} >= #{queryParams.${fieldConfig.fieldName}}
#elseif($queryType == "LT") #elseif($queryType == "LT")
AND ${fieldConfig.columnName} &lt; #{queryParams.${fieldConfig.fieldName}} AND ${fieldConfig.columnName} &lt; #{queryParams.${fieldConfig.fieldName}}
#elseif($queryType == "LE") #elseif($queryType == "LE")
AND ${fieldConfig.columnName} &lt;= #{queryParams.${fieldConfig.fieldName}} AND ${fieldConfig.columnName} &lt;= #{queryParams.${fieldConfig.fieldName}}
#elseif($queryType == "NE") #elseif($queryType == "NE")
AND ${fieldConfig.columnName} != #{queryParams.${fieldConfig.fieldName}} AND ${fieldConfig.columnName} != #{queryParams.${fieldConfig.fieldName}}
#elseif($queryType == "LIKE_LEFT") #elseif($queryType == "LIKE_LEFT")
AND ${fieldConfig.columnName} LIKE CONCAT('%', #{queryParams.${fieldConfig.fieldName}}) AND ${fieldConfig.columnName} LIKE CONCAT('%', #{queryParams.${fieldConfig.fieldName}})
#elseif($queryType == "LIKE_RIGHT") #elseif($queryType == "LIKE_RIGHT")
AND ${fieldConfig.columnName} LIKE CONCAT(#{queryParams.${fieldConfig.fieldName}}, '%') AND ${fieldConfig.columnName} LIKE CONCAT(#{queryParams.${fieldConfig.fieldName}}, '%')
#end #end
</if> </if>
#end #end
#end #end
#end #end