<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">

<mapper namespace="kr.co.i2talk.sns">

	<resultMap id="comDefaultVO"      type="i2c.cmm.vo.ComDefaultVO" />		

	<!-- 게시글 목록 Column  --> 
	<sql id="snsPostList">
	WITH SURVEY AS (
					SELECT SS.SURVEY_ITM_ID
					     , SS.SURVEY_ITM_NM
					     , SS.POST_ID
					     , SS.SORT_ORD					     
					     , (CASE WHEN SSV.USR_ID IS NULL THEN 'N' ELSE 'Y' END) AS VOTED_YN
				               FROM SNS_SURVEY SS LEFT OUTER JOIN SNS_SURVEY_VOTE SSV 
				                                               ON SSV.SURVEY_ITM_ID = SS.SURVEY_ITM_ID 
				                                              AND SSV.USR_ID = #{tar_usr_id}
				                                              ORDER BY SS.SORT_ORD
    )
	, FILE_EXT_ARR AS (
					SELECT CODE
					   FROM  CMMN_DETAIL_CODE 
					 WHERE CODE_ID='COM081'
		) 
		SELECT /** 내가 팔로우하는 항목 */
			  A.TOTAL_CNT
			, A.RN
			, A.POST_ID                                               /* 게시물 아이디     */
			, A.POST_TP                                               /* 게시 유형              */
			, A.TAR_GRP_ID                                            /* 대상 그룹 아이디          */
			, FN_GET_GRP_NM(A.TAR_GRP_ID) TAR_GRP_NM                  /* 대상 그룹 명            */
			, A.TAR_USR_ID                                            /* 대상 사용자 아이디         */
			, FN_GET_USR_NM(A.TAR_USR_ID) TAR_USR_NM                  /* 대상 사용자 명           */
			, FN_GET_USR_DEPT_NM(A.TAR_USR_ID) TAR_DEPT_NM			  /* 대상 부서               */
			, A.TAR_OBJ_ID                                            /* 대상 객체 아이디          */
			, A.TAR_OBJ_TP                                            /* 대상 객체 유형           */
			, A.CNTN      		                                      /* 내용                */
			, A.DVC_TP_CD                                             /* 디바이스 유형코드          */
			, FN_GET_CODE_NM('DVC_TP_CD', DVC_TP_CD) DVC_TP_NM        /* 디바이스 유형 명          */
			, A.SURVEY_USR_OPEN_YN									  /* 설문 처리 기명/무기명 Y/N   */
			, A.REG_DTTM                                              /* 등록일자               */
			, A.CRT_DTTM                                              /*  생성일자*/
			, A.CRT_USR_ID                                            /* 생성자 ID             */
			, FN_GET_USR_NM(A.CRT_USR_ID) CRT_USR_NM                  /* 생성자                */
			, FN_GET_USR_DEPT_NM(A.CRT_USR_ID) CRT_DEPT_NM			  /* 생성자 부서               */
			, FN_GET_USR_PHOTO(A.CRT_USR_ID) AS CRT_USR_PHOTO_IMG_MIN /* 생성자 사진             */
			, FN_GET_USR_ORIGIN_PHOTO(A.CRT_USR_ID) CRT_PHOTO_IMG     /* 생성자 사진                   */
			, A.MOD_USR_ID, A.MOD_DTTM                                /* 수정자, 수정일자          */
			, #{login_usr_id} AS LOGIN_USR_ID                         /* Login User ID */
			, (
				CASE
					WHEN (SELECT COUNT(*) FROM SNS_BOOKMARK IT WHERE IT.POST_ID = A.POST_ID AND IT.CRT_USR_ID = #{login_usr_id}) > 0 THEN
						'Y'
					ELSE
						'N'
					END
			) BOOKMARK_YN                                           /* 북마크 여부 */
			, (
				CASE
					WHEN (SELECT COUNT(*) FROM SNS_LIKE IT WHERE IT.POST_ID = A.POST_ID AND IT.LIKE_USR_ID =  #{login_usr_id}) > 0 THEN
						'Y'
					ELSE
						'N'
					END
			) LIKE_MY 
			, ( SELECT COUNT(IT.POST_ID) FROM SNS_LIKE IT WHERE IT.POST_ID = A.POST_ID ) LIKE_CNT		/*  좋아요 수 */
			, ( SELECT COUNT(IT.UP_POST_ID) FROM SNS_POST IT WHERE IT.UP_POST_ID = A.POST_ID ) REPLY_CNT /* 댓글 수 */
			, (CASE WHEN A.CRT_USR_ID = #{login_usr_id} THEN 'Y' ELSE 'N' END) IS_OWNER
			, (CASE A.TAR_OBJ_TP WHEN 'CFRC'       THEN (SELECT CFRC_TTL FROM SNS_CONFERENCE WHERE CFRC_ID = A.TAR_OBJ_ID)
						   		 WHEN 'NOTICE'     THEN (SELECT SUBJECT FROM NOTICE WHERE NOTICE_ID = A.TAR_OBJ_ID)	
			   ELSE '' END) OBJ_TTL	
	</sql>
	
	<!-- 댓글 Column  -->
	<sql id="snsPostReply">
		       , A.TAR_GRP_ID
			   , A.TAR_USR_ID
			   , (SELECT USR_NM FROM SNS_USER WHERE USR_ID = A.TAR_USR_ID) TAR_USR_NM
			   , A.TAR_OBJ_ID
			   , A.TAR_OBJ_TP 
			   , A.POST_TP 
			   , A.CNTN 
			   , A.NOTI_YN 
			   , A.REG_DTTM
			   , A.DVC_TP_CD
			   , FN_GET_CODE_NM('DVC_TP_CD', DVC_TP_CD) DVC_TP_NM        /* 디바이스 유형 명          */
			   , A.SURVEY_USR_OPEN_YN
			   , A.CRT_USR_ID
			   , (SELECT CD_NM FROM SNS_COMMON_CODE WHERE CD=A.DVC_TP_CD AND UP_CD = 'DVC_TP_CD') DVC_TP_NM		                 
			   , (SELECT USR_NM FROM SNS_USER WHERE USR_ID = A.CRT_USR_ID) CRT_USR_NM			  
			   , '/USER/' || A.CRT_USR_ID || '/' || B.PHOTO_IMG_MIN AS CRT_USR_PHOTO_IMG_MIN
			   , (SELECT PHOTO_IMG FROM SNS_USER WHERE USR_ID = A.CRT_USR_ID) CRT_PHOTO_IMG			   
			   , A.CRT_DTTM
			   , A.MOD_USR_ID
			   , A.MOD_DTTM
			   ,(
					CASE
						WHEN (SELECT COUNT(*) FROM SNS_BOOKMARK IT WHERE IT.POST_ID = A.POST_ID AND IT.CRT_USR_ID = #{login_usr_id} ) > 0 THEN
							'Y'
						ELSE
							'N'
					END
				 ) BOOKMARK_YN 
				,(
				   CASE
					  WHEN (SELECT COUNT(*) FROM SNS_LIKE IT WHERE IT.POST_ID = A.POST_ID AND IT.LIKE_USR_ID =  #{login_usr_id}) > 0 THEN
						  'Y'
					  ELSE
						  'N'
				   END
				  ) LIKE_MY
				,(
					SELECT COUNT(*) FROM SNS_LIKE IT WHERE IT.POST_ID = A.POST_ID
				 ) LIKE_CNT
				, (CASE WHEN A.CRT_USR_ID = #{login_usr_id} THEN 'Y' ELSE 'N' END) IS_OWNER	
	</sql>
	
	<!-- SNS Post 첨부 파일 Column  -->
	<sql id="snsPostReplyAttach">
	    , SA.ATTACH_FILE_ID
		, SA.UP_ATTACH_FILE_ID
		, SA.POST_ID
		, SA.USR_ID
		, SA.ATTACH_TP_CD
		, SA.ATTACH_NM
		, SA.TAR_TP
		, SA.TAR_SUB_TP
		, SA.DESCRIP
		, SA.VERS
		, SA.USR_LINK
		, SA.VIDEO_LINK
		, SA.VIDEO_IMG_LINK
		, SA.IMG_MID
		, SA.IMG_WID
		, SA.IMG_HEI
		, SA.IMG_MID_WID
		, SA.IMG_MID_HEI		
		, SA.CRT_DTTM
		, SA.MOD_USR_ID
		, SA.MOD_DTTM
		, SA.PHYSCL_FILE_NM
		, '/' || LOWER(SA.TAR_TP) || '/' || SA.POST_ID || '/' || SA.PHYSCL_FILE_NM AS PHYSCL_FILE_PATH
		, '/' || LOWER(SA.TAR_TP) || '/' || SA.POST_ID || '/' || SA.IMG_MID AS PHYSCL_FILE_PATH_M
		, SA.CONV_PHSCL_FILE_NM
		, SA.FNL_YN
		, SA.FST_LOC
		, SA.IN_ALLW_YN
		, SA.OUT_ALLW_YN
		, SA.APRV_REQ_DTTM
		, SA.APRV_PRC_DTTM
		, SA.APRV_ST
		<!-- , (
		     <![CDATA[ 
              SELECT CASE
				 	     WHEN COUNT(CODE) > 0 THEN LOWER(SUBSTR(ATTACH_NM, INSTR(ATTACH_NM, '.', -1) + 1))
					     ELSE 'etc'
			          END 
	           FROM (
					SELECT CODE
					   FROM  CMMN_DETAIL_CODE 
					 WHERE CODE_ID='COM081'
					) 
				WHERE UPPER(CODE) =  UPPER(SUBSTR(ATTACH_NM, INSTR(ATTACH_NM, '.', -1) + 1))     
	           ]]>	
			  ) FILE_EXT -->
		, SA.CONV_YN
		, SA.CONV_FILE_NM
		, SA.CONV_PAGE_CNT
	</sql>
	
	<!-- 댓글 멘션 사용자 Column -->
	<sql id="snsPostReplyMentionUsers">
		, SPU.POST_USR_ID
        , SPU.POST_ID
        , SPU.USR_ID AS MENTION_USR_ID
        , (SELECT USR_NM FROM SNS_USER WHERE USR_ID = SPU.USR_ID) USR_NM
        , SPU.FNL_APPR_YN
        , SPU.USR_TP
        , SPU.USR_MAP_IDX
        , SPU.CFRC_USR_FLAG
        , SPU.CFRC_ATDC_YN
        , SPU.CFRC_ATDC_ST
        , SPU.CFRC_CNNT_TP
        , A.UP_POST_ID
	</sql>
	
	<!-- 설문 Column -->
	<sql id="snsPostSurvey">
		, SURVEY.SURVEY_ITM_ID /* 설문 항목   */
		, SURVEY.SURVEY_ITM_NM /* 설문 명      */
		, SURVEY.VOTED_YN      /* 투표 여부 */
		, SURVEY.SORT_ORD      /* 항목 순번 */
		, ( SELECT COUNT(AA.POST_ID) FROM SNS_SURVEY AA, SNS_SURVEY_VOTE BB 
			WHERE AA.POST_ID = A.POST_ID AND AA.SURVEY_ITM_ID = BB.SURVEY_ITM_ID
		   ) CNT		   	   /* 설문 수 */		
		, ( SELECT COUNT(AA.POST_ID) FROM SNS_SURVEY AA, SNS_SURVEY_VOTE BB 
			WHERE AA.POST_ID = A.POST_ID AND AA.SURVEY_ITM_ID = BB.SURVEY_ITM_ID AND BB.USR_ID = #{login_usr_id}
		   ) VOTED_CNT		   /* 설문 참여 여부 */		
	</sql>

    <!-- 댓글 Result Map -->
	<resultMap id="replyResultMap"      type="i2c.biz.sns.vo.SnsPostReplyVO">
		<!-- 댓글 VO  -->
		<id property = "post_id" column = "post_id" />
        <result property = "up_post_id"    column = "up_post_id"    />       
        <result property = "tar_grp_id"    column = "tar_grp_id"    />
        <result property = "tar_grp_nm"    column = "tar_grp_nm"    />
        <result property = "tar_usr_id"    column = "tar_usr_id"    />
        <result property = "tar_usr_nm"    column = "tar_usr_nm"    />
        <result property = "post_tp"       column = "post_tp"       />        
        <result property = "tar_obj_id"    column = "tar_obj_id"    />
        <result property = "tar_obj_tp"    column = "tar_obj_tp"    />
        <result property = "cntn"          column = "cntn"          />
        <result property = "noti_yn"       column = "noti_yn"       />
        <result property = "reg_dttm"      column = "reg_dttm"      />        
        <result property = "dvc_tp_cd"     column = "dvc_tp_cd"     />
        <result property = "dvc_tp_nm"     column = "dvc_tp_nm"     />
        <result property = "crt_usr_id"    column = "crt_usr_id"    />
        <result property = "crt_usr_nm"    column = "crt_usr_nm"    />
        <result property = "crt_photo_img" column = "crt_photo_img" />
        <result property = "crt_dttm"      column = "crt_dttm"      />        
        <result property = "mod_usr_id"    column = "mod_usr_id"    />
        <result property = "mod_dttm"      column = "mod_dttm"      />        
        <result property = "bookmark_yn"   column = "bookmark_yn"   />
        <result property = "like_my"       column = "like_my"       />
        <result property = "like_cnt"      column = "like_cnt"      />
        <result property = "is_owner"      column = "is_owner"      />
        <result property = "survey_usr_open_yn"    column="survey_usr_open_yn"    />
        <result property = "crt_usr_photo_img_min" column="crt_usr_photo_img_min" />        
		<collection property = "list_reply_attach_files"  ofType="i2c.biz.sns.vo.AttachFileVO" resultMap="snsAttachFiles" />
		<collection property = "list_reply_mention_users" ofType="i2c.biz.sns.vo.MentionUserVO" resultMap="snsMentionUsers" />
	</resultMap>
	
	<!-- SNS Post Result Map -->
	<resultMap id="snsPostResultMap" type="i2c.biz.sns.vo.SnsPostVO">
        <result property = "rn"            column = "rn"            />
        <result property = "total_cnt"     column = "total_cnt"     />
	    <result property = "post_id"       column = "post_id"       />
        <result property = "post_tp"       column = "post_tp"       />
        <result property = "tar_grp_id"    column = "tar_grp_id"    />
        <result property = "tar_grp_nm"    column = "tar_grp_nm"    />
        <result property = "tar_usr_id"    column = "tar_usr_id"    />
        <result property = "tar_usr_nm"    column = "tar_usr_nm"    />
        <result property = "tar_obj_id"    column = "tar_obj_id"    />
        <result property = "tar_obj_tp"    column = "tar_obj_tp"    />
        <result property = "noti_yn"       column = "noti_yn"       />
        <result property = "cntn"          column = "cntn"          />
        <result property = "dvc_tp_cd"     column = "dvc_tp_cd"     />
        <result property = "dvc_tp_nm"     column = "dvc_tp_nm"     />
        <result property = "reg_dttm"      column = "reg_dttm"      />
        <result property = "crt_dttm"      column = "crt_dttm"      />
        <result property = "crt_usr_id"    column = "crt_usr_id"    />
        <result property = "crt_usr_nm"    column = "crt_usr_nm"    />
        <result property = "crt_photo_img" column = "crt_photo_img" />
        <result property = "mod_usr_id"    column = "mod_usr_id"    />
        <result property = "mod_dttm"      column = "mod_dttm"      />
        <result property = "login_usr_id"  column = "login_usr_id"  />
        <result property = "bookmark_yn"   column = "bookmark_yn"   />
        <result property = "like_my"       column = "like_my"       />
        <result property = "like_cnt"      column = "like_cnt"      />
        <result property = "reply_cnt"     column = "reply_cnt"     />
        <result property = "is_owner"      column = "is_owner"      />
        <result property = "obj_ttl"       column = "obj_ttl"       />
        <result property = "voted_cnt"     column = "voted_cnt"      />
        <result property = "survey_usr_open_yn"     column="survey_usr_open_yn"    />
        <result property = "crt_usr_photo_img_min"  column="crt_usr_photo_img_min" />
        <result property = "crt_dept_nm"     column = "crt_dept_nm" />
        <result property = "tar_dept_nm"     column = "tar_dept_nm" />
		<collection property = "list_attach_files"  ofType="i2c.biz.sns.vo.AttachFileVO"  resultMap="snsAttachFiles" />		
 	    <!-- <collection property = "list_mention_users" ofType="i2c.biz.sns.vo.MentionUserVO" resultMap="snsMentionUsers" />
 	    <collection property = "list_survey"        ofType="i2c.biz.sns.vo.SurveyVO"      resultMap="snsSurvey" />
		<collection property = "list_reply"         column = "{post_id = post_id, login_usr_id = login_usr_id}" javaType="ArrayList" ofType="i2c.biz.sns.vo.SnsPostReplyVO"   select = "kr.co.i2talk.sns.listSnsPostReplyFromPostIds"/> -->		
 	    
	</resultMap>
	
	<!-- 설문 Result Map -->
	<resultMap id="snsSurvey" type="i2c.biz.sns.vo.SurveyVO" >
		<id     property = "usr_id"        column = "usr_id"       />
		<result property = "post_id"       column = "post_id"       />
		<result property = "survey_itm_id" column = "survey_itm_id" />
		<result property = "survey_itm_nm" column = "survey_itm_nm" />
		<result property = "voted_yn"      column = "voted_yn"      />
		<result property = "sort_ord"      column = "sort_ord"      />	
		<result property = "cnt"      	   column = "cnt"      />	
	</resultMap>
	
	<!-- 멘션 사용자  Result Map -->
	<resultMap id="snsMentionUsers" type="i2c.biz.sns.vo.MentionUserVO" >
		<id     property = "post_usr_id"   column = "post_usr_id"       /> 
        <result property = "post_usr_id"   column = "post_usr_id"   />			
		<result property = "usr_id"        column = "mention_usr_id"        />
		<result property = "usr_nm"        column = "usr_nm"        />
		<result property = "fnl_appr_yn"   column = "fnl_appr_yn"   />
		<result property = "usr_tp"        column = "usr_tp"        />
		<result property = "usr_map_idx"   column = "usr_map_idx"   />
		<result property = "cfrc_usr_flag" column = "cfrc_usr_flag" />
		<result property = "cfrc_atdc_yn"  column = "cfrc_atdc_yn"  />
		<result property = "cfrc_atdc_st"  column = "cfrc_atdc_st"  />
		<result property = "cfrc_cnnt_tp"  column = "cfrc_cnnt_tp"  />
		<result property = "up_post_id"    column = "up_post_id"    />
	</resultMap>
	
	<!-- 첨부 파일 Result Map -->
	<resultMap id="snsAttachFiles" type="i2c.biz.sns.vo.AttachFileVO">
		    <id     property = "attach_file_id"     column = "attach_file_id"     />	  
		    <result property = "attach_file_id"     column = "attach_file_id"     />
		    <result property = "up_attach_file_id"  column = "up_attach_file_id"  />
		    <result property = "usr_id"             column = "usr_id"             />
		    <result property = "attach_tp_cd"       column = "attach_tp_cd"       />
		    <result property = "attach_nm"          column = "attach_nm"          />
		    <result property = "tar_tp"             column = "tar_tp"             />
		    <result property = "tar_sub_tp"         column = "tar_sub_tp"         />
		    <result property = "descrip"            column = "descrip"            />
		    <result property = "vers"               column = "vers"               />
		    <result property = "usr_link"           column = "usr_link"           />
		    <result property = "video_link"         column = "video_link"         />
		    <result property = "video_img_link"     column = "video_img_link"     />
		    <result property = "img_mid"            column = "img_mid"            />
		    <result property = "img_wid"            column = "img_wid"            />
		    <result property = "img_hei"            column = "img_hei"            />
		    <result property = "img_mid_wid"        column = "img_mid_wid"        />
		    <result property = "img_mid_hei"        column = "img_mid_hei"        />
		    <result property = "crt_usr_id"         column = "crt_usr_id"         />
		    <result property = "crt_dttm"           column = "crt_dttm"           />
		    <result property = "mod_usr_id"         column = "mod_usr_id"         />
		    <result property = "mod_dttm"           column = "mod_dttm"           />
		    <result property = "physcl_file_nm"     column = "physcl_file_nm"     />
		    <result property = "physcl_file_path"   column = "physcl_file_path"   />
		    <result property = "physcl_file_path_m" column = "physcl_file_path_m" />
		    <result property = "conv_phscl_file_nm" column = "conv_phscl_file_nm" />
		    <result property = "fnl_yn"             column = "fnl_yn"             />
		    <result property = "fst_loc"            column = "fst_loc"            />
		    <result property = "in_allw_yn"         column = "in_allw_yn"         />
		    <result property = "out_allw_yn"        column = "out_allw_yn"        />
		    <result property = "aprv_req_dttm"      column = "aprv_req_dttm"      />
		    <result property = "aprv_prc_dttm"      column = "aprv_prc_dttm"      />
		    <result property = "aprv_st"            column = "aprv_st"            />
		    <result property = "file_ext"           column = "file_ext"           />
		    <result property = "conv_yn"            column = "conv_yn"            />
		    <result property = "conv_file_nm"       column = "conv_file_nm"       />
		    <result property = "conv_page_cnt"      column = "conv_page_cnt"      />
	</resultMap>
	
	<sql id="serachSnsPost">  
	  <if test="@i2c.cmm.util.StringUtil@isNotEmpty(tar_obj_id)">
      	AND SP.TAR_OBJ_ID = #{tar_obj_id}
      </if>
      <if test="@i2c.cmm.util.StringUtil@isNotEmpty(post_tp)">
      	AND SP.POST_TP = #{post_tp}
      </if>
      <if test="@i2c.cmm.util.StringUtil@isNotEmpty(up_post_id)">
        AND SP.UP_POST_ID = #{up_post_id}
      </if> 
      <if test="@i2c.cmm.util.StringUtil@isEmpty(up_post_id)">
        AND SP.UP_POST_ID IS NULL
      </if>     
      <if test="@i2c.cmm.util.StringUtil@isNotEmpty(vote_cd)">
		AND SP.VOTE_CD = #{vote_cd}		     	
	  </if>
	</sql>
	
	<sql id="countSnsPost">  
   	 SELECT 
            COUNT(SP.POST_ID)
       FROM SNS_POST SP
      WHERE 1=1
      <include refid="serachSnsPost"/>
    </sql>

	<select id="listSnsPost" parameterType="Map" resultType="i2c.cmm.base.CommonResultMap">
		/* kr.co.i2talk.sns.listSnsPost */				
		SELECT 
				*		  
        FROM (
            SELECT 
            	  B.*
            	, (@ROWNUM  := @ROWNUM + 1) RNUM  
            	, (<include refid="countSnsPost"/>) TOT_CNT              	      	
              FROM (
	                SELECT 
			               SP.POST_ID
			             , SP.UP_POST_ID
			             , SP.TAR_OBJ_TP
			             , SP.POST_TP	
			             , FN_GET_USR_NM(SP.CRT_USR_ID) CRT_USR_NM
			             , FN_GET_USR_NM(SP.TAR_USR_ID) TAR_USR_NM                  /* 대상 사용자 명           */		             
			             , SP.CNTN
			             , SP.VOTE_CD
			             , SP.PROPSE_GRADE	
			             , (SELECT 
						  		   ROUND(SUM(SP.PROPSE_GRADE) / (<include refid="countSnsPost"/>),1) 
						  	  FROM SNS_POST SP 
						  	 WHERE 1=1
						  	 <include refid="serachSnsPost"/>
						  	) PROPSE_GRADE_AVG
						  , DATE_FORMAT(SP.CRT_DTTM, '%Y%m%d%H%i%s') CRT_DTTM	
						  , ( SELECT COUNT(IT.POST_ID) FROM SNS_POST IT WHERE IT.UP_POST_ID = SP.POST_ID ) REPLY_CNT 
						  , (SELECT LOGIN_ID FROM SNS_USER SU WHERE SU.USR_ID = SP.CRT_USR_ID) EMAIL   
				      FROM SNS_POST SP
				     WHERE 1=1
				      <include refid="serachSnsPost"/>
			        ) B, (SELECT @ROWNUM := 0 FROM DUAL) ROWNUM
        	 ) C        
		ORDER BY C.CRT_DTTM DESC
		LIMIT #{page_index} , #{page_limit}	
	</select>
                 
	<select id="viewSnsPost" parameterType="Map"  resultMap="snsPostResultMap">
		/* kr.co.i2talk.sns.viewSnsPost */			 
		SELECT A.POST_ID
			 , A.UP_POST_ID
			 , A.TAR_GRP_ID			 
			 , A.TAR_USR_ID
			 , (SELECT USR_NM FROM SNS_USER WHERE USR_ID = A.TAR_USR_ID) TAR_USR_NM
			 , FN_GET_USR_DEPT_NM(A.TAR_USR_ID) TAR_DEPT_NM
			 , A.TAR_OBJ_ID
			 , A.TAR_OBJ_TP
			 , A.POST_TP
			 , A.CNTN
			 , A.NOTI_YN
			 , A.DVC_TP_CD
			 , SURVEY_USR_OPEN_YN 
			 ,(SELECT CD_NM FROM SNS_COMMON_CODE WHERE CD=DVC_TP_CD AND UP_CD = 'DVC_TP_CD') DVC_TP_NM 
			 , A.CRT_USR_ID
			 , #{login_usr_id} AS LOGIN_USR_ID  
			 , (SELECT USR_NM FROM SNS_USER WHERE USR_ID = A.CRT_USR_ID) CRT_USR_NM		
			 , FN_GET_USR_DEPT_NM(A.CRT_USR_ID) CRT_DEPT_NM	  
			 , '/USER/' || A.CRT_USR_ID || '/' || B.PHOTO_IMG_MIN AS CRT_USR_PHOTO_IMG_MIN
			 , (SELECT PHOTO_IMG FROM SNS_USER WHERE USR_ID = A.CRT_USR_ID) CRT_PHOTO_IMG
			 , A.CRT_DTTM
			 , A.CRT_DTTM REG_DTTM
			 , A.MOD_USR_ID
			 , A.MOD_DTTM			 			 
			 , ( SELECT COUNT(IT.UP_POST_ID) FROM SNS_POST IT WHERE IT.UP_POST_ID = A.POST_ID ) REPLY_CNT /* 댓글 수 */
			 , (CASE WHEN A.CRT_USR_ID = #{login_usr_id} THEN 'Y' ELSE 'N' END) IS_OWNER			
		FROM  SNS_POST A LEFT OUTER JOIN SNS_ATTACH SA
		                              ON A.POST_ID = SA.POST_ID
		                 LEFT OUTER JOIN SNS_POST_USER SPU
		                              ON A.POST_ID = SPU.POST_ID		                 
			, SNS_USER B
		WHERE 1=1
	      AND A.CRT_USR_ID = B.USR_ID
	      AND A.POST_TP IN ('FEED', 'POLL')
	      AND A.POST_ID = #{post_id}
	 ORDER BY A.CRT_DTTM DESC
	</select>

	<insert id="insertSnsPost" parameterType="Map">
		/* kr.co.i2talk.sns.insertSnsPost */
		INSERT INTO SNS_POST (
		       	 POST_ID
		       , UP_POST_ID
		       , TAR_GRP_ID
		       , TAR_USR_ID
		       , TAR_OBJ_ID
		       , TAR_OBJ_TP
		       , POST_TP
		       , CNTN
		       , NOTI_YN
		       , DVC_TP_CD
		       , SURVEY_USR_OPEN_YN
		       , VOTE_CD
		       , PROPSE_GRADE
		       , REG_DTTM
		       , CRT_DTTM
		       , CRT_USR_ID
		       , MOD_DTTM
		       , MOD_USR_ID
		       )
		VALUES (
			   	 #{post_id}
			   , #{up_post_id}
			   , #{tar_grp_id}
			   , #{tar_usr_id}
			   , #{tar_obj_id}
			   , #{tar_obj_tp}
			   , #{post_tp}
			   , #{cntn}
			   , #{noti_yn}
			   , #{dvc_tp_cd}
			   , #{survey_usr_open_yn}
			   , #{vote_cd}
			   , #{propse_grade}
			   , DATE_FORMAT(SYSDATE(),'%Y%m%d%H%i%s')
			   , DATE_FORMAT(SYSDATE(),'%Y%m%d%H%i%s')
			   , #{crt_usr_id}
			   , DATE_FORMAT(SYSDATE(),'%Y%m%d%H%i%s')
			   , #{mod_usr_id})
	</insert>
	
	<update id="insertSnsPostPre" parameterType="Map">
		/* kr.co.i2talk.sns.insertSnsPostPre */
		INSERT INTO SNS_POST (
			POST_ID, UP_POST_ID, TAR_GRP_ID, TAR_USR_ID, TAR_OBJ_ID,
			TAR_OBJ_TP, POST_TP, CNTN, NOTI_YN,
			DVC_TP_CD, SURVEY_USR_OPEN_YN,
			CRT_USR_ID, MOD_USR_ID)	
		SELECT 
			#{post_id} || dbms_random.string('L', 1) str, up_post_id, tar_grp_id, tar_usr_id,  #{tar_obj_id},
			tar_obj_tp, post_tp, cntn, noti_yn,
			dvc_tp_cd, survey_usr_open_yn,
			crt_usr_id, mod_usr_id
		FROM SNS_POST 
		WHERE TAR_OBJ_ID = #{pre_task_id}
	</update>

	<update id="updateSnsPost" parameterType="Map">
		/* kr.co.i2talk.sns.updateSnsPost */
		UPDATE SNS_POST 
		   SET   TTL                = #{ttl}
			   , CNTN               = #{cntn}
			   , NOTI_YN            = #{noti_yn}	
			   , DVC_TP_CD          = #{dvc_tp_cd}
			   , SURVEY_USR_OPEN_YN = #{survey_usr_open_yn}	
			   , MOD_USR_ID         = #{mod_usr_id}
			   , MOD_DTTM           = DATE_FORMAT(SYSDATE(), '%Y%m%d%H%i%s')
		WHERE POST_ID = #{post_id}
	</update>

	<delete id="deleteSnsPost" parameterType="Map">
		/* kr.co.i2talk.sns.deleteSnsPost */
		DELETE FROM SNS_POST WHERE
			POST_ID = #{post_id}
	</delete>

	<select id="listSnsPostByUser" parameterType="Map" resultType="i2c.cmm.base.CommonResultMap">
		/* kr.co.i2talk.sns.listSnsPostByUser */
		SELECT rownum as rno
			, b.post_id            /* 게시물 아이디 */
			, b.post_tp            /* 게시 유형 */
			, b.tar_grp_id         /* 대상 그룹 아이다*/
			, b.tar_usr_id         /* 대상 사용자 아이디 */
			, b.tar_obj_id         /* 대상 객체 아이디 */
			, b.tar_obj_tp         /* 대상 객체 유형 */
			, to_char(b.cntn) as cntn      /* 내용 */
			, b.dvc_tp_cd          /* 디바이스 유형 코드 */
			, b.reg_dttm           /* 등록일자 */
			, b.crt_usr_nm			-- 등록자
			, b.crt_usr_photo_img_min	-- 등록자 사진			
			, (select count(post_id) from sns_post z where z.up_post_id = a.post_id) reply_cnt
		FROM sns_post a,
			(
		
			SELECT -- 사람 팔로잉
					a.post_id            /* 게시물 아이디 */
					, a.post_tp            /* 게시 유형 */
					, a.tar_grp_id         /* 대상 그룹 아이다*/
					, a.tar_usr_id         /* 대상 사용자 아이디 */
					, a.tar_obj_id         /* 대상 객체 아이디 */
					, a.tar_obj_tp         /* 대상 객체 유형 */
					, a.cntn               /* 내용 */
					, a.dvc_tp_cd          /* 디바이스 유형 코드 */
					, a.reg_dttm           /* 등록일자 */
					, c.usr_nm as crt_usr_nm -- 등록자
					, FN_GET_IMG_NM('user', c.usr_id, c.photo_img_mid) crt_usr_photo_img_min
					, FN_GET_USR_ORIGIN_PHOTO(c.usr_id) crt_photo_img
					, '' grp_nm
				FROM
					sns_post a
					, sns_follow b
					, sns_user c
				WHERE a.up_post_id is null
				AND a.post_tp = 'FEED'
				AND a.tar_usr_id = b.tar_usr_id
				AND b.fllw_applr_id = #{tar_usr_id}
				AND a.crt_usr_id = c.usr_id
				AND rownum &lt; 6
			UNION ALL
			SELECT -- 그룹 팔로잉
					a.post_id            /* 게시물 아이디 */
					, a.post_tp            /* 게시 유형 */
					, a.tar_grp_id         /* 대상 그룹 아이다*/
					, a.tar_usr_id         /* 대상 사용자 아이디 */
					, a.tar_obj_id         /* 대상 객체 아이디 */
					, a.tar_obj_tp         /* 대상 객체 유형 */
					, a.cntn               /* 내용 */
					, a.dvc_tp_cd          /* 디바이스 유형 코드 */
					, a.reg_dttm           /* 등록일자 */
					, c.usr_nm as crt_usr_nm -- 등록자
					, FN_GET_IMG_NM('user', c.usr_id, c.photo_img_mid) crt_usr_photo_img_min
					, FN_GET_USR_ORIGIN_PHOTO(c.usr_id) crt_photo_img
					, d.grp_nm
				FROM
					sns_post a
					, sns_follow b
					, sns_user c
					, sns_group d
				WHERE a.up_post_id is null
				AND a.post_tp = 'FEED'
				AND a.tar_grp_id = b.tar_grp_id
				AND b.fllw_applr_id = #{tar_usr_id}
				AND a.crt_usr_id = c.usr_id
				AND a.tar_grp_id = d.grp_id
				AND rownum &lt; 6
			UNION ALL
			SELECT -- 게시물 팔로잉
					a.post_id            /* 게시물 아이디 */
					, a.post_tp            /* 게시 유형 */
					, a.tar_grp_id         /* 대상 그룹 아이다*/
					, a.tar_usr_id         /* 대상 사용자 아이디 */
					, a.tar_obj_id         /* 대상 객체 아이디 */
					, a.tar_obj_tp         /* 대상 객체 유형 */
					, a.cntn               /* 내용 */
					, a.dvc_tp_cd          /* 디바이스 유형 코드 */
					, a.reg_dttm           /* 등록일자 */
					, c.usr_nm as crt_usr_nm -- 등록자
					, FN_GET_IMG_NM('user', c.usr_id, c.photo_img_mid) crt_usr_photo_img_min
					, FN_GET_USR_ORIGIN_PHOTO(c.usr_id) crt_photo_img
					, '' grp_nm
				FROM
					sns_post a
					, sns_follow b
					, sns_user c
				WHERE a.up_post_id is null
				AND a.post_tp = 'FEED'
				AND a.post_id = b.post_id
				AND b.fllw_applr_id = #{tar_usr_id}
				AND a.crt_usr_id = c.usr_id
				AND rownum &lt; 6
			UNION ALL
			SELECT -- 소속그룹
					a.post_id            /* 게시물 아이디 */
					, a.post_tp            /* 게시 유형 */
					, a.tar_grp_id         /* 대상 그룹 아이다*/
					, a.tar_usr_id         /* 대상 사용자 아이디 */
					, a.tar_obj_id         /* 대상 객체 아이디 */
					, a.tar_obj_tp         /* 대상 객체 유형 */
					, a.cntn               /* 내용 */
					, a.dvc_tp_cd          /* 디바이스 유형 코드 */
					, a.reg_dttm           /* 등록일자 */
					, c.usr_nm as crt_usr_nm -- 등록자
					, FN_GET_IMG_NM('user', c.usr_id, c.photo_img_mid) crt_usr_photo_img_min
					, FN_GET_USR_ORIGIN_PHOTO(c.usr_id) crt_photo_img
					, d.grp_nm
				FROM
					sns_post a
					, sns_users_by_group b
					, sns_user c
					, sns_group d
				WHERE a.up_post_id is null
				AND a.post_tp = 'FEED'
				AND a.tar_grp_id = b.grp_id
				AND b.usr_id = #{tar_usr_id}
				AND a.crt_usr_id = c.usr_id
				AND a.tar_grp_id = d.grp_id
				AND rownum &lt; 6
			UNION ALL
			SELECT -- 내 게시물
					a.post_id            /* 게시물 아이디 */
					, a.post_tp            /* 게시 유형 */
					, a.tar_grp_id         /* 대상 그룹 아이다*/
					, a.tar_usr_id         /* 대상 사용자 아이디 */
					, a.tar_obj_id         /* 대상 객체 아이디 */
					, a.tar_obj_tp         /* 대상 객체 유형 */
					, a.cntn               /* 내용 */
					, a.dvc_tp_cd          /* 디바이스 유형 코드 */
					, a.reg_dttm           /* 등록일자 */
					, c.usr_nm as crt_usr_nm -- 등록자
					, FN_GET_IMG_NM('user', c.usr_id, c.photo_img_mid) crt_usr_photo_img_min
					, FN_GET_USR_ORIGIN_PHOTO(c.usr_id) crt_photo_img
					, '' grp_nm
				FROM sns_post a
					, sns_user c
				WHERE a.up_post_id is null
				AND a.post_tp = 'FEED'
				AND a.crt_usr_id = #{tar_usr_id}
				AND a.crt_usr_id = c.usr_id
				AND rownum &lt; 6
			) b
		WHERE a.post_id = b.post_id
		AND a.up_post_id is null
		AND a.post_tp = 'FEED'
		AND rownum &lt;= 5
		ORDER BY a.mod_dttm
	</select>

	<select id="listSnsPostReply" parameterType="Map" resultType="i2c.cmm.base.CommonResultMap">
	/* kr.co.i2talk.sns.listSnsPostReply */
	SELECT
		POST_ID, UP_POST_ID, TAR_GRP_ID,
		TAR_USR_ID,
		FN_GET_USR_NM(A.TAR_USR_ID) TAR_USR_NM,
		TAR_OBJ_ID,
		TAR_OBJ_TP, POST_TP, CNTN, NOTI_YN, REG_DTTM,
		DVC_TP_CD, SURVEY_USR_OPEN_YN, 
		A.CRT_USR_ID,
		FN_GET_CODE_NM('DVC_TP_CD', DVC_TP_CD) DVC_TP_NM,
		FN_GET_USR_NM(A.CRT_USR_ID) CRT_USR_NM,
		FN_GET_IMG_NM('USER', A.CRT_USR_ID, B.PHOTO_IMG_MIN) AS CRT_USR_PHOTO_IMG_MIN,
		FN_GET_USR_ORIGIN_PHOTO(A.CRT_USR_ID) CRT_PHOTO_IMG,
		A.CRT_DTTM , A.MOD_USR_ID, A.MOD_DTTM,
		(
			CASE
				WHEN (SELECT COUNT(*) FROM SNS_BOOKMARK IT WHERE IT.POST_ID = A.POST_ID AND IT.CRT_USR_ID = #{login_usr_id} ) > 0 then
					'Y'
				ELSE
					'N'
			END
		) BOOKMARK_YN, 
		(
			CASE
				WHEN (SELECT COUNT(*) FROM SNS_LIKE IT WHERE IT.POST_ID = A.POST_ID AND IT.LIKE_USR_ID =  #{login_usr_id}) > 0 THEN
					'Y'
				ELSE
					'N'
				END
		) LIKE_MY ,
		(
			SELECT COUNT(*) FROM SNS_LIKE IT WHERE IT.POST_ID = A.POST_ID
		) LIKE_CNT
		, (CASE WHEN A.CRT_USR_ID = #{login_usr_id} THEN 'Y' ELSE 'N' END) IS_OWNER
	FROM
		SNS_POST A,
		SNS_USER B
	WHERE 1=1
		AND A.CRT_USR_ID = B.USR_ID
		AND A.POST_TP IN ('FEED', 'POLL')
		AND A.UP_POST_ID = #{up_post_id}
	ORDER BY
		CRT_DTTM ASC
	</select>

	<select id="listSnsPostReplyFromPostIds" parameterType="Map" resultMap="replyResultMap">
		/* kr.co.i2talk.sns.listSnsPostReplyFromPostIds 게시글의 댓글을 가져온다. */
		
		SELECT   A.POST_ID
		       , A.UP_POST_ID 
		       , A.TAR_GRP_ID
			   , A.TAR_USR_ID
			   , (SELECT USR_NM FROM SNS_USER WHERE USR_ID = A.TAR_USR_ID) TAR_USR_NM
			   , A.TAR_OBJ_ID
			   , A.TAR_OBJ_TP 
			   , A.POST_TP 
			   , A.CNTN 
			   , A.NOTI_YN 
			   , A.REG_DTTM
			   , A.DVC_TP_CD
			   , FN_GET_CODE_NM('DVC_TP_CD', DVC_TP_CD) DVC_TP_NM
			   , A.SURVEY_USR_OPEN_YN
			   , A.CRT_USR_ID			   
			   , (SELECT USR_NM FROM SNS_USER WHERE USR_ID = A.CRT_USR_ID) CRT_USR_NM			  
			   , '/USER/' || A.CRT_USR_ID || '/' || B.PHOTO_IMG_MIN AS CRT_USR_PHOTO_IMG_MIN
			   , (SELECT PHOTO_IMG FROM SNS_USER WHERE USR_ID = A.CRT_USR_ID) CRT_PHOTO_IMG
			   , A.CRT_DTTM
			   , A.MOD_USR_ID
			   , A.MOD_DTTM
			   ,(
					CASE
						WHEN (SELECT COUNT(IT.POST_ID) FROM SNS_BOOKMARK IT WHERE IT.POST_ID = A.POST_ID AND IT.CRT_USR_ID = #{login_usr_id} ) > 0 THEN
							'Y'
						ELSE
							'N'
					END
				 ) BOOKMARK_YN 
				,(
				   CASE
					  WHEN (SELECT COUNT(IT.POST_ID) FROM SNS_LIKE IT WHERE IT.POST_ID = A.POST_ID AND IT.LIKE_USR_ID =  #{login_usr_id}) > 0 THEN
						  'Y'
					  ELSE
						  'N'
				   END
				  ) LIKE_MY
				,(
					SELECT COUNT(IT.POST_ID) FROM SNS_LIKE IT WHERE IT.POST_ID = A.POST_ID
				 ) LIKE_CNT
				, (CASE WHEN A.CRT_USR_ID = #{login_usr_id} THEN 'Y' ELSE 'N' END) IS_OWNER				
				<include refid="snsPostReplyAttach"/>
				<include refid="snsPostReplyMentionUsers"/>
		FROM  SNS_POST A LEFT OUTER JOIN  SNS_ATTACH SA
		                              ON A.POST_ID = SA.POST_ID
		                 LEFT OUTER JOIN SNS_POST_USER SPU
		                              ON A.POST_ID = SPU.POST_ID
			, SNS_USER B
		WHERE 1=1
		  AND A.CRT_USR_ID = B.USR_ID
		  AND A.POST_TP IN ('FEED', 'POLL')
		  AND A.UP_POST_ID = #{post_id}
		ORDER BY A.CRT_DTTM DESC		

	</select>

	<select id="selectSnsPostReply" parameterType="Map" resultMap="replyResultMap">
		/* kr.co.i2talk.sns.selectSnsPostReply  등록한 댓글을 가져온다. */
		
		SELECT   A.POST_ID
		       , A.UP_POST_ID 
		       	<include refid="snsPostReply"/>
				<include refid="snsPostReplyAttach"/>
				<include refid="snsPostReplyMentionUsers"/>
		FROM  SNS_POST A LEFT OUTER JOIN  SNS_ATTACH SA
		                              ON A.POST_ID = SA.POST_ID		                             
		                 LEFT OUTER JOIN SNS_POST_USER SPU
		                              ON A.POST_ID = SPU.POST_ID		                           		                            
			, SNS_USER B
		WHERE 1=1
		  AND A.CRT_USR_ID = B.USR_ID
		  AND A.POST_TP IN ('FEED', 'POLL')
		  AND A.POST_ID = #{post_id}
		ORDER BY
			A.CRT_DTTM DESC
	</select>
	
	<select id="viewSnsPostByObjectId" parameterType="Map" resultType="i2c.cmm.base.CommonResultMap">
	    /* kr.co.i2talk.sns.viewSnsPostByObjectId */
		SELECT POST_ID
		     , UP_POST_ID
		     , TAR_GRP_ID
		     , TAR_USR_ID
		     , FN_GET_USR_NM(TAR_USR_ID) TAR_USR_NM
		     , (SELECT PHN_NUM FROM SNS_USER A WHERE A.USR_ID = TAR_USR_ID) TAR_PHN_NUM
		     , TAR_OBJ_ID
		     , TAR_OBJ_TP
		     , POST_TP
		     , CNTN
		     , NOTI_YN
		     , REG_DTTM
		     , DVC_TP_CD
		     , SURVEY_USR_OPEN_YN
		     , CRT_USR_ID
		     , CRT_DTTM 
		     , MOD_USR_ID
		     , MOD_DTTM
		FROM SNS_POST
		WHERE 1=1
		  <if test="@i2c.cmm.util.StringUtil@isEmpty(post_tp) == false">
		  	AND POST_TP    = #{post_tp}
		  </if>
		  <if test="@i2c.cmm.util.StringUtil@isEmpty(tar_obj_id) == false">
	      	AND TAR_OBJ_ID = #{tar_obj_id}
	      </if>
	      <if test="@i2c.cmm.util.StringUtil@isEmpty(post_id) == false">
	      	AND POST_ID = #{post_id}
	      </if>
	</select>

	<select id="listSnsPostByObjectId"
		parameterType="Map"
		resultType="i2c.cmm.base.CommonResultMap">
/* kr.co.i2talk.sns.listSnsPostByObjectId */
SELECT
	post_id, up_post_id, tar_grp_id, tar_usr_id, tar_obj_id,
	tar_obj_tp, post_tp, cntn, noti_yn, reg_dttm, dvc_tp_cd, survey_usr_open_yn, 
	crt_usr_id, crt_dttm , mod_usr_id, mod_dttm
FROM
	sns_post
WHERE
	tar_obj_id = #{tar_obj_id}
	<if test="@i2c.cmm.util.StringUtil@isEmpty(post_tp) == false">
		and post_tp = #{post_tp}
	</if>
	</select>

	<delete id="deleteSnsPostByUpPostId"
		parameterType="Map">
/* kr.co.i2talk.sns.deleteSnsPostByUpPostId */
DELETE FROM sns_post WHERE
	up_post_id = #{post_id}
	</delete>

	<update id="updateSnsPostByToUpPostByAddReply"
		parameterType="Map">
		/* kr.co.i2talk.sns.updateSnsPostByToUpPostByAddReply */
		UPDATE sns_post SET
			reply_cnt = reply_cnt + 1,
			mod_dttm = #{crt_dttm}
		WHERE
			post_id = #{up_post_id}
	</update>
		
	<update id="updateSnsPostToUpPostByMinusReply" parameterType="Map">
		/* kr.co.i2talk.sns.updateSnsPostToUpPostByMinusReply */
		UPDATE SNS_POST 
		   SET REPLY_CNT = REPLY_CNT - 1
		 WHERE POST_ID = #{up_post_id}
	</update>

	<update id="updateSnsPostToUpPostByModDttm" parameterType="Map">
		/* kr.co.i2talk.sns.updateSnsPostToUpPostByModDttm */
		UPDATE sns_post SET
			mod_dttm = #{crt_dttm}
		WHERE
			post_id = #{up_post_id}
	</update>
	
	<select id="listSnsPostByKeyword" parameterType="Map" resultMap="snsPostResultMap">
		/* kr.co.i2talk.sns.listSnsPostByKeyword */		
		    <include refid="snsPostList"/>		    		    
		    <include refid="snsPostReplyAttach"/>
			<include refid="snsPostReplyMentionUsers"/>
			<include refid="snsPostSurvey"/>
		  FROM (
				SELECT
					COUNT(A.POST_ID) OVER() TOTAL_CNT,
				<if test="sort_type == 'CRT'">
					ROW_NUMBER() OVER(ORDER BY A.CRT_DTTM DESC) RN,
				</if>
				<if test="sort_type == 'MOD'">
					ROW_NUMBER() OVER(ORDER BY A.MOD_DTTM DESC) RN,
				</if>
					A.*
				FROM SNS_POST A					
				WHERE A.TAR_OBJ_TP NOT IN ('NOTICE')
				<if test="@i2c.cmm.util.StringUtil@isNotEmpty(mntrmId)">
				AND EXISTS (SELECT 'X' 
			                  FROM SNS_POST_MNTRM C 
			                 WHERE C.POST_ID  = A.POST_ID 
			                   AND C.MNTRM_ID = #{mntrmId})  /* 주제어가 속한 게시물 */
			    AND NOT EXISTS (SELECT 'X'
                                  FROM SNS_GROUP SG, SNS_USERS_BY_GROUP SUBG
                                 WHERE A.TAR_GRP_ID   = SG.GRP_ID
                                   AND SG.GRP_ID      = SUBG.GRP_ID
                                   AND SG.OPEN_YN     = 'N'
                                   AND SG.USE_STOP_YN = 'N'
                                   AND SUBG.USR_ID <![CDATA[<>]]> #{login_usr_id}) /* 내가 속하지 않은 비공개 그룹 피드 제외 */
				</if>
				ORDER BY
				<if test="sort_type == 'CRT'">
					A.CRT_DTTM DESC
				</if>
				<if test="sort_type == 'MOD'">
					A.MOD_DTTM DESC
				</if>
			) A LEFT OUTER JOIN SNS_ATTACH SA
				             ON A.POST_ID = SA.POST_ID
				LEFT OUTER JOIN SNS_POST_USER SPU
				             ON A.POST_ID = SPU.POST_ID
				LEFT OUTER JOIN SURVEY SURVEY
				             ON A.POST_ID = SURVEY.POST_ID
 	                           	
		WHERE RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
		ORDER BY RN, SURVEY.SORT_ORD
	</select>

	<select id="listSnsPostByFollow" parameterType="Map" resultMap="snsPostResultMap">
		/* kr.co.i2talk.sns.listSnsPostByFollow */		
		    <include refid="snsPostList"/>		    		    
		    <include refid="snsPostReplyAttach"/>
			<include refid="snsPostReplyMentionUsers"/>
			<include refid="snsPostSurvey"/>
		  FROM (
				SELECT
					COUNT(A.POST_ID) OVER() TOTAL_CNT,
				<if test="sort_type == 'CRT'">
					ROW_NUMBER() OVER(ORDER BY A.CRT_DTTM DESC) RN,
				</if>
				<if test="sort_type == 'MOD'">
					ROW_NUMBER() OVER(ORDER BY A.MOD_DTTM DESC) RN,
				</if>
					A.*
				FROM SNS_POST A
					, (
						SELECT DISTINCT POST_ID
						  FROM (
									/* 외부사용자 아닌 경우에만 게시그룹의 게시물을 표시 */
								   SELECT /** 게시 그룹 게시물. */
								          IFNULL(B.UP_POST_ID, B.POST_ID) POST_ID
								     FROM SNS_GROUP A, SNS_POST B
								    WHERE A.GRP_ID = B.TAR_GRP_ID
								      AND A.GRP_TP = 'POST'
									  AND B.POST_TP IN ('FEED','POLL')
									  AND B.TAR_OBJ_TP = 'GROUP'
								  
								  <choose>
								  	<when test="auth_code == 'ROLE_ADMIN'">
								    	AND (A.TRGET = 'A' OR A.TRGET = 'I' OR A.TRGET = 'O')
								   	</when>
								  	<when test="auth_code == 'ROLE_EMP' or auth_code == 'ROLE_EMPPR'">
								    	AND (A.TRGET = 'A' OR A.TRGET = 'I')
								   	</when>
								    <otherwise>
								    	AND (A.TRGET = 'A' OR A.TRGET = 'O')
								    </otherwise>
								  </choose>
	    						  
	    						  <if test="@i2c.cmm.util.StringUtil@isEmpty(post_search_text) == false">
									  AND B.CNTN LIKE '%' || #{post_search_text} ||'%'
								  </if>							  
								    UNION ALL
								
									SELECT /** 사용자 FOLLOW - 본문 */
									      B.POST_ID
									 FROM SNS_FOLLOW A, SNS_POST B
									WHERE B.CRT_USR_ID = A.TAR_USR_ID
									  AND A.FLLW_TAR_OBJ_TP = 'USER'
									  AND A.FLLW_APPLR_ID = #{tar_usr_id}  /** 신청자 */
									  AND B.UP_POST_ID IS NULL
									  AND B.TAR_OBJ_TP = 'USER'
									  AND B.POST_TP IN ('FEED','POLL')
								<if test="@i2c.cmm.util.StringUtil@isEmpty(post_search_text) == false">
									  AND B.CNTN LIKE '%' ||  #{post_search_text} ||'%'
									UNION ALL
									SELECT B.POST_ID
									  FROM SNS_POST A, 
									       (  
											SELECT /** 사용자 FOLLOW - 댓글 */
											      B.POST_ID
											 FROM SNS_FOLLOW A, SNS_POST B
											WHERE A.TAR_USR_ID = B.CRT_USR_ID
											  AND A.FLLW_TAR_OBJ_TP = 'USER'
											  AND A.FLLW_APPLR_ID = #{tar_usr_id}  /** 신청자 */
											  AND B.UP_POST_ID IS NULL
											  AND B.TAR_OBJ_TP = 'USER'
											  AND B.POST_TP IN ('FEED','POLL')   
									       ) B
									 WHERE A.UP_POST_ID = B.POST_ID
									   AND A.CNTN LIKE '%' ||  #{post_search_text} ||'%'
								</if>
								    UNION ALL
								   SELECT /** 소속 그룹 FOLLOW */
									      IFNULL(B.UP_POST_ID, B.POST_ID) POST_ID
									 FROM SNS_USERS_BY_GROUP A, SNS_POST B
									WHERE A.GRP_ID = B.TAR_GRP_ID 
									  AND A.USR_ID = #{tar_usr_id}
									  AND A.JOIN_YN = 'Y'
									  AND A.APRV_DTTM IS NOT NULL
									  AND A.LEAVE_DTTM IS NULL
									  AND B.TAR_OBJ_TP = 'GROUP'
									  AND B.POST_TP IN ('FEED','POLL')
								  <if test="@i2c.cmm.util.StringUtil@isEmpty(post_search_text) == false">
									  AND B.CNTN LIKE '%' || #{post_search_text} ||'%'
								  </if>	
								    UNION ALL
								   SELECT /** 내가 쓴 글 */
										  POST_ID
									 FROM SNS_POST
									WHERE CRT_USR_ID = #{tar_usr_id}
									  AND UP_POST_ID IS NULL
									  AND POST_TP IN ('FEED','POLL')
							      <if test="@i2c.cmm.util.StringUtil@isEmpty(post_search_text) == false">
									  AND CNTN LIKE '%' || #{post_search_text} ||'%'
								  </if>	
								   UNION ALL
									SELECT /** 맨션 데이터 */
										IFNULL(B.UP_POST_ID,B.POST_ID) POST_ID
									FROM SNS_POST_USER A, SNS_POST B
									WHERE B.POST_ID = A.POST_ID
									AND A.USR_ID =  #{tar_usr_id}
									AND B.POST_TP IN ('FEED','POLL')							
								  <if test="@i2c.cmm.util.StringUtil@isEmpty(post_search_text) == false">
									  AND B.CNTN LIKE '%' || #{post_search_text} ||'%'
								  </if>	
								   UNION ALL
									SELECT /** 대상이 나인 거. */
										POST_ID
									FROM SNS_POST
									WHERE TAR_USR_ID =  #{tar_usr_id}
									AND UP_POST_ID IS NULL
									AND POST_TP IN ('FEED','POLL')														
									<if test="@i2c.cmm.util.StringUtil@isEmpty(post_search_text) == false">
									  AND CNTN LIKE '%' || #{post_search_text} ||'%'
								  	</if>									  	
							)
					  ) B
				WHERE A.POST_ID = B.POST_ID
				AND A.TAR_OBJ_TP NOT IN ('NOTICE','FEPA')
				<if test="@i2c.cmm.util.StringUtil@isNotEmpty(mntrmId)">
				AND EXISTS (SELECT 'X' 
			                  FROM SNS_POST_MNTRM C 
			                 WHERE C.POST_ID  = A.POST_ID 
			                   AND C.MNTRM_ID = #{mntrmId})  /* 주제어가 속한 게시물 */
				</if>
				ORDER BY
				<if test="sort_type == 'CRT'">
					A.CRT_DTTM DESC
				</if>
				<if test="sort_type == 'MOD'">
					A.MOD_DTTM DESC
				</if>
			) A LEFT OUTER JOIN SNS_ATTACH SA
				             ON A.POST_ID = SA.POST_ID
				LEFT OUTER JOIN SNS_POST_USER SPU
				             ON A.POST_ID = SPU.POST_ID
				LEFT OUTER JOIN SURVEY SURVEY
				             ON A.POST_ID = SURVEY.POST_ID
 	                           	
		WHERE RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
		ORDER BY RN, SURVEY.SORT_ORD
	</select>

	<select id="listSnsPostByMe" parameterType="Map" resultMap="snsPostResultMap">
		/* kr.co.i2talk.sns.listSnsPostByMe - 나에게 */		
		    <include refid="snsPostList"/>
		    <include refid="snsPostReplyAttach"/>
			<include refid="snsPostReplyMentionUsers"/>
			<include refid="snsPostSurvey"/>
		FROM (
				SELECT
					COUNT(A.POST_ID) OVER() TOTAL_CNT,
				<if test="sort_type == 'CRT'">
					ROW_NUMBER() OVER(ORDER BY A.CRT_DTTM DESC) RN,
				</if>
				<if test="sort_type == 'MOD'">
					ROW_NUMBER() OVER(ORDER BY A.MOD_DTTM DESC) RN,
				</if>
					A.*
				FROM SNS_POST A
					, (
						SELECT
							   DISTINCT POST_ID
						  FROM (
								SELECT /** 맨션 데이터 */
										IFNULL(B.UP_POST_ID,B.POST_ID) POST_ID
									FROM SNS_POST_USER A, SNS_POST B
									WHERE B.POST_ID = A.POST_ID
									AND A.USR_ID = #{tar_usr_id}
									AND B.POST_TP IN ('FEED','POLL')
									AND B.TAR_OBJ_TP IN ('USER','GROUP') 
								UNION ALL
								SELECT /** 내가 쓴 글 */
										POST_ID
									FROM SNS_POST
									WHERE CRT_USR_ID = #{tar_usr_id}
									AND UP_POST_ID IS NULL
									AND POST_TP IN ('FEED','POLL')
									AND TAR_OBJ_TP IN ('USER','GROUP') 
							    UNION ALL
								SELECT /** 대상이 나인 거. */
										POST_ID
									FROM SNS_POST
									WHERE TAR_USR_ID = #{tar_usr_id}
									AND UP_POST_ID IS NULL
									AND POST_TP IN ('FEED','POLL')
									AND TAR_OBJ_TP IN ('USER','GROUP') 
							   )
						) B
				WHERE A.POST_ID = B.POST_ID
				<if test="@i2c.cmm.util.StringUtil@isEmpty(post_search_text) == false">
					AND A.CNTN LIKE '%' || #{post_search_text} ||'%'
				</if>
				ORDER BY
				<if test="sort_type == 'CRT'">
					A.CRT_DTTM DESC
				</if>
				<if test="sort_type == 'MOD'">
					A.MOD_DTTM DESC
				</if>
			)  A LEFT OUTER JOIN SNS_ATTACH SA
				             ON A.POST_ID = SA.POST_ID
				LEFT OUTER JOIN SNS_POST_USER SPU
				             ON A.POST_ID = SPU.POST_ID
				LEFT OUTER JOIN SURVEY SURVEY
				             ON A.POST_ID = SURVEY.POST_ID
		WHERE RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
		ORDER BY RN, SURVEY.SORT_ORD
	</select>

	<select id="listSnsPostByBusiness" parameterType="Map"  resultMap="snsPostResultMap">
		/* kr.co.i2talk.sns.listSnsPostByBusiness - 업무피드 */ 
		    <include refid="snsPostList"/>
	        <include refid="snsPostReplyAttach"/>
			<include refid="snsPostReplyMentionUsers"/>
			<include refid="snsPostSurvey"/>
		FROM (
				SELECT
					COUNT(A.POST_ID) OVER() TOTAL_CNT,
				<if test="sort_type == 'CRT'">
					ROW_NUMBER() OVER(ORDER BY A.CRT_DTTM DESC) RN,
				</if>
				<if test="sort_type == 'MOD'">
					ROW_NUMBER() OVER(ORDER BY A.MOD_DTTM DESC) RN,
				</if>
					A.*
				FROM SNS_POST A
					, (
						SELECT
							   DISTINCT POST_ID
						  FROM (
								SELECT /** 관련된 OBJECTS */
										A.POST_ID
								  FROM SNS_POST A
									 , (SELECT A.TAR_OBJ_ID
										  FROM SNS_POST A
											 , SNS_POST_USER B
										 WHERE A.TAR_OBJ_TP NOT IN ('USER','GROUP')
										   AND A.POST_ID = B.POST_ID
										   AND A.POST_TP IN ('CFRC','BSNS','CMBN','TFCL','TASK')
										   AND B.USR_ID = #{tar_usr_id}
										) B
								 WHERE UP_POST_ID IS NULL
								   AND POST_TP IN ('FEED','POLL')
								   AND A.TAR_OBJ_ID = B.TAR_OBJ_ID
								UNION ALL
								SELECT /** 관련된 OBJECTS */
										A.POST_ID
								  FROM SNS_POST A
									 , (SELECT A.CHRT_INFO_ID TAR_OBJ_ID
										  FROM CMS_CHART_INFO A
											 , CMS_CHART_FOLLOW B
										 WHERE A.CHRT_INFO_ID = B.CHRT_INFO_ID
										   AND B.USR_ID =  #{tar_usr_id}
										) B
								 WHERE UP_POST_ID IS NULL
								   AND POST_TP IN ('FEED','POLL')
								   AND A.TAR_OBJ_ID = B.TAR_OBJ_ID
							   )
						) B
				WHERE A.POST_ID = B.POST_ID
				<if test="@i2c.cmm.util.StringUtil@isEmpty(post_search_text) == false">
					AND A.CNTN LIKE '%' || #{post_search_text} ||'%'
				</if>
				ORDER BY
				<if test="sort_type == 'CRT'">
					A.CRT_DTTM DESC
				</if>
				<if test="sort_type == 'MOD'">
					A.MOD_DTTM DESC
				</if>
			) A  LEFT OUTER JOIN SNS_ATTACH SA
				             ON A.POST_ID = SA.POST_ID
				LEFT OUTER JOIN SNS_POST_USER SPU
				             ON A.POST_ID = SPU.POST_ID
				LEFT OUTER JOIN SURVEY SURVEY
				             ON A.POST_ID = SURVEY.POST_ID
		WHERE RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
		ORDER BY RN, SURVEY.SORT_ORD
	</select>

	<select id="listSnsPostByBookmark" parameterType="Map" resultMap="snsPostResultMap">
		/* kr.co.i2talk.sns.listSnsPostByBookmark - 북마크 게시물. */ 
		    <include refid="snsPostList"/>
	        <include refid="snsPostReplyAttach"/>
			<include refid="snsPostReplyMentionUsers"/>
			<include refid="snsPostSurvey"/>
		FROM (
		
				SELECT
					COUNT(A.POST_ID) OVER() TOTAL_CNT,
				<if test="sort_type == 'CRT'">
					ROW_NUMBER() OVER(ORDER BY a.crt_dttm DESC) RN,
				</if>
				<if test="sort_type == 'MOD'">
					ROW_NUMBER() OVER(ORDER BY a.mod_dttm DESC) RN,
				</if>
					A.*
				FROM SNS_POST A, SNS_BOOKMARK B
				WHERE A.POST_ID = B.POST_ID
				AND A.UP_POST_ID IS NULL
				<!-- AND a.tar_obj_tp IN ('USER','GROUP') -->
				AND a.post_tp IN ('FEED','POLL')
				AND B.CRT_USR_ID = #{tar_usr_id}
				<if test="@i2c.cmm.util.StringUtil@isEmpty(post_search_text) == false">
					AND a.cntn like '%' || #{post_search_text} ||'%'
				</if>
				ORDER BY
				<if test="sort_type == 'CRT'">
					A.CRT_DTTM DESC
				</if>
				<if test="sort_type == 'MOD'">
					A.MOD_DTTM DESC
				</if>
			) A   LEFT OUTER JOIN SNS_ATTACH SA
				             ON A.POST_ID = SA.POST_ID
				LEFT OUTER JOIN SNS_POST_USER SPU
				             ON A.POST_ID = SPU.POST_ID
				LEFT OUTER JOIN SURVEY SURVEY
				             ON A.POST_ID = SURVEY.POST_ID
		WHERE RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
		ORDER BY RN, SURVEY.SORT_ORD
	</select>

	<select id="listSnsPostByOpenPost" parameterType="Map"	resultMap="snsPostResultMap">
		/* kr.co.i2talk.sns.listSnsPostByOpenPost - 공개 그룹. */
		WITH SURVEY AS (
					SELECT SS.SURVEY_ITM_ID
					     , SS.SURVEY_ITM_NM
					     , SS.POST_ID			
					     , SS.SORT_ORD		     
					     , (CASE WHEN SSV.USR_ID IS NULL THEN 'N' ELSE 'Y' END) AS VOTED_YN
				    FROM SNS_SURVEY SS LEFT OUTER JOIN SNS_SURVEY_VOTE SSV 
				                       ON SSV.SURVEY_ITM_ID = SS.SURVEY_ITM_ID 
				                       AND SSV.USR_ID = #{tar_usr_id}
				                       ORDER BY SS.SORT_ORD
        )	  
		
		SELECT A.TOTAL_CNT
			 , A.RN
			 , A.POST_ID                                               /* 게시물 아이디 */
			 , A.POST_TP                                               /* 게시 유형 */
			 , A.TAR_GRP_ID                                            /* 대상 그룹 아이다*/
			 , FN_GET_GRP_NM(A.TAR_GRP_ID) TAR_GRP_NM                  /* 대상 그룹 명 */
			 , A.TAR_USR_ID                                            /* 대상 사용자 아이디 */
			 , FN_GET_USR_NM(A.TAR_USR_ID) TAR_USR_NM                  /* 대상 사용자명 */
			 , A.TAR_OBJ_ID                                            /* 대상 객체 아이디 */
			 , A.TAR_OBJ_TP                                            /* 대상 객체 유형 */
			 , A.CNTN      		                                       /* 내용 */
			 , A.DVC_TP_CD                                             /* 디바이스 유형 코드 */
			 , FN_GET_CODE_NM('DVC_TP_CD', DVC_TP_CD) DVC_TP_NM        /* 디바이스 유형명 */
			 , A.SURVEY_USR_OPEN_YN									  /* 설문 처리 기명/무기명 Y/N  */
			 , A.REG_DTTM                                              /* 등록일자 */
			 , A.CRT_DTTM     /* 생성일자 */
			 , A.CRT_USR_ID                                            /* 생성자 ID */
			 , FN_GET_USR_NM(A.CRT_USR_ID) CRT_USR_NM                  /* 생성자 */
			 , FN_GET_USR_PHOTO(A.CRT_USR_ID) AS CRT_USR_PHOTO_IMG_MIN /* 생성자 사진 */
			 , FN_GET_USR_ORIGIN_PHOTO(A.CRT_USR_ID) CRT_PHOTO_IMG
			 , A.MOD_USR_ID, A.MOD_DTTM                                /* 수정자, 수정일자 */
			 , (
			 	CASE
			 		WHEN (SELECT COUNT(*) FROM SNS_BOOKMARK IT WHERE IT.POST_ID = A.POST_ID AND IT.CRT_USR_ID = #{login_usr_id}) > 0 THEN
			 			'Y'
			 		ELSE
			 			'N'
			 		END
			 ) BOOKMARK_YN                                           /* 북마크 여부 */
			 , (
			 	CASE
			 		WHEN (SELECT COUNT(*) FROM SNS_LIKE IT WHERE IT.POST_ID = A.POST_ID AND IT.LIKE_USR_ID =  #{login_usr_id}) > 0 THEN
			 			'Y'
			 		ELSE
			 			'N'
			 		END
			 ) LIKE_MY 												/* 본인 좋아요 */
			 , ( SELECT COUNT(*) FROM SNS_LIKE IT WHERE IT.POST_ID = A.POST_ID ) LIKE_CNT		/* 좋아요 수 */
			 , ( SELECT COUNT(IT.UP_POST_ID) FROM SNS_POST IT WHERE IT.UP_POST_ID = A.POST_ID ) REPLY_CNT	/* 댓글 수 */
			 , (CASE WHEN A.CRT_USR_ID = #{login_usr_id} THEN 'Y' ELSE 'N' END) IS_OWNER
			 , #{login_usr_id} AS LOGIN_USR_ID                         /* Login User ID */
			 <include refid="snsPostReplyAttach"/>
			 <include refid="snsPostReplyMentionUsers"/>
			 <include refid="snsPostSurvey"/>
		FROM (
				SELECT
					COUNT(a.post_id) OVER() TOTAL_CNT,
				<if test="sort_type == 'CRT'">
					ROW_NUMBER() OVER(ORDER BY A.CRT_DTTM DESC) RN,
				</if>
				<if test="sort_type == 'MOD'">
					ROW_NUMBER() OVER(ORDER BY A.MOD_DTTM DESC) RN,
				</if>
					A.*
				FROM SNS_POST A
					, (
						SELECT
								DISTINCT POST_ID
							FROM (
								  SELECT /** 공개 그룹의 게시글 */
			                              B.POST_ID
			                         FROM SNS_GROUP A, SNS_POST B
			                        WHERE B.TAR_GRP_ID = A.GRP_ID
			                          AND A.OPEN_YN = 'Y'
			                          AND A.GRP_TP = 'GNL'
			                          AND B.POST_TP IN ('FEED','POLL')
			                          AND B.TAR_OBJ_TP = 'GROUP'
			                          AND B.UP_POST_ID IS NULL
			                          AND A.GRP_ID IN (
			                              SELECT A.GRP_ID 
			                              FROM SNS_GROUP A, SNS_USERS_BY_GROUP B 
			                              WHERE A.GRP_ID = B.GRP_ID 
			                              AND b.usr_id = #{tar_usr_id} 
			                              AND JOIN_YN = 'Y' 
			                              AND LEAVE_DTTM IS NULL
			                          )
								)
						) b
				WHERE A.POST_ID = B.POST_ID
				<if test="@i2c.cmm.util.StringUtil@isEmpty(post_search_text) == false">
					AND A.CNTN LIKE '%' || #{post_search_text} ||'%'
				</if>
				ORDER BY
				<if test="sort_type == 'CRT'">
					A.CRT_DTTM DESC
				</if>
				<if test="sort_type == 'MOD'">
					A.MOD_DTTM DESC
				</if>
			) A LEFT OUTER JOIN SNS_ATTACH SA
				             ON A.POST_ID = SA.POST_ID
				LEFT OUTER JOIN SNS_POST_USER SPU
				             ON A.POST_ID = SPU.POST_ID
				LEFT OUTER JOIN SURVEY SURVEY
				             ON A.POST_ID = SURVEY.POST_ID 
		WHERE RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
		ORDER BY RN, SURVEY.SORT_ORD
	</select>
	
	<select id="listSnsGroupPost" parameterType="Map"	resultMap="snsPostResultMap">
		/* kr.co.i2talk.sns.listSnsGroupPost - 그룹 게시물. */
		
		SELECT A.TOTAL_CNT
			 , A.RN
			 , A.POST_ID                                               /* 게시물 아이디 */
			 , A.POST_TP                                               /* 게시 유형 */
			 , A.TAR_GRP_ID                                            /* 대상 그룹 아이다*/
			 , FN_GET_GRP_NM(A.TAR_GRP_ID) TAR_GRP_NM                  /* 대상 그룹 명 */
			 , A.TAR_USR_ID                                            /* 대상 사용자 아이디 */
			 , FN_GET_USR_NM(A.TAR_USR_ID) TAR_USR_NM                  /* 대상 사용자명 */
			 , A.TAR_OBJ_ID                                            /* 대상 객체 아이디 */
			 , A.TAR_OBJ_TP                                            /* 대상 객체 유형 */
			 , A.CNTN      		                                       /* 내용 */
			 , A.DVC_TP_CD                                             /* 디바이스 유형 코드 */
			 , FN_GET_CODE_NM('DVC_TP_CD', DVC_TP_CD) DVC_TP_NM        /* 디바이스 유형명 */
			 , A.SURVEY_USR_OPEN_YN									   /* 설문 처리 기명/무기명 Y/N  */
			 , A.REG_DTTM                                              /* 등록일자 */
			 , A.CRT_DTTM     										   /* 생성일자 */
			 , A.CRT_USR_ID                                            /* 생성자 ID */
			 , FN_GET_USR_NM(A.CRT_USR_ID) CRT_USR_NM                  /* 생성자 */
			 , FN_GET_USR_DEPT_NM(A.CRT_USR_ID) CRT_DEPT_NM			   /* 생성자 부서               */
			 , FN_GET_USR_PHOTO(A.CRT_USR_ID) AS CRT_USR_PHOTO_IMG_MIN /* 생성자 사진 */
			 , FN_GET_USR_ORIGIN_PHOTO(A.CRT_USR_ID) CRT_PHOTO_IMG
			 , A.MOD_USR_ID, A.MOD_DTTM                                /* 수정자, 수정일자 */
			 , (
			 	CASE
			 		WHEN (SELECT COUNT(*) FROM SNS_BOOKMARK IT WHERE IT.POST_ID = A.POST_ID AND IT.CRT_USR_ID = #{login_usr_id}) > 0 THEN
			 			'Y'
			 		ELSE
			 			'N'
			 		END
			 ) BOOKMARK_YN                                           /* 북마크 여부 */
			 , (
			 	CASE
			 		WHEN (SELECT COUNT(*) FROM SNS_LIKE IT WHERE IT.POST_ID = A.POST_ID AND IT.LIKE_USR_ID =  #{login_usr_id}) > 0 THEN
			 			'Y'
			 		ELSE
			 			'N'
			 		END
			 ) LIKE_MY 												/* 본인 좋아요 */
			 , ( SELECT COUNT(*) FROM SNS_LIKE IT WHERE IT.POST_ID = A.POST_ID ) LIKE_CNT		/* 좋아요 수 */
			 , ( SELECT COUNT(IT.UP_POST_ID) FROM SNS_POST IT WHERE IT.UP_POST_ID = A.POST_ID ) REPLY_CNT	/* 댓글 수 */
			 , (CASE WHEN A.CRT_USR_ID = #{login_usr_id} THEN 'Y' ELSE 'N' END) IS_OWNER
			 , #{login_usr_id} AS LOGIN_USR_ID                         /* Login User ID */
			 <include refid="snsPostReplyAttach"/>
			 <include refid="snsPostReplyMentionUsers"/>
			 <include refid="snsPostSurvey"/>
		FROM (
				SELECT
					COUNT(a.post_id) OVER() TOTAL_CNT,
				<if test="sort_type == 'CRT'">
					ROW_NUMBER() OVER(ORDER BY A.CRT_DTTM DESC) RN,
				</if>
				<if test="sort_type == 'MOD'">
					ROW_NUMBER() OVER(ORDER BY A.MOD_DTTM DESC) RN,
				</if>
					A.*
				FROM SNS_POST A
					, (
						SELECT
								DISTINCT POST_ID
							FROM (
								  SELECT /** 공개 그룹의 게시글 */
			                              B.POST_ID
			                         FROM SNS_GROUP A, SNS_POST B
			                        WHERE B.TAR_GRP_ID = A.GRP_ID
			                       /*   AND A.OPEN_YN = 'Y' */
									<if test="@i2c.cmm.util.StringUtil@isEmpty(grp_tp) == false">		
										<if test="grp_tp == 'GNL'">
											 AND A.GRP_TP = 'GNL'
										</if>
										
										<if test="grp_tp == 'POST'">
											<choose>
												<when test="auth_code == 'ROLE_ADMIN'">
											   		AND (A.TRGET = 'A' OR A.TRGET = 'I' OR A.TRGET = 'O')
											   	</when>
												<when test="auth_code == 'ROLE_EMP' or auth_code == 'ROLE_EMPPR'">
											   		AND (A.TRGET = 'A' OR A.TRGET = 'I')
											   	</when>
											    <otherwise>
											    	AND (A.TRGET = 'A' OR A.TRGET = 'O')
											    </otherwise>
											</choose>
										</if> 
			                        </if>
			                        
			                          AND B.POST_TP IN ('FEED','POLL')
			                          AND B.TAR_OBJ_TP = 'GROUP'
			                          AND B.UP_POST_ID IS NULL
			                          AND A.GRP_ID IN (
			                              SELECT A.GRP_ID 
			                              FROM SNS_GROUP A, SNS_USERS_BY_GROUP B 
			                              WHERE A.GRP_ID = B.GRP_ID 
			                              <if test="@i2c.cmm.util.StringUtil@isEmpty(grp_tp) == false">		
											<if test="grp_tp == 'GNL'">
												AND b.usr_id = #{tar_usr_id} 
											</if>   
				                         </if>			                              
			                              AND JOIN_YN = 'Y' 
			                              AND LEAVE_DTTM IS NULL
			                          )
								)
						) b
				WHERE A.POST_ID = B.POST_ID
				AND A.TAR_GRP_ID = #{tar_grp_id}
				<if test="@i2c.cmm.util.StringUtil@isEmpty(post_search_text) == false">
					AND A.CNTN LIKE '%' || #{post_search_text} ||'%'
				</if>
				ORDER BY
				<if test="sort_type == 'CRT'">
					A.CRT_DTTM DESC
				</if>
				<if test="sort_type == 'MOD'">
					A.MOD_DTTM DESC
				</if>
			) A    LEFT OUTER JOIN SNS_ATTACH SA
				             ON A.POST_ID = SA.POST_ID
				LEFT OUTER JOIN SNS_POST_USER SPU
				             ON A.POST_ID = SPU.POST_ID
				LEFT OUTER JOIN (
								SELECT SS.SURVEY_ITM_ID
								     , SS.SURVEY_ITM_NM
								     , SS.POST_ID
								     , SS.SORT_ORD
								     , (CASE WHEN SSV.USR_ID IS NULL THEN 'N' ELSE 'Y' END) AS VOTED_YN
				                  FROM SNS_SURVEY SS LEFT OUTER JOIN SNS_SURVEY_VOTE SSV 
				                                                  ON SSV.SURVEY_ITM_ID = SS.SURVEY_ITM_ID 
				                                                 AND SSV.USR_ID = #{tar_usr_id}
				)SURVEY ON SURVEY.POST_ID = A.POST_ID	 
		WHERE RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
		ORDER BY RN, SURVEY.SORT_ORD
	</select>
	
	<select id="listSnsPostByAll" parameterType="Map" resultMap="snsPostResultMap">
		/* kr.co.i2talk.sns.listSnsPostByAll - 전체. */
		    <include refid="snsPostList"/>
		    <include refid="snsPostReplyAttach"/>
			<include refid="snsPostReplyMentionUsers"/>
			<include refid="snsPostSurvey"/>
		FROM (
				SELECT
					COUNT(A.POST_ID) OVER() TOTAL_CNT,
				<if test="sort_type == 'CRT'">
					ROW_NUMBER() OVER(ORDER BY a.crt_dttm DESC) RN,
				</if>
				<if test="sort_type == 'MOD'">
					ROW_NUMBER() OVER(ORDER BY a.mod_dttm DESC) RN,
				</if>
					A.*
				FROM SNS_POST A
					, (
						SELECT
								DISTINCT post_id
							FROM (
									SELECT /** 공개 그룹의 게시글 */
										B.POST_ID
									FROM SNS_GROUP A, SNS_POST B
									WHERE B.TAR_GRP_ID = A.GRP_ID
									AND A.OPEN_YN = 'Y'
									AND B.POST_TP IN ('FEED','POLL')
									AND B.TAR_OBJ_TP = 'GROUP'
									UNION ALL
								SELECT /** 소속 그룹 게시글 */
										C.POST_ID
									FROM SNS_USERS_BY_GROUP A, SNS_GROUP B, SNS_POST C
									WHERE C.TAR_GRP_ID = B.GRP_ID
									AND B.GRP_ID = A.GRP_ID
									AND B.OPEN_YN = 'N'
									AND A.USR_ID = #{tar_usr_id}
									AND C.UP_POST_ID IS NULL
									AND C.POST_TP IN ('FEED','POLL')
									AND C.TAR_OBJ_TP = 'GROUP'
									UNION ALL
								SELECT /** 내 담벼락 글 */
										POST_ID
									FROM SNS_POST
									WHERE TAR_USR_ID = #{tar_usr_id}
									AND UP_POST_ID IS NULL
									AND POST_TP IN ('FEED','POLL')
									AND TAR_OBJ_TP = 'USER'
								)
						) B
				WHERE A.POST_ID = B.POST_ID
				<if test="@i2c.cmm.util.StringUtil@isEmpty(post_search_text) == false">
					AND A.CNTN LIKE '%' || #{post_search_text} ||'%'
				</if>
				ORDER BY
				<if test="sort_type == 'CRT'">
					A.CRT_DTTM DESC
				</if>
				<if test="sort_type == 'MOD'">
					A.MOD_DTTM DESC
				</if>
			) A LEFT OUTER JOIN SNS_ATTACH SA
				             ON A.POST_ID = SA.POST_ID
				LEFT OUTER JOIN SNS_POST_USER SPU
				             ON A.POST_ID = SPU.POST_ID
				LEFT OUTER JOIN SURVEY SURVEY
				             ON A.POST_ID = SURVEY.POST_ID 
		WHERE RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
	</select>

	<select id="listSnsPostByTargetUser" parameterType="Map" resultMap="snsPostResultMap">
		/* kr.co.i2talk.sns.listSnsPostByTargetUser - 대상 유저 홈 */
		 	<include refid="snsPostList"/>
		 	<include refid="snsPostReplyAttach"/>
			<include refid="snsPostReplyMentionUsers"/>
			<!-- <include refid="snsPostSurvey"/> -->
		FROM (
				SELECT
					COUNT(A.POST_ID) OVER() TOTAL_CNT,
				<if test="sort_type == 'CRT'">
					ROW_NUMBER() OVER(ORDER BY A.CRT_DTTM DESC) RN,
				</if>
				<if test="sort_type == 'MOD'">
					ROW_NUMBER() OVER(ORDER BY A.MOD_DTTM DESC) RN,
				</if>
					a.*
				FROM sns_post a
					, (
						SELECT
								DISTINCT post_id
							FROM (
									SELECT /** 그룹의 대상자의 게시물 */
										  A.POST_ID
									FROM SNS_POST A, SNS_GROUP B
									WHERE B.GRP_ID = A.TAR_GRP_ID
									AND A.CRT_USR_ID = #{tar_usr_id}  /* 다른 사용자 */
									AND a.post_tp IN ('FEED','POLL')
									AND A.TAR_OBJ_TP = 'GROUP'
									AND (   B.OPEN_YN = 'Y'
											OR B.GRP_ID IN (SELECT B.GRP_ID
															FROM SNS_USERS_BY_GROUP A, SNS_GROUP B
															WHERE B.GRP_ID = A.GRP_ID
															AND B.OPEN_YN = 'N'
															AND A.JOIN_YN = 'Y'
															AND A.USR_ID = #{login_usr_id}  /* 내 ID */ )
										)
									UNION ALL
									SELECT /** 대상자 맨션 게시물 */
										IFNULL(B.UP_POST_ID,B.POST_ID) POST_ID
									FROM SNS_POST_USER A, SNS_POST B
									WHERE B.POST_ID = A.POST_ID
									AND B.POST_TP IN ('FEED','POLL')
									AND B.TAR_OBJ_TP IN ('USER','GROUP')
									AND B.UP_POST_ID IS NULL
									AND B.TAR_USR_ID = #{tar_usr_id} /* 다른 사용자 */
									AND A.USR_ID = #{login_usr_id}  /* 내 ID */ 
									
									UNION ALL

									SELECT /** 대상자 게시물 */
										POST_ID
									FROM SNS_POST
									WHERE TAR_USR_ID = #{tar_usr_id}
									AND UP_POST_ID IS NULL
									AND POST_TP IN ('FEED','POLL')
									AND TAR_OBJ_TP = 'USER'
								)
						) B
				WHERE A.POST_ID = B.POST_ID
				<if test="@i2c.cmm.util.StringUtil@isEmpty(post_search_text) == false">
					AND A.CNTN LIKE '%' || #{post_search_text} ||'%'
				</if>
				ORDER BY
				<if test="sort_type == 'CRT'">
					A.CRT_DTTM DESC
				</if>
				<if test="sort_type == 'MOD'">
					A.MOD_DTTM DESC
				</if>
			) A LEFT OUTER JOIN SNS_ATTACH SA
				             ON A.POST_ID = SA.POST_ID
				LEFT OUTER JOIN SNS_POST_USER SPU
				             ON A.POST_ID = SPU.POST_ID
				LEFT OUTER JOIN SURVEY SURVEY
				             ON A.POST_ID = SURVEY.POST_ID
		WHERE RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
		ORDER BY RN, SURVEY.SORT_ORD
	</select>

	<select id="listSnsPostByObject" parameterType="Map" resultMap="snsPostResultMap">
		/* kr.co.i2talk.sns.listSnsPostByObject */
		    <include refid="snsPostList"/>
		 	<include refid="snsPostReplyAttach"/>
			<include refid="snsPostReplyMentionUsers"/>
			<include refid="snsPostSurvey"/>
		FROM (
			<if test='@i2c.cmm.util.StringUtil@isEmpty(procType) == true'>
				SELECT
					COUNT(a.post_id) OVER() TOTAL_CNT,
				<if test="sort_type == 'CRT'">
					ROW_NUMBER() OVER(ORDER BY a.crt_dttm DESC) RN,
				</if>
				<if test="sort_type == 'MOD'">
					ROW_NUMBER() OVER(ORDER BY a.mod_dttm DESC) RN,
				</if>
					a.*
				FROM sns_post a
					, (
						SELECT
							DISTINCT post_id
						FROM (
								SELECT /** 오브젝트 게시글 */
										B.POST_ID
								FROM SNS_POST B, (
										SELECT B.TAR_OBJ_ID
										FROM SNS_POST_USER A, SNS_POST B
										WHERE A.POST_ID = B.POST_ID
										AND B.UP_POST_ID IS NULL
										AND B.POST_TP    = #{tar_obj_tp}
										<!-- AND A.USR_ID     = #{login_usr_id} -->
										AND B.TAR_OBJ_ID = #{tar_obj_id}
										) C
								WHERE B.TAR_OBJ_ID = C.TAR_OBJ_ID
									AND B.UP_POST_ID IS NULL
									AND B.POST_TP IN ('FEED','POLL')
									AND B.TAR_OBJ_TP = #{tar_obj_tp}
							)
						) B
				WHERE A.POST_ID = B.POST_ID
				<if test="@i2c.cmm.util.StringUtil@isEmpty(post_search_text) == false">
					AND A.CNTN LIKE '%' || #{post_search_text} ||'%'
				</if>
				ORDER BY
				<if test="sort_type == 'CRT'">
					A.CRT_DTTM DESC
				</if>
				<if test="sort_type == 'MOD'">
					A.MOD_DTTM DESC
				</if>
			</if>
			<if test='@i2c.cmm.util.StringUtil@isEmpty(procType) == false'>
				SELECT 
					COUNT(A.POST_ID) OVER() TOTAL_CNT
				<if test="sort_type == 'CRT'">
					, ROW_NUMBER() OVER(ORDER BY A.CRT_DTTM DESC) RN
				</if>
				<if test="sort_type == 'MOD'">
					, ROW_NUMBER() OVER(ORDER BY A.MOD_DTTM DESC) RN
				</if>
					, a.*
				FROM sns_post a
				WHERE A.UP_POST_ID IS NULL
					AND A.POST_TP IN ('FEED','POLL')
					AND A.TAR_OBJ_TP = #{tar_obj_tp}
					AND A.TAR_OBJ_ID = (
							SELECT DISTINCT SB.TASK_ID
							FROM SNS_WORK SA
								, SNS_TASK SB
								, SNS_POST SC
								, SNS_POST_USER SD
							WHERE SA.WORK_ID = SB.TAR_OBJ_ID
								AND (      SA.WORK_ID    = SC.TAR_OBJ_ID
										OR SA.UP_WORK_ID = SC.TAR_OBJ_ID
										OR SB.TASK_ID    = SC.TAR_OBJ_ID )
								AND SC.POST_ID = SD.POST_ID
								AND SB.TASK_ID = #{tar_obj_id}
								AND SD.USR_ID  = #{login_usr_id}
						)
				<if test="@i2c.cmm.util.StringUtil@isEmpty(post_search_text) == false">
					AND A.CNTN LIKE '%' || #{post_search_text} ||'%'
				</if>
			</if>
			) A LEFT OUTER JOIN SNS_ATTACH SA
				             ON A.POST_ID = SA.POST_ID
				LEFT OUTER JOIN SNS_POST_USER SPU
				             ON A.POST_ID = SPU.POST_ID
				LEFT OUTER JOIN SURVEY SURVEY
				             ON A.POST_ID = SURVEY.POST_ID 
		WHERE RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
		ORDER BY RN, SURVEY.SORT_ORD
	</select>

	<select id="listSnsPostByGroup" parameterType="Map" resultType="i2c.cmm.base.CommonResultMap">
	/* kr.co.i2talk.sns.listSnsPostByGroup - 그룹 게시물 */
	SELECT /** 그룹 게시물 */
		a.TOTAL_CNT
		, a.RN
		, a.post_id                                               /* 게시물 아이디 */
		, a.post_tp                                               /* 게시 유형 */
		, a.tar_grp_id                                            /* 대상 그룹 아이다*/
		, FN_GET_GRP_NM(a.tar_grp_id) tar_grp_nm                  /* 대상 그룹 명 */
		, a.tar_usr_id                                            /* 대상 사용자 아이디 */
		, FN_GET_USR_NM(a.tar_usr_id) tar_usr_nm                  /* 대상 사용자명 */
		, a.tar_obj_id                                            /* 대상 객체 아이디 */
		, a.tar_obj_tp                                            /* 대상 객체 유형 */
		, a.cntn      		                                       /* 내용 */
		, a.dvc_tp_cd                                             /* 디바이스 유형 코드 */
		, fn_get_code_nm('DVC_TP_CD', dvc_tp_cd) dvc_tp_nm        /* 디바이스 유형명 */
		, a.survey_usr_open_yn									  /* 설문 처리 기명/무기명 Y/N  */
		, a.reg_dttm                                              /* 등록일자 */
		, a.crt_dttm     /* 생성일자 */
		, a.crt_usr_id                                            /* 생성자 ID */
		, FN_GET_USR_NM(a.crt_usr_id) crt_usr_nm                  /* 생성자 */
		, FN_GET_USR_PHOTO(a.crt_usr_id) as crt_usr_photo_img_min /* 생성자 사진 */
		, FN_GET_USR_ORIGIN_PHOTO(a.crt_usr_id) crt_photo_img
		, a.mod_usr_id, a.mod_dttm                               /* 수정자, 수정일자 */
		, (
			CASE
				WHEN (SELECT count(*) FROM sns_bookmark it WHERE it.post_id = a.post_id AND it.crt_usr_id = #{login_usr_id}) > 0 THEN
					'Y'
				ELSE
					'N'
				END
		) bookmark_yn                                           /* 북마크 여부 */
		, (
			CASE
				WHEN (SELECT count(*) FROM sns_like it WHERE it.post_id = a.post_id AND it.like_usr_id =  #{login_usr_id}) > 0 THEN
					'Y'
				ELSE
					'N'
				END
		) like_my 												/* 본인 좋아요 */
		, ( select count(*) from sns_like it where it.post_id = a.post_id ) like_cnt		/* 좋아요 수 */
		, ( SELECT COUNT(IT.UP_POST_ID) FROM SNS_POST IT WHERE IT.UP_POST_ID = A.POST_ID ) REPLY_CNT	/* 댓글 수 */
		, (CASE WHEN crt_usr_id = #{login_usr_id} THEN 'Y' ELSE 'N' END) is_owner
	FROM (
			SELECT
				COUNT(a.post_id) OVER() TOTAL_CNT,
			<if test="sort_type == 'CRT'">
				ROW_NUMBER() OVER(ORDER BY a.crt_dttm DESC) RN,
			</if>
			<if test="sort_type == 'MOD'">
				ROW_NUMBER() OVER(ORDER BY a.mod_dttm DESC) RN,
			</if>
				a.*
			FROM sns_post a
				, (
					SELECT
					       DISTINCT(IFNULL(a.up_post_id, a.post_id)) post_id
					  FROM sns_post a
					 WHERE a.tar_obj_tp = 'GROUP'
					   AND a.post_tp IN ('FEED','POLL')
					   AND a.tar_grp_id = #{tar_grp_id}
				   <if test="@i2c.cmm.util.StringUtil@isEmpty(post_search_text) == false">
					   AND a.cntn like '%' || #{post_search_text} ||'%'
				   </if>
				  ) b
			WHERE a.post_id = b.post_id
			ORDER BY
			<if test="sort_type == 'CRT'">
				a.crt_dttm desc
			</if>
			<if test="sort_type == 'MOD'">
				a.mod_dttm desc
			</if>
		) a
	WHERE RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
	ORDER BY RN
	</select>

	<select id="listSnsPostByChart" parameterType="Map" resultMap="snsPostResultMap">
     /* kr.co.i2talk.sns.listSnsPostByChart */
            <include refid="snsPostList"/>
		 	<include refid="snsPostReplyAttach"/>
			<include refid="snsPostReplyMentionUsers"/>
			<include refid="snsPostSurvey"/>
		FROM (
				SELECT
					COUNT(A.POST_ID) OVER() TOTAL_CNT,
				<if test="sort_type == 'CRT'">
					ROW_NUMBER() OVER(ORDER BY A.CRT_DTTM DESC) RN,
				</if>
				<if test="sort_type == 'MOD'">
					ROW_NUMBER() OVER(ORDER BY A.MOD_DTTM DESC) RN,
				</if>
					A.*
				FROM SNS_POST A
				WHERE A.TAR_OBJ_ID = #{tar_obj_id}
				AND A.UP_POST_ID IS NULL
				AND A.POST_TP IN ('FEED','POLL')
				AND A.TAR_OBJ_TP = 'CHART'
				<if test="@i2c.cmm.util.StringUtil@isEmpty(post_search_text) == false">
					AND A.CNTN LIKE '%' || #{post_search_text} ||'%'
				</if>
				ORDER BY
				<if test="sort_type == 'CRT'">
					A.CRT_DTTM DESC
				</if>
				<if test="sort_type == 'MOD'">
					A.MOD_DTTM DESC
				</if>
			) A LEFT OUTER JOIN SNS_ATTACH SA
				             ON A.POST_ID = SA.POST_ID
				LEFT OUTER JOIN SNS_POST_USER SPU
				             ON A.POST_ID = SPU.POST_ID
				LEFT OUTER JOIN SURVEY SURVEY
				             ON A.POST_ID = SURVEY.POST_ID 
		WHERE RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
	</select>

<select id="listSnsPostByMsfrtn" parameterType="Map" resultMap="snsPostResultMap">
		/* kr.co.i2talk.sns.listSnsPostByMsfrtn 재난 상황  FEED 가져오기  */
		    <include refid="snsPostList"/>		    		    
		    <include refid="snsPostReplyAttach"/>
			<include refid="snsPostReplyMentionUsers"/>
		FROM (
			   SELECT
					COUNT(A.POST_ID) OVER() TOTAL_CNT,
					ROW_NUMBER() OVER(ORDER BY A.CRT_DTTM DESC) RN,
					A.*
				FROM SNS_POST A					
				WHERE  A.TAR_OBJ_ID= #{tar_obj_id}
				    AND A.POST_TP='FEED'
				
				<if test="@i2c.cmm.util.StringUtil@isEmpty(post_search_text) == false">
					AND a.CNTN like '%' || #{post_search_text} ||'%'
				</if>
				ORDER BY
				<if test="sort_type == 'CRT'">
					A.CRT_DTTM DESC
				</if>
				<if test="sort_type == 'MOD'">
					A.MOD_DTTM DESC
				</if>
			) A  LEFT OUTER JOIN SNS_ATTACH SA
				             ON A.POST_ID = SA.POST_ID
				LEFT OUTER JOIN SNS_POST_USER SPU
				             ON A.POST_ID = SPU.POST_ID
				<!-- LEFT OUTER JOIN SURVEY SURVEY
				             ON A.POST_ID = SURVEY.POST_ID --> 
		WHERE RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
	</select>
	
	<select id="getLikeCnt" parameterType="Map" resultType="int">
	 /* kr.co.i2talk.sns.getLikeCnt 게시된 글의 좋아요,싫어요 갯수를 return한다.*/
		SELECT COUNT(POST_ID)
		  FROM 
		 <if test="like_se == 'LIKE'">
			SNS_LIKE
		</if>
		<if test="like_se == 'NOTLIKE'">
			SNS_NOTLIKE
		</if>
		 WHERE POST_ID = #{post_id}
	</select>
	
	<update id="checkAllNoti" parameterType="Map">
		/* kr.co.i2talk.sns.checkAllNoti 수신된 모든 알림을 수신 완료 처리한다. */
		
		UPDATE SNS_RECV_USER
		   SET CONFIRM_DTTM = DATE_FORMAT(SYSDATE(),'%Y%m%d%H%i%s')
		WHERE USR_ID = #{usr_id}	
		  AND CONFIRM_DTTM IS NULL
		 <if test="@i2c.cmm.util.StringUtil@isNotEmpty(target)">	 
		  	 <choose>
				<when test="target =='feed'">
		    		AND RECV_ID IN (
		    		    SELECT *
		    		      FROM (
				    		      SELECT
									B.RECV_ID
								FROM
									SNS_MESSAGE A,
									SNS_RECV_USER B
								WHERE
							    A.MSG_ID = B.MSG_ID
									AND A.BIZ_TP_CD IS NOT NULL
							    AND A.BIZ_TP_CD IN ('MAIL09','MAIL10')
									AND B.USR_ID = #{usr_id}
							    AND B.CONFIRM_DTTM IS NULL 
						      ) C
					       )
				</when>
				
				<otherwise>
					
				</otherwise>							
			 </choose>	
		 </if>
	</update>
	
	<select id="countGroupFile" parameterType="i2c.cmm.vo.ComDefaultVO" resultType="int">
	/* kr.co.i2talk.sns.countGroupFile 그룹자료 정보 건수 */	
	SELECT
		COUNT(ATTACH_FILE_ID) AS TOTCNT
	FROM
		SNS_ATTACH A,
		SNS_POST B
	WHERE 1=1
	AND A.POST_ID = B.POST_ID
	AND B.TAR_GRP_ID = #{grp_id}
	<if test="@i2c.cmm.util.StringUtil@isEmpty(attach_tp_cd) == false">
		AND ATTACH_TP_CD = #{attach_tp_cd}
		AND A.FNL_YN = 'Y'
	</if>
	<if test="@i2c.cmm.util.StringUtil@isEmpty(searchKeyword) == false">		
		AND A.ATTACH_NM LIKE '%' || #{searchKeyword} || '%'
	</if>
	</select>	

	<select id="listGroupFile" parameterType="i2c.cmm.vo.ComDefaultVO" resultType="i2c.cmm.base.CommonResultMap">
	/* kr.co.i2talk.sns.listGroupFile 그룹자료 정보 리스트 */		
	SELECT 
		*
	FROM
			(
		SELECT
			ROW_NUMBER() OVER(ORDER BY CASE
						WHEN ATTACH_TP_CD = 'FILE' THEN 0
						WHEN ATTACH_TP_CD = 'LINK' THEN 1
						WHEN ATTACH_TP_CD = 'PHOT' THEN 2
						ELSE 3
					END, A.CRT_DTTM DESC) RNUM,
			ATTACH_FILE_ID, A.POST_ID, USR_ID, UP_ATTACH_FILE_ID,
			ATTACH_TP_CD, ATTACH_NM, TAR_TP, TAR_SUB_TP,
			DESCRIP, VERS, FNL_YN, USR_LINK, VIDEO_LINK,
			VIDEO_IMG_LINK, IMG_MID, IMG_WID, IMG_HEI, IMG_MID_WID,
			IMG_MID_HEI, A.CRT_USR_ID, A.CRT_DTTM, A.MOD_USR_ID, A.MOD_DTTM, A.PHYSCL_FILE_NM,
			B.TAR_GRP_ID
			, FN_GET_USR_NM(A.CRT_USR_ID) CRT_USR_NM                 
			, COUNT(A.POST_ID) OVER() TOTAL_CNT
			, A.FST_LOC, A.IN_ALLW_YN, A.OUT_ALLW_YN, A.APRV_REQ_DTTM, A.APRV_PRC_DTTM, A.APRV_ST
		FROM
			SNS_ATTACH A,
			SNS_POST B
		WHERE 1=1
			AND A.POST_ID = B.POST_ID
			AND B.TAR_GRP_ID = #{grp_id}
		<if test="@i2c.cmm.util.StringUtil@isEmpty(attach_tp_cd) == false">
			AND ATTACH_TP_CD = #{attach_tp_cd}
			AND A.FNL_YN = 'Y'
		</if>
		<if test="@i2c.cmm.util.StringUtil@isEmpty(searchKeyword) == false">		
			AND A.ATTACH_NM LIKE '%' || #{searchKeyword} || '%'
		</if>
		)
	<![CDATA[
	     WHERE  RNUM  > #{firstIndex}
	       AND  RNUM <= #{firstIndex} + #{recordCountPerPage}
	     ORDER BY RNUM DESC
     ]]>
	</select>
	
	<select id="kr.co.i2talk.sns.selectSportBsnsList" parameterType="Map" resultType="i2c.cmm.base.CommonResultMap">	 
	/* kr.co.i2talk.sns.selectSportBsnsList 사업관리리스트  */		
	SELECT *
        FROM (
            SELECT ROWNUM RNUM, B.*
              FROM (
                SELECT SB.SPORT_BSNS_ID         SPORTBSNSID    /* 사업id */                     
                     , SB.SPORT_BSNS_NM         SPORTBSNSNM    /* 사업명 */                     
                  FROM SPORT_BSNS SB
                  INNER JOIN INSTT I ON I.INSTT_ID = SB.INSTT_ID
                  INNER JOIN BSNM  B ON B.BSNM_ID  = SB.BSNM_ID
                  LEFT JOIN (SELECT TCS.SPORT_BSNS_ID
                                  , TCS.PROCS
                                  , TCS.PLAN_PROCS 
                               FROM TFCLGHT_CMBN_STTUS TCS, TFCLGHT T
                              WHERE TCS.TFCLGHT_ID  = T.TFCLGHT_ID
                                AND T.PROGRESS_STEP = 'TFCL02'
                                AND T.STD_DE        = (SELECT MAX(TIN.STD_DE)
                                                         FROM TFCLGHT TIN, TFCLGHT_CMBN_STTUS TCIN 
                                                        WHERE TIN.TFCLGHT_ID     = TCIN.TFCLGHT_ID
                                                          AND TCIN.DETAIL_ID     = TCS.DETAIL_ID
                                                          AND TCIN.TFCLGHT_ID    = TCS.TFCLGHT_ID
                                                          AND TCIN.SPORT_BSNS_ID = TCS.SPORT_BSNS_ID
                                                          AND TIN.PROGRESS_STEP  = T.PROGRESS_STEP)
                          ) T    ON SB.SPORT_BSNS_ID = T.SPORT_BSNS_ID                 
			      <if test="auth_code == 'ROLE_NIA_BSNS' or auth_code == 'ROLE_MNGT_CHRG' or auth_code == 'ROLE_BSNM_PM' or auth_code == 'ROLE_PARTCPNT'">
			          WHERE EXISTS (
			              SELECT 'X' 
			                FROM CHARGER C
			               WHERE C.SPORT_BSNS_ID = SB.SPORT_BSNS_ID
			                 AND C.CHARGER_ID    = #{usr_id}       /* NIA사업담당자, 주관기관 담당자, 사업자 담당자, 기타관계자 권한은 해당사업 참여자일 경우에만 볼 수 있다.*/
			          )
			      </if>
                ORDER BY SB.BSNS_MANAGE_CODE
              ) B
             )
	</select>
</mapper>
