<?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">
<!-- 1. 추가  쿼리 메소드 작성 -->
	<select id="kr.co.i2talk.sns.listTotalSearchByUser"
		parameterType="Map"
		resultType="i2c.cmm.base.CommonResultMap">
/* kr.co.i2talk.sns.listTotalSearchByUser */
SELECT /** 사용자 검색. **/
	   *
FROM (
		SELECT COUNT(a.usr_id) OVER() TOTAL_CNT
			 , ROW_NUMBER() OVER(ORDER BY a.crt_dttm DESC) RN
			 , a.usr_id
			 , a.usr_nm
			 , a.pos_nm
			 , FN_GET_USR_DEPT_NM(a.USR_ID) dept_nm
			 , a.tel_num
			 , a.phn_num
			 , a.email
			 , FN_GET_USR_PHOTO(a.usr_id) as usr_photo_img_min -- 대상자 사진
			 , FN_GET_USR_ORIGIN_PHOTO(a.usr_id) usr_photo_img
			 , a.crt_usr_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
		FROM sns_user a
		WHERE a.usr_nm like '%'|| #{search_text} ||'%'
	)
WHERE RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
	</select>

	<select id="kr.co.i2talk.sns.listTotalSearchByGroup"
		parameterType="Map"
		resultType="i2c.cmm.base.CommonResultMap">
/* kr.co.i2talk.sns.listTotalSearchByGroup */
SELECT /** GROUP 검색. **/
	   a.TOTAL_CNT
	 , a.RN
	 , a.grp_id
	 , a.grp_nm
	 , a.grp_tp
	 , a.open_yn
	 , a.grp_intro
	 , a.crt_dttm as mod_dttm
	 -- , (select crt_dttm from sns_post where tar_grp_id = a.grp_id and rownum = 1 ) mod_dttm  -- order by mod_dttm desc
	 , FN_GET_FILE_NM('group', a.grp_id, a.grp_img_min) grp_img_min_path
	 , (select usr_id from sns_users_by_group where grp_id = a.grp_id and admin_yn = 'Y') adm_usr_id -- 관리자 아이디.
	 , (select usr_nm from sns_users_by_group x, sns_user z where x.grp_id = a.grp_id and x.admin_yn = 'Y' and x.usr_id = z.usr_id) adm_usr_nm -- 관리자 명.
	 , (select count(usr_id) from sns_users_by_group where grp_id = a.grp_id) mem_cnt -- 가입인원수.
FROM (
		SELECT COUNT(a.grp_id) OVER() TOTAL_CNT
			 , ROW_NUMBER() OVER(ORDER BY a.grp_nm asc) RN
			 , a.*
		FROM sns_group a
		WHERE a.grp_nm like '%'|| #{search_text} ||'%'
		ORDER BY a.grp_nm asc
	) a
WHERE a.RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
	</select>

	<select id="kr.co.i2talk.sns.listTotalSearchByTask"
		parameterType="Map"
		resultType="i2c.cmm.base.CommonResultMap">
/* kr.co.i2talk.sns.listTotalSearchByTask */
SELECT /** TASK. **/
	   *
