<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.module.access.dao.ibatis.AccessDaoImpl">

    <!-- 字段和属性映射 -->
    <resultMap type="AccessEntity" id="AccessEntity-Map">
        <id  property="id" column="id" />
        <result property="areaName" column="area_name" />
        <result property="areaCode" column="area_code" />
        <result property="bigPath" column="big_path" />
        <result property="tag" column="tag" />
        <result property="sort" column="sort" />
        <result property="remark" column="remark" />
        <result property="createUserId" column="create_user_id" />
        <result property="createTime" column="create_time" />
        <result property="updateTime" column="update_time" />
        <result property="areaId" column="area_id" />
        <result property="siteId" column="site_id" />
        <result property="siteCode" column="site_code" />
        <result property="siteName" column="site_name" />
        <result property="icon" column="icon" />
        <result property="latitude" column="latitude" />
        <result property="longitude" column="longitude" />
        <result property="type" column="type" />
        <result property="accessTime" column="access_time" />
        <result property="content" column="content" />
    </resultMap>

    <!-- 表所有列 -->
    <sql id="_columns">
        <trim suffixOverrides="," suffix="">
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('id') or colPickMode == 1 and data.containsKey('id')))">
                a.id,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('areaName') or colPickMode == 1 and data.containsKey('areaName')))">
                a.area_name,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('areaCode') or colPickMode == 1 and data.containsKey('areaCode')))">
                a.area_code,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('bigPath') or colPickMode == 1 and data.containsKey('bigPath')))">
                a.big_path,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('tag') or colPickMode == 1 and data.containsKey('tag')))">
                a.tag,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('sort') or colPickMode == 1 and data.containsKey('sort')))">
                a.sort,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('remark') or colPickMode == 1 and data.containsKey('remark')))">
                a.remark,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createUserId') or colPickMode == 1 and data.containsKey('createUserId')))">
                a.create_user_id,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createTime') or colPickMode == 1 and data.containsKey('createTime')))">
                a.create_time,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateTime') or colPickMode == 1 and data.containsKey('updateTime')))">
                a.update_time,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('areaId') or colPickMode == 1 and data.containsKey('areaId')))">
                a.area_id,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('siteId') or colPickMode == 1 and data.containsKey('siteId')))">
                a.site_id,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('siteCode') or colPickMode == 1 and data.containsKey('siteCode')))">
                a.site_code,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('siteName') or colPickMode == 1 and data.containsKey('siteName')))">
                a.site_name,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('icon') or colPickMode == 1 and data.containsKey('icon')))">
                a.icon,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('latitude') or colPickMode == 1 and data.containsKey('latitude')))">
                a.latitude,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('longitude') or colPickMode == 1 and data.containsKey('longitude')))">
                a.longitude,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('type') or colPickMode == 1 and data.containsKey('type')))">
                a.type,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('accessTime') or colPickMode == 1 and data.containsKey('accessTime')))">
                a.access_time,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('content') or colPickMode == 1 and data.containsKey('content')))">
                a.content,
            </if>
        </trim>
    </sql>
    <!-- 子表所有列 -->
    <sql id="_columns_sub">
        <trim suffixOverrides="," suffix="">
            b.id,b.accessId,b.system_name,b.system_code,b.enabled,b.access_time,b.sort,b.remark,b.create_user_id,b.create_time,b.update_time,
        </trim>
    </sql>
    <!-- 新增 区分主键自增加还是业务插入 -->
    <insert id="insert" parameterType="AccessEntity"  useGeneratedKeys="true" keyProperty="id">
        insert into mortals_xhx_access
        (area_name,area_code,big_path,tag,sort,remark,create_user_id,create_time,update_time,area_id,site_id,site_code,site_name,icon,latitude,longitude,type,access_time,content)
        VALUES
        (#{areaName},#{areaCode},#{bigPath},#{tag},#{sort},#{remark},#{createUserId},#{createTime},#{updateTime},#{areaId},#{siteId},#{siteCode},#{siteName},#{icon},#{latitude},#{longitude},#{type},#{accessTime},#{content})
    </insert>

    <!-- 批量新增 -->
    <insert id="insertBatch" parameterType="paramDto">
        insert into mortals_xhx_access
        (area_name,area_code,big_path,tag,sort,remark,create_user_id,create_time,update_time,area_id,site_id,site_code,site_name,icon,latitude,longitude,type,access_time,content)
        VALUES
        <foreach collection="data.dataList" item="item" index="index" separator="," >
            (#{item.areaName},#{item.areaCode},#{item.bigPath},#{item.tag},#{item.sort},#{item.remark},#{item.createUserId},#{item.createTime},#{item.updateTime},#{item.areaId},#{item.siteId},#{item.siteCode},#{item.siteName},#{item.icon},#{item.latitude},#{item.longitude},#{item.type},#{item.accessTime},#{item.content})
        </foreach>
    </insert>


    <!-- 根据ParamDto更新 -->
    <update id="update" parameterType="paramDto">
        update mortals_xhx_access as a
        set
        <trim suffixOverrides="," suffix="">
            <if test="(colPickMode==0 and data.containsKey('areaName')) or (colPickMode==1 and !data.containsKey('areaName'))">
                a.area_name=#{data.areaName},
            </if>
            <if test="(colPickMode==0 and data.containsKey('areaCode')) or (colPickMode==1 and !data.containsKey('areaCode'))">
                a.area_code=#{data.areaCode},
            </if>
            <if test="(colPickMode==0 and data.containsKey('bigPath')) or (colPickMode==1 and !data.containsKey('bigPath'))">
                a.big_path=#{data.bigPath},
            </if>
            <if test="(colPickMode==0 and data.containsKey('tag')) or (colPickMode==1 and !data.containsKey('tag'))">
                a.tag=#{data.tag},
            </if>
            <if test="(colPickMode==0 and data.containsKey('sort')) or (colPickMode==1 and !data.containsKey('sort'))">
                a.sort=#{data.sort},
            </if>
            <if test="(colPickMode==0 and data.containsKey('sortIncrement')) or (colPickMode==1 and !data.containsKey('sortIncrement'))">
                a.sort=ifnull(a.sort,0) + #{data.sortIncrement},
            </if>
            <if test="(colPickMode==0 and data.containsKey('remark')) or (colPickMode==1 and !data.containsKey('remark'))">
                a.remark=#{data.remark},
            </if>
            <if test="(colPickMode==0 and data.containsKey('createUserId')) or (colPickMode==1 and !data.containsKey('createUserId'))">
                a.create_user_id=#{data.createUserId},
            </if>
            <if test="(colPickMode==0 and data.containsKey('createUserIdIncrement')) or (colPickMode==1 and !data.containsKey('createUserIdIncrement'))">
                a.create_user_id=ifnull(a.create_user_id,0) + #{data.createUserIdIncrement},
            </if>
            <if test="(colPickMode==0 and data.containsKey('createTime')) or (colPickMode==1 and !data.containsKey('createTime'))">
                a.create_time=#{data.createTime},
            </if>
            <if test="(colPickMode==0 and data.containsKey('updateTime')) or (colPickMode==1 and !data.containsKey('updateTime'))">
                a.update_time=#{data.updateTime},
            </if>
            <if test="(colPickMode==0 and data.containsKey('areaId')) or (colPickMode==1 and !data.containsKey('areaId'))">
                a.area_id=#{data.areaId},
            </if>
            <if test="(colPickMode==0 and data.containsKey('siteId')) or (colPickMode==1 and !data.containsKey('siteId'))">
                a.site_id=#{data.siteId},
            </if>
            <if test="(colPickMode==0 and data.containsKey('siteIdIncrement')) or (colPickMode==1 and !data.containsKey('siteIdIncrement'))">
                a.site_id=ifnull(a.site_id,0) + #{data.siteIdIncrement},
            </if>
            <if test="(colPickMode==0 and data.containsKey('siteCode')) or (colPickMode==1 and !data.containsKey('siteCode'))">
                a.site_code=#{data.siteCode},
            </if>
            <if test="(colPickMode==0 and data.containsKey('siteName')) or (colPickMode==1 and !data.containsKey('siteName'))">
                a.site_name=#{data.siteName},
            </if>
            <if test="(colPickMode==0 and data.containsKey('icon')) or (colPickMode==1 and !data.containsKey('icon'))">
                a.icon=#{data.icon},
            </if>
            <if test="(colPickMode==0 and data.containsKey('latitude')) or (colPickMode==1 and !data.containsKey('latitude'))">
                a.latitude=#{data.latitude},
            </if>
            <if test="(colPickMode==0 and data.containsKey('longitude')) or (colPickMode==1 and !data.containsKey('longitude'))">
                a.longitude=#{data.longitude},
            </if>
            <if test="(colPickMode==0 and data.containsKey('type')) or (colPickMode==1 and !data.containsKey('type'))">
                a.type=#{data.type},
            </if>
            <if test="(colPickMode==0 and data.containsKey('accessTime')) or (colPickMode==1 and !data.containsKey('accessTime'))">
                a.access_time=#{data.accessTime},
            </if>
            <if test="(colPickMode==0 and data.containsKey('content')) or (colPickMode==1 and !data.containsKey('content'))">
                a.content=#{data.content},
            </if>
        </trim>
        <trim suffixOverrides="where" suffix="">
            where
            <trim prefixOverrides="and" prefix="">
                <include refid="_condition_"/>
            </trim>
        </trim>
    </update>
    <!-- 批量更新 -->
    <update id="updateBatch" parameterType="paramDto">
        update mortals_xhx_access as a
        <trim prefix="set" suffixOverrides=",">
            <trim prefix="area_name=(case" suffix="ELSE area_name end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('areaName')) or (colPickMode==1 and !item.containsKey('areaName'))">
                        when a.id=#{item.id} then #{item.areaName}
                    </if>
                </foreach>
            </trim>
            <trim prefix="area_code=(case" suffix="ELSE area_code end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('areaCode')) or (colPickMode==1 and !item.containsKey('areaCode'))">
                        when a.id=#{item.id} then #{item.areaCode}
                    </if>
                </foreach>
            </trim>
            <trim prefix="big_path=(case" suffix="ELSE big_path end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('bigPath')) or (colPickMode==1 and !item.containsKey('bigPath'))">
                        when a.id=#{item.id} then #{item.bigPath}
                    </if>
                </foreach>
            </trim>
            <trim prefix="tag=(case" suffix="ELSE tag end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('tag')) or (colPickMode==1 and !item.containsKey('tag'))">
                        when a.id=#{item.id} then #{item.tag}
                    </if>
                </foreach>
            </trim>
            <trim prefix="sort=(case" suffix="ELSE sort end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <choose>
                        <when test="(colPickMode==0 and item.containsKey('sort')) or (colPickMode==1 and !item.containsKey('sort'))">
                            when a.id=#{item.id} then #{item.sort}
                        </when>
                        <when test="(colPickMode==0 and item.containsKey('sortIncrement')) or (colPickMode==1 and !item.containsKey('sortIncrement'))">
                            when a.id=#{item.id} then ifnull(a.sort,0) + #{item.sortIncrement}
                        </when>
                    </choose>
                </foreach>
            </trim>
            <trim prefix="remark=(case" suffix="ELSE remark end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('remark')) or (colPickMode==1 and !item.containsKey('remark'))">
                        when a.id=#{item.id} then #{item.remark}
                    </if>
                </foreach>
            </trim>
            <trim prefix="create_user_id=(case" suffix="ELSE create_user_id end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <choose>
                        <when test="(colPickMode==0 and item.containsKey('createUserId')) or (colPickMode==1 and !item.containsKey('createUserId'))">
                            when a.id=#{item.id} then #{item.createUserId}
                        </when>
                        <when test="(colPickMode==0 and item.containsKey('createUserIdIncrement')) or (colPickMode==1 and !item.containsKey('createUserIdIncrement'))">
                            when a.id=#{item.id} then ifnull(a.create_user_id,0) + #{item.createUserIdIncrement}
                        </when>
                    </choose>
                </foreach>
            </trim>
            <trim prefix="create_time=(case" suffix="ELSE create_time end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('createTime')) or (colPickMode==1 and !item.containsKey('createTime'))">
                        when a.id=#{item.id} then #{item.createTime}
                    </if>
                </foreach>
            </trim>
            <trim prefix="update_time=(case" suffix="ELSE update_time end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('updateTime')) or (colPickMode==1 and !item.containsKey('updateTime'))">
                        when a.id=#{item.id} then #{item.updateTime}
                    </if>
                </foreach>
            </trim>
            <trim prefix="area_id=(case" suffix="ELSE area_id end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('areaId')) or (colPickMode==1 and !item.containsKey('areaId'))">
                        when a.id=#{item.id} then #{item.areaId}
                    </if>
                </foreach>
            </trim>
            <trim prefix="site_id=(case" suffix="ELSE site_id end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <choose>
                        <when test="(colPickMode==0 and item.containsKey('siteId')) or (colPickMode==1 and !item.containsKey('siteId'))">
                            when a.id=#{item.id} then #{item.siteId}
                        </when>
                        <when test="(colPickMode==0 and item.containsKey('siteIdIncrement')) or (colPickMode==1 and !item.containsKey('siteIdIncrement'))">
                            when a.id=#{item.id} then ifnull(a.site_id,0) + #{item.siteIdIncrement}
                        </when>
                    </choose>
                </foreach>
            </trim>
            <trim prefix="site_code=(case" suffix="ELSE site_code end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('siteCode')) or (colPickMode==1 and !item.containsKey('siteCode'))">
                        when a.id=#{item.id} then #{item.siteCode}
                    </if>
                </foreach>
            </trim>
            <trim prefix="site_name=(case" suffix="ELSE site_name end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('siteName')) or (colPickMode==1 and !item.containsKey('siteName'))">
                        when a.id=#{item.id} then #{item.siteName}
                    </if>
                </foreach>
            </trim>
            <trim prefix="icon=(case" suffix="ELSE icon end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('icon')) or (colPickMode==1 and !item.containsKey('icon'))">
                        when a.id=#{item.id} then #{item.icon}
                    </if>
                </foreach>
            </trim>
            <trim prefix="latitude=(case" suffix="ELSE latitude end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('latitude')) or (colPickMode==1 and !item.containsKey('latitude'))">
                        when a.id=#{item.id} then #{item.latitude}
                    </if>
                </foreach>
            </trim>
            <trim prefix="longitude=(case" suffix="ELSE longitude end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('longitude')) or (colPickMode==1 and !item.containsKey('longitude'))">
                        when a.id=#{item.id} then #{item.longitude}
                    </if>
                </foreach>
            </trim>
            <trim prefix="type=(case" suffix="ELSE type end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('type')) or (colPickMode==1 and !item.containsKey('type'))">
                        when a.id=#{item.id} then #{item.type}
                    </if>
                </foreach>
            </trim>
            <trim prefix="access_time=(case" suffix="ELSE access_time end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('accessTime')) or (colPickMode==1 and !item.containsKey('accessTime'))">
                        when a.id=#{item.id} then #{item.accessTime}
                    </if>
                </foreach>
            </trim>
            <trim prefix="content=(case" suffix="ELSE content end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('content')) or (colPickMode==1 and !item.containsKey('content'))">
                        when a.id=#{item.id} then #{item.content}
                    </if>
                </foreach>
            </trim>
        </trim>
        where id in
        <foreach collection="data.dataList" item="item" index="index" open="(" separator="," close=")">
            #{item.id}
        </foreach>
    </update>
    <!-- 根据主健查询 -->
    <select id="getByKey" parameterType="paramDto" resultMap="AccessEntity-Map">
        select <include refid="_columns"/>
        from mortals_xhx_access as a
        where a.id=#{condition.id}
    </select>
    <!-- 根据主健删除 -->
    <delete id="deleteByKey" parameterType="paramDto">
        delete a.* from mortals_xhx_access as a where a.id=#{condition.id}
    </delete>
    <!-- 根据主健删除一批，针对单一主健有效 -->
    <delete id="deleteByKeys">
        delete from mortals_xhx_access where id in
        <foreach collection="array" item="item" index="index" open="(" separator="," close=")">
            #{item}
        </foreach>
    </delete>
    <!-- 根据主健列表删除一批，针对单一主健有效 -->
    <delete id="deleteByKeyList">
        delete from mortals_xhx_access where id in
        <foreach collection="list" item="item" index="index" open="(" separator="," close=")">
            #{item}
        </foreach>
    </delete>

    <!-- 根据对象列表删除一批，针对单一主健有效 -->
    <delete id="deleteByEntityList">
        delete from mortals_xhx_access where id in
        <foreach collection="list" item="item" index="index" open="(" separator="," close=")">
            #{item.id}
        </foreach>
    </delete>
    <!-- 根据paramDto删除一批 -->
    <delete id="deleteByMap" parameterType="paramDto">
        delete a.* from mortals_xhx_access as a
        <trim suffixOverrides="where" suffix="">
            where
            <trim prefixOverrides="and" prefix="">
                <include refid="_condition_"/>
            </trim>
        </trim>
    </delete>
    <!-- 获取列表 -->
    <select id="getList" parameterType="paramDto" resultMap="AccessEntity-Map">
        select <include refid="_columns"/>
        from mortals_xhx_access as a
        <trim suffixOverrides="where" suffix="">
            where
            <trim prefixOverrides="and" prefix="">
                <include refid="_condition_"/>
            </trim>
        </trim>
        <include refid="_orderCols_"/>
    </select>

    <!-- 获取 -->
    <select id="getListCount" parameterType="paramDto" resultType="int">
        select count(1)
        from mortals_xhx_access as a
        <trim suffixOverrides="where" suffix="">
            where
            <trim prefixOverrides="and" prefix="">
                <include refid="_condition_"/>
            </trim>
        </trim>
    </select>
    <!-- 条件映射 -->
    <sql id="_condition_">
        <if test="condition != null and !condition.isEmpty()">
            <!-- 条件映射-普通条件 -->
            <include refid="_condition_param_">
                <property name="_conditionParam_" value="condition"/>
                <property name="_conditionType_" value="and"/>
            </include>
            <!-- 条件映射-集合之间使用AND，集合中元素使用OR-(list[0].1 or list[0].2) and (list[1].3 or list[1].4) -->
            <if test="condition.containsKey('andConditionList') and !condition.andConditionList.isEmpty()">
                and
                <foreach collection="condition.andConditionList" open="(" close=")" index="index" item="andCondition" separator=" and ">
                    <trim prefixOverrides="or" prefix="(" suffix=")">
                        <include refid="_condition_param_">
                            <property name="_conditionParam_" value="andCondition"/>
                            <property name="_conditionType_" value="or"/>
                        </include>
                    </trim>
                </foreach>
            </if>
            <!-- 条件映射-集合之间使用OR，集合中元素使用AND-(list[0].1 and list[0].2) or (list[1].3 and list[1].4) -->
            <if test="condition.containsKey('orConditionList') and !condition.orConditionList.isEmpty()">
                and
                <foreach collection="condition.orConditionList" open="(" close=")" index="index" item="orCondition" separator=" or ">
                    <trim prefixOverrides="and" prefix="(" suffix=")">
                        <include refid="_condition_param_">
                            <property name="_conditionParam_" value="orCondition"/>
                            <property name="_conditionType_" value="and"/>
                        </include>
                    </trim>
                </foreach>
            </if>
        </if>
    </sql>
    <!-- 条件映射-代参数 -->
    <sql id="_condition_param_">
        <bind name="conditionParamRef" value="${_conditionParam_}"/>
        <if test="permissionSql != null and permissionSql != ''">
            ${permissionSql}
        </if>

        <if test="conditionParamRef.containsKey('id')">
            <if test="conditionParamRef.id != null">
                ${_conditionType_} a.id=#{${_conditionParam_}.id}
            </if>
        </if>
        <if test="conditionParamRef.containsKey('id')">
            <if test="conditionParamRef.id != null ">
                ${_conditionType_} a.id = #{${_conditionParam_}.id}
            </if>
            <if test="conditionParamRef.id == null">
                ${_conditionType_} a.id is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('idList') and conditionParamRef.idList.size() > 0">
            ${_conditionType_} a.id in
            <foreach collection="conditionParamRef.idList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('idNotList') and conditionParamRef.idNotList.size() > 0">
            ${_conditionType_} a.id not in
            <foreach collection="conditionParamRef.idNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('idStart') and conditionParamRef.idStart != null">
            ${_conditionType_} a.id <![CDATA[ >= ]]> #{${_conditionParam_}.idStart}
        </if>
        <if test="conditionParamRef.containsKey('idEnd') and conditionParamRef.idEnd != null">
            ${_conditionType_} a.id <![CDATA[ <= ]]> #{${_conditionParam_}.idEnd}
        </if>


        <if test="conditionParamRef.containsKey('areaName')">
            <if test="conditionParamRef.areaName != null and conditionParamRef.areaName != ''">
                ${_conditionType_} a.area_name like #{${_conditionParam_}.areaName}
            </if>
            <if test="conditionParamRef.areaName == null">
                ${_conditionType_} a.area_name is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('areaNameList') and conditionParamRef.areaNameList.size() > 0">
            ${_conditionType_} a.area_name in
            <foreach collection="conditionParamRef.areaNameList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('areaNameNotList') and conditionParamRef.areaNameNotList.size() > 0">
            ${_conditionType_} a.area_name not in
            <foreach collection="conditionParamRef.areaNameNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>

        <if test="conditionParamRef.containsKey('areaCode')">
            <if test="conditionParamRef.areaCode != null and conditionParamRef.areaCode != ''">
                ${_conditionType_} a.area_code like #{${_conditionParam_}.areaCode}
            </if>
            <if test="conditionParamRef.areaCode == null">
                ${_conditionType_} a.area_code is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('areaCodeList') and conditionParamRef.areaCodeList.size() > 0">
            ${_conditionType_} a.area_code in
            <foreach collection="conditionParamRef.areaCodeList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('areaCodeNotList') and conditionParamRef.areaCodeNotList.size() > 0">
            ${_conditionType_} a.area_code not in
            <foreach collection="conditionParamRef.areaCodeNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>

        <if test="conditionParamRef.containsKey('bigPath')">
            <if test="conditionParamRef.bigPath != null and conditionParamRef.bigPath != ''">
                ${_conditionType_} a.big_path like #{${_conditionParam_}.bigPath}
            </if>
            <if test="conditionParamRef.bigPath == null">
                ${_conditionType_} a.big_path is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('bigPathList') and conditionParamRef.bigPathList.size() > 0">
            ${_conditionType_} a.big_path in
            <foreach collection="conditionParamRef.bigPathList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('bigPathNotList') and conditionParamRef.bigPathNotList.size() > 0">
            ${_conditionType_} a.big_path not in
            <foreach collection="conditionParamRef.bigPathNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>

        <if test="conditionParamRef.containsKey('tag')">
            <if test="conditionParamRef.tag != null and conditionParamRef.tag != ''">
                ${_conditionType_} a.tag like #{${_conditionParam_}.tag}
            </if>
            <if test="conditionParamRef.tag == null">
                ${_conditionType_} a.tag is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('tagList') and conditionParamRef.tagList.size() > 0">
            ${_conditionType_} a.tag in
            <foreach collection="conditionParamRef.tagList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('tagNotList') and conditionParamRef.tagNotList.size() > 0">
            ${_conditionType_} a.tag not in
            <foreach collection="conditionParamRef.tagNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('sort')">
            <if test="conditionParamRef.sort != null ">
                ${_conditionType_} a.sort = #{${_conditionParam_}.sort}
            </if>
            <if test="conditionParamRef.sort == null">
                ${_conditionType_} a.sort is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('sortList') and conditionParamRef.sortList.size() > 0">
            ${_conditionType_} a.sort in
            <foreach collection="conditionParamRef.sortList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('sortNotList') and conditionParamRef.sortNotList.size() > 0">
            ${_conditionType_} a.sort not in
            <foreach collection="conditionParamRef.sortNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('sortStart') and conditionParamRef.sortStart != null">
            ${_conditionType_} a.sort <![CDATA[ >= ]]> #{${_conditionParam_}.sortStart}
        </if>
        <if test="conditionParamRef.containsKey('sortEnd') and conditionParamRef.sortEnd != null">
            ${_conditionType_} a.sort <![CDATA[ <= ]]> #{${_conditionParam_}.sortEnd}
        </if>


        <if test="conditionParamRef.containsKey('remark')">
            <if test="conditionParamRef.remark != null and conditionParamRef.remark != ''">
                ${_conditionType_} a.remark like #{${_conditionParam_}.remark}
            </if>
            <if test="conditionParamRef.remark == null">
                ${_conditionType_} a.remark is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('remarkList') and conditionParamRef.remarkList.size() > 0">
            ${_conditionType_} a.remark in
            <foreach collection="conditionParamRef.remarkList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('remarkNotList') and conditionParamRef.remarkNotList.size() > 0">
            ${_conditionType_} a.remark not in
            <foreach collection="conditionParamRef.remarkNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('createUserId')">
            <if test="conditionParamRef.createUserId != null ">
                ${_conditionType_} a.create_user_id = #{${_conditionParam_}.createUserId}
            </if>
            <if test="conditionParamRef.createUserId == null">
                ${_conditionType_} a.create_user_id is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('createUserIdList') and conditionParamRef.createUserIdList.size() > 0">
            ${_conditionType_} a.create_user_id in
            <foreach collection="conditionParamRef.createUserIdList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('createUserIdNotList') and conditionParamRef.createUserIdNotList.size() > 0">
            ${_conditionType_} a.create_user_id not in
            <foreach collection="conditionParamRef.createUserIdNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('createUserIdStart') and conditionParamRef.createUserIdStart != null">
            ${_conditionType_} a.create_user_id <![CDATA[ >= ]]> #{${_conditionParam_}.createUserIdStart}
        </if>
        <if test="conditionParamRef.containsKey('createUserIdEnd') and conditionParamRef.createUserIdEnd != null">
            ${_conditionType_} a.create_user_id <![CDATA[ <= ]]> #{${_conditionParam_}.createUserIdEnd}
        </if>


        <if test="conditionParamRef.containsKey('createTime')">
            <if test="conditionParamRef.createTime != null ">
                ${_conditionType_} a.create_time = #{${_conditionParam_}.createTime}
            </if>
            <if test="conditionParamRef.createTime == null">
                ${_conditionType_} a.create_time is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('createTimeStart') and conditionParamRef.createTimeStart != null and conditionParamRef.createTimeStart!=''">
            ${_conditionType_} a.create_time <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
        </if>
        <if test="conditionParamRef.containsKey('createTimeEnd') and conditionParamRef.createTimeEnd != null and conditionParamRef.createTimeEnd!=''">
            ${_conditionType_} a.create_time <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
        </if>

        <if test="conditionParamRef.containsKey('updateTime')">
            <if test="conditionParamRef.updateTime != null ">
                ${_conditionType_} a.update_time = #{${_conditionParam_}.updateTime}
            </if>
            <if test="conditionParamRef.updateTime == null">
                ${_conditionType_} a.update_time is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('updateTimeStart') and conditionParamRef.updateTimeStart != null and conditionParamRef.updateTimeStart!=''">
            ${_conditionType_} a.update_time <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
        </if>
        <if test="conditionParamRef.containsKey('updateTimeEnd') and conditionParamRef.updateTimeEnd != null and conditionParamRef.updateTimeEnd!=''">
            ${_conditionType_} a.update_time <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
        </if>

        <if test="conditionParamRef.containsKey('areaId')">
            <if test="conditionParamRef.areaId != null and conditionParamRef.areaId != ''">
                ${_conditionType_} a.area_id like #{${_conditionParam_}.areaId}
            </if>
            <if test="conditionParamRef.areaId == null">
                ${_conditionType_} a.area_id is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('areaIdList') and conditionParamRef.areaIdList.size() > 0">
            ${_conditionType_} a.area_id in
            <foreach collection="conditionParamRef.areaIdList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('areaIdNotList') and conditionParamRef.areaIdNotList.size() > 0">
            ${_conditionType_} a.area_id not in
            <foreach collection="conditionParamRef.areaIdNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('siteId')">
            <if test="conditionParamRef.siteId != null ">
                ${_conditionType_} a.site_id = #{${_conditionParam_}.siteId}
            </if>
            <if test="conditionParamRef.siteId == null">
                ${_conditionType_} a.site_id is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('siteIdList') and conditionParamRef.siteIdList.size() > 0">
            ${_conditionType_} a.site_id in
            <foreach collection="conditionParamRef.siteIdList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('siteIdNotList') and conditionParamRef.siteIdNotList.size() > 0">
            ${_conditionType_} a.site_id not in
            <foreach collection="conditionParamRef.siteIdNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('siteIdStart') and conditionParamRef.siteIdStart != null">
            ${_conditionType_} a.site_id <![CDATA[ >= ]]> #{${_conditionParam_}.siteIdStart}
        </if>
        <if test="conditionParamRef.containsKey('siteIdEnd') and conditionParamRef.siteIdEnd != null">
            ${_conditionType_} a.site_id <![CDATA[ <= ]]> #{${_conditionParam_}.siteIdEnd}
        </if>


        <if test="conditionParamRef.containsKey('siteCode')">
            <if test="conditionParamRef.siteCode != null and conditionParamRef.siteCode != ''">
                ${_conditionType_} a.site_code like #{${_conditionParam_}.siteCode}
            </if>
            <if test="conditionParamRef.siteCode == null">
                ${_conditionType_} a.site_code is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('siteCodeList') and conditionParamRef.siteCodeList.size() > 0">
            ${_conditionType_} a.site_code in
            <foreach collection="conditionParamRef.siteCodeList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('siteCodeNotList') and conditionParamRef.siteCodeNotList.size() > 0">
            ${_conditionType_} a.site_code not in
            <foreach collection="conditionParamRef.siteCodeNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>

        <if test="conditionParamRef.containsKey('siteName')">
            <if test="conditionParamRef.siteName != null and conditionParamRef.siteName != ''">
                ${_conditionType_} a.site_name like #{${_conditionParam_}.siteName}
            </if>
            <if test="conditionParamRef.siteName == null">
                ${_conditionType_} a.site_name is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('siteNameList') and conditionParamRef.siteNameList.size() > 0">
            ${_conditionType_} a.site_name in
            <foreach collection="conditionParamRef.siteNameList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('siteNameNotList') and conditionParamRef.siteNameNotList.size() > 0">
            ${_conditionType_} a.site_name not in
            <foreach collection="conditionParamRef.siteNameNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>

        <if test="conditionParamRef.containsKey('icon')">
            <if test="conditionParamRef.icon != null and conditionParamRef.icon != ''">
                ${_conditionType_} a.icon like #{${_conditionParam_}.icon}
            </if>
            <if test="conditionParamRef.icon == null">
                ${_conditionType_} a.icon is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('iconList') and conditionParamRef.iconList.size() > 0">
            ${_conditionType_} a.icon in
            <foreach collection="conditionParamRef.iconList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('iconNotList') and conditionParamRef.iconNotList.size() > 0">
            ${_conditionType_} a.icon not in
            <foreach collection="conditionParamRef.iconNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>

        <if test="conditionParamRef.containsKey('latitude')">
            <if test="conditionParamRef.latitude != null and conditionParamRef.latitude != ''">
                ${_conditionType_} a.latitude like #{${_conditionParam_}.latitude}
            </if>
            <if test="conditionParamRef.latitude == null">
                ${_conditionType_} a.latitude is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('latitudeList') and conditionParamRef.latitudeList.size() > 0">
            ${_conditionType_} a.latitude in
            <foreach collection="conditionParamRef.latitudeList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('latitudeNotList') and conditionParamRef.latitudeNotList.size() > 0">
            ${_conditionType_} a.latitude not in
            <foreach collection="conditionParamRef.latitudeNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>

        <if test="conditionParamRef.containsKey('longitude')">
            <if test="conditionParamRef.longitude != null and conditionParamRef.longitude != ''">
                ${_conditionType_} a.longitude like #{${_conditionParam_}.longitude}
            </if>
            <if test="conditionParamRef.longitude == null">
                ${_conditionType_} a.longitude is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('longitudeList') and conditionParamRef.longitudeList.size() > 0">
            ${_conditionType_} a.longitude in
            <foreach collection="conditionParamRef.longitudeList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('longitudeNotList') and conditionParamRef.longitudeNotList.size() > 0">
            ${_conditionType_} a.longitude not in
            <foreach collection="conditionParamRef.longitudeNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>

        <if test="conditionParamRef.containsKey('type')">
            <if test="conditionParamRef.type != null and conditionParamRef.type != ''">
                ${_conditionType_} a.type like #{${_conditionParam_}.type}
            </if>
            <if test="conditionParamRef.type == null">
                ${_conditionType_} a.type is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('typeList') and conditionParamRef.typeList.size() > 0">
            ${_conditionType_} a.type in
            <foreach collection="conditionParamRef.typeList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('typeNotList') and conditionParamRef.typeNotList.size() > 0">
            ${_conditionType_} a.type not in
            <foreach collection="conditionParamRef.typeNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>

        <if test="conditionParamRef.containsKey('accessTime')">
            <if test="conditionParamRef.accessTime != null ">
                ${_conditionType_} a.access_time = #{${_conditionParam_}.accessTime}
            </if>
            <if test="conditionParamRef.accessTime == null">
                ${_conditionType_} a.access_time is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('accessTimeStart') and conditionParamRef.accessTimeStart != null and conditionParamRef.accessTimeStart!=''">
            ${_conditionType_} a.access_time <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.accessTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
        </if>
        <if test="conditionParamRef.containsKey('accessTimeEnd') and conditionParamRef.accessTimeEnd != null and conditionParamRef.accessTimeEnd!=''">
            ${_conditionType_} a.access_time <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.accessTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
        </if>

        <if test="conditionParamRef.containsKey('content')">
            <if test="conditionParamRef.content != null and conditionParamRef.content != ''">
                ${_conditionType_} a.content like #{${_conditionParam_}.content}
            </if>
            <if test="conditionParamRef.content == null">
                ${_conditionType_} a.content is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('contentList') and conditionParamRef.contentList.size() > 0">
            ${_conditionType_} a.content in
            <foreach collection="conditionParamRef.contentList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('contentNotList') and conditionParamRef.contentNotList.size() > 0">
            ${_conditionType_} a.content not in
            <foreach collection="conditionParamRef.contentNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
    </sql>
    <sql id="_orderCols_">
        <if test="orderColList != null and !orderColList.isEmpty()">
            order by
            <if test="conditionParamRef.containsKey('idList') and conditionParamRef.idList.size() > 0">
                field(a.id,
                <foreach collection="conditionParamRef.idList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('sortList') and conditionParamRef.sortList.size() > 0">
                field(a.sort,
                <foreach collection="conditionParamRef.sortList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('createUserIdList') and conditionParamRef.createUserIdList.size() > 0">
                field(a.createUserId,
                <foreach collection="conditionParamRef.createUserIdList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('siteIdList') and conditionParamRef.siteIdList.size() > 0">
                field(a.siteId,
                <foreach collection="conditionParamRef.siteIdList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <trim suffixOverrides=","  suffix="">
                <foreach collection="orderColList" open="" close="" index="index" item="item" separator=",">
                    a.${item.colName} ${item.sortKind}
                </foreach>
            </trim>
        </if>
        <if test="(orderColList == null or orderColList.isEmpty()) and orderCol != null and !orderCol.isEmpty()">
            order by
            <if test="conditionParamRef.containsKey('idList') and conditionParamRef.idList.size() > 0">
                field(a.id,
                <foreach collection="conditionParamRef.idList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('sortList') and conditionParamRef.sortList.size() > 0">
                field(a.sort,
                <foreach collection="conditionParamRef.sortList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('createUserIdList') and conditionParamRef.createUserIdList.size() > 0">
                field(a.createUserId,
                <foreach collection="conditionParamRef.createUserIdList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('siteIdList') and conditionParamRef.siteIdList.size() > 0">
                field(a.siteId,
                <foreach collection="conditionParamRef.siteIdList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <trim suffixOverrides=","  suffix="">
                <if test="orderCol.containsKey('id')">
                    a.id
                    <if test='orderCol.id != null and "DESC".equalsIgnoreCase(orderCol.id)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('areaName')">
                    a.area_name
                    <if test='orderCol.areaName != null and "DESC".equalsIgnoreCase(orderCol.areaName)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('areaCode')">
                    a.area_code
                    <if test='orderCol.areaCode != null and "DESC".equalsIgnoreCase(orderCol.areaCode)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('bigPath')">
                    a.big_path
                    <if test='orderCol.bigPath != null and "DESC".equalsIgnoreCase(orderCol.bigPath)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('tag')">
                    a.tag
                    <if test='orderCol.tag != null and "DESC".equalsIgnoreCase(orderCol.tag)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('sort')">
                    a.sort
                    <if test='orderCol.sort != null and "DESC".equalsIgnoreCase(orderCol.sort)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('remark')">
                    a.remark
                    <if test='orderCol.remark != null and "DESC".equalsIgnoreCase(orderCol.remark)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('createUserId')">
                    a.create_user_id
                    <if test='orderCol.createUserId != null and "DESC".equalsIgnoreCase(orderCol.createUserId)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('createTime')">
                    a.create_time
                    <if test='orderCol.createTime != null and "DESC".equalsIgnoreCase(orderCol.createTime)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('updateTime')">
                    a.update_time
                    <if test='orderCol.updateTime != null and "DESC".equalsIgnoreCase(orderCol.updateTime)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('areaId')">
                    a.area_id
                    <if test='orderCol.areaId != null and "DESC".equalsIgnoreCase(orderCol.areaId)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('siteId')">
                    a.site_id
                    <if test='orderCol.siteId != null and "DESC".equalsIgnoreCase(orderCol.siteId)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('siteCode')">
                    a.site_code
                    <if test='orderCol.siteCode != null and "DESC".equalsIgnoreCase(orderCol.siteCode)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('siteName')">
                    a.site_name
                    <if test='orderCol.siteName != null and "DESC".equalsIgnoreCase(orderCol.siteName)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('icon')">
                    a.icon
                    <if test='orderCol.icon != null and "DESC".equalsIgnoreCase(orderCol.icon)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('latitude')">
                    a.latitude
                    <if test='orderCol.latitude != null and "DESC".equalsIgnoreCase(orderCol.latitude)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('longitude')">
                    a.longitude
                    <if test='orderCol.longitude != null and "DESC".equalsIgnoreCase(orderCol.longitude)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('type')">
                    a.type
                    <if test='orderCol.type != null and "DESC".equalsIgnoreCase(orderCol.type)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('accessTime')">
                    a.access_time
                    <if test='orderCol.accessTime != null and "DESC".equalsIgnoreCase(orderCol.accessTime)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('content')">
                    a.content
                    <if test='orderCol.content != null and "DESC".equalsIgnoreCase(orderCol.content)'>DESC</if>
                    ,
                </if>
            </trim>
        </if>


    </sql>
    <sql id="_group_by_">
        <if test="groupList != null and !groupList.isEmpty()">
            GROUP BY
            <trim suffixOverrides=","  suffix="">
                <foreach collection="groupList" open="" close="" index="index" item="item" separator=",">
                    ${item}
                </foreach>
            </trim>
        </if>
    </sql>
</mapper>