<?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.userCntrct.dao.UserCntrctDAO">
    <resultMap id="userCntrctVO"     type="i2c.biz.admin.srvc.userCntrct.vo.UserCntrctVO"     />    
    
    <parameterMap id="userCntrctVO"      type="i2c.biz.admin.srvc.userCntrct.vo.UserCntrctVO"     />      
    
    <sql id="countCntrctQuery">
      SELECT 
        	 COUNT(SU.USR_ID)
        FROM SNS_USER SU
	       , COMTNEMPLYRSCRTYESTBS AUTH  
	       , SUB_MBER_INFO SMI  
	       , ADD_MBER_INFO AMI 
	       , SNS_CLIENT SC 
	       , MBER_LEVEL ML
	   WHERE AUTH.SCRTY_DTRMN_TRGET_ID = SU.USR_ID
	     AND SMI.USR_ID = SU.USR_ID 
	     AND AMI.USR_ID = SU.USR_ID
	     AND SU.MBER_NO = SC.MBER_NO
	     AND SU.ORG_SID = SC.ORG_SID
	     AND SMI.LEVEL_CD = ML.LEVEL_CD 
	     AND SU.ORG_SID IS NOT NULL
	     AND SU.ORG_SID != ''
    </sql>
    
    <select id="countUserCntrct" parameterMap="userCntrctVO" resultType="int">
        /* [i2c.biz.admin.srvc.userCntrct.dao.UserCntrctDAO.countUserCntrct] 회원 계약 건수 */
        <include refid="countCntrctQuery"/>
    </select>
    
    <select id="selectUserCntrct" parameterMap="userCntrctVO" resultMap="userCntrctVO" >
      /* [i2c.biz.admin.srvc.userCntrct.dao.UserCntrctDAO.selectUserCntrct] 서비스 현황*/
      SELECT
	      (<include refid="countCntrctQuery"/>) ALL_CNT		  
		, (<include refid="countCntrctQuery"/>
		   AND SU.SVC_SETLE_CD = 'SVCSETLETY01') PREPAY_CNT
	    , (<include refid="countCntrctQuery"/>
		   AND SU.SVC_SETLE_CD = 'SVCSETLETY02') POSTPAY_CNT
		, (<include refid="countCntrctQuery"/>
		   AND SU.SVC_SETLE_CD = 'SVCSETLETY03') FREEPAY_CNT
		, (<include refid="countCntrctQuery"/>
		   AND AMI.CSTMR_CD = 'CSTMRTY01') INDVDL_CNT
		, (<include refid="countCntrctQuery"/>
		   AND AMI.CSTMR_CD = 'CSTMRTY02') ENTRPRS_CNT
	  	FROM DUAL	
     </select>
    
     <select id="listUserCntrct" parameterMap="userCntrctVO" resultMap="userCntrctVO" >
      /* [i2c.biz.admin.srvc.userCntrct.dao.UserCntrctDAO.listUserCntrct] 서비스 목록*/
       SELECT *
        FROM (
            SELECT (@ROWNUM  := @ROWNUM + 1) RNUM, B.*            	 
              FROM (
                  SELECT 
				    	 SU.USR_ID 
				       , AMI.CMPNM
				       , SC.CLIENT_NM 
				       , ML.LEVEL_NM    	   	
				       , FN_GET_CODE_NM('SVC_SETLE_TY',SU.SVC_SETLE_CD) SUB_MBER_NM
				       , ML.SMS
				       , ML.LMS
				       , ML.MMS
				       , ML.NTCN_TALK
				       , ML.FRN_TALK
				       , FN_GET_CODE_NM('CNTRCT_ST', IFNULL(SMI.STATUS,'CNTRCTST01')) STATUS
				       , SMI.RM   
				    FROM SNS_USER SU
				       , COMTNEMPLYRSCRTYESTBS AUTH  
				       , SUB_MBER_INFO SMI  
				       , ADD_MBER_INFO AMI 
				       , SNS_CLIENT SC 
				       , MBER_LEVEL ML
				   WHERE AUTH.SCRTY_DTRMN_TRGET_ID = SU.USR_ID
				     AND SMI.USR_ID = SU.USR_ID 
				     AND AMI.USR_ID = SU.USR_ID
				     AND SU.MBER_NO = SC.MBER_NO
				     AND SU.ORG_SID = SC.ORG_SID
				     AND SMI.LEVEL_CD = ML.LEVEL_CD 
				     AND SU.ORG_SID IS NOT NULL
				     AND SU.ORG_SID != ''
            ) B, (SELECT @ROWNUM := 0 FROM DUAL) ROWNUM
             ORDER BY B.CMPNM
        ) C        
		ORDER BY CMPNM
		LIMIT #{firstIndex} , #{recordCountPerPage}	
     </select>     
     
     <update id="updateUserCntrct" parameterType="Map">
        /* [i2c.biz.admin.srvc.userCntrct.dao.UserCntrctDAO.updateUserCntrct] 회원 계약상태 수정 */
        UPDATE SUB_MBER_INFO SET
			STATUS = #{status}
		WHERE USR_ID IN 
		  <foreach collection="usr_ids" item="item" index="index"  open="(" separator="," close=")">		  
			#{item}
		  </foreach>		  
    </update> 
	
</mapper>