<?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="companyName" column="companyName" />
        <result property="contactInfo" column="contactInfo" />
        <result property="idCard" column="idCard" />
        <result property="address" column="address" />
        <result property="email" column="email" />
        <result property="reply" column="reply" />
        <result property="replyPerson" column="replyPerson" />
        <result property="replyContent" column="replyContent" />
        <result property="deptId" column="deptId" />
        <result property="deptName" column="deptName" />
        <result property="feedbackType" column="feedbackType" />
        <result property="fileName" column="fileName" />
        <result property="filePath" column="filePath" />
        <result property="replyFileName" column="replyFileName" />
        <result property="replyFilePath" column="replyFilePath" />
        <result property="replyTime" column="replyTime" />
        <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('companyName') or colPickMode == 1 and data.containsKey('companyName')))">
                a.companyName,
            </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('email') or colPickMode == 1 and data.containsKey('email')))">
                a.email,
            </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('replyPerson') or colPickMode == 1 and data.containsKey('replyPerson')))">
                a.replyPerson,
            </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('deptId') or colPickMode == 1 and data.containsKey('deptId')))">
                a.deptId,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('deptName') or colPickMode == 1 and data.containsKey('deptName')))">
                a.deptName,
            </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('replyFileName') or colPickMode == 1 and data.containsKey('replyFileName')))">
                a.replyFileName,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('replyFilePath') or colPickMode == 1 and data.containsKey('replyFilePath')))">
                a.replyFilePath,
            </if>
            <if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('replyTime') or colPickMode == 1 and data.containsKey('replyTime')))">
                a.replyTime,
            </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,companyName,contactInfo,idCard,address,email,reply,replyPerson,replyContent,deptId,deptName,feedbackType,fileName,filePath,replyFileName,replyFilePath,replyTime,processId,processName,processStatus,processComments,processTime,remark,createUserId,createTime,updateUserId,updateTime)
        VALUES
        (#{title},#{content},#{isShow},#{feedbackName},#{companyName},#{contactInfo},#{idCard},#{address},#{email},#{reply},#{replyPerson},#{replyContent},#{deptId},#{deptName},#{feedbackType},#{fileName},#{filePath},#{replyFileName},#{replyFilePath},#{replyTime},#{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,companyName,contactInfo,idCard,address,email,reply,replyPerson,replyContent,deptId,deptName,feedbackType,fileName,filePath,replyFileName,replyFilePath,replyTime,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.companyName},#{item.contactInfo},#{item.idCard},#{item.address},#{item.email},#{item.reply},#{item.replyPerson},#{item.replyContent},#{item.deptId},#{item.deptName},#{item.feedbackType},#{item.fileName},#{item.filePath},#{item.replyFileName},#{item.replyFilePath},#{item.replyTime},#{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('companyName')) or (colPickMode==1 and !data.containsKey('companyName'))">
                a.companyName=#{data.companyName},
            </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('email')) or (colPickMode==1 and !data.containsKey('email'))">
                a.email=#{data.email},
            </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('replyPerson')) or (colPickMode==1 and !data.containsKey('replyPerson'))">
                a.replyPerson=#{data.replyPerson},
            </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('deptId')) or (colPickMode==1 and !data.containsKey('deptId'))">
                a.deptId=#{data.deptId},
            </if>
            <if test="(colPickMode==0 and data.containsKey('deptIdIncrement')) or (colPickMode==1 and !data.containsKey('deptIdIncrement'))">
                a.deptId=ifnull(a.deptId,0) + #{data.deptIdIncrement},
            </if>
            <if test="(colPickMode==0 and data.containsKey('deptName')) or (colPickMode==1 and !data.containsKey('deptName'))">
                a.deptName=#{data.deptName},
            </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('replyFileName')) or (colPickMode==1 and !data.containsKey('replyFileName'))">
                a.replyFileName=#{data.replyFileName},
            </if>
            <if test="(colPickMode==0 and data.containsKey('replyFilePath')) or (colPickMode==1 and !data.containsKey('replyFilePath'))">
                a.replyFilePath=#{data.replyFilePath},
            </if>
            <if test="(colPickMode==0 and data.containsKey('replyTime')) or (colPickMode==1 and !data.containsKey('replyTime'))">
                a.replyTime=#{data.replyTime},
            </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="companyName=(case" suffix="ELSE companyName end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('companyName')) or (colPickMode==1 and !item.containsKey('companyName'))">
                        when a.id=#{item.id} then #{item.companyName}
                    </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="email=(case" suffix="ELSE email end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('email')) or (colPickMode==1 and !item.containsKey('email'))">
                        when a.id=#{item.id} then #{item.email}
                    </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="replyPerson=(case" suffix="ELSE replyPerson end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('replyPerson')) or (colPickMode==1 and !item.containsKey('replyPerson'))">
                        when a.id=#{item.id} then #{item.replyPerson}
                    </if>
                </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="deptId=(case" suffix="ELSE deptId end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <choose>
                        <when test="(colPickMode==0 and item.containsKey('deptId')) or (colPickMode==1 and !item.containsKey('deptId'))">
                            when a.id=#{item.id} then #{item.deptId}
                        </when>
                        <when test="(colPickMode==0 and item.containsKey('deptIdIncrement')) or (colPickMode==1 and !item.containsKey('deptIdIncrement'))">
                            when a.id=#{item.id} then ifnull(a.deptId,0) + #{item.deptIdIncrement}
                        </when>
                    </choose>
                </foreach>
            </trim>
            <trim prefix="deptName=(case" suffix="ELSE deptName end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('deptName')) or (colPickMode==1 and !item.containsKey('deptName'))">
                        when a.id=#{item.id} then #{item.deptName}
                    </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="replyFileName=(case" suffix="ELSE replyFileName end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('replyFileName')) or (colPickMode==1 and !item.containsKey('replyFileName'))">
                        when a.id=#{item.id} then #{item.replyFileName}
                    </if>
                </foreach>
            </trim>
            <trim prefix="replyFilePath=(case" suffix="ELSE replyFilePath end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('replyFilePath')) or (colPickMode==1 and !item.containsKey('replyFilePath'))">
                        when a.id=#{item.id} then #{item.replyFilePath}
                    </if>
                </foreach>
            </trim>
            <trim prefix="replyTime=(case" suffix="ELSE replyTime end),">
                <foreach collection="data.dataList" item="item" index="index" separator="" >
                    <if test="(colPickMode==0 and item.containsKey('replyTime')) or (colPickMode==1 and !item.containsKey('replyTime'))">
                        when a.id=#{item.id} then #{item.replyTime}
                    </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('companyName')">
            <if test="conditionParamRef.companyName != null and conditionParamRef.companyName != ''">
                ${_conditionType_} a.companyName like #{${_conditionParam_}.companyName}
            </if>
            <if test="conditionParamRef.companyName == null">
                ${_conditionType_} a.companyName is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('companyNameList') and conditionParamRef.companyNameList.size() > 0">
            ${_conditionType_} a.companyName in
            <foreach collection="conditionParamRef.companyNameList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('companyNameNotList') and conditionParamRef.companyNameNotList.size() > 0">
            ${_conditionType_} a.companyName not in
            <foreach collection="conditionParamRef.companyNameNotList" 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('email')">
            <if test="conditionParamRef.email != null and conditionParamRef.email != ''">
                ${_conditionType_} a.email like #{${_conditionParam_}.email}
            </if>
            <if test="conditionParamRef.email == null">
                ${_conditionType_} a.email is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('emailList') and conditionParamRef.emailList.size() > 0">
            ${_conditionType_} a.email in
            <foreach collection="conditionParamRef.emailList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('emailNotList') and conditionParamRef.emailNotList.size() > 0">
            ${_conditionType_} a.email not in
            <foreach collection="conditionParamRef.emailNotList" 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('replyPerson')">
            <if test="conditionParamRef.replyPerson != null and conditionParamRef.replyPerson != ''">
                ${_conditionType_} a.replyPerson like #{${_conditionParam_}.replyPerson}
            </if>
            <if test="conditionParamRef.replyPerson == null">
                ${_conditionType_} a.replyPerson is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('replyPersonList') and conditionParamRef.replyPersonList.size() > 0">
            ${_conditionType_} a.replyPerson in
            <foreach collection="conditionParamRef.replyPersonList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('replyPersonNotList') and conditionParamRef.replyPersonNotList.size() > 0">
            ${_conditionType_} a.replyPerson not in
            <foreach collection="conditionParamRef.replyPersonNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </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('deptId')">
            <if test="conditionParamRef.deptId != null ">
                ${_conditionType_} a.deptId = #{${_conditionParam_}.deptId}
            </if>
            <if test="conditionParamRef.deptId == null">
                ${_conditionType_} a.deptId is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('deptIdList') and conditionParamRef.deptIdList.size() > 0">
            ${_conditionType_} a.deptId in
            <foreach collection="conditionParamRef.deptIdList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('deptIdNotList') and conditionParamRef.deptIdNotList.size() > 0">
            ${_conditionType_} a.deptId not in
            <foreach collection="conditionParamRef.deptIdNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('deptIdStart') and conditionParamRef.deptIdStart != null">
            ${_conditionType_} a.deptId <![CDATA[ >= ]]> #{${_conditionParam_}.deptIdStart}
        </if>
        <if test="conditionParamRef.containsKey('deptIdEnd') and conditionParamRef.deptIdEnd != null">
            ${_conditionType_} a.deptId <![CDATA[ <= ]]> #{${_conditionParam_}.deptIdEnd}
        </if>


        <if test="conditionParamRef.containsKey('deptName')">
            <if test="conditionParamRef.deptName != null and conditionParamRef.deptName != ''">
                ${_conditionType_} a.deptName like #{${_conditionParam_}.deptName}
            </if>
            <if test="conditionParamRef.deptName == null">
                ${_conditionType_} a.deptName is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('deptNameList') and conditionParamRef.deptNameList.size() > 0">
            ${_conditionType_} a.deptName in
            <foreach collection="conditionParamRef.deptNameList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('deptNameNotList') and conditionParamRef.deptNameNotList.size() > 0">
            ${_conditionType_} a.deptName not in
            <foreach collection="conditionParamRef.deptNameNotList" 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('replyFileName')">
            <if test="conditionParamRef.replyFileName != null and conditionParamRef.replyFileName != ''">
                ${_conditionType_} a.replyFileName like #{${_conditionParam_}.replyFileName}
            </if>
            <if test="conditionParamRef.replyFileName == null">
                ${_conditionType_} a.replyFileName is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('replyFileNameList') and conditionParamRef.replyFileNameList.size() > 0">
            ${_conditionType_} a.replyFileName in
            <foreach collection="conditionParamRef.replyFileNameList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="conditionParamRef.containsKey('replyFileNameNotList') and conditionParamRef.replyFileNameNotList.size() > 0">
            ${_conditionType_} a.replyFileName not in
            <foreach collection="conditionParamRef.replyFileNameNotList" open="(" close=")" index="index" item="item" separator=",">
                #{item}
            </foreach>
        </if>

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

        <if test="conditionParamRef.containsKey('replyTime')">
            <if test="conditionParamRef.replyTime != null ">
                ${_conditionType_} a.replyTime = #{${_conditionParam_}.replyTime}
            </if>
            <if test="conditionParamRef.replyTime == null">
                ${_conditionType_} a.replyTime is null
            </if>
        </if>
        <if test="conditionParamRef.containsKey('replyTimeStart') and conditionParamRef.replyTimeStart != null and conditionParamRef.replyTimeStart!=''">
            ${_conditionType_} a.replyTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.replyTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
        </if>
        <if test="conditionParamRef.containsKey('replyTimeEnd') and conditionParamRef.replyTimeEnd != null and conditionParamRef.replyTimeEnd!=''">
            ${_conditionType_} a.replyTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.replyTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
        </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
            <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('isShowList') and conditionParamRef.isShowList.size() > 0">
                field(a.isShow,
                <foreach collection="conditionParamRef.isShowList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('replyList') and conditionParamRef.replyList.size() > 0">
                field(a.reply,
                <foreach collection="conditionParamRef.replyList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('deptIdList') and conditionParamRef.deptIdList.size() > 0">
                field(a.deptId,
                <foreach collection="conditionParamRef.deptIdList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('feedbackTypeList') and conditionParamRef.feedbackTypeList.size() > 0">
                field(a.feedbackType,
                <foreach collection="conditionParamRef.feedbackTypeList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('processIdList') and conditionParamRef.processIdList.size() > 0">
                field(a.processId,
                <foreach collection="conditionParamRef.processIdList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('processStatusList') and conditionParamRef.processStatusList.size() > 0">
                field(a.processStatus,
                <foreach collection="conditionParamRef.processStatusList" 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('updateUserIdList') and conditionParamRef.updateUserIdList.size() > 0">
                field(a.updateUserId,
                <foreach collection="conditionParamRef.updateUserIdList" 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('isShowList') and conditionParamRef.isShowList.size() > 0">
                field(a.isShow,
                <foreach collection="conditionParamRef.isShowList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('replyList') and conditionParamRef.replyList.size() > 0">
                field(a.reply,
                <foreach collection="conditionParamRef.replyList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('deptIdList') and conditionParamRef.deptIdList.size() > 0">
                field(a.deptId,
                <foreach collection="conditionParamRef.deptIdList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('feedbackTypeList') and conditionParamRef.feedbackTypeList.size() > 0">
                field(a.feedbackType,
                <foreach collection="conditionParamRef.feedbackTypeList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('processIdList') and conditionParamRef.processIdList.size() > 0">
                field(a.processId,
                <foreach collection="conditionParamRef.processIdList" open="" close=")" index="index" item="item" separator=",">
                    #{item}
                </foreach>
                ,
            </if>
            <if test="conditionParamRef.containsKey('processStatusList') and conditionParamRef.processStatusList.size() > 0">
                field(a.processStatus,
                <foreach collection="conditionParamRef.processStatusList" 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('updateUserIdList') and conditionParamRef.updateUserIdList.size() > 0">
                field(a.updateUserId,
                <foreach collection="conditionParamRef.updateUserIdList" 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('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('companyName')">
                    a.companyName
                    <if test='orderCol.companyName != null and "DESC".equalsIgnoreCase(orderCol.companyName)'>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('email')">
                    a.email
                    <if test='orderCol.email != null and "DESC".equalsIgnoreCase(orderCol.email)'>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('replyPerson')">
                    a.replyPerson
                    <if test='orderCol.replyPerson != null and "DESC".equalsIgnoreCase(orderCol.replyPerson)'>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('deptId')">
                    a.deptId
                    <if test='orderCol.deptId != null and "DESC".equalsIgnoreCase(orderCol.deptId)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('deptName')">
                    a.deptName
                    <if test='orderCol.deptName != null and "DESC".equalsIgnoreCase(orderCol.deptName)'>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('replyFileName')">
                    a.replyFileName
                    <if test='orderCol.replyFileName != null and "DESC".equalsIgnoreCase(orderCol.replyFileName)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('replyFilePath')">
                    a.replyFilePath
                    <if test='orderCol.replyFilePath != null and "DESC".equalsIgnoreCase(orderCol.replyFilePath)'>DESC</if>
                    ,
                </if>
                <if test="orderCol.containsKey('replyTime')">
                    a.replyTime
                    <if test='orderCol.replyTime != null and "DESC".equalsIgnoreCase(orderCol.replyTime)'>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>