|
|
@@ -3784,4 +3784,269 @@
|
|
|
AND PRODUCT_NO IS NOT NULL
|
|
|
</select>
|
|
|
|
|
|
+
|
|
|
+ <!-- 컨텐츠카테고리상품 목록 (JMH 이선미매니저 테스트 요청) -->
|
|
|
+ <select id="getContentsCategoryGoodsList_TEST" parameterType="Cate4Srch" resultType="Goods">
|
|
|
+ WITH TAB_GOODS AS (
|
|
|
+ SELECT
|
|
|
+ <if test="contentsLoc == 'SMM003' or contentsLoc == 'SBM007' or contentsLoc == 'SBM008' or contentsLoc == 'SBM009' or contentsLoc == 'SBM017' or contentsLoc == 'SBM018' or contentsLoc == 'SBM019' or contentsLoc == 'SOM003' or contentsLoc == 'SOM002'">
|
|
|
+ DISTINCT
|
|
|
+ </if>
|
|
|
+ G.BRAND_GROUP_NM /*브랜드그룹명*/
|
|
|
+ , G.GOODS_CD /*상품코드*/
|
|
|
+ , G.GOODS_NM /*상품명*/
|
|
|
+ , G.GOODS_GB /*상품구분*/
|
|
|
+ , G.SELF_GOODS_YN /*자사상품여부*/
|
|
|
+ , 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.DISP_ORD
|
|
|
+ <if test="contentsLoc == 'SCM003' and pageGb != null and pageGb == 'BEST'">
|
|
|
+ , G.SELL_WEEK_QTY
|
|
|
+ </if>
|
|
|
+ FROM (
|
|
|
+ SELECT
|
|
|
+ <if test="contentsLoc == 'SCM003' and pageGb != null and pageGb == 'BEST'">
|
|
|
+ DISTINCT
|
|
|
+ </if>
|
|
|
+ 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.SELF_GOODS_YN /*자사상품여부*/
|
|
|
+ , 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.UPD_DT
|
|
|
+ <choose>
|
|
|
+ <when test="contentsLoc == 'SMM009' or contentsLoc == 'SMM007' or contentsLoc == 'SMM012'">
|
|
|
+ , CT.DISP_ORD
|
|
|
+ </when>
|
|
|
+ <when test="contentsLoc == 'SMM003' or contentsLoc == 'SBM007' or contentsLoc == 'SBM008' or contentsLoc == 'SBM009' or contentsLoc == 'SBM017' or contentsLoc == 'SBM018' or contentsLoc == 'SBM019' or contentsLoc == 'SOM003' or contentsLoc == 'SCM002' or contentsLoc == 'SCM003' or contentsLoc == 'SOM002'">
|
|
|
+ , CTG.DISP_ORD
|
|
|
+ </when>
|
|
|
+ <otherwise>
|
|
|
+ , CG.DISP_ORD
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ <if test="contentsLoc == 'SCM003' and pageGb != null and pageGb == 'BEST'">
|
|
|
+ , GS.SELL_WEEK_QTY
|
|
|
+ , CT.CATE_NO AS CATE1_NO
|
|
|
+ </if>
|
|
|
+ <choose>
|
|
|
+ <when test="contentsLoc == 'SMM009' or contentsLoc == 'SMM007' or contentsLoc == 'SMM012' or contentsLoc == 'SMM003' or contentsLoc == 'SBM007' or contentsLoc == 'SBM008' or contentsLoc == 'SBM009' or contentsLoc == 'SBM017' or contentsLoc == 'SBM018' or contentsLoc == 'SBM019' or contentsLoc == 'SOM003' or contentsLoc == 'SCM002' or contentsLoc == 'SCM003' or contentsLoc == 'SOM002'"> <!-- md추천 -->
|
|
|
+ FROM TB_CONTENTS CT
|
|
|
+ , TB_CONTENTS_GOODS CTG
|
|
|
+ , TB_GOODS G
|
|
|
+ , TB_GOODS_STOCK S
|
|
|
+ , TB_BRAND B
|
|
|
+ , TB_BRAND_GROUP BG
|
|
|
+ <if test="contentsLoc == 'SCM003' and pageGb != null and pageGb == 'BEST'">
|
|
|
+ , TB_GOODS_SUMMARY GS
|
|
|
+ </if>
|
|
|
+ WHERE 1=1
|
|
|
+ AND CT.CONTENTS_LOC = CTG.CONTENTS_LOC
|
|
|
+ AND CT.DISP_ORD = CTG.CONTENTS_SQ
|
|
|
+ <if test="contentsLoc == 'SCM003' or contentsLoc == 'SCM002'">
|
|
|
+ AND CT.CATE_NO = CTG.CATE_NO
|
|
|
+ </if>
|
|
|
+ <if test="contentsLoc == 'SCM003' and pageGb != null and pageGb == 'BEST'"> <!-- 베스트 -->
|
|
|
+ AND CTG.GOODS_CD = GS.GOODS_CD
|
|
|
+ </if>
|
|
|
+ AND CTG.GOODS_CD = G.GOODS_CD
|
|
|
+ AND CTG.GOODS_CD = S.GOODS_CD
|
|
|
+ AND G.BRAND_CD = B.BRAND_CD
|
|
|
+ AND B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
|
|
|
+ AND CT.CONTENTS_LOC = #{contentsLoc}
|
|
|
+ <if test="contentsLoc == 'SMM009' or contentsLoc == 'SMM012'">
|
|
|
+ AND CTG.CONTENTS_SQ = #{dispOrd}
|
|
|
+ </if>
|
|
|
+ <if test="contentsLoc == 'SMM007'">
|
|
|
+ AND CT.BRAND_GROUP_NO = #{brandGroupNo}
|
|
|
+ </if>
|
|
|
+ <if test="contentsLoc == 'SMM003' or contentsLoc == 'SBM007' or contentsLoc == 'SBM008' or contentsLoc == 'SBM009' or contentsLoc == 'SBM017' or contentsLoc == 'SBM018' or contentsLoc == 'SBM019' or contentsLoc == 'SOM003' or contentsLoc == 'SCM002' or contentsLoc == 'SCM003' or contentsLoc == 'SOM002'">
|
|
|
+ <if test="brandGroupNo != null and brandGroupNo != ''">
|
|
|
+ AND CTG.BRAND_GROUP_NO = #{brandGroupNo}
|
|
|
+ </if>
|
|
|
+ AND CT.CONTENTS_SQ IN ( SELECT TMP.CONTENTS_SQ FROM (SELECT A.CONTENTS_SQ FROM TB_CONTENTS A WHERE 1=1 AND A.CONTENTS_LOC = #{contentsLoc} AND NOW() BETWEEN A.DISP_STDT AND A.DISP_EDDT
|
|
|
+ <if test="brandGroupNo != null and brandGroupNo != ''">
|
|
|
+ AND A.BRAND_GROUP_NO = #{brandGroupNo}
|
|
|
+ </if>
|
|
|
+ <if test="contentsLoc=='SCM003'">
|
|
|
+ <if test="cateNo != null and cateNo != ''">
|
|
|
+ AND A.CATE_NO = #{cateNo}
|
|
|
+ </if>
|
|
|
+ </if>
|
|
|
+ <if test="contentsLoc=='SCM002'">
|
|
|
+ <if test="cate1No != null and cate1No != ''">
|
|
|
+ AND A.CATE_NO = #{cate1No}
|
|
|
+ </if>
|
|
|
+ </if>
|
|
|
+ <if test="pageGb != null and pageGb == 'BEST'">
|
|
|
+ <if test="cate1No != null and cate1No != ''">
|
|
|
+ AND A.CATE_NO = #{cate1No}
|
|
|
+ </if>
|
|
|
+ </if>
|
|
|
+ AND A.USE_YN = 'Y' ORDER BY A.DISP_ORD
|
|
|
+ LIMIT 1
|
|
|
+ ) AS TMP
|
|
|
+ )
|
|
|
+ </if>
|
|
|
+ AND NOW() BETWEEN CT.DISP_STDT AND CT.DISP_EDDT
|
|
|
+ </when>
|
|
|
+ <otherwise>
|
|
|
+ FROM TB_CATE_4SRCH C4
|
|
|
+ , TB_CATE_GOODS CG
|
|
|
+ , TB_GOODS G USE INDEX (`PRIMARY`, IX_GOODS_11)
|
|
|
+ , TB_GOODS_STOCK S
|
|
|
+ , TB_BRAND B
|
|
|
+ , TB_BRAND_GROUP BG
|
|
|
+ <if test="contentsLoc == 'SCM003'"> <!-- 베스트 -->
|
|
|
+ , 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 == 'SCM003'"> <!-- 베스트 -->
|
|
|
+ AND CG.GOODS_CD = GS.GOODS_CD
|
|
|
+ </if>
|
|
|
+ AND C4.SITE_CD = #{siteCd}
|
|
|
+ AND C4.CATE_GB = #{cateGb}
|
|
|
+ AND C4.CATE_TYPE = 'G031_20' /*컨텐츠카테고리*/
|
|
|
+ <choose>
|
|
|
+ <when test="pageGb != null and pageGb == 'BEST'">
|
|
|
+ <if test="cate1No != null and cate1No != ''">
|
|
|
+ AND C4.CATE1_NO = #{cate1No}
|
|
|
+ </if>
|
|
|
+ </when>
|
|
|
+ <otherwise>
|
|
|
+ AND C4.CATE1_NO = #{cate1No}
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ AND C4.CONTENTS_LOC = #{contentsLoc}
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/
|
|
|
+ AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/
|
|
|
+ AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*판매기간*/
|
|
|
+ AND S.STOCK_QTY <![CDATA[>]]> 0 /*재고있는상품*/
|
|
|
+ AND B.USE_YN = 'Y'
|
|
|
+ AND BG.USE_YN = 'Y'
|
|
|
+ <if test="pageGb != null and pageGb == 'BEST'">
|
|
|
+ ORDER BY CT.CATE_NO
|
|
|
+ LIMIT 100
|
|
|
+ </if>
|
|
|
+ ) G
|
|
|
+ WHERE 1=1
|
|
|
+ <choose>
|
|
|
+ <when test="contentsLoc == 'SCM013'"><!-- 베스트 -->
|
|
|
+ ORDER BY G.SELL_WEEK_QTY DESC , G.GOODS_CD
|
|
|
+ </when>
|
|
|
+ <when test="contentsLoc == 'SMM009' or contentsLoc == 'SMM007' or contentsLoc == 'SMM012'"> <!-- md추천 -->
|
|
|
+ </when>
|
|
|
+ <when test="contentsLoc == 'SCM002' or (contentsLoc == 'SCM003' and pageGb == null)"> <!-- md추천 -->
|
|
|
+ ORDER BY G.DISP_ORD ,G.UPD_DT DESC, G.CURR_PRICE DESC, G.GOODS_CD ASC
|
|
|
+ </when>
|
|
|
+ <when test="contentsLoc == 'SCM003' and pageGb != null and pageGb == 'BEST'">
|
|
|
+ ORDER BY G.CATE1_NO, G.DISP_ORD ,G.UPD_DT DESC, G.CURR_PRICE DESC, G.GOODS_CD ASC
|
|
|
+ </when>
|
|
|
+ <otherwise>
|
|
|
+ ORDER BY G.DISP_ORD , G.REG_DT DESC , G.GOODS_CD
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ <if test="pageable != null and pageable.endRow != null and pageable.endRow > 0">
|
|
|
+ LIMIT #{pageable.limitStartRow} , #{pageable.pageSize}
|
|
|
+ </if>
|
|
|
+ <if test="maxRow != null and maxRow !=''">
|
|
|
+ LIMIT #{maxRow}
|
|
|
+ </if>
|
|
|
+ )
|
|
|
+ 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 /*현재판매가*/
|
|
|
+ , (SELECT SYS_IMG_NM FROM TB_GOODS_IMG X WHERE X.GOODS_CD = G.GOODS_CD AND IF(G.SELF_GOODS_YN= 'N', 'XX', G.MAIN_COLOR_CD) = X.COLOR_CD AND DEFAULT_IMG_YN = 'Y' LIMIT 1) AS SYS_IMG_NM
|
|
|
+ , (SELECT SYS_IMG_NM FROM TB_GOODS_IMG X WHERE X.GOODS_CD = G.GOODS_CD AND IF(G.SELF_GOODS_YN= 'N', 'XX', G.MAIN_COLOR_CD) = X.COLOR_CD AND MOUSEOVER_IMG_YN = 'Y' LIMIT 1) AS SYS_IMG_NM2
|
|
|
+ , (
|
|
|
+ SELECT GROUP_CONCAT(CONCAT(VIDEO_GB,':',KMC_KEY) ORDER BY NUMB SEPARATOR ',')
|
|
|
+ FROM (
|
|
|
+ SELECT GV.VIDEO_GB
|
|
|
+ , GV.KMC_KEY
|
|
|
+ , GV.REG_DT
|
|
|
+ , RANK() OVER(ORDER BY GV.REG_DT, GV.KMC_KEY) AS NUMB
|
|
|
+ FROM TB_GOODS_VIDEO GV
|
|
|
+ WHERE GV.GOODS_CD = G.GOODS_CD
|
|
|
+ AND GV.DISP_YN = 'Y'
|
|
|
+ AND GV.KMC_KEY IS NOT NULL
|
|
|
+ ) Z
|
|
|
+ WHERE NUMB <![CDATA[<=]]> 2
|
|
|
+ ) AS VIDEOS
|
|
|
+ , (
|
|
|
+ SELECT GROUP_CONCAT(DISTINCT CONCAT(C.COLOR_CD,':',CC.CD_DESC) ORDER BY CC.DISP_ORD SEPARATOR ',') AS COLOR_CHIPS
|
|
|
+ FROM TB_OPTION O
|
|
|
+ , TB_COLOR C
|
|
|
+ , TB_COMMON_CODE CC
|
|
|
+ WHERE O.OPT_CD1 = C.COLOR_CD
|
|
|
+ AND C.COLOR_GRP_CD = CC.CD
|
|
|
+ AND O.GOODS_CD = G.GOODS_CD
|
|
|
+ AND O.DISP_YN = 'Y'
|
|
|
+ AND C.USE_YN = 'Y'
|
|
|
+ AND CC.USE_YN = 'Y'
|
|
|
+ ) AS COLOR_CHIPS /*컬러칩*/
|
|
|
+ , (
|
|
|
+ SELECT GROUP_CONCAT(CONCAT(BENEFIT_GB,':',BENEFIT_NM) ORDER BY NUMB SEPARATOR ',')
|
|
|
+ FROM (
|
|
|
+ SELECT GB.BENEFIT_GB
|
|
|
+ , CASE WHEN GB.BENEFIT_GB = '10' THEN '쿠폰할인'
|
|
|
+ WHEN GB.BENEFIT_GB = '20' THEN '무료배송'
|
|
|
+ WHEN GB.BENEFIT_GB = '30' THEN '사은품'
|
|
|
+ WHEN GB.BENEFIT_GB = '40' THEN '신상'
|
|
|
+ ELSE '총알배송' END AS BENEFIT_NM
|
|
|
+ , RANK() OVER(ORDER BY GB.BENEFIT_GB, GB.GOODS_CD) AS NUMB
|
|
|
+ FROM TB_GOODS_BENEFIT GB
|
|
|
+ WHERE GB.GOODS_CD = G.GOODS_CD
|
|
|
+ ) Z
|
|
|
+ ) AS ICON
|
|
|
+ <choose>
|
|
|
+ <when test="custNo != null and custNo > 0"> <!-- 로그인 했으면 -->
|
|
|
+ , IF(W.GOODS_CD IS NULL,'','likeit') AS LIKE_IT /*위시리스트담긴상품*/
|
|
|
+ </when>
|
|
|
+ <otherwise>
|
|
|
+ , '' AS LIKE_IT /*위시리스트담긴상품*/
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ FROM TAB_GOODS G
|
|
|
+ <if test="custNo != null and custNo > 0"> <!-- 로그인 했으면 -->
|
|
|
+ LEFT OUTER JOIN TB_WISHLIST W ON G.GOODS_CD = W.GOODS_CD
|
|
|
+ AND W.CUST_NO = #{custNo}
|
|
|
+ </if>
|
|
|
+ </select>
|
|
|
+
|
|
|
</mapper>
|