bin2107 5 лет назад
Родитель
Сommit
3e938202c9

+ 0 - 18
src/main/java/com/style24/front/biz/dao/TsfDisplayDao.java

@@ -173,24 +173,6 @@ public interface TsfDisplayDao {
 	 */
 	Collection<GoodsSearch> getCategoryFilterBenefit(Cate4Srch cate4Srch);
 
-	/**
-	 * 카테고리 별 상품수
-	 * @param params - 검색엔진 정보
-	 * @return
-	 * @author bin2107
-	 * @date 2021. 4. 7
-	 */
-	int getCategoryGoodsCount(SearchEngine params);
-
-	/**
-	 * 카테고리별 상품 목록
-	 * @param params - 검색엔진 정보
-	 * @return
-	 * @author bin2107
-	 * @date 2021. 4. 8
-	 */
-	Collection<SearchEngine> getCategoryGoodsList(SearchEngine params);
-
 	/**
 	 * 몰메인 BESTITEM 카테고리 목록
 	 * @param

+ 19 - 0
src/main/java/com/style24/front/biz/dao/TsfGoodsDao.java

@@ -21,6 +21,7 @@ import com.style24.persistence.domain.Notice;
 import com.style24.persistence.domain.ReinboundInform;
 import com.style24.persistence.domain.SizeInfo;
 import com.style24.persistence.domain.Tmtb;
+import com.style24.persistence.domain.searchengine.SearchEngine;
 
 /**
  * 상품 Dao
@@ -363,4 +364,22 @@ public interface TsfGoodsDao {
 	 * @date 2021. 04. 27
 	 */
 	Collection<Goods> getDelvFeeSaveGoodsList(Goods param);
+
+	/**
+	 * 카테고리 별 상품수
+	 * @param params - 검색엔진 정보
+	 * @return
+	 * @author bin2107
+	 * @date 2021. 4. 7
+	 */
+	int getCategoryGoodsCount(SearchEngine params);
+
+	/**
+	 * 카테고리별 상품 목록
+	 * @param params - 검색엔진 정보
+	 * @return
+	 * @author bin2107
+	 * @date 2021. 4. 8
+	 */
+	Collection<SearchEngine> getCategoryGoodsList(SearchEngine params);
 }

+ 0 - 22
src/main/java/com/style24/front/biz/service/TsfDisplayService.java

@@ -508,28 +508,6 @@ public class TsfDisplayService {
 		return displayDao.getCategoryFilterBenefit(cate4Srch);
 	}
 
-	/**
-	 * 카테고리별 상품수
-	 * @param params - 검색엔진 정보
-	 * @return
-	 * @author bin2107
-	 * @date 2021. 4. 7
-	 */
-	public int getCategoryGoodsCount(SearchEngine params) {
-		return displayDao.getCategoryGoodsCount(params);
-	}
-
-	/**
-	 * 카테고리별 상품 목록
-	 * @param params - 검색엔진 정보
-	 * @return
-	 * @author bin2107
-	 * @date 2021. 4. 8
-	 */
-	public Collection<SearchEngine> getCategoryGoodsList(SearchEngine params) {
-		return displayDao.getCategoryGoodsList(params);
-	}
-
 	/**
 	 * 전체 브랜드 이미지 리스트
 	 * @param

+ 24 - 0
src/main/java/com/style24/front/biz/service/TsfGoodsService.java

@@ -3,6 +3,7 @@ package com.style24.front.biz.service;
 import java.util.ArrayList;
 import java.util.Collection;
 
+import com.style24.persistence.domain.searchengine.SearchEngine;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -810,6 +811,7 @@ public class TsfGoodsService {
 //			goodsSearch.setMaxRow(cate.getMaxRow());
 //			goodsSearch.setContentsLoc(cate.getContentsLoc());
 //			goodsList = displayDao.getCategoryGoodsList(goodsSearch);
+			log.info("SBM013 goodsList cate>>>{}",cate);
 			goodsList = goodsDao.getContentsCategoryGoodsList(cate);
 
 			for (Goods temp : goodsList) {
@@ -843,4 +845,26 @@ public class TsfGoodsService {
 		return couponService.createEpCoupon(goods);
 	}
 
+	/**
+	 * 카테고리별 상품수
+	 * @param params - 검색엔진 정보
+	 * @return
+	 * @author bin2107
+	 * @date 2021. 4. 7
+	 */
+	public int getCategoryGoodsCount(SearchEngine params) {
+		return goodsDao.getCategoryGoodsCount(params);
+	}
+
+	/**
+	 * 카테고리별 상품 목록
+	 * @param params - 검색엔진 정보
+	 * @return
+	 * @author bin2107
+	 * @date 2021. 4. 8
+	 */
+	public Collection<SearchEngine> getCategoryGoodsList(SearchEngine params) {
+		return goodsDao.getCategoryGoodsList(params);
+	}
+
 }

+ 2 - 2
src/main/java/com/style24/front/biz/web/TsfDisplayController.java

@@ -630,12 +630,12 @@ public class TsfDisplayController extends TsfBaseController {
 //			params.setCateNo(params.getCate1No());
 //		}
 
-		pageable.setTotalCount(displayService.getCategoryGoodsCount(params));
+		pageable.setTotalCount(goodsService.getCategoryGoodsCount(params));
 		params.setPageable(pageable);
 		result.set("paging", pageable);
 //		result.set("totalCnt", pageable.getTotalCount());
 //		result.set("endRow", pageable.getEndRow());
-		result.set("dataList", displayService.getCategoryGoodsList(params));
+		result.set("dataList", goodsService.getCategoryGoodsList(params));
 
 		return result;
 	}

+ 0 - 676
src/main/java/com/style24/persistence/mybatis/shop/TsfDisplay.xml

@@ -715,515 +715,6 @@
 		GROUP BY GB.BENEFIT_GB
 	</select>
 
