<?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="i2c.biz.search.dao.SearchDAO">

	<select id="listTotalSearchByUser" parameterType="Map" resultType="i2c.cmm.base.CommonResultMap">
	/* i2c.biz.search.dao.sql.SearchDAO.xml 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
				 , NVL(A.TEL_NUM,'') TEL_NUM
				 , NVL(A.PHN_NUM,'') PHN_NUM 
				 , NVL(A.EMAIL,'') 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.APPROVAL = 'Y'
				AND a.use_stop_yn = 'N' 
				AND a.usr_nm like '%'|| #{search_text} ||'%'
		)
	WHERE RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
	</select>
	
	<select id="listTotalSearchByGroup" parameterType="Map" resultType="i2c.cmm.base.CommonResultMap">
	/* i2c.biz.search.dao.sql.SearchDAO.xml listTotalSearchByGroup*/
	SELECT 
		   a.TOTAL_CNT
		 , a.RN
		 , a.grp_id
		 , a.grp_nm
		 , a.grp_tp
		 , a.open_yn
		 , a.grp_intro
		 , a.crt_dttm
		 , 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} ||'%'
				OR a.GRP_INTRO like '%'|| #{search_text} ||'%'
				OR (SELECT FN_GET_USR_NM(USR_ID) FROM SNS_USERS_BY_GROUP IT WHERE IT.GRP_ID = A.GRP_ID AND IT.ADMIN_YN = 'Y' AND ROWNUM = 1) LIKE '%' || #{search_text} || '%'
			ORDER BY a.grp_nm asc
		) a
	WHERE a.RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
	</select>
	

	<select id="listTotalSearchByConference" parameterType="Map" resultType="i2c.cmm.base.CommonResultMap">
	/* i2c.biz.search.dao.sql.SearchDAO.xml listTotalSearchByConference*/
	SELECT 
		   *
	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 TO_CHAR(SYSDATE, 'yyyymmddHH24mi') > (a.cfrc_dt || a.end_tm) then '종료'
							when TO_CHAR(SYSDATE, 'yyyymmddHH24mi') > (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 and usr_tp = 'REFE') mem_cnt
			  FROM sns_conference a, sns_post b
			WHERE a.cfrc_id = b.tar_obj_id
			AND b.post_tp = 'CFRC'
			AND b.post_id IN (
				SELECT SPU.POST_ID
				FROM SNS_POST_USER SPU
				WHERE SPU.POST_ID = B.POST_ID
				AND SPU.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="listTotalSearchByFile" parameterType="Map" resultType="i2c.cmm.base.CommonResultMap">
	/* i2c.biz.search.dao.sql.SearchDAO.xml 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="listTotalSearchByNotice" parameterType="Map" resultType="i2c.cmm.base.CommonResultMap">
	/* i2c.biz.search.dao.sql.SearchDAO.xml listTotalSearchByNotice*/
	SELECT * FROM 
	(
		SELECT 
			ALL_LIST.*,
	        COUNT(NOTICE_ID) OVER() TOTAL_CNT,
	        ROW_NUMBER() OVER(ORDER BY UPDATE_DE DESC) RN
		FROM 
		(
				SELECT 
					NOTICE_ID
					, SUBJECT				
					, INQUERY
					, CREATE_ID
					, TO_CHAR(CREATE_DE, 'YYYY-MM-DD') CREATE_DE
					, UPDATE_DE
				FROM NOTICE
				WHERE NOTICE_RESCROM_TYPE = #{notice_rescrom_type}			
				AND (SUBJECT LIKE '%'|| #{search_text} ||'%' OR CONTENTS LIKE '%'|| #{search_text} ||'%')
				<if test='notice_rescrom_type == "N" and notice_target_use == "Y"'>
				  AND NOTICE_TARGET = 'N'		
				UNION ALL
				SELECT
					  NOTICE_ID
			          , SUBJECT				
			          , INQUERY
			          , CREATE_ID
			          , TO_CHAR(CREATE_DE, 'YYYY-MM-DD') CREATE_DE
			          , UPDATE_DE
				 FROM NOTICE NT
				 WHERE 1=1			
				 AND NOTICE_RESCROM_TYPE = #{notice_rescrom_type}
				 AND NOTICE_TARGET = 'Y'
				 AND NOTICE_ID IN ( SELECT TAR_OBJ_ID  
			                          FROM SNS_POST SP, SNS_POST_USER SPU 
			                         WHERE NT.NOTICE_ID = SP.TAR_OBJ_ID
			                           AND SP.POST_ID = SPU.POST_ID 
			                           AND SPU.USR_ID = #{tar_usr_id})	
			     AND (SUBJECT LIKE '%'|| #{search_text} ||'%' OR CONTENTS LIKE '%'|| #{search_text} ||'%')
				</if>			
		) ALL_LIST
	)
	WHERE RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
	</select>
	
	
	<select id="listTotalSearchByFaq" parameterType="Map" resultType="i2c.cmm.base.CommonResultMap">
	/* i2c.biz.search.dao.sql.SearchDAO.xml listTotalSearchByFaq*/
	SELECT 
		   *
	FROM (
			SELECT COUNT(FAQ_ID) OVER() TOTAL_CNT
				, ROW_NUMBER() OVER(ORDER BY UPDATE_DE DESC) RN
				, FAQ_ID
				, SUBJECT				
				, INQUERY
				, TO_CHAR(CREATE_DE, 'YYYY-MM-DD') CREATE_DE
			  FROM FAQ
			WHERE SUBJECT LIKE '%'|| #{search_text} ||'%'
			OR QUESTION LIKE '%' || #{search_text} || '%'
		)
	WHERE RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
	</select>
	
	<select id="listTotalSearchByBsns" parameterType="Map" resultType="i2c.cmm.base.CommonResultMap">
	/* i2c.biz.search.dao.sql.SearchDAO.xml listTotalSearchByBsns*/
	SELECT 
		   *
	FROM (
			 SELECT   
			 		  COUNT(SB.SPORT_BSNS_ID) OVER() TOTAL_CNT
				 	, ROW_NUMBER() OVER(ORDER BY SB.UPDATE_DE DESC) RN  
				 	, SPORT_BSNS_ID                    
                    , SB.SPORT_BSNS_NM             
                    , (SELECT SCC.CD_NM 
                       FROM SNS_COMMON_CODE SCC 
                       WHERE SCC.UP_CD = 'PROGRESS_STEP' 
                       AND SCC.CD    = SB.PROGRESS_STEP) PROGRESSSTEPNM
                    , SB.CNTRCT_START_DE         /* 계약일 */
                    , SB.CNTRCT_END_DE           /* 종료일 */                                      
                 FROM SPORT_BSNS SB
			WHERE SB.SPORT_BSNS_NM LIKE '%'|| #{search_text} ||'%'
		)
	WHERE RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
	</select>
	
	<select id="listTotalSearchByNews" parameterType="Map" resultType="i2c.cmm.base.CommonResultMap">
	/* i2c.biz.search.dao.sql.SearchDAO.xml listTotalSearchByNews*/
	SELECT 
		   *
	FROM (
			SELECT COUNT(MMNWS_ID) OVER() TOTAL_CNT
				, ROW_NUMBER() OVER(ORDER BY NS.MMNWS_DE DESC) RN
				,MMNWS_ID MMNWSID
				,NS.MSCMNC_ID MSCMNCID
				,ARTICL_SUBJECT ARTICLSUBJECT
				,ARTICL_LINK ARTICLLINK	
				,MMNWS_DE MMNWSDE
				,TO_CHAR(NS.CREATE_DE, 'YYYY-MM-DD') CREATEDE
				,CASE WHEN NS.INSERT_GUBUN = '1' THEN MC.MSCMNC_NM ELSE NS.MSCMNC_NM END MSCMNCNM
				,MC.LINK
				,FN_GET_IMG_NM('mscmnc','',MC.IMG_S) LOGOIMGS
				,NS.INSERT_GUBUN INSERTGUBUN
			  FROM MMNWS NS
			  INNER JOIN MSCMNC MC ON NS.MSCMNC_ID = MC.MSCMNC_ID
			WHERE 
				ARTICL_SUBJECT LIKE '%' || #{search_text} || '%'
		)
	WHERE RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
	</select>
</mapper>
