<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.supervision.knowsub.mapper.KnowledgeMapper">

    <resultMap id="BaseResultMap" type="com.supervision.knowsub.model.Knowledge">
        <id property="id" column="id" jdbcType="VARCHAR"/>
        <result property="title" column="title" jdbcType="VARCHAR"/>
        <result property="excerpt" column="excerpt" jdbcType="VARCHAR"/>
        <result property="contentId" column="content_id" jdbcType="VARCHAR"/>
        <result property="infoId" column="info_id" jdbcType="VARCHAR"/>
        <result property="baseId" column="base_id" jdbcType="VARCHAR"/>
        <result property="publishDeptId" column="publish_dept_id" jdbcType="VARCHAR"/>
        <result property="knowledgeFrom" column="knowledge_from" jdbcType="INTEGER"/>
        <result property="status" column="status" jdbcType="INTEGER"/>
        <result property="submittedDeptId" column="submitted_dept" jdbcType="VARCHAR"/>
        <result property="draftBelongUserId" column="draft_belong_user_id" jdbcType="VARCHAR"/>
        <result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/>
        <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
        <result property="updateUserId" column="update_user_id" jdbcType="VARCHAR"/>
        <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
    </resultMap>

    <sql id="Base_Column_List">
        id
        ,title,excerpt,content_id,info_id,
        base_id,publish_dept_id,knowledge_from,
        status,submitted_dept_id,create_user_id,
        create_time,update_user_id,update_time
    </sql>
    <select id="queryKnowledgePage" resultType="com.supervision.knowsub.vo.knowledge.KnowledgePageResVO">
        select
        t1.*
        from ks_knowledge t1 left join ks_knowledge_info t2 on t1.info_id = t2.id
        <where>
            <if test="status == null">
                and ( draft_belong_user_id = #{userId} or status != 1)
            </if>
            <if test="status != null">
                and ( status = #{status} )
            </if>
            <if test="title != null and title != ''">
                and title like concat('%',#{title},'%')
            </if>
            <if test="publishDeptId != null and publishDeptId != ''">
                and publish_dept_id = #{publishDeptId}
            </if>
            <if test="baseId != null and baseId != ''">
                and base_id = #{baseId}
            </if>
            <if test="submittedDeptId != null and submittedDeptId != ''">
                and submitted_dept_id = #{submittedDeptId}
            </if>
            <if test="publishDateBegin != null and publishDateBegin != ''">
                and create_time <![CDATA[ >= ]]> #{publishDateBegin}
            </if>
            <if test="publishDateEnd != null and publishDateEnd != ''">
                and create_time <![CDATA[ <= ]]> #{publishDateEnd}
            </if>
        </where>
        order by create_time desc
    </select>
</mapper>