<?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.admin">
<!-- 1. 추가  쿼리 메소드 작성 -->
	<select id="kr.co.i2talk.admin.listSnsCommonCode"
		parameterType="Map"
		resultType="i2c.cmm.base.CommonResultMap">
	/* kr.co.i2talk.admin.listSnsCommonCode */
SELECT
	*
FROM
(
	SELECT
		count(up_cd) over() total_cnt,
		row_number() over(order by decode(up_cd, 'ROOT', 0, 1), up_cd, srt_ord) rn,
		a.*
	FROM
	(
		SELECT
			UP_CD,
			(
				SELECT CD_NM FROM SNS_COMMON_CODE IT WHERE IT.UP_CD = 'ROOT' AND IT.CD = A.UP_CD
			) UP_CD_NM,
			CD,
			CD_NM,
			ADD_CD_NM,
			USE_YN,
			SRT_ORD,
			LEVEL LVL
		FROM
			SNS_COMMON_CODE A
		START WITH UP_CD = 'ROOT'
		CONNECT BY PRIOR CD = UP_CD
		ORDER SIBLINGS BY CD
	) a
	WHERE 1=1
	<if test="@i2c.cmm.util.StringUtil@isNotEmpty(up_cd)">
		and up_cd = #{up_cd}
	</if>
	<if test="@i2c.cmm.util.StringUtil@isNotEmpty(cd_nm)">
		and cd_nm like '%' || #{cd_nm} || '%'
	</if>
	order by decode(up_cd, 'ROOT', 0, 1), up_cd, srt_ord
)
WHERE 1=1
/* and up_cd = 'ROOT' */
	<if test="@i2c.cmm.util.StringUtil@isNotEmpty(page)">
	and RN BETWEEN ((#{page} - 1) * #{limit}) + 1 AND (#{page} * #{limit})
	</if>
	</select>

	<select id="kr.co.i2talk.admin.viewSnsCommonCode"
		parameterType="Map"
		resultType="i2c.cmm.base.CommonResultMap">
	/* kr.co.i2talk.admin.viewSnsCommonCode */
SELECT
	UP_CD,
	(
		SELECT CD_NM FROM SNS_COMMON_CODE IT WHERE IT.UP_CD = 'ROOT' AND IT.CD = A.UP_CD
	) UP_CD_NM,
	CD,
	CD_NM,
	ADD_CD_NM,
	USE_YN,
	SRT_ORD
FROM
	SNS_COMMON_CODE A
WHERE 1=1
	AND UP_CD = #{up_cd}
	AND CD = #{cd}

	</select>

	<insert id="kr.co.i2talk.admin.insertSnsCommonCode"
		parameterType="Map">
/* kr.co.i2talk.admin.insertSnsCommonCode */
INSERT INTO sns_common_code (
	cd, cd_nm, add_cd_nm, use_yn, srt_ord,
	up_cd)
VALUES (
	#{cd}, #{cd_nm}, #{add_cd_nm}, #{use_yn}, #{srt_ord},
	#{up_cd})
	</insert>

	<update id="kr.co.i2talk.admin.updateSnsCommonCode"
		parameterType="Map">
/* kr.co.i2talk.admin.updateSnsCommonCode */
UPDATE sns_common_code SET
	cd_nm = #{cd_nm},
	add_cd_nm = #{add_cd_nm},
	use_yn = #{use_yn},
	srt_ord = #{srt_ord}
WHERE
	cd = #{cd}
and up_cd = #{up_cd}
	</update>

	<delete id="kr.co.i2talk.admin.deleteSnsCommonCode"
		parameterType="Map">
/* kr.co.i2talk.admin.deleteSnsCommonCode */
DELETE FROM sns_common_code
WHERE up_cd = #{up_cd}
AND cd = #{cd}
	</delete>

<!-- 1. 추가  쿼리 메소드 작성 끝 -->

<!-- 2. 추가  쿼리 메소드 작성 -->

	<delete id="kr.co.i2talk.admin.deleteSnsCommonCodeByUpCd"
		parameterType="Map">
/* kr.co.i2talk.admin.deleteSnsCommonCodeByUpCd */
DELETE FROM sns_common_code WHERE
	up_cd = #{cd}
	</delete>

<!-- 2. 추가  쿼리 메소드 작성 끝 -->

</mapper>