-	<!-- 카테고리별 상품 총건수 -->
-	<select id="getCategoryGoodsCount" parameterType="SearchEngine" resultType="int">
-		/* TsfDisplay.getCategoryGoodsCount */
-		SELECT COUNT(*)
-		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.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                           /*정상가(최초판매가)*/
-		             , CASE WHEN #{frontGb} = 'P' AND #{custGb} = 'G100_20' THEN GBP.STAFF_PC_CURR_PRICE
-		                    WHEN #{frontGb} = 'M' AND #{custGb} = 'G100_20' THEN GBP.STAFF_MO_CURR_PRICE
-		                    WHEN #{frontGb} = 'A' AND #{custGb} = 'G100_20' THEN GBP.STAFF_APP_CURR_PRICE
-		                    WHEN #{frontGb} = 'P' AND #{custGb} != 'G100_20' THEN GBP.PC_CURR_PRICE
-		                    WHEN #{frontGb} = 'M' AND #{custGb} != 'G100_20' THEN GBP.MO_CURR_PRICE
-		                    WHEN #{frontGb} = 'A' AND #{custGb} != 'G100_20' THEN GBP.APP_CURR_PRICE
-		                    ELSE G.CURR_PRICE
-		               END                  AS CURR_PRICE     /*현재판매가*/
-		             , G.MIN_ORD_AMT                          /*최소주문금액*/
-		             , G.FORMAL_GB                            /*정상이월구분*/
-		             , G.REG_DT                               /*등록일시*/
-		             , GS.SELL_WEEK_QTY                       /*주간판매수량*/
-		             , GS.REVIEW_REG_CNT                      /*리뷰등록건수*/
-		        FROM   TB_CATE_4SRCH C4
-		        INNER JOIN TB_CATE_GOODS CG ON C4.LEAF_CATE_NO = CG.CATE_NO
-		        INNER JOIN TB_GOODS G ON CG.GOODS_CD = G.GOODS_CD
-		        INNER JOIN TB_GOODS_STOCK S ON CG.GOODS_CD = S.GOODS_CD
-		        INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
-		        INNER JOIN TB_BRAND_GROUP BG ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
-		        INNER JOIN TB_GOODS_SUMMARY GS ON CG.GOODS_CD = GS.GOODS_CD
-		        LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE GBP ON CG.GOODS_CD = GBP.GOODS_CD
-		        WHERE  C4.SITE_CD = #{siteCd}
-		        AND    C4.CATE_GB = #{cateGb}
-		        AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
-		        <if test="cate1No != null and cate1No != ''">
-		        AND    C4.CATE1_NO = #{cate1No}
-		        </if>
-		        <if test="cate2No != null and cate2No != ''">
-		        AND    C4.CATE2_NO = #{cate2No}
-		        </if>
-		        <if test="cate3No != null and cate3No != ''">
-		        AND    C4.CATE3_NO = #{cate3No}
-		        </if>
-		        <if test="cate4No != null and cate4No != ''">
-		        AND    C4.CATE4_NO = #{cate4No}
-		        </if>
-		        <if test="cate5No != null and cate5No != ''">
-		        AND    C4.CATE5_NO = #{cate5No}
-		        </if>
-		        <choose>
-		            <when test="brandGroupNo != null and brandGroupNo > 0">
-		        AND    CG.BRAND_GROUP_NO = #{brandGroupNo}
-		            </when>
-		            <otherwise>
-		        AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
-		            </otherwise>
-		        </choose>
-		        <if test="formalGb != null and formalGb !=''">
-		        AND    G.FORMAL_GB = #{formalGb}
-		        </if>
-		        AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
-		        AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
-		        AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*유효한 판매기간*/
-		        <if test="ageArr != null and ageArr.length > 0"> <!-- 연령대 -->
-		        AND    G.AGE_GRP_CD IN
-		            <foreach collection="agesArr" item="item" index="index"  open="(" close=")" separator=",">
-		            #{item}
-		            </foreach>
-		        </if>
-		        <if test="seasonArr != null and seasonArr.length > 0"> <!-- 시즌 -->
-		        AND    G.SEASON_CD IN
-		            <foreach collection="seasonArr" item="item" index="index"  open="(" close=")" separator=",">
-		            #{item}
-		            </foreach>
-		        </if>
-		        AND    S.STOCK_QTY > 0 /*재고있는 상품*/
-		        AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
-		        AND    BG.USE_YN = 'Y' /*사용하는 브랜드그룹*/
-		        <if test="brandGroupArr != null and brandGroupArr.length > 0">
-		        AND    BG.BRAND_GROUP_NO IN
-		            <foreach collection="brandGroupArr" item="item" index="index"  open="(" close=")" separator=",">
-		            #{item}
-		            </foreach>
-		        </if>
-		        <if test="unisex != null and unisex != ''">
-		        AND    G.SEX_GB = #{unisex}
-		        </if>
-		        <if test='sizeArr != null and sizeArr.length > 0'>
-		        AND    EXISTS (SELECT 1
-		                       FROM   TB_OPTION
-		                       WHERE  GOODS_CD = CG.GOODS_CD
-		                       AND    OPT_CD2 IN
-		                       <foreach collection="brandGroupArr" item="item" index="index"  open="(" close=")" separator=",">
-		                       #{item}
-		                       </foreach>
-		                       AND    DISP_YN = 'Y'
-		                      )
-		        </if>
-		        <if test="colorArr != null and colorArr.length > 0">
-		        AND    EXISTS (SELECT 1
-		                       FROM   TB_OPTION O
-		                            , TB_COLOR C
-		                       WHERE  O.GOODS_CD = G.GOODS_CD
-		                       AND    O.OPT_CD1 = C.COLOR_CD
-		                       AND    O.DISP_YN = 'Y'
-		                       AND    C.COLOR_GRP_CD IN
-		                       <foreach collection="colorArr" item="item" index="index"  open="(" close=")" separator=",">
-		                       #{item}
-		                       </foreach>
-		                       AND    C.USE_YN = 'Y' /*사용하는색상*/
-		                       AND    G.SELF_GOODS_YN = 'Y' /*자사상품만*/
-		                      )
-		        </if>
-		        <if test="newGoods != null and newGoods != ''">
-		        AND    EXISTS (SELECT 1
-		                       FROM   TB_GOODS_BENEFIT
-		                       WHERE  GOODS_CD = G.GOODS_CD
-		                       AND    BENEFIT_GB = #{newGoods}
-		                      )
-		        </if>
-		       ) G
-		WHERE  1 = 1
-		<if test="priceFrom != null and priceFrom != ''">
-		AND    G.CURR_PRICE <![CDATA[>=]]> #{priceFrom}
-		</if>
-		<if test="priceTo != null and priceTo != ''">
-		AND    G.CURR_PRICE <![CDATA[<=]]> #{priceTo}
-		</if>
-		<if test="dcRateFrom != null and dcRateFrom != ''">
-		AND    ((IF(G.LIST_PRICE = 0,0,G.LIST_PRICE) - G.CURR_PRICE) / IF(G.LIST_PRICE = 0,0,G.LIST_PRICE) * 100) <![CDATA[>=]]> #{dcRateFrom}
-		</if>
-		<if test="dcRateTo != null and dcRateTo != ''">
-		AND    ((IF(G.LIST_PRICE = 0,0,G.LIST_PRICE) - G.CURR_PRICE) / IF(G.LIST_PRICE = 0,0,G.LIST_PRICE) * 100) <![CDATA[<=]]> #{dcRateTo}
-		</if>
-	</select>
-
-	<!-- 카테고리별 상품 목록 -->
-	<select id="getCategoryGoodsList" parameterType="SearchEngine" resultType="SearchEngine">
-		/* TsfDisplay.getCategoryGoodsList */
-		WITH TAB_GOODS AS (
-		    SELECT 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.FORMAL_GB          /*정상이월구분*/
-		         , G.REG_DT             /*등록일시*/
-		         , G.SELL_WEEK_QTY      /*주간판매수량*/
-		         , G.REVIEW_REG_CNT     /*리뷰등록건수*/
-		    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.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                            /*정상가(최초판매가)*/
-		                 , CASE WHEN #{frontGb} = 'P' AND #{custGb} = 'G100_20' THEN GBP.STAFF_PC_CURR_PRICE
-		                        WHEN #{frontGb} = 'M' AND #{custGb} = 'G100_20' THEN GBP.STAFF_MO_CURR_PRICE
-		                        WHEN #{frontGb} = 'A' AND #{custGb} = 'G100_20' THEN GBP.STAFF_APP_CURR_PRICE
-		                        WHEN #{frontGb} = 'P' AND #{custGb} != 'G100_20' THEN GBP.PC_CURR_PRICE
-		                        WHEN #{frontGb} = 'M' AND #{custGb} != 'G100_20' THEN GBP.MO_CURR_PRICE
-		                        WHEN #{frontGb} = 'A' AND #{custGb} != 'G100_20' THEN GBP.APP_CURR_PRICE
-		                        ELSE G.CURR_PRICE
-		                   END                   AS CURR_PRICE     /*현재판매가*/
-		                 , G.MIN_ORD_AMT                           /*최소주문금액*/
-		                 , G.FORMAL_GB                             /*정상이월구분*/
-		                 , G.REG_DT                                /*등록일시*/
-		                 , GS.SELL_WEEK_QTY                        /*주간판매수량*/
-		                 , GS.REVIEW_REG_CNT                       /*리뷰등록건수*/
-		            FROM   TB_CATE_4SRCH C4
-		            INNER JOIN TB_CATE_GOODS CG ON C4.LEAF_CATE_NO = CG.CATE_NO
-		            INNER JOIN TB_GOODS G ON CG.GOODS_CD = G.GOODS_CD
-		            INNER JOIN TB_GOODS_STOCK S ON CG.GOODS_CD = S.GOODS_CD
-		            INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
-		            INNER JOIN TB_BRAND_GROUP BG ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
-		            INNER JOIN TB_GOODS_SUMMARY GS ON CG.GOODS_CD = GS.GOODS_CD
-		            LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE GBP ON CG.GOODS_CD = GBP.GOODS_CD
-		            WHERE  C4.SITE_CD = #{siteCd}
-		            AND    C4.CATE_GB = #{cateGb}
-		            AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
-		            <if test="cate1No != null and cate1No != ''">
-		            AND    C4.CATE1_NO = #{cate1No}
-		            </if>
-		            <if test="cate2No != null and cate2No != ''">
-		            AND    C4.CATE2_NO = #{cate2No}
-		            </if>
-		            <if test="cate3No != null and cate3No != ''">
-		            AND    C4.CATE3_NO = #{cate3No}
-		            </if>
-		            <if test="cate4No != null and cate4No != ''">
-		            AND    C4.CATE4_NO = #{cate4No}
-		            </if>
-		            <if test="cate5No != null and cate5No != ''">
-		            AND    C4.CATE5_NO = #{cate5No}
-		            </if>
-		            <choose>
-		                <when test="brandGroupNo != null and brandGroupNo > 0">
-		            AND    CG.BRAND_GROUP_NO = #{brandGroupNo}
-		                </when>
-		                <otherwise>
-		            AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
-		                </otherwise>
-		            </choose>
-		            <if test="formalGb != null and formalGb !=''">
-		            AND    G.FORMAL_GB = #{formalGb}
-		            </if>
-		            AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
-		            AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
-		            AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*유효한 판매기간*/
-		            <if test="ageArr != null and ageArr.length > 0"> <!-- 연령대 -->
-		            AND    G.AGE_GRP_CD IN
-		                <foreach collection="agesArr" item="item" index="index"  open="(" close=")" separator=",">
-		                #{item}
-		                </foreach>
-		            </if>
-		            <if test="seasonArr != null and seasonArr.length > 0"> <!-- 시즌 -->
-		            AND    G.SEASON_CD IN
-		                <foreach collection="seasonArr" item="item" index="index"  open="(" close=")" separator=",">
-		                #{item}
-		                </foreach>
-		            </if>
-		            AND    S.STOCK_QTY > 0 /*재고있는 상품*/
-		            AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
-		            AND    BG.USE_YN = 'Y' /*사용하는 브랜드그룹*/
-		            <if test="brandGroupArr != null and brandGroupArr.length > 0">
-		            AND    BG.BRAND_GROUP_NO IN
-		                <foreach collection="brandGroupArr" item="item" index="index"  open="(" close=")" separator=",">
-		                #{item}
-		                </foreach>
-		            </if>
-		            <if test="unisex != null and unisex != ''">
-		            AND    G.SEX_GB = #{unisex}
-		            </if>
-		            <if test='sizeArr != null and sizeArr.length > 0'>
-		            AND    EXISTS (SELECT 1
-		                           FROM   TB_OPTION
-		                           WHERE  GOODS_CD = CG.GOODS_CD
-		                           AND    OPT_CD2 IN
-		                           <foreach collection="brandGroupArr" item="item" index="index"  open="(" close=")" separator=",">
-		                           #{item}
-		                           </foreach>
-		                           AND    DISP_YN = 'Y'
-		                          )
-		            </if>
-		            <if test="newGoods != null and newGoods != ''">
-		            AND    EXISTS (SELECT 1
-		                           FROM   TB_GOODS_BENEFIT
-		                           WHERE  GOODS_CD = G.GOODS_CD
-		                           AND    BENEFIT_GB = #{newGoods}
-		                          )
-		            </if>
-		           ) G
-		    WHERE  1 = 1
-		    <if test="priceFrom != null and priceFrom != ''">
-		    AND    G.CURR_PRICE <![CDATA[>=]]> #{priceFrom}
-		    </if>
-		    <if test="priceTo != null and priceTo != ''">
-		    AND    G.CURR_PRICE <![CDATA[<=]]> #{priceTo}
-		    </if>
-		    <if test="dcRateFrom != null and dcRateFrom != ''">
-		    AND    ((IF(G.LIST_PRICE = 0,0,G.LIST_PRICE) - G.CURR_PRICE) / IF(G.LIST_PRICE = 0,0,G.LIST_PRICE) * 100) <![CDATA[>=]]> #{dcRateFrom}
-		    </if>
-		    <if test="dcRateTo != null and dcRateTo != ''">
-		    AND    ((IF(G.LIST_PRICE = 0,0,G.LIST_PRICE) - G.CURR_PRICE) / IF(G.LIST_PRICE = 0,0,G.LIST_PRICE) * 100) <![CDATA[<=]]> #{dcRateTo}
-		    </if>
-		)
-		, TAB_OPTION AS (
-		        /* 자사상품 색상 목록 */
-		    SELECT O.GOODS_CD
-		         , O.OPT_CD1  AS MAIN_COLOR_CD
-		    FROM   TAB_GOODS G
-		         , TB_OPTION O
-		    WHERE  G.GOODS_CD = O.GOODS_CD
-		    AND    G.SELF_GOODS_YN = 'Y' /*자사상품만*/
-		    <if test="colorArr != null and colorArr.length > 0"> <!-- 색상 -->
-		    AND    O.OPT_CD1 IN (SELECT COLOR_CD
-		                         FROM   TB_COLOR
-		                         WHERE  1 = 1
-		                         AND    COLOR_GRP_CD IN
-		                         <foreach collection="colorArr" item="item" index="index"  open="(" close=")" separator=",">
-		                         #{item}
-		                         </foreach>
-		                         AND    USE_YN = 'Y' /*사용하는색상*/
-		                        )
-		    </if>
-		    AND    O.DISP_YN = 'Y'
-		    GROUP  BY O.GOODS_CD, O.OPT_CD1
-		)
-		, TAB_ALL_GOODS AS (
-		    SELECT BRAND_GROUP_NM     /*브랜드그룹명*/
-		         , GOODS_CD           /*상품코드*/
-		         , GOODS_NM           /*상품명*/
-		         , GOODS_GB           /*상품구분*/
-		         , SELF_GOODS_YN      /*자사상품여부*/
-		         , FOREIGN_BUY_YN     /*해외구매대행여부*/
-		         , PARALLEL_IMPORT_YN /*병행수입여부*/
-		         , ORDER_MADE_YN      /*주문제작여부*/
-		         , GOODS_TNM          /*상품타이틀명*/
-		         , MAIN_COLOR_CD      /*대표색상코드*/
-		         , LIST_PRICE         /*정상가(최초판매가)*/
-		         , CURR_PRICE         /*현재판매가*/
-		         , FORMAL_GB          /*정상이월구분*/
-		         , REG_DT             /*등록일시*/
-		         , SELL_WEEK_QTY      /*주간판매수량*/
-		         , REVIEW_REG_CNT     /*리뷰등록건수*/
-		         , NUMB
-		    FROM   (
-		            SELECT 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                                              /*상품타이틀명*/
-		                 , IFNULL(O.MAIN_COLOR_CD,G.MAIN_COLOR_CD) AS MAIN_COLOR_CD /*대표색상코드*/
-		                 , G.LIST_PRICE                                             /*정상가(최초판매가)*/
-		                 , G.CURR_PRICE                                             /*현재판매가*/
-		                 , G.FORMAL_GB                                              /*정상이월구분*/
-		                 , G.REG_DT                                                 /*등록일시*/
-		                 , G.SELL_WEEK_QTY                                          /*주간판매수량*/
-		                 , G.REVIEW_REG_CNT                                         /*리뷰등록건수*/
-		                 <choose>
-		                     <when test="sortingType == 'BEST'"> <!-- 인기상품순 -->
-		                 , RANK() OVER(ORDER BY G.FORMAL_GB, G.SELL_WEEK_QTY DESC, G.GOODS_CD) AS NUMB
-		                     </when>
-		                     <when test="sortingType == 'REVIEW'"> <!-- 리뷰많은순 -->
-		                 , RANK() OVER(ORDER BY G.FORMAL_GB, G.REVIEW_REG_CNT DESC, G.GOODS_CD) AS NUMB
-		                     </when>
-		                     <otherwise> <!-- 최신상품순 -->
-		                 , RANK() OVER(ORDER BY G.FORMAL_GB, G.REG_DT DESC, G.GOODS_CD) AS NUMB
-		                     </otherwise>
-		                 </choose>
-		            FROM   TAB_GOODS G
-		            LEFT OUTER JOIN TAB_OPTION O ON G.GOODS_CD = O.GOODS_CD
-		           ) ORIGINAL
-		    WHERE  1 = 1
-		    <if test="pageable != null and pageable.endRow != null and pageable.endRow > 0">
-		    AND    NUMB BETWEEN #{pageable.startRow} AND #{pageable.endRow}
-		    </if>
-		)
-		, TAB_GOODS_IMG AS (
-		    /* 상품의 이미지 */
-		    SELECT GOODS_CD
-		         , MAX(SYS_IMG_NM)  AS SYS_IMG_NM
-		         , MAX(SYS_IMG_NM2) AS SYS_IMG_NM2
-		    FROM   (
-		            SELECT G.GOODS_CD
-		                 , CASE WHEN GI.DEFAULT_IMG_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_ALL_GOODS G
-		                 , TB_GOODS_IMG GI
-		            WHERE  G.GOODS_CD = GI.GOODS_CD
-		            AND    G.MAIN_COLOR_CD = GI.COLOR_CD
-		           ) 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
-		     , G.CURR_PRICE
-		     , GI.SYS_IMG_NM
-		     , GI.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(DISTINCT CONCAT(OPT_CD2 ,':' ,CASE WHEN SOLDOUT_YN = 'Y' THEN 'Y'
-		                                                               ELSE CASE WHEN CURR_STOCK_QTY - BASE_STOCK_QTY > 0 THEN 'N' ELSE 'Y' END
-		                                                          END) ORDER BY DISP_ORD SEPARATOR ',') AS SIZES
-		        FROM   VW_STOCK
-		        WHERE  GOODS_CD = G.GOODS_CD
-		        AND    OPT_CD1 = G.MAIN_COLOR_CD
-		        AND    DISP_YN = 'Y'
-		       ) AS SIZES /*사이즈*/
-		     , (
-		        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 BENEFITS
-		     , G.FORMAL_GB
-		     , G.REG_DT
-		     , G.NUMB
-		     <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_ALL_GOODS G
-		LEFT OUTER JOIN TAB_GOODS_IMG GI ON G.GOODS_CD = GI.GOODS_CD
-		<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>
-
-	<!-- 카테고리별 상품 총 수 -->
-	<select id="getCategoryGoodsCount_old" parameterType="GoodsSearch" resultType="int">
-		/* TsfDisplay.getCategoryGoodsCount_old */
-		SELECT COUNT(1) AS CNT
-		  FROM TB_GOODS G
-		  JOIN TB_CATE_GOODS CG ON G.GOODS_CD = CG.GOODS_CD
-		  JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD AND B.USE_YN = 'Y'
-		  JOIN TB_SITE_BRAND SB ON G.BRAND_CD = SB.BRAND_CD AND SB.USE_YN = 'Y'
-		  JOIN TB_BRAND_GROUP BG ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO AND BG.USE_YN = 'Y'
-		  JOIN TB_GOODS_STOCK S ON G.GOODS_CD = S.GOODS_CD
-		  LEFT OUTER JOIN TB_GOODS_SUMMARY SU ON G.GOODS_CD = SU.GOODS_CD
-		WHERE 1=1
-		  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
-		  AND CG.GOODS_CD = S.GOODS_CD
-		  AND EXISTS (
-		               SELECT 1
-		               FROM TB_CATE_4SRCH
-		               WHERE 1 = 1
-		                 AND LEAF_CATE_NO = CG.CATE_NO
-		                 AND SITE_CD = #{siteCd}
-		                 AND CATE_GB = 'G032_101' /*BY ITEM*/
-		                 AND CATE_TYPE = 'G031_10'
-		                 <if test="cate1No != null and cate1No != ''">
-		                 AND CATE1_NO = #{cate1No}
-		                 </if>
-		                 <if test="cate2No != null and cate2No != ''">
-		                 AND CATE2_NO = #{cate2No}
-		                 </if>
-		                 <if test="cate3No != null and cate3No != ''">
-		                 AND CATE3_NO = #{cate3No}
-		                 </if>
-		                 <if test="cate4No != null and cate4No != ''">
-		                 AND CATE4_NO = #{cate4No}
-		                 </if>
-		                 <if test="cate5No != null and cate5No != ''">
-		                 AND CATE5_NO = #{cate5No}
-		                 </if>
-		                 )
-		  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 > 0 /*재고있는상품*/
-		<include refid="getCategoryGoodsList_sql"/>
-	</select>
-
 	<!-- 카테고리 상품별  목록 필터 조건 -->
 	<sql id="getCategoryGoodsList_sql">
 		<if test='brandSearch != null and brandSearch.length > 0'>
@@ -1279,173 +770,6 @@
 			)
 		</if>
 	</sql>
