Преглед изворни кода

Merge branch 'develop' of http://112.172.147.34:4936/style24/style24.front into develop

card007 пре 5 година
родитељ
комит
7f47241af9
1 измењених фајлова са 141 додато и 102 уклоњено
  1. 141 102
      src/main/java/com/style24/persistence/mybatis/shop/TsfPlanning.xml

+ 141 - 102
src/main/java/com/style24/persistence/mybatis/shop/TsfPlanning.xml

@@ -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 소스  -->