<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.i2sema.rcs.img.dao.ImgDAO">

	<resultMap    id="imgVO"  type="com.i2sema.rcs.img.vo.ImgVO" />
	<resultMap    id="imgListVO"  type="com.i2sema.rcs.img.vo.ImgListVO" />
	
	<resultMap id="listImgByApiMap" type="map">
		<result property="seq" javaType="java.lang.Long" column="seq" />
		<result property="imgName" javaType="string" column="imgName" />
		<result property="imgKey" javaType="string" column="imgKey" />
		<result property="rgstDate" javaType="java.time.LocalDateTime" column="rgstDate" />
		<result property="modiDate" javaType="java.time.LocalDateTime" column="modiDate" />
		<result property="imgWidth" javaType="int" column="imgWidth" />
		<result property="imgHeight" javaType="int" column="imgHeight" />
	</resultMap>
	
    <parameterMap id="imgVO"  type="com.i2sema.rcs.img.vo.ImgVO" />
    <parameterMap id="imgListVO"  type="com.i2sema.rcs.img.vo.ImgListVO" />
    
    <select id="listImgCount" parameterMap="imgListVO" resultType="int">
        <![CDATA[
			/* [com.i2sema.rcs.img.dao.ImgDAO.listImgCount] 이미지 목록 개수 */
			SELECT	COUNT(*) AS cnt
			FROM 	rcs_biz_img
			WHERE	1 = 1
							AND use_at = 'Y'
		]]>
		<if test="mberNo != null and mberNo !=''">
			<![CDATA[
					AND mber_no = #{mberNo}
			]]>
		</if>
		<if test="orgId != null and orgId !=''">
			<![CDATA[
					AND org_id = #{orgId}
			]]>
		</if>
		<if test="brandSeq != null and brandSeq!=''">
			<![CDATA[
					AND brand_seq = #{brandSeq}
			]]>
		</if>
		<if test="searchSdate != null and searchSdate != '' and searchEdate != null and searchEdate != ''">
			<![CDATA[
					AND rgst_date BETWEEN #{searchSdate} AND #{searchEdate}
			]]> 
		</if> 
     </select>   
    
	<select id="listImg" parameterMap="imgListVO" resultMap="imgListVO">
		<![CDATA[
			/* [com.i2sema.rcs.img.dao.ImgDAO.listImg] 이미지 목록 */
			SELECT			*
			FROM				(
									SELECT		t.seq,
									     				t.mber_no AS mberNo,
									     				t.org_id AS orgId,
									     				m.cmpnm AS cmpnName,
									     				b.brand_name AS brandName,
									     				t.img_name AS imgName,
									     				t.img_key AS imgKey,
									     				t.img_path AS imgPath,
									     				t.rgst_date AS rgstDate,
									     				t.modi_date AS modiDate,
									     				t.brand_seq AS brandSeq
									FROM			rcs_biz_img t
														INNER JOIN add_mber_info m
															ON t.mber_no = m.mber_no
																AND m.org_id is null
														INNER JOIN rcs_brand b
															ON t.brand_seq = b.seq
									WHERE		1=1
														AND t.use_at = 'Y'					
		]]>
								<if test="mberNo != null and mberNo !=''">
									<![CDATA[
														AND b.mber_no = #{mberNo}
									]]>
								</if>
								<if test="orgId != null and orgId !=''">
									<![CDATA[
														AND b.org_id = #{orgId}
									]]>
								</if>
								<if test="brandSeq != null and brandSeq!=''">
									<![CDATA[
											AND brand_seq = #{brandSeq}
									]]>
								</if>
								<if test="searchSdate != null and searchSdate != '' and searchEdate != null and searchEdate != ''">
									<![CDATA[
											AND rgst_date BETWEEN #{searchSdate} AND #{searchEdate}
									]]> 
								</if> 				
		<![CDATA[
			) B
			ORDER BY		seq DESC
			LIMIT #{firstIndex}, #{recordCountPerPage}
		]]>
	</select>
	
	<insert id="insertImg" parameterMap="imgVO">
		<![CDATA[
    		/* [com.i2sema.rcs.img.dao.ImgDAO.insertImg] 이미지 등록*/
   			INSERT INTO		rcs_biz_img
   			(
   				mber_no,
   				org_id,
   				brand_seq,
   				img_name,
   				img_real_name,
   				img_key,
   				img_path,
   				file_size,
   				img_width,
   				img_height,
   				expr_date,
   				use_at
   			)
			VALUES
			(
				#{mberNo},
				#{orgId},
				#{brandSeq},
				#{imgName},
				#{imgRealName},
				#{imgKey},
				#{imgPath},
				#{fileSize},
				#{imgWidth},
				#{imgHeight},
				#{exprDate},
				'Y'
			)
		]]>
	</insert>
	
	<select id="selectImg" parameterType="int" resultMap="imgVO">
		<![CDATA[
			/* [com.i2sema.rcs.img.dao.ImgDAO.listImg] 이미지 조회 */
			SELECT		t.seq,
			     				t.img_name AS imgName,
			     				t.img_real_name AS imgRealName,
			     				t.img_key AS imgKey,
			     				t.img_path AS imgPath
			FROM		rcs_biz_img t
			WHERE	t.seq = #{seq}
		]]>
	</select>
	
	<delete id="deleteImg" parameterType="int">
		<![CDATA[
			/* [com.i2sema.rcs.img.dao.ImgDAO.deleteImg] 이미지 삭제 */
			DELETE	
			FROM	rcs_biz_img
			WHERE	seq = #{seq}
		]]>
	</delete>
	
	<select id="listImgBatch" parameterType="java.time.LocalDateTime" resultMap="imgVO">
		<![CDATA[
			/* [com.i2sema.rcs.brand.dao.BrandDAO.listImgBatch] 이미지 목록 (배치용) */
			SELECT		seq AS seq,
								img_key AS imgKey,
								img_path AS imgPath
			FROM			rcs_biz_img
			WHERE		1 = 1
								AND use_at = 'Y'
								AND expr_date < #{exprDate}
		]]>
	</select>
	
	<update id="updateExprImg" parameterMap="imgVO">
		<![CDATA[
    		/* [com.i2sema.rcs.img.dao.ImgDAO.updateExprImg] 이미지 만료 연장 */
   			UPDATE		rcs_biz_img
   			SET
				   				img_key = #{imgKey},
				   				expr_date = #{exprDate},
								modi_date = SYSDATE() 
			WHERE		seq = #{seq}				
		]]>
	</update>
	
	<select id="listImgByAPI" parameterType="map" resultMap="listImgByApiMap">
		<![CDATA[
				/* [com.i2sema.rcs.img.dao.ImgDAO.listImgByAPI] 이미지 목록 (API) */
				
				SELECT		t.seq,
				     				t.mber_no AS mberNo,
				     				t.org_id AS orgId,
				     				t.img_name AS imgName,
				     				t.img_key AS imgKey,
				     				t.img_path AS imgPath,
				     				t.rgst_date AS rgstDate,
				     				t.modi_date AS modiDate,
				     				t.brand_seq AS brandSeq,
				     				t.img_width AS imgWidth,
				     				t.img_height AS imgHeight
				FROM			rcs_biz_img t
				WHERE		1=1
									AND t.use_at = 'Y'
									AND t.brand_seq = #{brandSeq}
			]]>
	</select>
</mapper>