-
-	<!-- 카테고리별 상품 총 리스트 -->
-	<select id="getCategoryGoodsList_old" parameterType="GoodsSearch" resultType="Goods">
-		/* TsfDisplay.getCategoryGoodsList_old */
-		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 == 'SBM013'">
-		               , ROW_NUMBER() OVER(ORDER BY G.REG_DT DESC) 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_GOODS G
-		          JOIN	TB_CATE_GOODS CG ON G.GOODS_CD = CG.GOODS_CD
-		          JOIN	TB_BRAND B ON G.BRAND_CD = B.BRAND_CD AND B.USE_YN = 'Y'
-		          JOIN	TB_SITE_BRAND SB ON G.BRAND_CD = SB.BRAND_CD AND SB.USE_YN = 'Y'
-		          JOIN	TB_BRAND_GROUP BG ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO AND BG.USE_YN = 'Y'
-		          JOIN	TB_GOODS_STOCK S ON G.GOODS_CD = S.GOODS_CD
-		          LEFT OUTER JOIN TB_GOODS_SUMMARY SU ON G.GOODS_CD = SU.GOODS_CD
-		          WHERE 1=1
-		          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
-		          AND CG.GOODS_CD = S.GOODS_CD
-		          AND EXISTS (
-		                        SELECT 1
-		                        FROM TB_CATE_4SRCH
-		                        WHERE 1 = 1
-		                        AND LEAF_CATE_NO = CG.CATE_NO
-		                        AND SITE_CD = #{siteCd}
-		                        AND CATE_GB = 'G032_101' /*BY ITEM*/
-		                        AND CATE_TYPE = 'G031_10'
-		                        <if test="cate1No != null and cate1No != ''">
-		                        AND CATE1_NO = #{cate1No}
-		                        </if>
-		                        <if test="cate2No != null and cate2No != ''">
-		                        AND CATE2_NO = #{cate2No}
-		                        </if>
-		                        <if test="cate3No != null and cate3No != ''">
-		                        AND CATE3_NO = #{cate3No}
-		                        </if>
-		                        <if test="cate4No != null and cate4No != ''">
-		                        AND CATE4_NO = #{cate4No}
-		                        </if>
-		                        <if test="cate5No != null and cate5No != ''">
-		                        AND CATE5_NO = #{cate5No}
-		                        </if>
-		              )
-		          <if test="brandGroupNo != null and brandGroupNo != ''">
-		          AND BG.BRAND_GROUP_NO = #{brandGroupNo}
-		          </if>
-		          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 > 0 /*재고있는상품*/
-		          <include refid="getCategoryGoodsList_sql"/>
-		          <if test="contentsLoc == 'SBM013'">
-		          GROUP BY G.GOODS_CD
-		          </if>
-		          ) G
-		     WHERE  1=1
-		     <if test="pageable != null and pageable.endRow != null and pageable.endRow > 0">
-		     AND  G.NUMB BETWEEN #{pageable.startRow} AND #{pageable.endRow}
-		     </if>
-		     <if test="maxRow != null and maxRow !=''">
-		     AND  G.NUMB <![CDATA[<=]]> #{maxRow}
-		     </if>
-		)
-		, TAB_GOODS_IMG AS (
-		/* 상품의 이미지 */
-		SELECT GOODS_CD
-		,MAX(SYS_IMG_NM) AS SYS_IMG_NM
-		,MAX(SYS_IMG_NM2) AS SYS_IMG_NM2
-		FROM (
-		SELECT G.GOODS_CD
-		, CASE WHEN GI.DEFAULT_IMG_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
-		) Z
-		GROUP BY GOODS_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    /*현재판매가*/
-		      , GI.SYS_IMG_NM
-		      , GI.SYS_IMG_NM2
-		      , GV.VIDEO_GB_M
-		      , GV.VIDEO_VAL_M
-		      , GV.VIDEO_GB_S
-		      , GV.VIDEO_VAL_S
-		      <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
-		LEFT OUTER JOIN TAB_GOODS_IMG GI ON G.GOODS_CD = GI.GOODS_CD
-		LEFT OUTER JOIN TAB_GOODS_VIDEO GV ON G.GOODS_CD = GV.GOODS_CD
-		<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>
 	
 	<!-- 몰메인 베스트아이템 조회 -->
 	<select id="getBestItemCategoryList" parameterType="Contents" resultType="Contents">

+ 461 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml

@@ -1537,5 +1537,466 @@
 		             LIMIT  20 ) A
 		ON     G.GOODS_CD = A.GOODS_CD
 	</select>
