<?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">
|
<!--
|
* @title: ${tableComments}
|
* @description: 自定义sql,请自行实现业务逻辑
|
* @company: hugeinfo
|
* @author: ${author}
|
* @time:${createTime}
|
* @version ${version}
|
-->
|
<mapper namespace="${basePackage}.${packageName}.dao.mapper.${className}Mapper">
|
<!-- 结果集 -->
|
<resultMap id="dataResult" type="${basePackage}.${packageName}.domain.po.${className}">
|
<#list cols as col>
|
<result property="${col.fieldName}" column="${col.name}"/>
|
</#list>
|
</resultMap>
|
<!-- 表 -->
|
<sql id='table-name'>${tableName}</sql>
|
<!-- 字段 -->
|
<sql id="column-part">
|
<#list cols as col>
|
${col.name}<#if col_has_next>,</#if>
|
</#list>
|
</sql>
|
<!-- 更新实体字段 -->
|
<sql id="set-part">
|
<#list cols as col>
|
<#if (col.name != "id")>
|
<if test="entity.${col.fieldName} != null">${col.name} = <#noparse>#{</#noparse>entity.${col.fieldName}<#noparse>}</#noparse><#if col_has_next>,</#if></if>
|
</#if>
|
</#list>
|
</sql>
|
<!-- 条件 -->
|
<sql id="where-part">
|
<if test="terms != null">
|
<where>
|
<#list cols as col>
|
<#if (col.name != "create_time" && col.name != "update_time" && col.name != "delete_status" )>
|
<if test="terms.${col.fieldName} != null and terms.${col.fieldName} !=''">
|
and ${col.name} = <#noparse>#{</#noparse>terms.${col.fieldName}<#noparse>}</#noparse>
|
</if>
|
</#if>
|
<#if (col.name == "create_time")>
|
<if test="terms.${col.fieldName} != null and terms.${col.fieldName} !=''">
|
and DATE_FORMAT(${col.name},'%Y-%m-%d') = <#noparse>#{</#noparse>terms.${col.fieldName}<#noparse>}</#noparse>
|
</if>
|
<if test="terms.createStart != null and terms.createStart !='' and terms.createEnd != null and terms.createEnd !=''">
|
and (DATE_FORMAT(${col.name},'%Y-%m-%d') <![CDATA[ >= ]]> <#noparse>#{</#noparse>terms.createStart<#noparse>}</#noparse>
|
and DATE_FORMAT(${col.name},'%Y-%m-%d') <![CDATA[ <= ]]> <#noparse>#{</#noparse>terms.createEnd<#noparse>}</#noparse>)
|
</if>
|
</#if>
|
<#if (col.name == "update_time")>
|
<if test="terms.${col.fieldName} != null and terms.${col.fieldName} !=''">
|
and DATE_FORMAT(${col.name},'%Y-%m-%d') = <#noparse>#{</#noparse>terms.${col.fieldName}<#noparse>}</#noparse>
|
</if>
|
<if test="terms.updateStart != null and terms.updateStart !='' and terms.updateEnd != null and terms.updateEnd !=''">
|
and (DATE_FORMAT(${col.name},'%Y-%m-%d') <![CDATA[ >= ]]> <#noparse>#{</#noparse>terms.updateStart<#noparse>}</#noparse>
|
and DATE_FORMAT(${col.name},'%Y-%m-%d') <![CDATA[ <= ]]> <#noparse>#{</#noparse>terms.updateEnd<#noparse>}</#noparse>)
|
</if>
|
</#if>
|
<#if (col.name == "delete_status")>
|
<if test="terms.${col.fieldName} = null and terms.${col.fieldName} =''">
|
and delete_status = 0
|
</if>
|
<if test="terms.${col.fieldName} != null and terms.${col.fieldName} !=''">
|
and ${col.name} = <#noparse>#{</#noparse>terms.${col.fieldName}<#noparse>}</#noparse>
|
</if>
|
</#if>
|
</#list>
|
</where>
|
</if>
|
</sql>
|
<!-- 更新对象 -->
|
<update id="update${className}">
|
update
|
<include refid="table-name"/>
|
<set>
|
<include refid="set-part"/>
|
</set>
|
<where>
|
id = <#noparse>#{</#noparse>entity.id<#noparse>}</#noparse>
|
</where>
|
</update>
|
<!-- 条件更新对象 -->
|
<update id="update${className}Terms">
|
update
|
<include refid="table-name"/>
|
<set>
|
<include refid="set-part"/>
|
</set>
|
<include refid="where-part"/>
|
</update>
|
<!-- 根据编号物理删除 -->
|
<delete id="delete${className}">
|
delete from
|
<include refid="table-name" />
|
where id = <#noparse>#{</#noparse>id<#noparse>}</#noparse>
|
</delete>
|
<!-- 根据条件查询 -->
|
<select id="listTerms" resultMap="dataResult">
|
select
|
<include refid="column-part"/>
|
from
|
<include refid="table-name" />
|
<include refid="where-part"/>
|
</select>
|
<!-- 根据条件统计 -->
|
<select id="countTerms" resultType="java.lang.Long">
|
select
|
COUNT(1)
|
from
|
<include refid="table-name" />
|
<include refid="where-part"/>
|
</select>
|
<!-- 根据条件分页查询 -->
|
<select id="pageTerms" resultMap="dataResult">
|
SELECT
|
<include refid="column-part"/>
|
FROM
|
<include refid="table-name" />
|
<include refid="where-part"/>
|
<if test="page.sort != null">
|
<foreach collection="page.sort" item="s" index="index" separator="," open="order by ">
|
isnull<#noparse>(${</#noparse>s.property<#noparse>}), ${</#noparse>s.property<#noparse>}</#noparse> <#noparse>${</#noparse>s.direction<#noparse>}</#noparse>
|
</foreach>
|
</if>
|
<if test="page.sort == null">
|
order by isnull(create_time), create_time desc
|
</if>
|
limit <#noparse>#{</#noparse>page.offset<#noparse>}</#noparse>, <#noparse>#{</#noparse>page.size<#noparse>}</#noparse>
|
</select>
|
|
</mapper>
|