<?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="i2c.biz.admin.srvc.userMng.dao.UserApplyDAO">
    <resultMap id="snsUserVO"     type="i2c.biz.admin.srvc.userMng.vo.SnsUserVO"     />
    
    <parameterMap id="snsUserVO"      type="i2c.biz.admin.srvc.userMng.vo.SnsUserVO"     />
    
    
    <sql id="searchUser">
   	 	<if test="searchSdate != null and searchSdate !='' and searchEdate !=null and searchEdate !='' ">
      		AND SUBSTR(SU.CRT_DTTM, 1,4) || '-' || SUBSTR(SU.CRT_DTTM, 5,2) || '-' || SUBSTR(SU.CRT_DTTM, 7,2) BETWEEN #{searchSdate} AND #{searchEdate}
      	</if>
	      
    	<if test="searchText != null and searchText !=''">
          <if test="searchSelect == 'usrNm'">
          	AND SU.USR_NM = #{searchText}
          </if>
          <if test="searchSelect == 'phnNum'">
          	AND SU.PHN_NUM = #{searchText}
          </if>
          <if test="searchSelect == 'email'">
          	AND SU.EMAIL = #{searchText}
          </if>
     	</if>
     </sql>
    
    <select id="selectUserCount" parameterMap="snsUserVO" resultType="int">
        /* [i2c.biz.admin.srvc.userMng.dao.UserApplyDAO.selectUserCount] 회원 건수 */
        SELECT 
        	COUNT(0)
        FROM 
        	SNS_USER SU
        WHERE 1 = 1
        AND APPROVAL = 'N'
        <include refid="searchUser"/>
    </select>
    
    <select id="selectUserList" parameterMap="snsUserVO" resultMap="snsUserVO">
        /* [i2c.biz.admin.srvc.userMng.dao.UserApplyDAO.selectUserList] 회원 목록 */
        SELECT *
        FROM (
            SELECT ROWNUM RNUM, B.*
              FROM (
                SELECT 
                	SU.USR_ID USRID,
                	SU.LOGIN_ID LOGINID,
                	SU.USR_NM USRNM,
                	SU.PHN_NUM PHNNUM,
                	SU.EMAIL EMAIL,
                	SUBSTR(SU.CRT_DTTM, 1,4) || '-' || SUBSTR(SU.CRT_DTTM, 5,2) || '-' || SUBSTR(SU.CRT_DTTM, 7,2) CRTDTTM,
                	SU.APPROVAL APPROVAL,
                	SUBSTR(SU.APPROVAL_DTTM, 1,4) || '-' || SUBSTR(SU.APPROVAL_DTTM, 5,2) || '-' || SUBSTR(SU.APPROVAL_DTTM, 7,2) APPROVALDTTM,
                	SU.AUTH_CODE AUTHCODE
                	, SU.DEPT_ID
                	, ED.UP_DEPT_CD
                FROM SNS_USER SU
                LEFT OUTER JOIN COMTNEMPLYRSCRTYESTBS C  ON SU.USR_ID  = C.SCRTY_DTRMN_TRGET_ID
                LEFT OUTER JOIN EXT_DEPARTMENT        ED ON SU.DEPT_ID = ED.DEPT_ID
                WHERE 1 = 1
                AND SU.APPROVAL = 'N'
                <include refid="searchUser"/>
                ORDER BY SU.CRT_DTTM DESC
            ) B
        )
        <![CDATA[
		 WHERE  RNUM  > #{firstIndex}
           AND  RNUM <= #{firstIndex} + #{recordCountPerPage}
		   ]]> 
		 ORDER BY RNUM
    </select>
    
    <select id="selectUser" parameterMap="snsUserVO" resultMap="snsUserVO">
        /* [i2c.biz.admin.srvc.userMng.dao.UserApplyDAO.selectUser] 회원 정보 */
        SELECT 
         	SU.USR_ID USRID,
         	SU.LOGIN_ID LOGINID,
         	SU.USR_NM USRNM,
         	SU.PHN_NUM PHNNUM,
         	SU.EMAIL EMAIL,
         	NVL(ED.DEFAULT_AUTHOR_CODE, SU.AUTH_CODE) AUTHCODE, /* BPA 유관기관 회원승인 時 조직 변경에 대한 권한 변경 */
         	ED.DEPT_NM DEPT_CODE_NM,
         	SUBSTR(SU.APPROVAL_DTTM, 1,4) || '-' || SUBSTR(SU.APPROVAL_DTTM, 5,2) || '-' || SUBSTR(SU.APPROVAL_DTTM, 7,2) || ' ' || SUBSTR(SU.APPROVAL_DTTM, 9,2) || ':' || SUBSTR(SU.APPROVAL_DTTM, 11,2) APPROVALDTTM
       FROM SNS_USER SU
       LEFT OUTER JOIN EXT_DEPARTMENT ED ON ED.DEPT_CD = SU.DEPT_ID
       WHERE
       	USR_ID = #{usrId}
    </select>
    
    <update id="updateUser" parameterMap="snsUserVO">
        /* [i2c.biz.admin.srvc.userMng.dao.UserApplyDAO.updateUser] 회원가입계정승인처리 */
        UPDATE SNS_USER SU
        SET
      		APPROVAL      = 'Y',
      		APPROVAL_DTTM = TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS'),
      		USE_STOP_YN = 'N',
      		SYS_ADMIN_YN = 'N'
      		, DEPT_ID = #{dept_id}
      		, DEPT_NM = (SELECT ED.DEPT_NM FROM EXT_DEPARTMENT ED WHERE ED.DEPT_ID = #{dept_id})
      		, AUTH_CODE = #{auth_code} /* BPA 유관기관 회원승인 時 조직 변경에 대한 권한 변경 */
      		<if test="@i2c.cmm.util.StringUtil@isEmpty(tempPasswdYn) == false">
      		, TEMP_PASSWD_YN = #{tempPasswdYn}
      		</if>
      		<if test="@i2c.cmm.util.StringUtil@isEmpty(connIp) == false">
      		, CONN_IP = #{connIp}
      		</if>    		
      		 
        WHERE USR_ID = #{usrId}
    </update>
    
    <insert id="insertAuth" parameterMap="snsUserVO">
         /* [i2c.biz.admin.srvc.userMng.dao.UserApplyDAO.insertAuth] 회원가입승인시 권한등록처리 */
        INSERT INTO COMTNEMPLYRSCRTYESTBS (
        	SCRTY_DTRMN_TRGET_ID,
			AUTHOR_CODE
	    ) 
	    VALUES 
	    (
            #{usrId}
          , #{auth_code}
        )
    </insert>
    
    <delete id="deleteAuth" parameterMap="snsUserVO">
         /* [i2c.biz.admin.srvc.userMng.dao.UserApplyDAO.deleteAuth] 승인취소시 권한삭제처리 */
        DELETE FROM COMTNEMPLYRSCRTYESTBS
        WHERE SCRTY_DTRMN_TRGET_ID = #{usrId}
   	</delete>
</mapper>