<?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.adminMng.AdminGroupDAO">
    <resultMap    id="adminGroupVO"     type="i2c.biz.admin.adminMng.vo.GroupVO"     />
    <parameterMap id="groupVO"          type="i2c.biz.admin.adminMng.vo.GroupVO"     />
    
   	<select id="selectAdminGroup" parameterMap="groupVO" resultMap="adminGroupVO">
        /* [2017.03.17 강남구] [i2c.biz.admin.adminMng.AdminGroupDAO.selectAdminGroup] 그룹 목록 정보 */
        SELECT *
		  FROM(
		       SELECT ROWNUM AS RNUM, SNSGRP.*
				 FROM (
				       SELECT NVL(G.USE_STOP_YN, 'N') AS GROUP_STATUS /* 그룹 상태 */
					         , G.GRP_TP                      /* 그룹 구분 : 게시, 기본 */
					         , G.GRP_NM                      /* 그룹 명 */
					         , G.OPEN_YN                     /* 공개/비공개 여부 */
					         , (SELECT USR_NM FROM SNS_USER WHERE USR_ID = G.CRT_USR_ID) AS CREATOR
					         , (
									SELECT COUNT(ATT.POST_ID) 
									  FROM SNS_ATTACH ATT
									     , SNS_POST POS 
									 WHERE ATT.POST_ID = POS.POST_ID 
									   AND POS.TAR_GRP_ID = G.GRP_ID
								) FILE_CNT /* 등록된 파일 갯수 */
							, (
									SELECT COUNT(IT.GRP_ID) 
									  FROM SNS_USERS_BY_GROUP IT 
									 WHERE IT.GRP_ID = G.GRP_ID 
									   AND IT.LEAVE_DTTM IS NULL
									   AND IT.JOIN_YN = 'Y'
								) MEMBER_CNT /* 구성원 수*/
								,(
									SELECT COUNT(IT.TAR_GRP_ID) 
									  FROM SNS_POST IT 
									 WHERE IT.TAR_GRP_ID = G.GRP_ID
								) POST_CNT /* 게시글 수*/
								,(
									SELECT USR_NM
									  FROM SNS_USERS_BY_GROUP IT 
					 				          , SNS_USER B
									 WHERE IT.GRP_ID = G.GRP_ID 
									   AND B.USR_ID = IT.USR_ID
									   AND IT.ADMIN_YN = 'Y'
									   AND ROWNUM = 1
								) AS ADMIN_NM /* 관리자 명 */
								, G.MOD_DTTM /* 최종 수정일자*/
								, G.GRP_ID /* 그룹 ID */
					 FROM SNS_GROUP G
					 WHERE 1=1
					 <if test="searchKeyword != null and searchKeyword !=''">
						AND  G.GRP_NM LIKE '%' || #{searchKeyword} || '%'					
					 </if>
				 )	SNSGRP
		) 
	 <![CDATA[
		 WHERE  RNUM  > #{firstIndex}
           AND  RNUM <= #{firstIndex} + #{recordCountPerPage}
	 ]]>
	  ORDER BY GRP_NM, MOD_DTTM
	</select>
	
	<select id="selectTotalCnt" parameterMap="groupVO" resultType = "int">
        /* [2017.03.17 강남구] [i2c.biz.admin.adminMng.AdminGroupDAO.selectTotalCnt] 그룹 갯수 */
		   SELECT COUNT(G.GRP_ID)
			 FROM SNS_GROUP G
			 WHERE 1=1
			 <if test="searchKeyword != null and searchKeyword !=''">
				AND  G.GRP_NM LIKE '%' || #{searchKeyword} || '%'					
			 </if>
	</select>
	
	<update id="updateAdminGrpUseYN"  parameterMap="groupVO">
		/* [2017.03.17 강남구] [i2c.biz.admin.adminMng.AdminGroupDAO.updateAdminGrpUseYN] 그룹 상태 변경 */
		UPDATE SNS_GROUP 
           SET USE_STOP_YN   = #{group_status}
             , USE_STOP_DTTM = TO_CHAR(SYSDATE,'yyyyMMddHHmmss')
         WHERE GRP_ID = #{grp_id} 
	</update>
	
</mapper>