<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">

<sqlMap namespace="AuthorManage">

    <typeAlias  alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap"/>
    <typeAlias  alias="AuthorManageVO" type="egovframework.com.sec.ram.service.AuthorManageVO"/>
    <typeAlias  alias="AuthorManage" type="egovframework.com.sec.ram.service.AuthorManage"/>

    <resultMap id="author" class="egovframework.com.sec.ram.service.AuthorManageVO">
        <result property="authorCode" column="AUTHOR_CODE" columnIndex="1"/>
        <result property="authorNm" column="AUTHOR_NM" columnIndex="2"/>
        <result property="authorDc" column="AUTHOR_DC" columnIndex="3"/>
        <result property="authorCreatDe" column="AUTHOR_CREAT_DE" columnIndex="4"/>
    </resultMap>

    <select id="authorManageDAO.selectAuthorList" parameterClass="AuthorManageVO" resultMap="author">
            SELECT TOP #recordCountPerPage#
                   AUTHOR_CODE
                 , AUTHOR_NM
                 , AUTHOR_DC
                 , AUTHOR_CREAT_DE
              FROM COMTNAUTHORINFO
             WHERE 1=1
            <isEqual prepend="AND" property="searchCondition" compareValue="1">
                AUTHOR_NM LIKE '%' + #searchKeyword# + '%'
            </isEqual>
            AND AUTHOR_CODE NOT IN (
                SELECT TOP #firstIndex# 
                       AUTHOR_CODE 
                  FROM COMTNAUTHORINFO 
                 WHERE 1=1
                 <isEqual prepend="AND" property="searchCondition" compareValue="1">
                     AUTHOR_NM LIKE '%' + #searchKeyword# + '%'
                 </isEqual>
                 ORDER BY AUTHOR_CREAT_DE DESC
            )
            ORDER BY AUTHOR_CREAT_DE DESC
    </select>

    <insert id="authorManageDAO.insertAuthor" parameterClass="AuthorManage">
        <![CDATA[
            INSERT INTO COMTNAUTHORINFO 
                  ( AUTHOR_CODE
                  , AUTHOR_NM
                  , AUTHOR_DC
                  , AUTHOR_CREAT_DE )
           VALUES ( #authorCode#
                  , #authorNm#
                  , #authorDc#
                  , GETDATE())
        ]]> 
    </insert>

    <update id="authorManageDAO.updateAuthor" parameterClass="AuthorManage">
        <![CDATA[
            UPDATE COMTNAUTHORINFO 
               SET AUTHOR_NM=#authorNm#
                 , AUTHOR_DC=#authorDc#
             WHERE AUTHOR_CODE=#authorCode#
        ]]>
    </update>
    
    <delete id="authorManageDAO.deleteAuthor">
        <![CDATA[
            DELETE FROM COMTNAUTHORINFO 
             WHERE AUTHOR_CODE=#authorCode#
        ]]>
    </delete>
    
    <select id="authorManageDAO.selectAuthor" resultMap="author">
        <![CDATA[
            SELECT AUTHOR_CODE, AUTHOR_NM, AUTHOR_DC, AUTHOR_CREAT_DE
              FROM COMTNAUTHORINFO 
             WHERE AUTHOR_CODE=#authorCode#
        ]]>
    </select>
    
    <select id="authorManageDAO.selectAuthorListTotCnt" parameterClass="AuthorManageVO" resultClass="int">
            SELECT COUNT(*) totcnt
            FROM COMTNAUTHORINFO
            WHERE 1=1
            <isEqual prepend="AND" property="searchCondition" compareValue="1">
                AUTHOR_NM LIKE '%' + #searchKeyword# + '%'
            </isEqual> 
    </select>
    
    <select id="authorManageDAO.selectAuthorAllList" parameterClass="AuthorManageVO" resultMap="author">
            SELECT
                   AUTHOR_CODE, AUTHOR_NM, AUTHOR_DC, AUTHOR_CREAT_DE
              FROM COMTNAUTHORINFO
    </select>
</sqlMap>
