refactor: mapper.xml 模板完善

This commit is contained in:
ray
2024-07-30 18:20:35 +08:00
parent d5077a395a
commit 3356a63092

View File

@@ -5,25 +5,53 @@
<!-- 获取${businessName}分页列表 -->
<select id="get${entityName}Page" resultType="${package}.model.vo.${entityName}VO">
SELECT
*
#if($fieldConfigs)
#set ($fields = [])
#foreach($fieldConfig in ${fieldConfigs})
#if($fieldConfig.isShowInList)
#set ($discard = $fields.add(${fieldConfig.columnName}))
#end
#end
#foreach($field in $fields)
${field}#if($foreach.hasNext),#end
#end
#end
FROM
${tableName}
<where>
is_deleted = 0
<if test='queryParams.keywords!=null and queryParams.keywords.trim() neq ""'>
AND (
name LIKE CONCAT('%',#{queryParams.keywords},'%')
)
</if>
<if test="queryParams.startTime != null">
AND create_time &gt;= #{queryParams.startTime}
</if>
<if test="queryParams.endTime != null">
AND create_time &lt;= #{queryParams.endTime}
</if>
#if($fieldConfigs)
#foreach($fieldConfig in ${fieldConfigs})
#if($fieldConfig.isShowInQuery)
<if test="queryParams.${fieldConfig.fieldName} != null">
#set ($queryType = ${fieldConfig.queryType})
#if($queryType == "EQ")
AND ${fieldConfig.columnName} = #{queryParams.${fieldConfig.fieldName}}
#elseif($queryType == "LIKE")
AND ${fieldConfig.columnName} LIKE CONCAT('%', #{queryParams.${fieldConfig.fieldName}}, '%')
#elseif($queryType == "IN")
AND ${fieldConfig.columnName} IN
#elseif($queryType == "BETWEEN")
AND ${fieldConfig.columnName} BETWEEN #{queryParams.${fieldConfig.fieldName}Start} AND #{queryParams.${fieldConfig.fieldName}End}
#elseif($queryType == "GT")
AND ${fieldConfig.columnName} > #{queryParams.${fieldConfig.fieldName}}
#elseif($queryType == "GE")
AND ${fieldConfig.columnName} >= #{queryParams.${fieldConfig.fieldName}}
#elseif($queryType == "LT")
AND ${fieldConfig.columnName} &lt; #{queryParams.${fieldConfig.fieldName}}
#elseif($queryType == "LE")
AND ${fieldConfig.columnName} &lt;= #{queryParams.${fieldConfig.fieldName}}
#elseif($queryType == "NE")
AND ${fieldConfig.columnName} != #{queryParams.${fieldConfig.fieldName}}
#elseif($queryType == "LIKE_LEFT")
AND ${fieldConfig.columnName} LIKE CONCAT('%', #{queryParams.${fieldConfig.fieldName}})
#elseif($queryType == "LIKE_RIGHT")
AND ${fieldConfig.columnName} LIKE CONCAT(#{queryParams.${fieldConfig.fieldName}}, '%')
#end
</if>
#end
#end
#end
</where>
ORDER BY
create_time DESC
</select>
</mapper>