<?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.feedback.dao.ibatis.FeedbackDaoImpl">

    <!-- 字段和属性映射 -->
    <resultMap type="FeedbackEntity" id="FeedbackEntity-Map">
            <id  property="id" column="id" />
            <result property="title" column="title" />
            <result property="content" column="content" />
            <result property="isShow" column="isShow" />
            <result property="feedbackName" column="feedbackName" />
            <result property="contactInfo" column="contactInfo" />
            <result property="idCard" column="idCard" />
            <result property="Address" column="Address" />
            <result property="reply" column="reply" />
            <result property="replyContent" column="replyContent" />
            <result property="feedbackType" column="feedbackType" />
            <result property="fileName" column="fileName" />
            <result property="filePath" column="filePath" />
            <result property="processId" column="processId" />
            <result property="processName" column="processName" />
            <result property="processStatus" column="processStatus" />
            <result property="processComments" column="processComments" />
            <result property="processTime" column="processTime" />
            <result property="remark" column="remark" />
            <result property="createUserId" column="createUserId" />
            <result property="createTime" column="createTime" />
            <result property="updateUserId" column="updateUserId" />
            <result property="updateTime" column="updateTime" />
            
    </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('title') or colPickMode == 1 and data.containsKey('title')))">
                    a.title,
                </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>
                <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('isShow') or colPickMode == 1 and data.containsKey('isShow')))">
                    a.isShow,
                </if>
                <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('feedbackName') or colPickMode == 1 and data.containsKey('feedbackName')))">
                    a.feedbackName,
                </if>
                <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('contactInfo') or colPickMode == 1 and data.containsKey('contactInfo')))">
                    a.contactInfo,
                </if>
                <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('idCard') or colPickMode == 1 and data.containsKey('idCard')))">
                    a.idCard,
                </if>
                <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('Address') or colPickMode == 1 and data.containsKey('Address')))">
                    a.Address,
                </if>
                <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('reply') or colPickMode == 1 and data.containsKey('reply')))">
                    a.reply,
                </if>
                <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('replyContent') or colPickMode == 1 and data.containsKey('replyContent')))">
                    a.replyContent,
                </if>
                <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('feedbackType') or colPickMode == 1 and data.containsKey('feedbackType')))">
                    a.feedbackType,
                </if>
                <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('fileName') or colPickMode == 1 and data.containsKey('fileName')))">
                    a.fileName,
                </if>
                <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('filePath') or colPickMode == 1 and data.containsKey('filePath')))">
                    a.filePath,
                </if>
                <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('processId') or colPickMode == 1 and data.containsKey('processId')))">
                    a.processId,
                </if>
                <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('processName') or colPickMode == 1 and data.containsKey('processName')))">
                    a.processName,
                </if>
                <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('processStatus') or colPickMode == 1 and data.containsKey('processStatus')))">
                    a.processStatus,
                </if>
                <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('processComments') or colPickMode == 1 and data.containsKey('processComments')))">
                    a.processComments,
                </if>
                <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('processTime') or colPickMode == 1 and data.containsKey('processTime')))">
                    a.processTime,
                </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.createUserId,
                </if>
                <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createTime') or colPickMode == 1 and data.containsKey('createTime')))">
                    a.createTime,
                </if>
                <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateUserId') or colPickMode == 1 and data.containsKey('updateUserId')))">
                    a.updateUserId,
                </if>
                <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateTime') or colPickMode == 1 and data.containsKey('updateTime')))">
                    a.updateTime,
                </if>
        </trim>
    </sql>
    <!-- 新增 区分主键自增加还是业务插入 -->
    <insert id="insert" parameterType="FeedbackEntity"  useGeneratedKeys="true" keyProperty="id">
        insert into mortals_xhx_feedback
        (title,content,isShow,feedbackName,contactInfo,idCard,Address,reply,replyContent,feedbackType,fileName,filePath,processId,processName,processStatus,processComments,processTime,remark,createUserId,createTime,updateUserId,updateTime)
        VALUES
        (#{title},#{content},#{isShow},#{feedbackName},#{contactInfo},#{idCard},#{Address},#{reply},#{replyContent},#{feedbackType},#{fileName},#{filePath},#{processId},#{processName},#{processStatus},#{processComments},#{processTime},#{remark},#{createUserId},#{createTime},#{updateUserId},#{updateTime})
    </insert>

    <!-- 批量新增 -->
    <insert id="insertBatch" parameterType="paramDto">
        insert into mortals_xhx_feedback
        (title,content,isShow,feedbackName,contactInfo,idCard,Address,reply,replyContent,feedbackType,fileName,filePath,processId,processName,processStatus,processComments,processTime,remark,createUserId,createTime,updateUserId,updateTime)
        VALUES
        <foreach collection="data.dataList" item="item" index="index" separator="," >
            (#{item.title},#{item.content},#{item.isShow},#{item.feedbackName},#{item.contactInfo},#{item.idCard},#{item.Address},#{item.reply},#{item.replyContent},#{item.feedbackType},#{item.fileName},#{item.filePath},#{item.processId},#{item.processName},#{item.processStatus},#{item.processComments},#{item.processTime},#{item.remark},#{item.createUserId},#{item.createTime},#{item.updateUserId},#{item.updateTime})
        </foreach>
    </insert>


    <!-- 根据ParamDto更新 -->
    <update id="update" parameterType="paramDto">
        update mortals_xhx_feedback as a
        set
        <trim suffixOverrides="," suffix="">
            <if test="(colPickMode==0 and data.containsKey('title')) or (colPickMode==1 and !data.containsKey('title'))">
                a.title=#{data.title},
            </if>
            <if test="(colPickMode==0 and data.containsKey('content')) or (colPickMode==1 and !data.containsKey('content'))">
                a.content=#{data.content},
            </if>
            <if test="(colPickMode==0 and data.containsKey('isShow')) or (colPickMode==1 and !data.containsKey('isShow'))">
                a.isShow=#{data.isShow},
            </if>
            <if test="(colPickMode==0 and data.containsKey('isShowIncrement')) or (colPickMode==1 and !data.containsKey('isShowIncrement'))">
                a.isShow=ifnull(a.isShow,0) + #{data.isShowIncrement},
            </if>
            <if test="(colPickMode==0 and data.containsKey('feedbackName')) or (colPickMode==1 and !data.containsKey('feedbackName'))">
                a.feedbackName=#{data.feedbackName},
            </if>
            <if test="(colPickMode==0 and data.containsKey('contactInfo')) or (colPickMode==1 and !data.containsKey('contactInfo'))">
                a.contactInfo=#{data.contactInfo},
            </if>
            <if test="(colPickMode==0 and data.containsKey('idCard')) or (colPickMode==1 and !data.containsKey('idCard'))">
                a.idCard=#{data.idCard},
            </if>
            <if test="(colPickMode==0 and data.containsKey('Address')) or (colPickMode==1 and !data.containsKey('Address'))">
                a.Address=#{data.Address},
            </if>
            <if test="(colPickMode==0 and data.containsKey('reply')) or (colPickMode==1 and !data.containsKey('reply'))">
                a.reply=#{data.reply},
            </if>
            <if test="(colPickMode==0 and data.containsKey('replyIncrement')) or (colPickMode==1 and !data.containsKey('replyIncrement'))">
                a.reply=ifnull(a.reply,0) + #{data.replyIncrement},
            </if>
            <if test="(colPickMode==0 and data.containsKey('replyContent')) or (colPickMode==1 and !data.containsKey('replyContent'))">
                a.replyContent=#{data.replyContent},
            </if>
            <if test="(colPickMode==0 and data.containsKey('feedbackType')) or (colPickMode==1 and !data.containsKey('feedbackType'))">
                a.feedbackType=#{data.feedbackType},
            </if>
            <if test="(colPickMode==0 and data.containsKey('feedbackTypeIncrement')) or (colPickMode==1 and !data.containsKey('feedbackTypeIncrement'))">
                a.feedbackType=ifnull(a.feedbackType,0) + #{data.feedbackTypeIncrement},
            </if>
            <if test="(colPickMode==0 and data.containsKey('fileName')) or (colPickMode==1 and !data.containsKey('fileName'))">
                a.fileName=#{data.fileName},
            </if>
            <if test="(colPickMode==0 and data.containsKey('filePath')) or (colPickMode==1 and !data.containsKey('filePath'))">
                a.filePath=#{data.filePath},
            </if>
            <if test="(colPickMode==0 and data.containsKey('processId')) or (colPickMode==1 and !data.containsKey('processId'))">
                a.processId=#{data.processId},
            </if>
            <if test="(colPickMode==0 and data.containsKey('processIdIncrement')) or (colPickMode==1 and !data.containsKey('processIdIncrement'))">
                a.processId=ifnull(a.processId,0) + #{data.processIdIncrement},
            </if>
            <if test="(colPickMode==0 and data.containsKey('processName')) or (colPickMode==1 and !data.containsKey('processName'))">
                a.processName=#{data.processName},
            </if>
            <if test="(colPickMode==0 and data.containsKey('processStatus')) or (colPickMode==1 and !data.containsKey('processStatus'))">
                a.processStatus=#{data.processStatus},
            </if>
            <if test="(colPickMode==0 and data.containsKey('processStatusIncrement')) or (colPickMode==1 and !data.containsKey('processStatusIncrement'))">
                a.processStatus=ifnull(a.processStatus,0) + #{data.processStatusIncrement},
            </if>
            <if test="(colPickMode==0 and data.containsKey('processComments')) or (colPickMode==1 and !data.containsKey('processComments'))">
                a.processComments=#{data.processComments},
            </if>
            <if test="(colPickMode==0 and data.containsKey('processTime')) or (colPickMode==1 and !data.containsKey('processTime'))">
                a.processTime=#{data.processTime},
            </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.createUserId=#{data.createUserId},
            </if>
            <if test="(colPickMode==0 and data.containsKey('createUserIdIncrement')) or (colPickMode==1 and !data.containsKey('createUserIdIncrement'))">
                a.createUserId=ifnull(a.createUserId,0) + #{data.createUserIdIncrement},
            </if>
            <if test="(colPickMode==0 and data.containsKey('createTime')) or (colPickMode==1 and !data.containsKey('createTime'))">
                a.createTime=#{data.createTime},
            </if>
            <if test="(colPickMode==0 and data.containsKey('updateUserId')) or (colPickMode==1 and !data.containsKey('updateUserId'))">
                a.updateUserId=#{data.updateUserId},
            </if>
            <if test="(colPickMode==0 and data.containsKey('updateUserIdIncrement')) or (colPickMode==1 and !data.containsKey('updateUserIdIncrement'))">
                a.updateUserId=ifnull(a.updateUserId,0) + #{data.updateUserIdIncrement},
            </if>
            <if test="(colPickMode==0 and data.containsKey('updateTime')) or (colPickMode==1 and !data.containsKey('updateTime'))">
                a.updateTime=#{data.updateTime},
            </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_feedback as a
        <trim prefix="set" suffixOverrides=",">
                <trim prefix="title=(case" suffix="ELSE title end),">
                    <foreach collection="data.dataList" item="item" index="index" separator="" >
                        <if test="(colPickMode==0 and item.containsKey('title')) or (colPickMode==1 and !item.containsKey('title'))">
                            when a.id=#{item.id} then #{item.title}
                        </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 prefix="isShow=(case" suffix="ELSE isShow end),">
                            <foreach collection="data.dataList" item="item" index="index" separator="" >
                                <choose>
                                    <when test="(colPickMode==0 and item.containsKey('isShow')) or (colPickMode==1 and !item.containsKey('isShow'))">
                                        when a.id=#{item.id} then #{item.isShow}
                                    </when>
                                    <when test="(colPickMode==0 and item.containsKey('isShowIncrement')) or (colPickMode==1 and !item.containsKey('isShowIncrement'))">
                                        when a.id=#{item.id} then ifnull(a.isShow,0) + #{item.isShowIncrement}
                                    </when>
                                </choose>
                            </foreach>
                        </trim>
                <trim prefix="feedbackName=(case" suffix="ELSE feedbackName end),">
                    <foreach collection="data.dataList" item="item" index="index" separator="" >
                        <if test="(colPickMode==0 and item.containsKey('feedbackName')) or (colPickMode==1 and !item.containsKey('feedbackName'))">
                            when a.id=#{item.id} then #{item.feedbackName}
                        </if>
                    </foreach>
                </trim>
                <trim prefix="contactInfo=(case" suffix="ELSE contactInfo end),">
                    <foreach collection="data.dataList" item="item" index="index" separator="" >
                        <if test="(colPickMode==0 and item.containsKey('contactInfo')) or (colPickMode==1 and !item.containsKey('contactInfo'))">
                            when a.id=#{item.id} then #{item.contactInfo}
                        </if>
                    </foreach>
                </trim>
                <trim prefix="idCard=(case" suffix="ELSE idCard end),">
                    <foreach collection="data.dataList" item="item" index="index" separator="" >
                        <if test="(colPickMode==0 and item.containsKey('idCard')) or (colPickMode==1 and !item.containsKey('idCard'))">
                            when a.id=#{item.id} then #{item.idCard}
                        </if>
                    </foreach>
                </trim>
                <trim prefix="Address=(case" suffix="ELSE Address end),">
                    <foreach collection="data.dataList" item="item" index="index" separator="" >
                        <if test="(colPickMode==0 and item.containsKey('Address')) or (colPickMode==1 and !item.containsKey('Address'))">
                            when a.id=#{item.id} then #{item.Address}
                        </if>
                    </foreach>
                </trim>
                        <trim prefix="reply=(case" suffix="ELSE reply end),">
                            <foreach collection="data.dataList" item="item" index="index" separator="" >
                                <choose>
                                    <when test="(colPickMode==0 and item.containsKey('reply')) or (colPickMode==1 and !item.containsKey('reply'))">
                                        when a.id=#{item.id} then #{item.reply}
                                    </when>
                                    <when test="(colPickMode==0 and item.containsKey('replyIncrement')) or (colPickMode==1 and !item.containsKey('replyIncrement'))">
                                        when a.id=#{item.id} then ifnull(a.reply,0) + #{item.replyIncrement}
                                    </when>
                                </choose>
                            </foreach>
                        </trim>
                <trim prefix="replyContent=(case" suffix="ELSE replyContent end),">
                    <foreach collection="data.dataList" item="item" index="index" separator="" >
                        <if test="(colPickMode==0 and item.containsKey('replyContent')) or (colPickMode==1 and !item.containsKey('replyContent'))">
                            when a.id=#{item.id} then #{item.replyContent}
                        </if>
                    </foreach>
                </trim>
                        <trim prefix="feedbackType=(case" suffix="ELSE feedbackType end),">
                            <foreach collection="data.dataList" item="item" index="index" separator="" >
                                <choose>
                                    <when test="(colPickMode==0 and item.containsKey('feedbackType')) or (colPickMode==1 and !item.containsKey('feedbackType'))">
                                        when a.id=#{item.id} then #{item.feedbackType}
                                    </when>
                                    <when test="(colPickMode==0 and item.containsKey('feedbackTypeIncrement')) or (colPickMode==1 and !item.containsKey('feedbackTypeIncrement'))">
                                        when a.id=#{item.id} then ifnull(a.feedbackType,0) + #{item.feedbackTypeIncrement}
                                    </when>
                                </choose>
                            </foreach>
                        </trim>
                <trim prefix="fileName=(case" suffix="ELSE fileName end),">
                    <foreach collection="data.dataList" item="item" index="index" separator="" >
                        <if test="(colPickMode==0 and item.containsKey('fileName')) or (colPickMode==1 and !item.containsKey('fileName'))">
                            when a.id=#{item.id} then #{item.fileName}
                        </if>
                    </foreach>
                </trim>
                <trim prefix="filePath=(case" suffix="ELSE filePath end),">
                    <foreach collection="data.dataList" item="item" index="index" separator="" >
                        <if test="(colPickMode==0 and item.containsKey('filePath')) or (colPickMode==1 and !item.containsKey('filePath'))">
                            when a.id=#{item.id} then #{item.filePath}
                        </if>
                    </foreach>
                </trim>
                        <trim prefix="processId=(case" suffix="ELSE processId end),">
                            <foreach collection="data.dataList" item="item" index="index" separator="" >
                                <choose>
                                    <when test="(colPickMode==0 and item.containsKey('processId')) or (colPickMode==1 and !item.containsKey('processId'))">
                                        when a.id=#{item.id} then #{item.processId}
                                    </when>
                                    <when test="(colPickMode==0 and item.containsKey('processIdIncrement')) or (colPickMode==1 and !item.containsKey('processIdIncrement'))">
                                        when a.id=#{item.id} then ifnull(a.processId,0) + #{item.processIdIncrement}
                                    </when>
                                </choose>
                            </foreach>
                        </trim>
                <trim prefix="processName=(case" suffix="ELSE processName end),">
                    <foreach collection="data.dataList" item="item" index="index" separator="" >
                        <if test="(colPickMode==0 and item.containsKey('processName')) or (colPickMode==1 and !item.containsKey('processName'))">
                            when a.id=#{item.id} then #{item.processName}
                        </if>
                    </foreach>
                </trim>
                        <trim prefix="processStatus=(case" suffix="ELSE processStatus end),">
                            <foreach collection="data.dataList" item="item" index="index" separator="" >
                                <choose>
                                    <when test="(colPickMode==0 and item.containsKey('processStatus')) or (colPickMode==1 and !item.containsKey('processStatus'))">
                                        when a.id=#{item.id} then #{item.processStatus}
                                    </when>
                                    <when test="(colPickMode==0 and item.containsKey('processStatusIncrement')) or (colPickMode==1 and !item.containsKey('processStatusIncrement'))">
                                        when a.id=#{item.id} then ifnull(a.processStatus,0) + #{item.processStatusIncrement}
                                    </when>
                                </choose>
                            </foreach>
                        </trim>
                <trim prefix="processComments=(case" suffix="ELSE processComments end),">
                    <foreach collection="data.dataList" item="item" index="index" separator="" >
                        <if test="(colPickMode==0 and item.containsKey('processComments')) or (colPickMode==1 and !item.containsKey('processComments'))">
                            when a.id=#{item.id} then #{item.processComments}
                        </if>
                    </foreach>
                </trim>
                <trim prefix="processTime=(case" suffix="ELSE processTime end),">
                    <foreach collection="data.dataList" item="item" index="index" separator="" >
                        <if test="(colPickMode==0 and item.containsKey('processTime')) or (colPickMode==1 and !item.containsKey('processTime'))">
                            when a.id=#{item.id} then #{item.processTime}
                        </if>
                    </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="createUserId=(case" suffix="ELSE createUserId 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.createUserId,0) + #{item.createUserIdIncrement}
                                    </when>
                                </choose>
                            </foreach>
                        </trim>
                <trim prefix="createTime=(case" suffix="ELSE createTime 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="updateUserId=(case" suffix="ELSE updateUserId end),">
                            <foreach collection="data.dataList" item="item" index="index" separator="" >
                                <choose>
                                    <when test="(colPickMode==0 and item.containsKey('updateUserId')) or (colPickMode==1 and !item.containsKey('updateUserId'))">
                                        when a.id=#{item.id} then #{item.updateUserId}
                                    </when>
                                    <when test="(colPickMode==0 and item.containsKey('updateUserIdIncrement')) or (colPickMode==1 and !item.containsKey('updateUserIdIncrement'))">
                                        when a.id=#{item.id} then ifnull(a.updateUserId,0) + #{item.updateUserIdIncrement}
                                    </when>
                                </choose>
                            </foreach>
                        </trim>
                <trim prefix="updateTime=(case" suffix="ELSE updateTime 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>
        where id in
        <foreach collection="data.dataList" item="item" index="index" open="(" separator="," close=")">
            #{item.id}
        </foreach>
    </update>
    <!-- 根据主健查询 -->
    <select id="getByKey" parameterType="paramDto" resultMap="FeedbackEntity-Map">
        select <include refid="_columns"/>
        from mortals_xhx_feedback as a
        where a.id=#{condition.id}
    </select>
    <!-- 根据主健删除 -->
    <delete id="deleteByKey" parameterType="paramDto">
        delete a.* from mortals_xhx_feedback as a where a.id=#{condition.id}
    </delete>
    <!-- 根据主健删除一批，针对单一主健有效 -->
    <delete id="deleteByKeys">
        delete from mortals_xhx_feedback where id in
        <foreach collection="array" item="item" index="index" open="(" separator="," close=")">
            #{item}
        </foreach>
    </delete>
    <!-- 根据主健列表删除一批，针对单一主健有效 -->
    <delete id="deleteByKeyList">
        delete from mortals_xhx_feedback where id in
        <foreach collection="list" item="item" index="index" open="(" separator="," close=")">
            #{item}
        </foreach>
    </delete>

    <!-- 根据对象列表删除一批，针对单一主健有效 -->
    <delete id="deleteByEntityList">
        delete from mortals_xhx_feedback 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_feedback as a
        <trim suffixOverrides="where" suffix="">
            where
            <trim prefixOverrides="and" prefix="">
                <include refid="_condition_"/>
            </trim>
        </trim>
    </delete>
    <!-- 获取列表 -->
    <select id="getList" parameterType="paramDto" resultMap="FeedbackEntity-Map">
        select <include refid="_columns"/>
        from mortals_xhx_feedback 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_feedback 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="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('title')">
                <if test="conditionParamRef.title != null and conditionParamRef.title != ''">
                    ${_conditionType_} a.title like #{${_conditionParam_}.title}
                </if>
                <if test="conditionParamRef.title == null">
                    ${_conditionType_} a.title is null
                </if>
            </if>
            <if test="conditionParamRef.containsKey('titleList') and conditionParamRef.titleList.size() > 0">
                ${_conditionType_} a.title in
                <foreach collection="conditionParamRef.titleList" open="(" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
            </if>
            <if test="conditionParamRef.containsKey('titleNotList') and conditionParamRef.titleNotList.size() > 0">
                ${_conditionType_} a.title not in
                <foreach collection="conditionParamRef.titleNotList" open="(" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
            </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>
            <if test="conditionParamRef.containsKey('isShow')">
                <if test="conditionParamRef.isShow != null ">
                    ${_conditionType_} a.isShow = #{${_conditionParam_}.isShow}
                </if>
                <if test="conditionParamRef.isShow == null">
                    ${_conditionType_} a.isShow is null
                </if>
            </if>
            <if test="conditionParamRef.containsKey('isShowList') and conditionParamRef.isShowList.size() > 0">
                ${_conditionType_} a.isShow in
                <foreach collection="conditionParamRef.isShowList" open="(" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
            </if>
            <if test="conditionParamRef.containsKey('isShowNotList') and conditionParamRef.isShowNotList.size() > 0">
                ${_conditionType_} a.isShow not in
                <foreach collection="conditionParamRef.isShowNotList" open="(" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
            </if>
            <if test="conditionParamRef.containsKey('isShowStart') and conditionParamRef.isShowStart != null">
                ${_conditionType_} a.isShow <![CDATA[ >= ]]> #{${_conditionParam_}.isShowStart}
            </if>
            <if test="conditionParamRef.containsKey('isShowEnd') and conditionParamRef.isShowEnd != null">
                ${_conditionType_} a.isShow <![CDATA[ <= ]]> #{${_conditionParam_}.isShowEnd}
            </if>


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

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

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

            <if test="conditionParamRef.containsKey('Address')">
                <if test="conditionParamRef.Address != null and conditionParamRef.Address != ''">
                    ${_conditionType_} a.Address like #{${_conditionParam_}.Address}
                </if>
                <if test="conditionParamRef.Address == null">
                    ${_conditionType_} a.Address is null
                </if>
            </if>
            <if test="conditionParamRef.containsKey('AddressList') and conditionParamRef.AddressList.size() > 0">
                ${_conditionType_} a.Address in
                <foreach collection="conditionParamRef.AddressList" open="(" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
            </if>
            <if test="conditionParamRef.containsKey('AddressNotList') and conditionParamRef.AddressNotList.size() > 0">
                ${_conditionType_} a.Address not in
                <foreach collection="conditionParamRef.AddressNotList" open="(" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
            </if>
            <if test="conditionParamRef.containsKey('reply')">
                <if test="conditionParamRef.reply != null ">
                    ${_conditionType_} a.reply = #{${_conditionParam_}.reply}
                </if>
                <if test="conditionParamRef.reply == null">
                    ${_conditionType_} a.reply is null
                </if>
            </if>
            <if test="conditionParamRef.containsKey('replyList') and conditionParamRef.replyList.size() > 0">
                ${_conditionType_} a.reply in
                <foreach collection="conditionParamRef.replyList" open="(" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
            </if>
            <if test="conditionParamRef.containsKey('replyNotList') and conditionParamRef.replyNotList.size() > 0">
                ${_conditionType_} a.reply not in
                <foreach collection="conditionParamRef.replyNotList" open="(" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
            </if>
            <if test="conditionParamRef.containsKey('replyStart') and conditionParamRef.replyStart != null">
                ${_conditionType_} a.reply <![CDATA[ >= ]]> #{${_conditionParam_}.replyStart}
            </if>
            <if test="conditionParamRef.containsKey('replyEnd') and conditionParamRef.replyEnd != null">
                ${_conditionType_} a.reply <![CDATA[ <= ]]> #{${_conditionParam_}.replyEnd}
            </if>


            <if test="conditionParamRef.containsKey('replyContent')">
                <if test="conditionParamRef.replyContent != null and conditionParamRef.replyContent != ''">
                    ${_conditionType_} a.replyContent like #{${_conditionParam_}.replyContent}
                </if>
                <if test="conditionParamRef.replyContent == null">
                    ${_conditionType_} a.replyContent is null
                </if>
            </if>
            <if test="conditionParamRef.containsKey('replyContentList') and conditionParamRef.replyContentList.size() > 0">
                ${_conditionType_} a.replyContent in
                <foreach collection="conditionParamRef.replyContentList" open="(" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
            </if>
            <if test="conditionParamRef.containsKey('replyContentNotList') and conditionParamRef.replyContentNotList.size() > 0">
                ${_conditionType_} a.replyContent not in
                <foreach collection="conditionParamRef.replyContentNotList" open="(" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
            </if>
            <if test="conditionParamRef.containsKey('feedbackType')">
                <if test="conditionParamRef.feedbackType != null ">
                    ${_conditionType_} a.feedbackType = #{${_conditionParam_}.feedbackType}
                </if>
                <if test="conditionParamRef.feedbackType == null">
                    ${_conditionType_} a.feedbackType is null
                </if>
            </if>
            <if test="conditionParamRef.containsKey('feedbackTypeList') and conditionParamRef.feedbackTypeList.size() > 0">
                ${_conditionType_} a.feedbackType in
                <foreach collection="conditionParamRef.feedbackTypeList" open="(" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
            </if>
            <if test="conditionParamRef.containsKey('feedbackTypeNotList') and conditionParamRef.feedbackTypeNotList.size() > 0">
                ${_conditionType_} a.feedbackType not in
                <foreach collection="conditionParamRef.feedbackTypeNotList" open="(" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
            </if>
            <if test="conditionParamRef.containsKey('feedbackTypeStart') and conditionParamRef.feedbackTypeStart != null">
                ${_conditionType_} a.feedbackType <![CDATA[ >= ]]> #{${_conditionParam_}.feedbackTypeStart}
            </if>
            <if test="conditionParamRef.containsKey('feedbackTypeEnd') and conditionParamRef.feedbackTypeEnd != null">
                ${_conditionType_} a.feedbackType <![CDATA[ <= ]]> #{${_conditionParam_}.feedbackTypeEnd}
            </if>


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

            <if test="conditionParamRef.containsKey('filePath')">
                <if test="conditionParamRef.filePath != null and conditionParamRef.filePath != ''">
                    ${_conditionType_} a.filePath like #{${_conditionParam_}.filePath}
                </if>
                <if test="conditionParamRef.filePath == null">
                    ${_conditionType_} a.filePath is null
                </if>
            </if>
            <if test="conditionParamRef.containsKey('filePathList') and conditionParamRef.filePathList.size() > 0">
                ${_conditionType_} a.filePath in
                <foreach collection="conditionParamRef.filePathList" open="(" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
            </if>
            <if test="conditionParamRef.containsKey('filePathNotList') and conditionParamRef.filePathNotList.size() > 0">
                ${_conditionType_} a.filePath not in
                <foreach collection="conditionParamRef.filePathNotList" open="(" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
            </if>
            <if test="conditionParamRef.containsKey('processId')">
                <if test="conditionParamRef.processId != null ">
                    ${_conditionType_} a.processId = #{${_conditionParam_}.processId}
                </if>
                <if test="conditionParamRef.processId == null">
                    ${_conditionType_} a.processId is null
                </if>
            </if>
            <if test="conditionParamRef.containsKey('processIdList') and conditionParamRef.processIdList.size() > 0">
                ${_conditionType_} a.processId in
                <foreach collection="conditionParamRef.processIdList" open="(" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
            </if>
            <if test="conditionParamRef.containsKey('processIdNotList') and conditionParamRef.processIdNotList.size() > 0">
                ${_conditionType_} a.processId not in
                <foreach collection="conditionParamRef.processIdNotList" open="(" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
            </if>
            <if test="conditionParamRef.containsKey('processIdStart') and conditionParamRef.processIdStart != null">
                ${_conditionType_} a.processId <![CDATA[ >= ]]> #{${_conditionParam_}.processIdStart}
            </if>
            <if test="conditionParamRef.containsKey('processIdEnd') and conditionParamRef.processIdEnd != null">
                ${_conditionType_} a.processId <![CDATA[ <= ]]> #{${_conditionParam_}.processIdEnd}
            </if>


            <if test="conditionParamRef.containsKey('processName')">
                <if test="conditionParamRef.processName != null and conditionParamRef.processName != ''">
                    ${_conditionType_} a.processName like #{${_conditionParam_}.processName}
                </if>
                <if test="conditionParamRef.processName == null">
                    ${_conditionType_} a.processName is null
                </if>
            </if>
            <if test="conditionParamRef.containsKey('processNameList') and conditionParamRef.processNameList.size() > 0">
                ${_conditionType_} a.processName in
                <foreach collection="conditionParamRef.processNameList" open="(" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
            </if>
            <if test="conditionParamRef.containsKey('processNameNotList') and conditionParamRef.processNameNotList.size() > 0">
                ${_conditionType_} a.processName not in
                <foreach collection="conditionParamRef.processNameNotList" open="(" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
            </if>
            <if test="conditionParamRef.containsKey('processStatus')">
                <if test="conditionParamRef.processStatus != null ">
                    ${_conditionType_} a.processStatus = #{${_conditionParam_}.processStatus}
                </if>
                <if test="conditionParamRef.processStatus == null">
                    ${_conditionType_} a.processStatus is null
                </if>
            </if>
            <if test="conditionParamRef.containsKey('processStatusList') and conditionParamRef.processStatusList.size() > 0">
                ${_conditionType_} a.processStatus in
                <foreach collection="conditionParamRef.processStatusList" open="(" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
            </if>
            <if test="conditionParamRef.containsKey('processStatusNotList') and conditionParamRef.processStatusNotList.size() > 0">
                ${_conditionType_} a.processStatus not in
                <foreach collection="conditionParamRef.processStatusNotList" open="(" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
            </if>
            <if test="conditionParamRef.containsKey('processStatusStart') and conditionParamRef.processStatusStart != null">
                ${_conditionType_} a.processStatus <![CDATA[ >= ]]> #{${_conditionParam_}.processStatusStart}
            </if>
            <if test="conditionParamRef.containsKey('processStatusEnd') and conditionParamRef.processStatusEnd != null">
                ${_conditionType_} a.processStatus <![CDATA[ <= ]]> #{${_conditionParam_}.processStatusEnd}
            </if>


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

            <if test="conditionParamRef.containsKey('processTime')">
                <if test="conditionParamRef.processTime != null ">
                    ${_conditionType_} a.processTime = #{${_conditionParam_}.processTime}
                </if>
                <if test="conditionParamRef.processTime == null">
                    ${_conditionType_} a.processTime is null
                </if>
            </if>
            <if test="conditionParamRef.containsKey('processTimeStart') and conditionParamRef.processTimeStart != null and conditionParamRef.processTimeStart!=''">
                ${_conditionType_} a.processTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.processTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
            </if>
            <if test="conditionParamRef.containsKey('processTimeEnd') and conditionParamRef.processTimeEnd != null and conditionParamRef.processTimeEnd!=''">
                ${_conditionType_} a.processTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.processTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
            </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.createUserId = #{${_conditionParam_}.createUserId}
                </if>
                <if test="conditionParamRef.createUserId == null">
                    ${_conditionType_} a.createUserId is null
                </if>
            </if>
            <if test="conditionParamRef.containsKey('createUserIdList') and conditionParamRef.createUserIdList.size() > 0">
                ${_conditionType_} a.createUserId 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.createUserId 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.createUserId <![CDATA[ >= ]]> #{${_conditionParam_}.createUserIdStart}
            </if>
            <if test="conditionParamRef.containsKey('createUserIdEnd') and conditionParamRef.createUserIdEnd != null">
                ${_conditionType_} a.createUserId <![CDATA[ <= ]]> #{${_conditionParam_}.createUserIdEnd}
            </if>


            <if test="conditionParamRef.containsKey('createTime')">
                <if test="conditionParamRef.createTime != null ">
                    ${_conditionType_} a.createTime = #{${_conditionParam_}.createTime}
                </if>
                <if test="conditionParamRef.createTime == null">
                    ${_conditionType_} a.createTime is null
                </if>
            </if>
            <if test="conditionParamRef.containsKey('createTimeStart') and conditionParamRef.createTimeStart != null and conditionParamRef.createTimeStart!=''">
                ${_conditionType_} a.createTime <![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.createTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
            </if>
            <if test="conditionParamRef.containsKey('updateUserId')">
                <if test="conditionParamRef.updateUserId != null ">
                    ${_conditionType_} a.updateUserId = #{${_conditionParam_}.updateUserId}
                </if>
                <if test="conditionParamRef.updateUserId == null">
                    ${_conditionType_} a.updateUserId is null
                </if>
            </if>
            <if test="conditionParamRef.containsKey('updateUserIdList') and conditionParamRef.updateUserIdList.size() > 0">
                ${_conditionType_} a.updateUserId in
                <foreach collection="conditionParamRef.updateUserIdList" open="(" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
            </if>
            <if test="conditionParamRef.containsKey('updateUserIdNotList') and conditionParamRef.updateUserIdNotList.size() > 0">
                ${_conditionType_} a.updateUserId not in
                <foreach collection="conditionParamRef.updateUserIdNotList" open="(" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
            </if>
            <if test="conditionParamRef.containsKey('updateUserIdStart') and conditionParamRef.updateUserIdStart != null">
                ${_conditionType_} a.updateUserId <![CDATA[ >= ]]> #{${_conditionParam_}.updateUserIdStart}
            </if>
            <if test="conditionParamRef.containsKey('updateUserIdEnd') and conditionParamRef.updateUserIdEnd != null">
                ${_conditionType_} a.updateUserId <![CDATA[ <= ]]> #{${_conditionParam_}.updateUserIdEnd}
            </if>


            <if test="conditionParamRef.containsKey('updateTime')">
                <if test="conditionParamRef.updateTime != null ">
                    ${_conditionType_} a.updateTime = #{${_conditionParam_}.updateTime}
                </if>
                <if test="conditionParamRef.updateTime == null">
                    ${_conditionType_} a.updateTime is null
                </if>
            </if>
            <if test="conditionParamRef.containsKey('updateTimeStart') and conditionParamRef.updateTimeStart != null and conditionParamRef.updateTimeStart!=''">
                ${_conditionType_} a.updateTime <![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.updateTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
            </if>
    </sql>
    <sql id="_orderCols_">
        <if test="orderColList != null and !orderColList.isEmpty()">
            order by
            <trim suffixOverrides=","  suffix="">
                <foreach collection="orderColList" open="" close="" index="index" item="item" separator=",">
                     ${item.colName} ${item.sortKind}
                </foreach>
            </trim>
        </if>
        <if test="(orderColList == null or orderColList.isEmpty()) and orderCol != null and !orderCol.isEmpty()">
            order by
            <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('title')">
                        a.title
                        <if test='orderCol.title != null and "DESC".equalsIgnoreCase(orderCol.title)'>DESC</if>
                        ,
                    </if>
                    <if test="orderCol.containsKey('content')">
                        a.content
                        <if test='orderCol.content != null and "DESC".equalsIgnoreCase(orderCol.content)'>DESC</if>
                        ,
                    </if>
                    <if test="orderCol.containsKey('isShow')">
                        a.isShow
                        <if test='orderCol.isShow != null and "DESC".equalsIgnoreCase(orderCol.isShow)'>DESC</if>
                        ,
                    </if>
                    <if test="orderCol.containsKey('feedbackName')">
                        a.feedbackName
                        <if test='orderCol.feedbackName != null and "DESC".equalsIgnoreCase(orderCol.feedbackName)'>DESC</if>
                        ,
                    </if>
                    <if test="orderCol.containsKey('contactInfo')">
                        a.contactInfo
                        <if test='orderCol.contactInfo != null and "DESC".equalsIgnoreCase(orderCol.contactInfo)'>DESC</if>
                        ,
                    </if>
                    <if test="orderCol.containsKey('idCard')">
                        a.idCard
                        <if test='orderCol.idCard != null and "DESC".equalsIgnoreCase(orderCol.idCard)'>DESC</if>
                        ,
                    </if>
                    <if test="orderCol.containsKey('Address')">
                        a.Address
                        <if test='orderCol.Address != null and "DESC".equalsIgnoreCase(orderCol.Address)'>DESC</if>
                        ,
                    </if>
                    <if test="orderCol.containsKey('reply')">
                        a.reply
                        <if test='orderCol.reply != null and "DESC".equalsIgnoreCase(orderCol.reply)'>DESC</if>
                        ,
                    </if>
                    <if test="orderCol.containsKey('replyContent')">
                        a.replyContent
                        <if test='orderCol.replyContent != null and "DESC".equalsIgnoreCase(orderCol.replyContent)'>DESC</if>
                        ,
                    </if>
                    <if test="orderCol.containsKey('feedbackType')">
                        a.feedbackType
                        <if test='orderCol.feedbackType != null and "DESC".equalsIgnoreCase(orderCol.feedbackType)'>DESC</if>
                        ,
                    </if>
                    <if test="orderCol.containsKey('fileName')">
                        a.fileName
                        <if test='orderCol.fileName != null and "DESC".equalsIgnoreCase(orderCol.fileName)'>DESC</if>
                        ,
                    </if>
                    <if test="orderCol.containsKey('filePath')">
                        a.filePath
                        <if test='orderCol.filePath != null and "DESC".equalsIgnoreCase(orderCol.filePath)'>DESC</if>
                        ,
                    </if>
                    <if test="orderCol.containsKey('processId')">
                        a.processId
                        <if test='orderCol.processId != null and "DESC".equalsIgnoreCase(orderCol.processId)'>DESC</if>
                        ,
                    </if>
                    <if test="orderCol.containsKey('processName')">
                        a.processName
                        <if test='orderCol.processName != null and "DESC".equalsIgnoreCase(orderCol.processName)'>DESC</if>
                        ,
                    </if>
                    <if test="orderCol.containsKey('processStatus')">
                        a.processStatus
                        <if test='orderCol.processStatus != null and "DESC".equalsIgnoreCase(orderCol.processStatus)'>DESC</if>
                        ,
                    </if>
                    <if test="orderCol.containsKey('processComments')">
                        a.processComments
                        <if test='orderCol.processComments != null and "DESC".equalsIgnoreCase(orderCol.processComments)'>DESC</if>
                        ,
                    </if>
                    <if test="orderCol.containsKey('processTime')">
                        a.processTime
                        <if test='orderCol.processTime != null and "DESC".equalsIgnoreCase(orderCol.processTime)'>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.createUserId
                        <if test='orderCol.createUserId != null and "DESC".equalsIgnoreCase(orderCol.createUserId)'>DESC</if>
                        ,
                    </if>
                    <if test="orderCol.containsKey('createTime')">
                        a.createTime
                        <if test='orderCol.createTime != null and "DESC".equalsIgnoreCase(orderCol.createTime)'>DESC</if>
                        ,
                    </if>
                    <if test="orderCol.containsKey('updateUserId')">
                        a.updateUserId
                        <if test='orderCol.updateUserId != null and "DESC".equalsIgnoreCase(orderCol.updateUserId)'>DESC</if>
                        ,
                    </if>
                    <if test="orderCol.containsKey('updateTime')">
                        a.updateTime
                        <if test='orderCol.updateTime != null and "DESC".equalsIgnoreCase(orderCol.updateTime)'>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>