|
|
@@ -852,4 +852,283 @@
|
|
|
ORDER BY A.DISP_ORD DESC
|
|
|
</select>
|
|
|
|
|
|
+ <!-- 컨텐츠카테고리상품 목록 -->
|
|
|
+ <select id="getContentsCategoryGoodsList" parameterType="Cate4Srch" resultType="Goods">
|
|
|
+ /* TsfGoods.getContentsCategoryGoodsList */
|
|
|
+ WITH TAB_GOODS AS (
|
|
|
+ SELECT G.BRAND_GROUP_NM /*브랜드그룹명*/
|
|
|
+ , G.GOODS_CD /*상품코드*/
|
|
|
+ , G.GOODS_NM /*상품명*/
|
|
|
+ , G.GOODS_GB /*상품구분*/
|
|
|
+ , G.FOREIGN_BUY_YN /*해외구매대행여부*/
|
|
|
+ , G.PARALLEL_IMPORT_YN /*병행수입여부*/
|
|
|
+ , G.ORDER_MADE_YN /*주문제작여부*/
|
|
|
+ , G.GOODS_TNM /*상품타이틀명*/
|
|
|
+ , G.MAIN_COLOR_CD /*대표색상코드*/
|
|
|
+ , G.LIST_PRICE /*정상가(최초판매가)*/
|
|
|
+ , G.CURR_PRICE /*현재판매가*/
|
|
|
+ , G.REG_DT /*등록일시*/
|
|
|
+ , G.NUMB
|
|
|
+ FROM (
|
|
|
+ SELECT CASE WHEN BG.DISP_NM_LANG = 'EN' THEN
|
|
|
+ BG.BRAND_GROUP_ENM
|
|
|
+ ELSE
|
|
|
+ BG.BRAND_GROUP_KNM
|
|
|
+ END AS BRAND_GROUP_NM /*브랜드그룹명*/
|
|
|
+ , G.GOODS_CD /*상품코드*/
|
|
|
+ , G.GOODS_NM /*상품명*/
|
|
|
+ , G.GOODS_GB /*상품구분*/
|
|
|
+ , G.FOREIGN_BUY_YN /*해외구매대행여부*/
|
|
|
+ , G.PARALLEL_IMPORT_YN /*병행수입여부*/
|
|
|
+ , G.ORDER_MADE_YN /*주문제작여부*/
|
|
|
+ , G.GOODS_TNM /*상품타이틀명*/
|
|
|
+ , G.MAIN_COLOR_CD /*대표색상코드*/
|
|
|
+ , G.LIST_PRICE /*정상가(최초판매가)*/
|
|
|
+ , G.CURR_PRICE /*현재판매가*/
|
|
|
+ , G.REG_DT /*등록일시*/
|
|
|
+ <choose>
|
|
|
+ <when test="contentsLoc == 'SCM002'"> <!-- 베스트 -->
|
|
|
+ , ROW_NUMBER() OVER(ORDER BY GS.SELL_WEEK_QTY DESC
|
|
|
+ , G.GOODS_CD) AS NUMB
|
|
|
+ </when>
|
|
|
+ <otherwise>
|
|
|
+ , ROW_NUMBER() OVER(ORDER BY CG.DISP_ORD
|
|
|
+ , G.REG_DT DESC
|
|
|
+ , G.GOODS_CD) AS NUMB
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ FROM TB_CATE_4SRCH C4
|
|
|
+ , TB_CATE_GOODS CG
|
|
|
+ , TB_GOODS G
|
|
|
+ , TB_GOODS_STOCK S
|
|
|
+ , TB_BRAND B
|
|
|
+ , TB_BRAND_GROUP BG
|
|
|
+ <if test="contentsLoc == 'SCM002'"> <!-- 베스트 -->
|
|
|
+ , TB_GOODS_SUMMARY GS
|
|
|
+ </if>
|
|
|
+ WHERE C4.LEAF_CATE_NO = CG.CATE_NO
|
|
|
+ <choose>
|
|
|
+ <when test="brandGroupNo != null and brandGroupNo != ''">
|
|
|
+ AND CG.BRAND_GROUP_NO = #{brandGroupNo}
|
|
|
+ </when>
|
|
|
+ <otherwise>
|
|
|
+ AND CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ AND CG.GOODS_CD = G.GOODS_CD
|
|
|
+ AND CG.GOODS_CD = S.GOODS_CD
|
|
|
+ AND G.BRAND_CD = B.BRAND_CD
|
|
|
+ AND B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
|
|
|
+ <if test="contentsLoc == 'SCM002'"> <!-- 베스트 -->
|
|
|
+ AND CG.GOODS_CD = GS.GOODS_CD
|
|
|
+ </if>
|
|
|
+ AND C4.SITE_CD = #{siteCd}
|
|
|
+ AND C4.CATE_GB = #{cateGb}
|
|
|
+ AND C4.CATE_TYPE = 'G031_20' /*컨텐츠카테고리*/
|
|
|
+ AND C4.CATE1_NO = #{cate1No}
|
|
|
+ AND C4.CONTENTS_LOC = #{contentsLoc}
|
|
|
+ AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/
|
|
|
+ AND G.FORMAL_GB = 'G009_10' /*정상상품*/
|
|
|
+ AND S.STOCK_QTY <![CDATA[>]]> 0 /*재고있는상품*/
|
|
|
+ AND B.USE_YN = 'Y'
|
|
|
+ AND BG.USE_YN = 'Y'
|
|
|
+ ) G
|
|
|
+ WHERE G.NUMB <![CDATA[<=]]> #{maxRow}
|
|
|
+ )
|
|
|
+ , TAB_GOODS_IMG AS (
|
|
|
+ /* 상품의 이미지 */
|
|
|
+ SELECT G.BRAND_GROUP_NM
|
|
|
+ , G.GOODS_CD
|
|
|
+ , G.GOODS_NM
|
|
|
+ , G.GOODS_GB
|
|
|
+ , G.FOREIGN_BUY_YN
|
|
|
+ , G.PARALLEL_IMPORT_YN
|
|
|
+ , G.ORDER_MADE_YN
|
|
|
+ , G.GOODS_TNM
|
|
|
+ , G.MAIN_COLOR_CD
|
|
|
+ , G.LIST_PRICE
|
|
|
+ , G.CURR_PRICE
|
|
|
+ , G.REG_DT
|
|
|
+ , CASE WHEN GI.DEFAULT_YN = 'Y' THEN GI.SYS_IMG_NM ELSE NULL END AS SYS_IMG_NM
|
|
|
+ , CASE WHEN GI.MOUSEOVER_IMG_YN = 'Y' THEN GI.SYS_IMG_NM ELSE NULL END AS SYS_IMG_NM2
|
|
|
+ FROM TAB_GOODS G
|
|
|
+ , TB_GOODS_IMG GI
|
|
|
+ WHERE G.GOODS_CD = GI.GOODS_CD
|
|
|
+ AND G.MAIN_COLOR_CD = GI.COLOR_CD
|
|
|
+ )
|
|
|
+ , TAB_GOODS_VIDEO AS (
|
|
|
+ /* 상품의 동영상 목록 */
|
|
|
+ SELECT GOODS_CD
|
|
|
+ , MAX(CASE WHEN RNUM = 1 THEN VIDEO_GB END) AS VIDEO_GB_M
|
|
|
+ , MAX(CASE WHEN RNUM = 1 THEN VIDEO_VAL END) AS VIDEO_VAL_M
|
|
|
+ , MAX(CASE WHEN RNUM = 2 THEN VIDEO_GB END) AS VIDEO_GB_S
|
|
|
+ , MAX(CASE WHEN RNUM = 2 THEN VIDEO_VAL END) AS VIDEO_VAL_S
|
|
|
+ FROM (
|
|
|
+ SELECT G.GOODS_CD
|
|
|
+ , V.VIDEO_GB
|
|
|
+ , V.VIDEO_VAL
|
|
|
+ , VD.REG_DT
|
|
|
+ , RANK() OVER(PARTITION BY G.GOODS_CD ORDER BY VD.REG_DT) AS RNUM
|
|
|
+ FROM TAB_GOODS G
|
|
|
+ , TB_VIDEO_DISPLOC VD
|
|
|
+ , TB_VIDEO V
|
|
|
+ WHERE G.GOODS_CD = VD.DISPLOC_VAL
|
|
|
+ AND VD.VIDEO_SQ = V.VIDEO_SQ
|
|
|
+ AND VD.DISPLOC_GB = 'G' /*상품*/
|
|
|
+ AND VD.DISP_YN = 'Y'
|
|
|
+ AND V.DISP_YN ='Y'
|
|
|
+ ) Z
|
|
|
+ GROUP BY GOODS_CD
|
|
|
+ )
|
|
|
+ SELECT G.BRAND_GROUP_NM
|
|
|
+ , G.GOODS_CD
|
|
|
+ , FN_GET_GOODS_NM(G.GOODS_NM,G.GOODS_GB,G.FOREIGN_BUY_YN,G.PARALLEL_IMPORT_YN,G.ORDER_MADE_YN) AS GOODS_FULL_NM /*상품FULL명*/
|
|
|
+ , G.GOODS_TNM
|
|
|
+ , G.MAIN_COLOR_CD
|
|
|
+ , G.LIST_PRICE
|
|
|
+ , FN_GET_BENEFIT_PRICE(#{frontGb},G.GOODS_CD,G.CURR_PRICE,#{custGb}) AS CURR_PRICE /*현재판매가*/
|
|
|
+ , G.SYS_IMG_NM
|
|
|
+ , G.SYS_IMG_NM2
|
|
|
+ , GV.VIDEO_GB_M
|
|
|
+ , GV.VIDEO_VAL_M
|
|
|
+ , GV.VIDEO_GB_S
|
|
|
+ , GV.VIDEO_VAL_S
|
|
|
+ FROM TAB_GOODS_IMG G
|
|
|
+ LEFT OUTER JOIN TAB_GOODS_VIDEO GV ON G.GOODS_CD = GV.GOODS_CD
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <!-- 컨텐츠카테고리 신규상품 목록 -->
|
|
|
+ <select id="getContentsCategoryNewGoodsList" parameterType="Cate4Srch" resultType="Goods">
|
|
|
+ /* TsfGoods.getContentsCategoryNewGoodsList */
|
|
|
+ WITH TAB_GOODS AS (
|
|
|
+ SELECT G.BRAND_GROUP_NM /*브랜드그룹명*/
|
|
|
+ , G.GOODS_CD /*상품코드*/
|
|
|
+ , G.GOODS_NM /*상품명*/
|
|
|
+ , G.GOODS_GB /*상품구분*/
|
|
|
+ , G.FOREIGN_BUY_YN /*해외구매대행여부*/
|
|
|
+ , G.PARALLEL_IMPORT_YN /*병행수입여부*/
|
|
|
+ , G.ORDER_MADE_YN /*주문제작여부*/
|
|
|
+ , G.GOODS_TNM /*상품타이틀명*/
|
|
|
+ , G.MAIN_COLOR_CD /*대표색상코드*/
|
|
|
+ , G.LIST_PRICE /*정상가(최초판매가)*/
|
|
|
+ , G.CURR_PRICE /*현재판매가*/
|
|
|
+ , G.REG_DT /*등록일시*/
|
|
|
+ , G.NUMB
|
|
|
+ FROM (
|
|
|
+ SELECT CASE WHEN BG.DISP_NM_LANG = 'EN' THEN
|
|
|
+ BG.BRAND_GROUP_ENM
|
|
|
+ ELSE
|
|
|
+ BG.BRAND_GROUP_KNM
|
|
|
+ END AS BRAND_GROUP_NM /*브랜드그룹명*/
|
|
|
+ , G.GOODS_CD /*상품코드*/
|
|
|
+ , G.GOODS_NM /*상품명*/
|
|
|
+ , G.GOODS_GB /*상품구분*/
|
|
|
+ , G.FOREIGN_BUY_YN /*해외구매대행여부*/
|
|
|
+ , G.PARALLEL_IMPORT_YN /*병행수입여부*/
|
|
|
+ , G.ORDER_MADE_YN /*주문제작여부*/
|
|
|
+ , G.GOODS_TNM /*상품타이틀명*/
|
|
|
+ , G.MAIN_COLOR_CD /*대표색상코드*/
|
|
|
+ , G.LIST_PRICE /*정상가(최초판매가)*/
|
|
|
+ , G.CURR_PRICE /*현재판매가*/
|
|
|
+ , G.REG_DT /*등록일시*/
|
|
|
+ , ROW_NUMBER() OVER(ORDER BY G.REG_DT DESC
|
|
|
+ , G.GOODS_CD) AS NUMB
|
|
|
+ FROM TB_CATE_4SRCH C4
|
|
|
+ , TB_CATE_GOODS CG
|
|
|
+ , TB_GOODS G
|
|
|
+ , TB_GOODS_STOCK GS
|
|
|
+ , TB_BRAND B
|
|
|
+ , TB_BRAND_GROUP BG
|
|
|
+ WHERE C4.LEAF_CATE_NO = CG.CATE_NO
|
|
|
+ <choose>
|
|
|
+ <when test="brandGroupNo != null and brandGroupNo != ''">
|
|
|
+ AND CG.BRAND_GROUP_NO = #{brandGroupNo}
|
|
|
+ </when>
|
|
|
+ <otherwise>
|
|
|
+ AND CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ AND CG.GOODS_CD = G.GOODS_CD
|
|
|
+ AND CG.GOODS_CD = GS.GOODS_CD
|
|
|
+ AND G.BRAND_CD = B.BRAND_CD
|
|
|
+ AND B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
|
|
|
+ AND C4.SITE_CD = #{siteCd}
|
|
|
+ AND C4.CATE_GB = #{cateGb}
|
|
|
+ AND C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
|
|
|
+ AND C4.CATE1_NO = #{cate1No}
|
|
|
+ <if test="exceptGoodsArr != null and exceptGoodsArr.length > 0">
|
|
|
+ AND CG.GOODS_CD NOT IN
|
|
|
+ <foreach collection="exceptGoodsArr" item="item" index="index" open="(" close=")" separator=",">
|
|
|
+ #{item}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/
|
|
|
+ AND G.FORMAL_GB = 'G009_10' /*정상상품*/
|
|
|
+ AND GS.STOCK_QTY <![CDATA[>]]> 0 /*재고있는상품*/
|
|
|
+ AND B.USE_YN = 'Y'
|
|
|
+ AND BG.USE_YN = 'Y'
|
|
|
+ ) G
|
|
|
+ WHERE G.NUMB <![CDATA[<=]]> #{maxRow}
|
|
|
+ )
|
|
|
+ , TAB_GOODS_IMG AS (
|
|
|
+ /* 상품의 이미지 */
|
|
|
+ SELECT G.BRAND_GROUP_NM
|
|
|
+ , G.GOODS_CD
|
|
|
+ , G.GOODS_NM
|
|
|
+ , G.GOODS_GB
|
|
|
+ , G.FOREIGN_BUY_YN
|
|
|
+ , G.PARALLEL_IMPORT_YN
|
|
|
+ , G.ORDER_MADE_YN
|
|
|
+ , G.GOODS_TNM
|
|
|
+ , G.MAIN_COLOR_CD
|
|
|
+ , G.LIST_PRICE
|
|
|
+ , G.CURR_PRICE
|
|
|
+ , CASE WHEN GI.DEFAULT_YN = 'Y' THEN GI.SYS_IMG_NM ELSE NULL END AS SYS_IMG_NM
|
|
|
+ , CASE WHEN GI.MOUSEOVER_IMG_YN = 'Y' THEN GI.SYS_IMG_NM ELSE NULL END AS SYS_IMG_NM2
|
|
|
+ FROM TAB_GOODS G
|
|
|
+ , TB_GOODS_IMG GI
|
|
|
+ WHERE G.GOODS_CD = GI.GOODS_CD
|
|
|
+ AND G.MAIN_COLOR_CD = GI.COLOR_CD
|
|
|
+ )
|
|
|
+ , TAB_GOODS_VIDEO AS (
|
|
|
+ /* 상품의 동영상 목록 */
|
|
|
+ SELECT GOODS_CD
|
|
|
+ , MAX(CASE WHEN RNUM = 1 THEN VIDEO_GB END) AS VIDEO_GB_M
|
|
|
+ , MAX(CASE WHEN RNUM = 1 THEN VIDEO_VAL END) AS VIDEO_VAL_M
|
|
|
+ , MAX(CASE WHEN RNUM = 2 THEN VIDEO_GB END) AS VIDEO_GB_S
|
|
|
+ , MAX(CASE WHEN RNUM = 2 THEN VIDEO_VAL END) AS VIDEO_VAL_S
|
|
|
+ FROM (
|
|
|
+ SELECT G.GOODS_CD
|
|
|
+ , V.VIDEO_GB
|
|
|
+ , V.VIDEO_VAL
|
|
|
+ , VD.REG_DT
|
|
|
+ , RANK() OVER(PARTITION BY G.GOODS_CD ORDER BY VD.REG_DT) AS RNUM
|
|
|
+ FROM TAB_GOODS G
|
|
|
+ , TB_VIDEO_DISPLOC VD
|
|
|
+ , TB_VIDEO V
|
|
|
+ WHERE G.GOODS_CD = VD.DISPLOC_VAL
|
|
|
+ AND VD.VIDEO_SQ = V.VIDEO_SQ
|
|
|
+ AND VD.DISPLOC_GB = 'G' /*상품*/
|
|
|
+ AND VD.DISP_YN = 'Y'
|
|
|
+ AND V.DISP_YN ='Y'
|
|
|
+ ) Z
|
|
|
+ GROUP BY GOODS_CD
|
|
|
+ )
|
|
|
+ SELECT G.BRAND_GROUP_NM
|
|
|
+ , G.GOODS_CD
|
|
|
+ , FN_GET_GOODS_NM(G.GOODS_NM,G.GOODS_GB,G.FOREIGN_BUY_YN,G.PARALLEL_IMPORT_YN,G.ORDER_MADE_YN) AS GOODS_FULL_NM /*상품FULL명*/
|
|
|
+ , G.GOODS_TNM
|
|
|
+ , G.MAIN_COLOR_CD
|
|
|
+ , G.LIST_PRICE
|
|
|
+ , FN_GET_BENEFIT_PRICE(#{frontGb},G.GOODS_CD,G.CURR_PRICE,#{custGb}) AS CURR_PRICE /*현재판매가*/
|
|
|
+ , G.SYS_IMG_NM
|
|
|
+ , G.SYS_IMG_NM2
|
|
|
+ , GV.VIDEO_GB_M
|
|
|
+ , GV.VIDEO_VAL_M
|
|
|
+ , GV.VIDEO_GB_S
|
|
|
+ , GV.VIDEO_VAL_S
|
|
|
+ FROM TAB_GOODS_IMG G
|
|
|
+ LEFT OUTER JOIN TAB_GOODS_VIDEO GV ON G.GOODS_CD = GV.GOODS_CD
|
|
|
+ </select>
|
|
|
+
|
|
|
</mapper>
|