FROM (
		SELECT COUNT(a.task_id) OVER() TOTAL_CNT
			 , ROW_NUMBER() OVER(ORDER BY a.crt_dttm DESC) RN
			 , a.task_id
			 , a.tar_usr_id
			 , FN_GET_USR_NM(a.tar_usr_id) tar_usr_nm
			 , FN_GET_USR_PHOTO(a.tar_usr_id) as tar_usr_photo_img_min -- 대상자 사진
			 , FN_GET_USR_ORIGIN_PHOTO(a.tar_usr_id) tar_photo_img
			 , a.ttl
			 , a.cntn
			 , a.start_dttm
			 , a.end_dttm
			 , a.cplt_dttm
			 , a.task_st_cd
			 , FN_GET_CODE_NM('TASK_ST_CD', a.task_st_cd) task_st_nm
			 , 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
		FROM sns_task a, sns_post b, sns_post_user c
		WHERE a.task_id = b.tar_obj_id
		AND b.post_id = c.post_id
		AND c.usr_id = #{tar_usr_id}
		AND (a.ttl like '%'|| #{search_text} ||'%' OR a.cntn like '%'|| #{search_text} ||'%')
	)
WHERE RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
	</select>

	<select id="kr.co.i2talk.sns.listTotalSearchByMemo"
		parameterType="Map"
		resultType="i2c.cmm.base.CommonResultMap">
/* kr.co.i2talk.sns.listTotalSearchByMemo */
SELECT /** MEMO APPROVE. **/
	   *
FROM (
		SELECT COUNT(a.appr_id) OVER() TOTAL_CNT
			 , ROW_NUMBER() OVER(ORDER BY a.crt_dttm DESC) RN
				, a.appr_id
			 , a.ttl
			 , a.cntn
			 , a.start_dt
			 , a.end_dt
			 , a.appr_st_cd
			 , a.appr_appl_dttm
			 , (select y.usr_nm from sns_post_user x, sns_user y where x.usr_id = y.usr_id and x.post_id = b.post_id and x.fnl_appr_yn = 'Y') appr_usr_nm
			 , (select count(x.usr_id) from sns_post_user x where x.post_id = b.post_id and x.fnl_appr_yn = 'Y' and usr_tp != 'CRTR') ref_mem_cnt
			 , FN_GET_CODE_NM('APPR_ST_CD', a.appr_st_cd) appr_st_nm
			 , 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
		FROM sns_approve a, sns_post b, sns_post_user c
		WHERE a.appr_id = b.tar_obj_id
		AND b.post_id = c.post_id
		AND b.post_tp = 'APPR'
		AND c.usr_id = #{tar_usr_id}
		AND (a.ttl like '%'|| #{search_text} ||'%' OR a.cntn like '%'|| #{search_text} ||'%')
		 ORDER BY a.crt_dttm desc
	)
WHERE RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
	</select>

	<select id="kr.co.i2talk.sns.listTotalSearchByConference"
		parameterType="Map"
		resultType="i2c.cmm.base.CommonResultMap">

/* kr.co.i2talk.sns.listTotalSearchByConference */

SELECT /** Conference. **/
	   *
FROM (
		SELECT COUNT(a.cfrc_id) OVER() TOTAL_CNT
			 , ROW_NUMBER() OVER(ORDER BY a.crt_dttm DESC) RN
				, a.cfrc_id
			 , a.cfrc_ttl
			, a.cfrc_dt
			, a.start_tm
			, a.end_tm
			, (case when (a.cfrc_room_tp = 'ONLINE') then FN_GET_CODE_NM('CFRC_ST', cfrc_st)
				when (a.cfrc_room_tp = 'OFFLINE') then
					case when DATE_FORMAT(SYSDATE(),'%Y%m%d%H%i') > (a.cfrc_dt || a.end_tm) then '종료'
						when DATE_FORMAT(SYSDATE(),'%Y%m%d%H%i') > (a.cfrc_dt || a.start_tm) then '진행'
					else '대기' end
				else null end
			) cfrc_st_nm
			, FN_GET_CODE_NM('CFRC_TP', cfrc_tp) cfrc_tp_nm
			, FN_GET_CODE_NM('CFRC_ROOM_TP', cfrc_room_tp) cfrc_room_tp_nm
			, 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
			, (select count(usr_id) from sns_post_user where post_id = b.post_id) mem_cnt
		  FROM sns_conference a, sns_post b, sns_post_user c
		WHERE a.cfrc_id = b.tar_obj_id
		AND b.post_id = c.post_id
		AND b.post_tp = 'CFRC'
		AND c.usr_id = #{tar_usr_id}
		AND (a.cfrc_ttl like '%'|| #{search_text} ||'%' OR a.cfrc_cntn like '%'|| #{search_text} ||'%')
		 ORDER BY a.crt_dttm desc
	)
WHERE RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
	</select>

	<select id="kr.co.i2talk.sns.listTotalSearchByChart"
		parameterType="Map"
		resultType="i2c.cmm.base.CommonResultMap">
/* kr.co.i2talk.sns.listTotalSearchByChart */

SELECT /** CMS Chart. **/
	   *
FROM (
		SELECT COUNT(a.chrt_info_id) OVER() TOTAL_CNT
			 , ROW_NUMBER() OVER(ORDER BY a.crt_dttm DESC) RN
			 , a.chrt_info_id
			, a.chrt_info_nm
			, a.chrt_flag
			, a.descrip
			, a.chrt_tp
			, FN_GET_CODE_NM('CHRT_TP', a.chrt_tp) chrt_nm
			, 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.crt_dttm
		  FROM cms_chart_info a
			 , (
				SELECT
					   distinct a.chrt_info_id
				  FROM (
						SELECT /** 작성자 */
							   a.chrt_info_id
						FROM cms_chart_info a
						WHERE a.crt_usr_id = #{tar_usr_id}
						AND (a.chrt_info_nm LIKE '%'|| #{search_text} ||'%' OR a.descrip LIKE '%'|| #{search_text} ||'%')
						UNION ALL
						SELECT /** 공유자 */
							   a.chrt_info_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}
						AND (a.chrt_info_nm LIKE '%'|| #{search_text} ||'%' OR a.descrip LIKE '%'|| #{search_text} ||'%')
					) a
			) b
		 WHERE a.chrt_info_id = b.chrt_info_id
		 ORDER BY a.crt_dttm desc
	)
WHERE RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
	</select>

	<select id="kr.co.i2talk.sns.listTotalSearchByFile"
		parameterType="Map"
		resultType="i2c.cmm.base.CommonResultMap">
/* kr.co.i2talk.sns.listTotalSearchByFile */

SELECT /** 파일 리스트 */
	TOTAL_CNT
	, RN
	, a.attach_file_id
	, a.post_id
	, a.usr_id
	, a.up_attach_file_id
	, a.attach_tp_cd
	, a.attach_nm
	, a.descrip
	, a.vers
	, a.fnl_yn
	, a.usr_link
	, a.video_link
	, a.video_img_link
	, a.img_mid
	, a.img_wid
	, a.img_hei
	, a.img_mid_wid
	, a.img_mid_hei
	, a.crt_usr_id, FN_GET_USR_NM(a.crt_usr_id) crt_usr_nm                  -- 등록자
	, a.crt_dttm
	, a.mod_usr_id, FN_GET_USR_NM(a.mod_usr_id) mod_usr_nm                  -- 수정자
	, a.mod_dttm
	, a.physcl_file_nm
	, (CASE WHEN a.crt_usr_id = #{tar_usr_id} THEN 'Y' ELSE 'N' END) is_owner
FROM
	(
	SELECT
			COUNT(a.attach_file_id) OVER() TOTAL_CNT ,
			ROW_NUMBER() OVER(ORDER BY a.mod_dttm desc) RN,
			a.*
		FROM sns_attach a,
			  (
				SELECT
					DISTINCT a.attach_file_id
				FROM (
						SELECT /** MY 게시글 */
							a.attach_file_id
						FROM sns_attach a
						WHERE a.fnl_yn = 'Y'
						   AND a.attach_tp_cd IN ('FILE','PHOT')
						   AND a.crt_usr_id = #{tar_usr_id}
						   AND a.attach_nm LIKE '%'|| #{search_text} ||'%'
						UNION ALL
						SELECT /** SHR 게시글 */
							a.attach_file_id
						FROM sns_attach a
						WHERE a.fnl_yn = 'Y'
						   AND a.attach_tp_cd IN ('FILE','PHOT')
							  AND a.crt_usr_id != #{tar_usr_id}
							  AND a.attach_nm LIKE '%'|| #{search_text} ||'%'
						   AND a.post_id IN (
											 SELECT a.post_id
											   FROM sns_post a,
													sns_users_by_group b
											  WHERE a.tar_grp_id = b.grp_id
												AND b.usr_id = #{tar_usr_id}
											 )
					) a
			) b
		WHERE a.attach_file_id = b.attach_file_id
		ORDER BY a.mod_dttm desc
	) a
WHERE RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
	</select>

	<select id="kr.co.i2talk.sns.listTotalSearchByMsfrtnMan"
		parameterType="Map"
		resultType="i2c.cmm.base.CommonResultMap">
/* kr.co.i2talk.sns.listTotalSearchByMsfrtnMan */
SELECT /** 재난대응매뉴얼. **/
	   *
FROM (
		SELECT COUNT(A.MANUAL_ID) OVER() TOTAL_CNT
			  ,ROW_NUMBER() OVER(ORDER BY A.CRT_DTTM DESC) RN
			  ,A.MANUAL_ID
		      ,A.MAN_TYPE_CODE
		      ,FN_GET_MSFRTN_CODE_NM(A.MAN_TYPE_CODE) MAN_TYPE_CODE_NM
		      ,A.MAN_SE_CODE
		      ,FN_GET_MSFRTN_CODE_NM(A.MAN_SE_CODE) MAN_SE_CODE_NM
		      ,A.MAN_NAME
		      ,A.MAN_DESC
		      ,A.ETC
		      ,TO_CHAR(TO_DATE(A.CRT_DTTM,'YYYYMMDDHH24MISS'), 'YYYY-MM-DD HH24:MI') CRT_DTTM
		      ,A.CRT_USR_ID
		      ,FN_GET_USR_NM(A.CRT_USR_ID) CRT_USR_NM
		      ,A.MOD_USR_ID
		      ,TO_CHAR(TO_DATE(A.MOD_DTTM,'YYYYMMDDHH24MISS'), 'YYYY-MM-DD HH24:MI') MOD_DTTM
		FROM SITE_MSFRTN_CNTR_MAN A, SNS_POST B, SNS_POST_USER C
		WHERE A.MANUAL_ID = B.TAR_OBJ_ID
		AND B.POST_ID = C.POST_ID
		AND B.POST_TP = 'MSFRTNMAN'
		AND C.USR_ID = #{tar_usr_id}
		AND (a.MAN_NAME like '%'|| #{search_text} ||'%')
		 ORDER BY a.crt_dttm desc
	)
WHERE RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
	</select>
	
	<select id="kr.co.i2talk.sns.listTotalSearchByMsfrtnPer"
		parameterType="Map"
		resultType="i2c.cmm.base.CommonResultMap">
/* kr.co.i2talk.sns.listTotalSearchByMsfrtnPer */
SELECT /** 개인임무유형. **/
	   *
FROM (
		SELECT COUNT(A.MANUAL_ID) OVER() TOTAL_CNT
			  ,ROW_NUMBER() OVER(ORDER BY A.CRT_DTTM DESC) RN
			  ,A.MANUAL_ID
		      ,A.MAN_TYPE_CODE
		      ,FN_GET_MSFRTN_CODE_NM(A.MAN_TYPE_CODE) MAN_TYPE_CODE_NM
		      ,A.MAN_SE_CODE
		      ,FN_GET_MSFRTN_CODE_NM(A.MAN_SE_CODE) MAN_SE_CODE_NM
		      ,A.MAN_NAME
		      ,A.MAN_DESC
		      ,A.ETC
		      ,TO_CHAR(TO_DATE(A.CRT_DTTM,'YYYYMMDDHH24MISS'), 'YYYY-MM-DD HH24:MI') CRT_DTTM
		      ,A.CRT_USR_ID
		      ,FN_GET_USR_NM(A.CRT_USR_ID) CRT_USR_NM
		      ,A.MOD_USR_ID
		      ,TO_CHAR(TO_DATE(A.MOD_DTTM,'YYYYMMDDHH24MISS'), 'YYYY-MM-DD HH24:MI') MOD_DTTM
		FROM SITE_MSFRTN_CNTR_MAN A, SNS_POST B, SNS_POST_USER C
		WHERE A.MANUAL_ID = B.TAR_OBJ_ID
		AND B.POST_ID = C.POST_ID
		AND B.POST_TP = 'MSFRTNPER'
		AND C.USR_ID = #{tar_usr_id}
		AND (a.MAN_NAME like '%'|| #{search_text} ||'%')
		 ORDER BY a.crt_dttm desc
	)
WHERE RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
	</select>
	
	<select id="kr.co.i2talk.sns.listTotalSearchByMsfrtn"
		parameterType="Map"
		resultType="i2c.cmm.base.CommonResultMap">
/* kr.co.i2talk.sns.listTotalSearchByMsfrtn */
SELECT /** 재난상황. **/
	   *
FROM (
		SELECT COUNT(A.MSFRTN_ID) OVER() TOTAL_CNT
			  ,ROW_NUMBER() OVER(ORDER BY A.CRT_DTTM DESC) RN
			  ,A.MSFRTN_ID
			  ,A.MSFRTN_CODE
		      ,FN_GET_MSFRTN_CODE_NM(A.MSFRTN_CODE) MSFRTN_CODE_NM
		      ,A.STTUS_CODE
		      ,FN_GET_MSFRTN_CODE_NM(A.STTUS_CODE) STTUS_CODE_NM		      
		      ,A.MSFRTN_NM		      
		      ,TO_CHAR(A.CRT_DTTM, 'YYYY-MM-DD HH24:MI') AS CRT_DTTM
		      ,FN_GET_USR_NM(A.USR_ID) AS USR_NM
		FROM SITE_MSFRTN A, SNS_POST B, SNS_POST_USER C
		WHERE A.MSFRTN_ID = B.TAR_OBJ_ID
		AND B.POST_ID = C.POST_ID
		AND B.POST_TP = 'MSFRTN'
		AND C.USR_ID = #{tar_usr_id}
		AND (a.MSFRTN_NM like '%'|| #{search_text} ||'%')
		 ORDER BY a.crt_dttm desc
	)
WHERE RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
	</select>
	
</mapper>
