|
|
@@ -929,111 +929,150 @@
|
|
|
ORDER BY PD.DISP_ORD
|
|
|
</select>
|
|
|
|
|
|
- <!-- 기획전 상세 상품 목록 -->
|
|
|
+ <!-- 기획전코너상품 목록 -->
|
|
|
<select id="getPlanningCornerGoodsList" parameterType="Plan" resultType="Plan">
|
|
|
/* TsfPlanning.getPlanningCornerGoodsList */
|
|
|
SELECT Z.*
|
|
|
- ,100 - ROUND((Z.CURR_PRICE / Z.LIST_PRICE) * 100 ,0) AS DC_RATE
|
|
|
- FROM
|
|
|
- (
|
|
|
- WITH TAB_PLAN_GOODS AS (
|
|
|
- SELECT P.PLAN_SQ /*기획전번호*/
|
|
|
- , PD.CORNER_NM /*코너명*/
|
|
|
- , PG.DISP_ORD /*상품노출순서*/
|
|
|
- , 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 /*현재판매가*/
|
|
|
- , RANK() OVER(PARTITION BY P.PLAN_SQ
|
|
|
- ORDER BY PG.DISP_ORD
|
|
|
- , PG.GOODS_CD) AS NUMB
|
|
|
- FROM TB_PLAN P
|
|
|
- , TB_PLAN_DETAIL PD
|
|
|
- , TB_PLAN_GOODS PG
|
|
|
- , TB_GOODS G
|
|
|
- , TB_GOODS_STOCK GS
|
|
|
- , TB_BRAND B
|
|
|
- , TB_BRAND_GROUP BG
|
|
|
- WHERE P.PLAN_SQ = PD.PLAN_SQ
|
|
|
- AND PD.PLAN_DTL_SQ = PG.PLAN_DTL_SQ
|
|
|
- AND PG.GOODS_CD = G.GOODS_CD
|
|
|
- AND G.GOODS_CD = GS.GOODS_CD
|
|
|
- AND G.BRAND_CD = B.BRAND_CD
|
|
|
- AND B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
|
|
|
- AND P.PLAN_SQ = #{planSq}
|
|
|
- -- AND P.PLAN_GB = 'P' /*기획전*/
|
|
|
- AND P.SITE_CD = #{siteCd}
|
|
|
- <if test="frontGb != null and frontGb != ''">
|
|
|
- AND P.FRONT_GB LIKE CONCAT('%',#{frontGb},'%')
|
|
|
- </if>
|
|
|
- AND NOW() BETWEEN P.DISP_STDT AND P.DISP_EDDT
|
|
|
- AND P.DEL_YN = 'N' /*삭제안된 기획전*/
|
|
|
- AND P.OPEN_YN = 'Y' /*오픈된 기획전*/
|
|
|
- AND NOW() BETWEEN PD.DISP_STDT AND PD.DISP_EDDT
|
|
|
- AND PD.DISP_YN = 'Y' /*전시하는코너*/
|
|
|
- AND PG.DEL_YN = 'N' /*삭제안된상품*/
|
|
|
- AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/
|
|
|
- AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/
|
|
|
- AND GS.STOCK_QTY <![CDATA[>]]> 0 /*재고있는상품*/
|
|
|
- AND B.USE_YN = 'Y'
|
|
|
- AND BG.USE_YN = 'Y'
|
|
|
- AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT
|
|
|
- )
|
|
|
- , TAB_GOODS_IMG AS (
|
|
|
- /* 상품의 이미지 */
|
|
|
- SELECT PG.GOODS_CD
|
|
|
- , MAX(CASE WHEN GI.DEFAULT_IMG_YN = 'Y' THEN GI.SYS_IMG_NM ELSE NULL END) AS SYS_IMG_NM
|
|
|
- , MAX(CASE WHEN GI.MOUSEOVER_IMG_YN = 'Y' THEN GI.SYS_IMG_NM ELSE NULL END) AS SYS_IMG_NM2
|
|
|
- FROM TAB_PLAN_GOODS PG
|
|
|
- , TB_GOODS_IMG GI
|
|
|
- WHERE PG.GOODS_CD = GI.GOODS_CD
|
|
|
- AND PG.MAIN_COLOR_CD = GI.COLOR_CD
|
|
|
- AND (GI.DEFAULT_IMG_YN = 'Y' OR GI.MOUSEOVER_IMG_YN = 'Y')
|
|
|
- GROUP BY PG.GOODS_CD
|
|
|
- )
|
|
|
- SELECT PG.PLAN_SQ
|
|
|
- , PG.CORNER_NM
|
|
|
- , PG.DISP_ORD
|
|
|
- , PG.BRAND_GROUP_NM
|
|
|
- , PG.GOODS_CD
|
|
|
- , FN_GET_GOODS_NM(PG.GOODS_NM,PG.GOODS_GB,PG.FOREIGN_BUY_YN,PG.PARALLEL_IMPORT_YN,PG.ORDER_MADE_YN) AS GOODS_FULL_NM /*상품FULL명*/
|
|
|
- , PG.GOODS_NM
|
|
|
- , PG.GOODS_TNM
|
|
|
- , PG.MAIN_COLOR_CD
|
|
|
- , PG.LIST_PRICE
|
|
|
- , FN_GET_BENEFIT_PRICE(#{frontGb},PG.GOODS_CD,PG.CURR_PRICE,#{custGb}) AS CURR_PRICE /*현재판매가*/
|
|
|
- , GI.SYS_IMG_NM
|
|
|
- , GI.SYS_IMG_NM2
|
|
|
- <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_PLAN_GOODS PG
|
|
|
- INNER JOIN TAB_GOODS_IMG GI ON PG.GOODS_CD = GI.GOODS_CD
|
|
|
- <if test="custNo != null and custNo > 0"> <!-- 로그인 했으면 -->
|
|
|
- LEFT OUTER JOIN TB_WISHLIST W ON PG.GOODS_CD = W.GOODS_CD
|
|
|
- AND W.CUST_NO = #{custNo}
|
|
|
- </if>
|
|
|
- <if test="maxRow != null and maxRow > 0">
|
|
|
- WHERE PG.NUMB <![CDATA[<=]]> #{maxRow}
|
|
|
- </if>
|
|
|
- )Z
|
|
|
+ , 100 - ROUND((Z.CURR_PRICE / Z.LIST_PRICE) * 100 ,0) AS DC_RATE
|
|
|
+ FROM (
|
|
|
+ WITH TAB_PLAN_GOODS AS (
|
|
|
+ SELECT P.PLAN_SQ /*기획전번호*/
|
|
|
+ , PD.CORNER_NM /*코너명*/
|
|
|
+ , PG.DISP_ORD /*상품노출순서*/
|
|
|
+ , 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 /*현재판매가*/
|
|
|
+ , RANK() OVER(PARTITION BY P.PLAN_SQ
|
|
|
+ ORDER BY PG.DISP_ORD
|
|
|
+ , PG.GOODS_CD) AS NUMB
|
|
|
+ FROM TB_PLAN P
|
|
|
+ , TB_PLAN_DETAIL PD
|
|
|
+ , TB_PLAN_GOODS PG
|
|
|
+ , TB_GOODS G
|
|
|
+ , TB_GOODS_STOCK GS
|
|
|
+ , TB_BRAND B
|
|
|
+ , TB_BRAND_GROUP BG
|
|
|
+ WHERE P.PLAN_SQ = PD.PLAN_SQ
|
|
|
+ AND PD.PLAN_DTL_SQ = PG.PLAN_DTL_SQ
|
|
|
+ AND PG.GOODS_CD = G.GOODS_CD
|
|
|
+ AND PG.GOODS_CD = GS.GOODS_CD
|
|
|
+ AND G.BRAND_CD = B.BRAND_CD
|
|
|
+ AND B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
|
|
|
+ AND P.PLAN_SQ = #{planSq}
|
|
|
+ -- AND P.PLAN_GB = 'P' /*기획전*/
|
|
|
+ AND P.SITE_CD = #{siteCd}
|
|
|
+ <if test="frontGb != null and frontGb != ''">
|
|
|
+ AND P.FRONT_GB LIKE CONCAT('%',#{frontGb},'%')
|
|
|
+ </if>
|
|
|
+ AND NOW() BETWEEN P.DISP_STDT AND P.DISP_EDDT /*현재 전시되는 기획전*/
|
|
|
+ AND P.DEL_YN = 'N' /*삭제안된 기획전*/
|
|
|
+ AND P.OPEN_YN = 'Y' /*오픈된 기획전*/
|
|
|
+ AND NOW() BETWEEN PD.DISP_STDT AND PD.DISP_EDDT /*현재 전시되는 코너*/
|
|
|
+ AND PD.DISP_YN = 'Y' /*전시하는코너*/
|
|
|
+ AND PG.DEL_YN = 'N' /*삭제안된상품*/
|
|
|
+ AND G.GOODS_STAT = 'G008_90' /*승인완료상품*/
|
|
|
+ AND G.SELF_MALL_YN = 'Y' /*몰노출상품*/
|
|
|
+ AND NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*현재 판매되는 상품*/
|
|
|
+ AND GS.STOCK_QTY <![CDATA[>]]> 0 /*재고있는상품*/
|
|
|
+ AND B.USE_YN = 'Y' /*사용하는 브랜드*/
|
|
|
+ AND BG.USE_YN = 'Y' /*사용하는 브랜드그룹*/
|
|
|
+ )
|
|
|
+ , TAB_GOODS_IMG AS (
|
|
|
+ /* 상품의 이미지 */
|
|
|
+ SELECT PG.GOODS_CD
|
|
|
+ , MAX(CASE WHEN GI.DEFAULT_IMG_YN = 'Y' THEN GI.SYS_IMG_NM ELSE NULL END) AS SYS_IMG_NM
|
|
|
+ , MAX(CASE WHEN GI.MOUSEOVER_IMG_YN = 'Y' THEN GI.SYS_IMG_NM ELSE NULL END) AS SYS_IMG_NM2
|
|
|
+ FROM TAB_PLAN_GOODS PG
|
|
|
+ , TB_GOODS_IMG GI
|
|
|
+ WHERE PG.GOODS_CD = GI.GOODS_CD
|
|
|
+ AND PG.MAIN_COLOR_CD = GI.COLOR_CD
|
|
|
+ AND (GI.DEFAULT_IMG_YN = 'Y' OR GI.MOUSEOVER_IMG_YN = 'Y')
|
|
|
+ GROUP BY PG.GOODS_CD
|
|
|
+ )
|
|
|
+ , TAB_COLORCHIP AS (
|
|
|
+ /* 상품 컬러칩 */
|
|
|
+ SELECT PG.GOODS_CD
|
|
|
+ , GROUP_CONCAT(DISTINCT CONCAT(C.COLOR_CD,':',CC.CD_DESC) ORDER BY CC.DISP_ORD SEPARATOR ',') AS COLOR_CHIPS
|
|
|
+ FROM TAB_PLAN_GOODS PG
|
|
|
+ , TB_OPTION O
|
|
|
+ , TB_COLOR C
|
|
|
+ , TB_COMMON_CODE CC
|
|
|
+ WHERE PG.GOODS_CD = O.GOODS_CD
|
|
|
+ AND O.OPT_CD1 = C.COLOR_CD
|
|
|
+ AND C.COLOR_GRP_CD = CC.CD
|
|
|
+ AND O.DISP_YN = 'Y'
|
|
|
+ AND C.USE_YN = 'Y'
|
|
|
+ AND CC.USE_YN = 'Y'
|
|
|
+ GROUP BY PG.GOODS_CD
|
|
|
+ )
|
|
|
+ , TAB_GOODS_BENEFIT AS (
|
|
|
+ /* 상품혜택 */
|
|
|
+ SELECT GOODS_CD
|
|
|
+ , GROUP_CONCAT(CONCAT(BENEFIT_GB,':',BENEFIT_NM) ORDER BY NUMB SEPARATOR ',') AS ICON
|
|
|
+ FROM (
|
|
|
+ SELECT PG.GOODS_CD
|
|
|
+ , GB.BENEFIT_GB
|
|
|
+ , CASE WHEN GB.BENEFIT_GB = '10' THEN '쿠폰할인'
|
|
|
+ WHEN GB.BENEFIT_GB = '20' THEN '무료배송'
|
|
|
+ WHEN GB.BENEFIT_GB = '30' THEN '사은품'
|
|
|
+ ELSE '신상'
|
|
|
+ END AS BENEFIT_NM
|
|
|
+ , RANK() OVER(PARTITION BY PG.GOODS_CD
|
|
|
+ ORDER BY GB.BENEFIT_GB
|
|
|
+ , GB.GOODS_CD) AS NUMB
|
|
|
+ FROM TAB_PLAN_GOODS PG
|
|
|
+ , TB_GOODS_BENEFIT GB
|
|
|
+ WHERE PG.GOODS_CD = GB.GOODS_CD
|
|
|
+ ) Z
|
|
|
+ GROUP BY GOODS_CD
|
|
|
+ )
|
|
|
+ SELECT PG.PLAN_SQ
|
|
|
+ , PG.CORNER_NM
|
|
|
+ , PG.DISP_ORD
|
|
|
+ , PG.BRAND_GROUP_NM
|
|
|
+ , PG.GOODS_CD
|
|
|
+ , FN_GET_GOODS_NM(PG.GOODS_NM,PG.GOODS_GB,PG.FOREIGN_BUY_YN,PG.PARALLEL_IMPORT_YN,PG.ORDER_MADE_YN) AS GOODS_FULL_NM /*상품FULL명*/
|
|
|
+ , PG.GOODS_NM
|
|
|
+ , PG.GOODS_TNM
|
|
|
+ , PG.MAIN_COLOR_CD
|
|
|
+ , PG.LIST_PRICE
|
|
|
+ , FN_GET_BENEFIT_PRICE(#{frontGb},PG.GOODS_CD,PG.CURR_PRICE,#{custGb}) AS CURR_PRICE /*현재판매가*/
|
|
|
+ , GI.SYS_IMG_NM
|
|
|
+ , GI.SYS_IMG_NM2
|
|
|
+ , C.COLOR_CHIPS /*컬러칩*/
|
|
|
+ , GB.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_PLAN_GOODS PG
|
|
|
+ LEFT OUTER JOIN TAB_GOODS_IMG GI ON PG.GOODS_CD = GI.GOODS_CD
|
|
|
+ LEFT OUTER JOIN TAB_COLORCHIP C ON PG.GOODS_CD = C.GOODS_CD
|
|
|
+ LEFT OUTER JOIN TAB_GOODS_BENEFIT GB ON PG.GOODS_CD = GB.GOODS_CD
|
|
|
+ <if test="custNo != null and custNo > 0"> <!-- 로그인 했으면 -->
|
|
|
+ LEFT OUTER JOIN TB_WISHLIST W ON PG.GOODS_CD = W.GOODS_CD
|
|
|
+ AND W.CUST_NO = #{custNo}
|
|
|
+ </if>
|
|
|
+ <if test="maxRow != null and maxRow > 0">
|
|
|
+ WHERE PG.NUMB <![CDATA[<=]]> #{maxRow}
|
|
|
+ </if>
|
|
|
+ ) Z
|
|
|
</select>
|
|
|
|
|
|
<!-- 총알배송 html 소스 -->
|