+
+	<!-- 카테고리별 상품 총건수 -->
+	<select id="getCategoryGoodsCount" parameterType="SearchEngine" resultType="int">
+		/* TsfDisplay.getCategoryGoodsCount */
+		SELECT COUNT(*)
+		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.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                           /*정상가(최초판매가)*/
+		, CASE WHEN #{frontGb} = 'P' AND #{custGb} = 'G100_20' THEN GBP.STAFF_PC_CURR_PRICE
+		WHEN #{frontGb} = 'M' AND #{custGb} = 'G100_20' THEN GBP.STAFF_MO_CURR_PRICE
+		WHEN #{frontGb} = 'A' AND #{custGb} = 'G100_20' THEN GBP.STAFF_APP_CURR_PRICE
+		WHEN #{frontGb} = 'P' AND #{custGb} != 'G100_20' THEN GBP.PC_CURR_PRICE
+		WHEN #{frontGb} = 'M' AND #{custGb} != 'G100_20' THEN GBP.MO_CURR_PRICE
+		WHEN #{frontGb} = 'A' AND #{custGb} != 'G100_20' THEN GBP.APP_CURR_PRICE
+		ELSE G.CURR_PRICE
+		END                  AS CURR_PRICE     /*현재판매가*/
+		, G.MIN_ORD_AMT                          /*최소주문금액*/
+		, G.FORMAL_GB                            /*정상이월구분*/
+		, G.REG_DT                               /*등록일시*/
+		, GS.SELL_WEEK_QTY                       /*주간판매수량*/
+		, GS.REVIEW_REG_CNT                      /*리뷰등록건수*/
+		FROM   TB_CATE_4SRCH C4
+		INNER JOIN TB_CATE_GOODS CG ON C4.LEAF_CATE_NO = CG.CATE_NO
+		INNER JOIN TB_GOODS G ON CG.GOODS_CD = G.GOODS_CD
+		INNER JOIN TB_GOODS_STOCK S ON CG.GOODS_CD = S.GOODS_CD
+		INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
+		INNER JOIN TB_BRAND_GROUP BG ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
+		INNER JOIN TB_GOODS_SUMMARY GS ON CG.GOODS_CD = GS.GOODS_CD
+		LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE GBP ON CG.GOODS_CD = GBP.GOODS_CD
+		WHERE  C4.SITE_CD = #{siteCd}
+		AND    C4.CATE_GB = #{cateGb}
+		AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+		<if test="cate1No != null and cate1No != ''">
+			AND    C4.CATE1_NO = #{cate1No}
+		</if>
+		<if test="cate2No != null and cate2No != ''">
+			AND    C4.CATE2_NO = #{cate2No}
+		</if>
+		<if test="cate3No != null and cate3No != ''">
+			AND    C4.CATE3_NO = #{cate3No}
+		</if>
+		<if test="cate4No != null and cate4No != ''">
+			AND    C4.CATE4_NO = #{cate4No}
+		</if>
+		<if test="cate5No != null and cate5No != ''">
+			AND    C4.CATE5_NO = #{cate5No}
+		</if>
+		<choose>
+			<when test="brandGroupNo != null and brandGroupNo > 0">
+				AND    CG.BRAND_GROUP_NO = #{brandGroupNo}
+			</when>
+			<otherwise>
+				AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
+			</otherwise>
+		</choose>
+		<if test="formalGb != null and formalGb !=''">
+			AND    G.FORMAL_GB = #{formalGb}
+		</if>
+		AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
+		AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*유효한 판매기간*/
+		<if test="ageArr != null and ageArr.length > 0"> <!-- 연령대 -->
+			AND    G.AGE_GRP_CD IN
+			<foreach collection="agesArr" item="item" index="index"  open="(" close=")" separator=",">
+				#{item}
+			</foreach>
+		</if>
+		<if test="seasonArr != null and seasonArr.length > 0"> <!-- 시즌 -->
+			AND    G.SEASON_CD IN
+			<foreach collection="seasonArr" item="item" index="index"  open="(" close=")" separator=",">
+				#{item}
+			</foreach>
+		</if>
+		AND    S.STOCK_QTY > 0 /*재고있는 상품*/
+		AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+		AND    BG.USE_YN = 'Y' /*사용하는 브랜드그룹*/
+		<if test="brandGroupArr != null and brandGroupArr.length > 0">
+			AND    BG.BRAND_GROUP_NO IN
+			<foreach collection="brandGroupArr" item="item" index="index"  open="(" close=")" separator=",">
+				#{item}
+			</foreach>
+		</if>
+		<if test="unisex != null and unisex != ''">
+			AND    G.SEX_GB = #{unisex}
+		</if>
+		<if test='sizeArr != null and sizeArr.length > 0'>
+			AND    EXISTS (SELECT 1
+			FROM   TB_OPTION
+			WHERE  GOODS_CD = CG.GOODS_CD
+			AND    OPT_CD2 IN
+			<foreach collection="brandGroupArr" item="item" index="index"  open="(" close=")" separator=",">
+				#{item}
+			</foreach>
+			AND    DISP_YN = 'Y'
+			)
+		</if>
+		<if test="colorArr != null and colorArr.length > 0">
+			AND    EXISTS (SELECT 1
+			FROM   TB_OPTION O
+			, TB_COLOR C
+			WHERE  O.GOODS_CD = G.GOODS_CD
+			AND    O.OPT_CD1 = C.COLOR_CD
+			AND    O.DISP_YN = 'Y'
+			AND    C.COLOR_GRP_CD IN
+			<foreach collection="colorArr" item="item" index="index"  open="(" close=")" separator=",">
+				#{item}
+			</foreach>
+			AND    C.USE_YN = 'Y' /*사용하는색상*/
+			AND    G.SELF_GOODS_YN = 'Y' /*자사상품만*/
+			)
+		</if>
+		<if test="newGoods != null and newGoods != ''">
+			AND    EXISTS (SELECT 1
+			FROM   TB_GOODS_BENEFIT
+			WHERE  GOODS_CD = G.GOODS_CD
+			AND    BENEFIT_GB = #{newGoods}
+			)
+		</if>
+		) G
+		WHERE  1 = 1
+		<if test="priceFrom != null and priceFrom != ''">
+			AND    G.CURR_PRICE <![CDATA[>=]]> #{priceFrom}
+		</if>
+		<if test="priceTo != null and priceTo != ''">
+			AND    G.CURR_PRICE <![CDATA[<=]]> #{priceTo}
+		</if>
+		<if test="dcRateFrom != null and dcRateFrom != ''">
+			AND    ((IF(G.LIST_PRICE = 0,0,G.LIST_PRICE) - G.CURR_PRICE) / IF(G.LIST_PRICE = 0,0,G.LIST_PRICE) * 100) <![CDATA[>=]]> #{dcRateFrom}
+		</if>
+		<if test="dcRateTo != null and dcRateTo != ''">
+			AND    ((IF(G.LIST_PRICE = 0,0,G.LIST_PRICE) - G.CURR_PRICE) / IF(G.LIST_PRICE = 0,0,G.LIST_PRICE) * 100) <![CDATA[<=]]> #{dcRateTo}
+		</if>
+	</select>
+
+	<!-- 카테고리별 상품 목록 -->
+	<select id="getCategoryGoodsList" parameterType="SearchEngine" resultType="SearchEngine">
+		/* TsfDisplay.getCategoryGoodsList */
+		WITH TAB_GOODS AS (
+		SELECT 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.FORMAL_GB          /*정상이월구분*/
+		, G.REG_DT             /*등록일시*/
+		, G.SELL_WEEK_QTY      /*주간판매수량*/
+		, G.REVIEW_REG_CNT     /*리뷰등록건수*/
+		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.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                            /*정상가(최초판매가)*/
+		, CASE WHEN #{frontGb} = 'P' AND #{custGb} = 'G100_20' THEN GBP.STAFF_PC_CURR_PRICE
+		WHEN #{frontGb} = 'M' AND #{custGb} = 'G100_20' THEN GBP.STAFF_MO_CURR_PRICE
+		WHEN #{frontGb} = 'A' AND #{custGb} = 'G100_20' THEN GBP.STAFF_APP_CURR_PRICE
+		WHEN #{frontGb} = 'P' AND #{custGb} != 'G100_20' THEN GBP.PC_CURR_PRICE
+		WHEN #{frontGb} = 'M' AND #{custGb} != 'G100_20' THEN GBP.MO_CURR_PRICE
+		WHEN #{frontGb} = 'A' AND #{custGb} != 'G100_20' THEN GBP.APP_CURR_PRICE
+		ELSE G.CURR_PRICE
+		END                   AS CURR_PRICE     /*현재판매가*/
+		, G.MIN_ORD_AMT                           /*최소주문금액*/
+		, G.FORMAL_GB                             /*정상이월구분*/
+		, G.REG_DT                                /*등록일시*/
+		, GS.SELL_WEEK_QTY                        /*주간판매수량*/
+		, GS.REVIEW_REG_CNT                       /*리뷰등록건수*/
+		FROM   TB_CATE_4SRCH C4
+		INNER JOIN TB_CATE_GOODS CG ON C4.LEAF_CATE_NO = CG.CATE_NO
+		INNER JOIN TB_GOODS G ON CG.GOODS_CD = G.GOODS_CD
+		INNER JOIN TB_GOODS_STOCK S ON CG.GOODS_CD = S.GOODS_CD
+		INNER JOIN TB_BRAND B ON G.BRAND_CD = B.BRAND_CD
+		INNER JOIN TB_BRAND_GROUP BG ON B.BRAND_GROUP_NO = BG.BRAND_GROUP_NO
+		INNER JOIN TB_GOODS_SUMMARY GS ON CG.GOODS_CD = GS.GOODS_CD
+		LEFT OUTER JOIN TB_GOODS_BENEFIT_PRICE GBP ON CG.GOODS_CD = GBP.GOODS_CD
+		WHERE  C4.SITE_CD = #{siteCd}
+		AND    C4.CATE_GB = #{cateGb}
+		AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+		<if test="cate1No != null and cate1No != ''">
+			AND    C4.CATE1_NO = #{cate1No}
+		</if>
+		<if test="cate2No != null and cate2No != ''">
+			AND    C4.CATE2_NO = #{cate2No}
+		</if>
+		<if test="cate3No != null and cate3No != ''">
+			AND    C4.CATE3_NO = #{cate3No}
+		</if>
+		<if test="cate4No != null and cate4No != ''">
+			AND    C4.CATE4_NO = #{cate4No}
+		</if>
+		<if test="cate5No != null and cate5No != ''">
+			AND    C4.CATE5_NO = #{cate5No}
+		</if>
+		<choose>
+			<when test="brandGroupNo != null and brandGroupNo > 0">
+				AND    CG.BRAND_GROUP_NO = #{brandGroupNo}
+			</when>
+			<otherwise>
+				AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
+			</otherwise>
+		</choose>
+		<if test="formalGb != null and formalGb !=''">
+			AND    G.FORMAL_GB = #{formalGb}
+		</if>
+		AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		AND    G.SELF_MALL_YN = 'Y' /*몰노출상품*/
+		AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT /*유효한 판매기간*/
+		<if test="ageArr != null and ageArr.length > 0"> <!-- 연령대 -->
+			AND    G.AGE_GRP_CD IN
+			<foreach collection="agesArr" item="item" index="index"  open="(" close=")" separator=",">
+				#{item}
+			</foreach>
+		</if>
+		<if test="seasonArr != null and seasonArr.length > 0"> <!-- 시즌 -->
+			AND    G.SEASON_CD IN
+			<foreach collection="seasonArr" item="item" index="index"  open="(" close=")" separator=",">
+				#{item}
+			</foreach>
+		</if>
+		AND    S.STOCK_QTY > 0 /*재고있는 상품*/
+		AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+		AND    BG.USE_YN = 'Y' /*사용하는 브랜드그룹*/
+		<if test="brandGroupArr != null and brandGroupArr.length > 0">
+			AND    BG.BRAND_GROUP_NO IN
+			<foreach collection="brandGroupArr" item="item" index="index"  open="(" close=")" separator=",">
+				#{item}
+			</foreach>
+		</if>
+		<if test="unisex != null and unisex != ''">
+			AND    G.SEX_GB = #{unisex}
+		</if>
+		<if test='sizeArr != null and sizeArr.length > 0'>
+			AND    EXISTS (SELECT 1
+			FROM   TB_OPTION
+			WHERE  GOODS_CD = CG.GOODS_CD
+			AND    OPT_CD2 IN
+			<foreach collection="brandGroupArr" item="item" index="index"  open="(" close=")" separator=",">
+				#{item}
+			</foreach>
+			AND    DISP_YN = 'Y'
+			)
+		</if>
+		<if test="newGoods != null and newGoods != ''">
+			AND    EXISTS (SELECT 1
+			FROM   TB_GOODS_BENEFIT
+			WHERE  GOODS_CD = G.GOODS_CD
+			AND    BENEFIT_GB = #{newGoods}
+			)
+		</if>
+		) G
+		WHERE  1 = 1
+		<if test="priceFrom != null and priceFrom != ''">
+			AND    G.CURR_PRICE <![CDATA[>=]]> #{priceFrom}
+		</if>
+		<if test="priceTo != null and priceTo != ''">
+			AND    G.CURR_PRICE <![CDATA[<=]]> #{priceTo}
+		</if>
+		<if test="dcRateFrom != null and dcRateFrom != ''">
+			AND    ((IF(G.LIST_PRICE = 0,0,G.LIST_PRICE) - G.CURR_PRICE) / IF(G.LIST_PRICE = 0,0,G.LIST_PRICE) * 100) <![CDATA[>=]]> #{dcRateFrom}
+		</if>
+		<if test="dcRateTo != null and dcRateTo != ''">
+			AND    ((IF(G.LIST_PRICE = 0,0,G.LIST_PRICE) - G.CURR_PRICE) / IF(G.LIST_PRICE = 0,0,G.LIST_PRICE) * 100) <![CDATA[<=]]> #{dcRateTo}
+		</if>
+		)
+		, TAB_OPTION AS (
+		/* 자사상품 색상 목록 */
+		SELECT O.GOODS_CD
+		, O.OPT_CD1  AS MAIN_COLOR_CD
+		FROM   TAB_GOODS G
+		, TB_OPTION O
+		WHERE  G.GOODS_CD = O.GOODS_CD
+		AND    G.SELF_GOODS_YN = 'Y' /*자사상품만*/
+		<if test="colorArr != null and colorArr.length > 0"> <!-- 색상 -->
+			AND    O.OPT_CD1 IN (SELECT COLOR_CD
+			FROM   TB_COLOR
+			WHERE  1 = 1
+			AND    COLOR_GRP_CD IN
+			<foreach collection="colorArr" item="item" index="index"  open="(" close=")" separator=",">
+				#{item}
+			</foreach>
+			AND    USE_YN = 'Y' /*사용하는색상*/
+			)
+		</if>
+		AND    O.DISP_YN = 'Y'
+		GROUP  BY O.GOODS_CD, O.OPT_CD1
+		)
+		, TAB_ALL_GOODS AS (
+		SELECT BRAND_GROUP_NM     /*브랜드그룹명*/
+		, GOODS_CD           /*상품코드*/
+		, GOODS_NM           /*상품명*/
+		, GOODS_GB           /*상품구분*/
+		, SELF_GOODS_YN      /*자사상품여부*/
+		, FOREIGN_BUY_YN     /*해외구매대행여부*/
+		, PARALLEL_IMPORT_YN /*병행수입여부*/
+		, ORDER_MADE_YN      /*주문제작여부*/
+		, GOODS_TNM          /*상품타이틀명*/
+		, MAIN_COLOR_CD      /*대표색상코드*/
+		, LIST_PRICE         /*정상가(최초판매가)*/
+		, CURR_PRICE         /*현재판매가*/
+		, FORMAL_GB          /*정상이월구분*/
+		, REG_DT             /*등록일시*/
+		, SELL_WEEK_QTY      /*주간판매수량*/
+		, REVIEW_REG_CNT     /*리뷰등록건수*/
+		, NUMB
+		FROM   (
+		SELECT 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                                              /*상품타이틀명*/
+		, IFNULL(O.MAIN_COLOR_CD,G.MAIN_COLOR_CD) AS MAIN_COLOR_CD /*대표색상코드*/
+		, G.LIST_PRICE                                             /*정상가(최초판매가)*/
+		, G.CURR_PRICE                                             /*현재판매가*/
+		, G.FORMAL_GB                                              /*정상이월구분*/
+		, G.REG_DT                                                 /*등록일시*/
+		, G.SELL_WEEK_QTY                                          /*주간판매수량*/
+		, G.REVIEW_REG_CNT                                         /*리뷰등록건수*/
+		<choose>
+			<when test="sortingType == 'BEST'"> <!-- 인기상품순 -->
+				, RANK() OVER(ORDER BY G.FORMAL_GB, G.SELL_WEEK_QTY DESC, G.GOODS_CD) AS NUMB
+			</when>
+			<when test="sortingType == 'REVIEW'"> <!-- 리뷰많은순 -->
+				, RANK() OVER(ORDER BY G.FORMAL_GB, G.REVIEW_REG_CNT DESC, G.GOODS_CD) AS NUMB
+			</when>
+			<otherwise> <!-- 최신상품순 -->
+				, RANK() OVER(ORDER BY G.FORMAL_GB, G.REG_DT DESC, G.GOODS_CD) AS NUMB
+			</otherwise>
+		</choose>
+		FROM   TAB_GOODS G
+		LEFT OUTER JOIN TAB_OPTION O ON G.GOODS_CD = O.GOODS_CD
+		) ORIGINAL
+		WHERE  1 = 1
+		<if test="pageable != null and pageable.endRow != null and pageable.endRow > 0">
+			AND    NUMB BETWEEN #{pageable.startRow} AND #{pageable.endRow}
+		</if>
+		)
+		, TAB_GOODS_IMG AS (
+		/* 상품의 이미지 */
+		SELECT GOODS_CD
+		, MAX(SYS_IMG_NM)  AS SYS_IMG_NM
+		, MAX(SYS_IMG_NM2) AS SYS_IMG_NM2
+		FROM   (
+		SELECT G.GOODS_CD
+		, CASE WHEN GI.DEFAULT_IMG_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_ALL_GOODS G
+		, TB_GOODS_IMG GI
+		WHERE  G.GOODS_CD = GI.GOODS_CD
+		AND    G.MAIN_COLOR_CD = GI.COLOR_CD
+		) 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
+		, G.CURR_PRICE
+		, GI.SYS_IMG_NM
+		, GI.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(DISTINCT CONCAT(OPT_CD2 ,':' ,CASE WHEN SOLDOUT_YN = 'Y' THEN 'Y'
+		ELSE CASE WHEN CURR_STOCK_QTY - BASE_STOCK_QTY > 0 THEN 'N' ELSE 'Y' END
+		END) ORDER BY DISP_ORD SEPARATOR ',') AS SIZES
+		FROM   VW_STOCK
+		WHERE  GOODS_CD = G.GOODS_CD
+		AND    OPT_CD1 = G.MAIN_COLOR_CD
+		AND    DISP_YN = 'Y'
+		) AS SIZES /*사이즈*/
+		, (
+		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 BENEFITS
+		, G.FORMAL_GB
+		, G.REG_DT
+		, G.NUMB
+		<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_ALL_GOODS G
+		LEFT OUTER JOIN TAB_GOODS_IMG GI ON G.GOODS_CD = GI.GOODS_CD
+		<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>

+ 108 - 63
src/main/webapp/WEB-INF/views/web/display/MallMainFormWeb.html

@@ -88,12 +88,16 @@
 						<div class="cont_body">
 							<div class="ui_row">
 								<th:block th:each="ContentsData, ContentsStat : ${mainLayoutData.ContentsList}">
-									<div class="ui_col_3">
+									<div class="ui_col_3 styleArea">
 										<a th:href="${ContentsData.strVar1}">
 											<img th:src="${@environment.getProperty('domain.image')+ContentsData.imgPath1}">
 											<dl>
-												<dt th:text="${ContentsData.strTitle1}"></dt>
-												<dd th:text="${ContentsData.subText1}"></dd>
+												<dt class="styleTitleC"> <!--th:text="${ContentsData.strTitle1}"-->
+													<input type="hidden" name="styleTitle" th:value="${ContentsData.strTitle1}"/>
+												</dt>
+												<dd class="styleNoteC"> <!--th:text="${ContentsData.subText1}"-->
+													<input type="hidden" name="styleNote" th:value="${ContentsData.subText1}"/>
+												</dd>
 												<!--<dd>당신을 위해 준비한 아우터 픽을 만나보자</dd>-->
 											</dl>
 										</a>
@@ -384,12 +388,14 @@
 							<div class="swiper-container post-bnnWide">
 								<div class="swiper-wrapper ">
 									<th:block th:each="ContentsData, ContentsStat : ${mainLayoutData.ContentsList}">
-										<div class="swiper-slide">
+										<div class="swiper-slide silderBannerArea">
 											<th:block th:if="${ContentsData.imgPath1!=null && ContentsData.imgPath1!=''}">
 												<a th:href="${ContentsData.strVar1}">
 													<div class="bnnbox" style="background:#e3e7ea;">
-														<div class="txtWrap ">
-															<p th:text="${ContentsData.strTitle1}"></p>
+														<div class="txtWrap bannerNote">
+															<p class="noteArea"> <!--th:text="${ContentsData.strTitle1}"-->
+																<input type="hidden" name="bannerNote" th:value="${ContentsData.strTitle1}"/>
+															</p>
 															<!--<p>아우터 + 이너 단독세일</p>-->	<!-- br 태그 줄바꿈해야함-->
 															<button type="button" class="btn">VIEW MORE</button>
 														</div>
@@ -1287,75 +1293,114 @@ var main_tv_slide = new Swiper ('.main_tv .post-tv', {
 });
 
 $(document).ready(function() {
-		// $("#id006").text();
-		// var brCheck = "오늘만 <br> 이 가격@".split("<br>");
-		// console.log(brCheck[0]);
-		// console.log(brCheck[1]);
+	// 몰메인 <br> 태그
+	$('.mainTitle').each(function (){
+		let tag = '';
+		var brText = $(this).find("input[name=mainTitlee]").val().replace("<BR>", "<br>").replace("<bR>", "<br>").replace("<Br>", "<br>");
+		if(brText.indexOf('<br>') > -1){
+			var reText = brText.split("<br>");
+			tag += '</dd>';
+			tag += reText[0];
+			tag += '<dd>';
+			tag += reText[1];
+		}else{
+			tag += brText;
+		}
+		$(this).append(tag);
+	});
 
-		// 몰메인 <br> 태그
-		$('.mainTitle').each(function (){
-			let tag = '';
-			var brText = $(this).find("input[name=mainTitlee]").val();
-
-			if(brText.indexOf('<br>') > -1){
-				var reText = brText.split("<br>");
-				tag += reText[0];
-				tag += '<br>';
-				tag += reText[1];
-			}else{
-				tag += brText;
-			}
-			$(this).append(tag);
-		});
+	// 가로긴배너 슬라이드
+	$('.silderBannerArea').each(function (){
+		let tag = '';
+		var noteText = $(this).find("input[name=bannerNote]").val().replace("<BR>", "<br>").replace("<bR>", "<br>").replace("<Br>", "<br>");
+		if(noteText.indexOf('<br>') > -1){
+			var reText = noteText.split("<br>");
+			tag += reText[0];
+			tag += '<br>';
+			tag += reText[1];
+		}else{
+			tag += noteText;
+		}
+		$(this).find('.noteArea').append(tag);
+	});
 
-		// 잇아이템 <br> 태그
-		var id004Text = $("#id004").find("input[name=title]").val();
-		if(id004Text.indexOf('<br>') > -1){
-			let tag = '';
-			var reText = id004Text.split("<br>");
+	// 스타일리포트 <br> 태그
+	$('.styleArea').each(function (){
+		let tag = '';
+		let tag2 = '';
+		var titleText = $(this).find("input[name=styleTitle]").val().replace("<BR>", "<br>").replace("<bR>", "<br>").replace("<Br>", "<br>");
+		var noteText = $(this).find("input[name=styleNote]").val().replace("<BR>", "<br>").replace("<bR>", "<br>").replace("<Br>", "<br>");
+
+		if(titleText.indexOf('<br>') > -1){
+			var reText = titleText.split("<br>");
 			tag += reText[0];
 			tag += '<br>';
 			tag += reText[1];
-			$("#id004").append(tag);
 		}else{
-			let tag = '';
-			tag += id004Text;
-			$("#id004").append(tag);
+			tag += titleText;
 		}
 
-		// 핫딜 <br> 태그
-		var id006Text = $("#id006").find("input[name=title]").val();
-		if(!gagajf.isNull(id006Text)){
-			if(id006Text.indexOf('<br>') > -1){
-				let tag = '';
-				var reText = id006Text.split("<br>");
-				tag += reText[0];
-				tag += '<br>';
-				tag += reText[1];
-				$("#id006").append(tag);
-			}else{
-				let tag = '';
-				tag += id006Text;
-				$("#id006").append(tag);
-			}
+		if(noteText.indexOf('<br>') > -1){
+			var reText = noteText.split("<br>");
+			tag2 += reText[0];
+			tag2 += '<br>';
+			tag2 += reText[1];
+		}else{
+			tag2 += noteText;
 		}
 
-		// 브랜드픽 <br> 태그
-		$('#id007 .title').each(function (){
+		$(this).find('.styleTitleC').append(tag);
+		$(this).find('.styleNoteC').append(tag2);
+	});
+
+	// 잇아이템 <br> 태그
+	var id004Text = $("#id004").find("input[name=title]").val().replace("<BR>", "<br>").replace("<bR>", "<br>").replace("<Br>", "<br>");
+	if(id004Text.indexOf('<br>') > -1){
+		let tag = '';
+		var reText = id004Text.split("<br>");
+		tag += reText[0];
+		tag += '<br>';
+		tag += reText[1];
+		$("#id004").append(tag);
+	}else{
+		let tag = '';
+		tag += id004Text;
+		$("#id004").append(tag);
+	}
+
+	// 핫딜 <br> 태그
+	var id006Text = $("#id006").find("input[name=title]").val().replace("<BR>", "<br>").replace("<bR>", "<br>").replace("<Br>", "<br>");
+	if(!gagajf.isNull(id006Text)){
+		if(id006Text.indexOf('<br>') > -1){
 			let tag = '';
-			var brText = $(this).find("input[name=title]").val();
-
-			if(brText.indexOf('<br>') > -1){
-				var reText = brText.split("<br>");
-				tag += reText[0];
-				tag += '<br>';
-				tag += reText[1];
-			}else{
-				tag += brText;
-			}
-			$(this).append(tag);
-		});
+			var reText = id006Text.split("<br>");
+			tag += reText[0];
+			tag += '<br>';
+			tag += reText[1];
+			$("#id006").append(tag);
+		}else{
+			let tag = '';
+			tag += id006Text;
+			$("#id006").append(tag);
+		}
+	}
+
+	// 브랜드픽 <br> 태그
+	$('#id007 .title').each(function (){
+		let tag = '';
+		var brText = $(this).find("input[name=title]").val().replace("<BR>", "<br>").replace("<bR>", "<br>").replace("<Br>", "<br>");
+
+		if(brText.indexOf('<br>') > -1){
+			var reText = brText.split("<br>");
+			tag += reText[0];
+			tag += '<br>';
+			tag += reText[1];
+		}else{
+			tag += brText;
+		}
+		$(this).append(tag);
 	});
+});
 /*]]>*/
 </script>