<?xml version="1.0" encoding="UTF-8"?>

<!--
  ~
  ~      Copyright (c) 2018-2025, lengleng All rights reserved.
  ~
  ~  Redistribution and use in source and binary forms, with or without
  ~  modification, are permitted provided that the following conditions are met:
  ~
  ~ Redistributions of source code must retain the above copyright notice,
  ~  this list of conditions and the following disclaimer.
  ~  Redistributions in binary form must reproduce the above copyright
  ~  notice, this list of conditions and the following disclaimer in the
  ~  documentation and/or other materials provided with the distribution.
  ~  Neither the name of the yifu4cloud.com developer nor the names of its
  ~  contributors may be used to endorse or promote products derived from
  ~  this software without specific prior written permission.
  ~  Author: lengleng (wangiegie@gmail.com)
  ~
  -->

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="${package}.${moduleName}.mapper.${className}Mapper">

  <resultMap id="${classname}Map" type="${package}.${moduleName}.entity.${className}">
#foreach($column in $columns)
#if($column.lowerAttrName==$pk.lowerAttrName)
    <id property="${pk.lowerAttrName}" column="${pk.columnName}"/>
#else
    <result property="${column.lowerAttrName}" column="${column.columnName}"/>
#end
#end
  </resultMap>
    <sql id="Base_Column_List">
            #foreach($column in $columns)
                #if($foreach.count==$!{columns.size()})
                a.${column.columnName}
                #else
                a.${column.columnName},
                #end
            #end
    </sql>
    <sql id="${classname}_where">
        <if test="${classname} != null">
            #foreach($column in $columns)
                #if($column.attrType=='String')
                    <if test="${classname}.$column.lowerAttrName != null and ${classname}.${column.lowerAttrName}.trim() != ''">
                        AND a.${column.columnName} = #{${classname}.$column.lowerAttrName}
                    </if>
                #elseif($column.attrType=='char')
                    <if test="${classname}.$column.lowerAttrName != null and ${classname}.${column.lowerAttrName} != ''">
                        AND a.${column.columnName} = #{${classname}.$column.lowerAttrName}
                    </if>
                #else
                    <if test="${classname}.$column.lowerAttrName != null">
                        AND a.${column.columnName} = #{${classname}.$column.lowerAttrName}
                    </if>
                #end
            #end
        </if>
    </sql>
    <!--${classname}简单分页查询-->
    <select id="get${className}Page" resultMap="${classname}Map">
        SELECT
        <include refid="Base_Column_List"/>
        FROM ${tableName} a
        <where>
            1=1
            <include refid="${classname}_where"/>
        </where>
    </select>
</mapper>