<?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.rejectMng.dao.RejectMngDAO">
	<resultMap    id="rejectMngVO"  type="i2c.biz.admin.rejectMng.vo.RejectMngVO"     />    
    <parameterMap id="rejectMngVO"  type="i2c.biz.admin.rejectMng.vo.RejectMngVO"     />
    
    <sql id="searchQuery"> 
   	    <if test="@i2c.cmm.util.StringUtil@isEmpty(auth_code) == false">
      		<if test="auth_code == 'ROLE_ADMIN'">
			AND A.MBER_NO = #{mber_no}		
            </if>
            <if test="auth_code == 'ROLE_MC_MNGR' or auth_code == 'ROLE_CORE_MNGR'">
			AND A.USR_ID = #{usr_id}		
            </if>
      	</if>
    	<if test="@i2c.cmm.util.StringUtil@isEmpty(searchKeyword) == false">			
			<if test="searchCondition == 'REJECTID'">			
			AND B.REJECT_ID LIKE CONCAT('%', #{searchKeyword}, '%')
			</if>						
			<if test="searchCondition == 'ARSNUM'">			
			AND A.ARS_NUM LIKE CONCAT('%', #{searchKeyword}, '%')
			</if>	
			<if test="searchCondition == 'REJECTNUM'">			
			AND B.REJECT_NUM LIKE CONCAT('%', #{searchKeyword}, '%')
			</if>	
		</if>
    </sql>
    
     <select id="countRejectMng" parameterMap="rejectMngVO" resultType="int">
        /* [i2c.biz.admin.rejectMng.dao.RejectMngDAO.countRejectMng] 수신거부번호 목록 카운트 */
        SELECT 
        		COUNT(usr_id) 
          FROM 
				(SELECT 
					    usr_id  
				  FROM  ars_num_mng a
				       ,reject_num_mng b 
				 WHERE a.ars_id = b.ars_id
					   <include refid="searchQuery"/> ) c
     </select>   
     
     <select id="listRejectMng" parameterMap="rejectMngVO" resultMap="rejectMngVO">
        /* [i2c.biz.admin.rejectMng.dao.RejectMngDAO.listRejectMng] 수신거부번호 목록 */
        SELECT *
        FROM (
            SELECT (@ROWNUM  := @ROWNUM + 1) RNUM, B.*            	 
              FROM (
	               SELECT 
					     a.usr_id
					   , a.ars_id 
					   , FN_GET_USR_NM(a.usr_id) USR_NM
					   , a.mber_no
					   , (SELECT SU.USR_NM 
					        FROM ADD_MBER_INFO AM, SNS_USER SU 
					       WHERE AM.USR_ID = SU.USR_ID
					         AND AM.MBER_NO = a.mber_no
					     ) MBER_USR_NM
					   , (SELECT COUNT(RN.REJECT_ID)
					       FROM REJECT_NUM_MNG RN 
					      WHERE RN.ARS_ID = a.ars_id
					      ) REJECT_CNT  
					   , a.org_id
					   , a.ars_num
					   , a.provider
					   , a.prpos
					   , FN_GET_CODE_NM('ARS_ST', a.status) STATUS_NM 
					   , DATE_FORMAT(a.regist_de, '%Y-%m-%d %H:%i') regist_de
					   , b.reject_id 
					   , b.reject_num
					   , b.resn
					   , DATE_FORMAT(b.updt_de, '%Y-%m-%d %H:%i') updt_de
					   , b.status
					   , b.use_at
				   FROM 
				         ars_num_mng a
				        ,reject_num_mng b 
			      WHERE 1=1
			        AND a.ars_id = b.ars_id
			     	 <include refid="searchQuery"/>   		
			     	  ORDER BY regist_de DESC
		            ) B, (SELECT @ROWNUM := 0 FROM DUAL) ROWNUM
        	) C        
		ORDER BY RNUM
		LIMIT #{firstIndex}, #{recordCountPerPage}
       
    </select>
    
    <update id="deleteRejectMng" parameterMap="rejectMngVO">
    /* [i2c.biz.admin.rejectMng.dao.RejectMngDAO.deleteRejectMng] 수신거부번호 삭제*/
       UPDATE ARS_NUM_MNG 
		  SET USE_AT = 'N'
	    WHERE ARS_ID = #{ars_id}
    </update>
    
    <insert id="rejectSave" parameterMap="rejectMngVO">
    /* [i2c.biz.admin.rejectMng.dao.RejectMngDAO.rejectSave] 수신거부번호 등록*/
   		 INSERT INTO reject_num_mng
			(
              	ars_id
               ,reject_id
               ,reject_num
               ,reject_de
               ,resn
               ,use_at
               ,status
               ,regist_id
               ,regist_de
			)
		VALUES 
			(
               	#{ars_id}
               ,#{reject_id}
               ,#{reject_num}
               ,DATE_FORMAT(NOW(), '%Y%m%d%H%i%s')
               ,#{resn}
               ,#{use_at}
               ,#{status}
               ,#{regist_id}
               ,DATE_FORMAT(NOW(), '%Y%m%d%H%i%s')
             )
    </insert>
    
    <select id="usrSearch" parameterMap="rejectMngVO" resultType="String">
    /* [i2c.biz.admin.rejectMng.dao.RejectMngDAO.usrSearch] usr_id 확*/
    	SELECT usr_nm
    	  FROM sns_user 
    	 WHERE login_id = #{login_id}
    	   <if test='org_sid != null'>
	       AND org_sid = #{org_sid}
	       </if> 
    </select>
    
    <select id="count080RejectNum" parameterMap="rejectMngVO" resultType="int">
        /* [i2c.biz.admin.rejectMng.dao.RejectMngDAO.count080RejectNum] 파트너 Admin-수신거부번호 목록 카운트 */
        SELECT 
        		COUNT(*) 
          FROM 
				(SELECT 
					    B.REJECT_ID  
				  FROM  ARS_NUM_MNG A
				       ,REJECT_NUM_MNG B 
				 WHERE A.ARS_ID = B.ARS_ID
					   <include refid="searchQuery"/> ) c
     </select>   
     
     <select id="list080RejectNum" parameterMap="rejectMngVO" resultMap="rejectMngVO">
        /* [i2c.biz.admin.rejectMng.dao.RejectMngDAO.list080RejectNum] 파트너 Admin-수신거부번호 목록 */	
		SELECT ROW_NUMBER() OVER(ORDER BY B.REJECT_DE) AS RNUM, B.*
		FROM (
				SELECT
					 A.USR_ID
					,A.ARS_ID 
					,FN_GET_USR_NM(A.USR_ID) USR_NM
					,A.MBER_NO 
					,A.ORG_ID
					,A.ARS_NUM
					,A.PROVIDER
					,A.PRPOS
					,IFNULL(DATE_FORMAT(B.REJECT_DE, '%Y-%m-%d %H:%i'), '-') REJECT_DE
					,FN_GET_CODE_NM('REJECT_ST', B.STATUS) STATUS_NM 
					,DATE_FORMAT(B.REGIST_DE, '%Y-%m-%d %H:%i') REGIST_DE
					,B.REJECT_ID 
					,B.REJECT_NUM
					,B.RESN
					,DATE_FORMAT(B.UPDT_DE, '%Y-%m-%d %H:%i') UPDT_DE
					,B.STATUS
					,B.USE_AT
				FROM 
					 ARS_NUM_MNG A
				    ,REJECT_NUM_MNG B
				WHERE 1=1 AND 
					A.ARS_ID = B.ARS_ID
					<include refid="searchQuery"/>
			) B
		ORDER BY RNUM DESC
		LIMIT #{firstIndex}, #{recordCountPerPage}
    </select>
    
    <select id="list080ArsNum" parameterMap="rejectMngVO" resultType="i2c.cmm.base.CommonResultMap">
        /* [i2c.biz.admin.rejectMng.dao.RejectMngDAO.list080ArsNum] 파트너 Admin-080 Ars 목록 */
        SELECT 
			     AN.ARS_ID
			   , AN.USR_ID
			   , AN.ORG_ID
			   , AN.ARS_NUM
		   FROM 
		        ARS_NUM_MNG AN
	      WHERE 1=1
	          AND AN.USE_AT = 'Y'
	          <if test="@i2c.cmm.util.StringUtil@isEmpty(auth_code) == false">
	      		  <if test="auth_code == 'ROLE_ADMIN'">
				  AND AN.MBER_NO = #{mber_no}		
	              </if>
	              <if test="auth_code == 'ROLE_MC_MNGR' or auth_code == 'ROLE_CORE_MNGR'">
				  AND AN.USR_ID = #{usr_id}		
	              </if>
      	      </if>
    </select>
    
    <select id="select080RejectNum" parameterMap="rejectMngVO" resultMap="rejectMngVO">
        /* [i2c.biz.admin.rejectMng.dao.RejectMngDAO.select080RejectNum] 파트너 Admin-수신거부 상세*/
         SELECT 
			    RN.REJECT_ID
			  , AN.ARS_ID
			  , RN.REJECT_NUM
			  , RN.STATUS
			  , RN.RESN
		   FROM 
		        ARS_NUM_MNG AN
		        , REJECT_NUM_MNG RN
	      WHERE 
	            AN.ARS_ID = RN.ARS_ID
	            <if test="@i2c.cmm.util.StringUtil@isEmpty(reject_id) == false">	
	            AND RN.REJECT_ID = #{reject_id}		
	            </if>
	            <if test="@i2c.cmm.util.StringUtil@isEmpty(reject_id) != false">
	            AND AN.ARS_ID = #{ars_id}
	         	AND RN.REJECT_NUM = #{reject_num}			
	            </if>
    </select>
    
    <insert id="save080RejectNum" parameterMap="rejectMngVO" >
    /* [i2c.biz.admin.rejectMng.dao.RejectMngDAO.save080RejectNum] 파트너 Admin-수신거부 등록*/
   		 INSERT INTO REJECT_NUM_MNG
			(
			  REJECT_ID
			, ARS_ID
			, REJECT_NUM
			, REJECT_DE
			, RESN
			, USE_AT
			, STATUS
			, REGIST_ID
			, REGIST_DE
			)
		VALUES(
			   #{reject_id}
			 , #{ars_id}
			 , #{reject_num}
			 , DATE_FORMAT(SYSDATE(), '%Y%m%d%H%i%s')
			 , #{resn}
			 , #{use_at}
			 , #{status}
			 , #{regist_id}
			 , DATE_FORMAT(SYSDATE(), '%Y%m%d%H%i%s')
			 )
    </insert>
    
    <update id="update080RejectNum" parameterMap="rejectMngVO">
     /* [i2c.biz.admin.rejectMng.dao.RejectMngDAO.update080RejectNum] 파트너 Admin-수신거부 해제*/
       UPDATE 
             REJECT_NUM_MNG 
		  SET 
		      STATUS = #{status}
		    , RESN = #{resn}
		    , REJECT_DE = #{reject_de}
	    WHERE 
	         REJECT_ID = #{reject_id}
    </update>
    
    <select id="selectCmp" parameterMap="rejectMngVO" resultType="i2c.cmm.base.CommonResultMap">
    /* [i2c.biz.admin.rejectMng.dao.RejectMngDAO.selectCmp] 파트너 Admin-회원사 확인*/
    	SELECT 
    	      AMI.CMPNM
    	    , AMI.MBER_NO
		 FROM 
		      ADD_MBER_INFO AMI 
		    , SNS_USER SU
		WHERE 
		     SU.USR_ID = AMI.USR_ID 
		 AND SU.USR_ID = #{usr_id}
    </select>

    
</mapper>