Kaynağa Gözat

상품리스트 쿼리 수정

bin2107 5 yıl önce
ebeveyn
işleme
1da9d375fe

+ 654 - 440
src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml

@@ -1922,12 +1922,193 @@
 	<!-- 카테고리별 상품 총건수 -->
 	<select id="getCategoryGoodsCount" parameterType="SearchEngine" resultType="int">
 		/* TsfGoods.getCategoryGoodsCount */
-		WITH BASE_GOODS AS (
-		        SELECT CASE WHEN BG.DISP_NM_LANG = 'EN' THEN
+		WITH TAB_GOODS AS (
+		     SELECT DISTINCT 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.OPT_CD1,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     /*리뷰등록건수*/
+		     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  IFNULL(GBP.STAFF_PC_CURR_PRICE,G.CURR_PRICE)
+		                      WHEN #{frontGb} = 'M' AND #{custGb} = 'G100_20' THEN  IFNULL(GBP.STAFF_MO_CURR_PRICE,G.CURR_PRICE)
+		                      WHEN #{frontGb} = 'A' AND #{custGb} = 'G100_20' THEN  IFNULL(GBP.STAFF_APP_CURR_PRICE,G.CURR_PRICE)
+		                      WHEN #{frontGb} = 'P' AND #{custGb} != 'G100_20' THEN IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE)
+		                      WHEN #{frontGb} = 'M' AND #{custGb} != 'G100_20' THEN IFNULL(GBP.MO_CURR_PRICE,G.CURR_PRICE)
+		                      WHEN #{frontGb} = 'A' AND #{custGb} != 'G100_20' THEN IFNULL(GBP.APP_CURR_PRICE,G.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    B.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="ageArr" 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' /*사용하는 브랜드그룹*/
+		          AND G.SELF_GOODS_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="sizeArr" 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>
+		         <if test='benefitArr != null and benefitArr.length > 0'>
+		          AND    EXISTS (SELECT 1
+		                         FROM   TB_GOODS_BENEFIT
+		                         WHERE  GOODS_CD = G.GOODS_CD
+		                         AND    BENEFIT_GB IN
+		                         <foreach collection="benefitArr" item="item" index="index"  open="(" close=")" separator=",">
+		                             #{item}
+		                         </foreach>
+		                         )
+		         </if>
+		         <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>
+		     ) G
+		     INNER JOIN TB_OPTION O ON G.GOODS_CD = O.GOODS_CD AND    O.DISP_YN = 'Y' <!--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>
+		    UNION ALL
+		    SELECT DISTINCT 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          /*상품타이틀명*/
+		         , NULL AS 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                              /*상품구분*/
@@ -1939,183 +2120,310 @@
 		             , G.MAIN_COLOR_CD                         /*대표색상코드*/
 		             , G.LIST_PRICE                            /*정상가(최초판매가)*/
 		             , CASE WHEN #{frontGb} = 'P' AND #{custGb} = 'G100_20' THEN  IFNULL(GBP.STAFF_PC_CURR_PRICE,G.CURR_PRICE)
-		                    WHEN #{frontGb} = 'M' AND #{custGb} = 'G100_20' THEN  IFNULL(GBP.STAFF_MO_CURR_PRICE,G.CURR_PRICE)
-		                    WHEN #{frontGb} = 'A' AND #{custGb} = 'G100_20' THEN  IFNULL(GBP.STAFF_APP_CURR_PRICE,G.CURR_PRICE)
-		                    WHEN #{frontGb} = 'P' AND #{custGb} != 'G100_20' THEN IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE)
-		                    WHEN #{frontGb} = 'M' AND #{custGb} != 'G100_20' THEN IFNULL(GBP.MO_CURR_PRICE,G.CURR_PRICE)
-		                    WHEN #{frontGb} = 'A' AND #{custGb} != 'G100_20' THEN IFNULL(GBP.APP_CURR_PRICE,G.CURR_PRICE)
-		                    ELSE G.CURR_PRICE
-		                    END                   AS CURR_PRICE     /*현재판매가*/
+		                WHEN #{frontGb} = 'M' AND #{custGb} = 'G100_20' THEN  IFNULL(GBP.STAFF_MO_CURR_PRICE,G.CURR_PRICE)
+		                WHEN #{frontGb} = 'A' AND #{custGb} = 'G100_20' THEN  IFNULL(GBP.STAFF_APP_CURR_PRICE,G.CURR_PRICE)
+		                WHEN #{frontGb} = 'P' AND #{custGb} != 'G100_20' THEN IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE)
+		                WHEN #{frontGb} = 'M' AND #{custGb} != 'G100_20' THEN IFNULL(GBP.MO_CURR_PRICE,G.CURR_PRICE)
+		                WHEN #{frontGb} = 'A' AND #{custGb} != 'G100_20' THEN IFNULL(GBP.APP_CURR_PRICE,G.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    B.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="ageArr" 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="sizeArr" 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>
-		    <if test='benefitArr != null and benefitArr.length > 0'>
-		    AND    EXISTS (SELECT 1
-		                    FROM   TB_GOODS_BENEFIT
-		                    WHERE  GOODS_CD = G.GOODS_CD
-		                    AND    BENEFIT_GB IN
-		                    <foreach collection="benefitArr" item="item" index="index"  open="(" close=")" separator=",">
-		                         #{item}
-		                    </foreach>
-		                    )
-		    </if>
-		    <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>
-		    <if test="priceArr != null and priceArr.length>0">
-		     AND (${priceSql})
-		    </if>
-		    <if test="dcRateArr != null and dcRateArr.length>0">
-		    AND (${dcRateSql})
-		    </if>
-		)
-		, TAB_OPT_SIZE AS (
-		    /*옵션 사이즈 목록 조회*/
-		    /*자사상품*/
-		    SELECT G.GOODS_CD
-		         , VS.OPT_CD1
-		         , C.COLOR_CD
-		         , CC.CD_DESC AS COLOR_CHIP /*RGB값*/
-		         , GROUP_CONCAT(DISTINCT CONCAT(VS.OPT_CD2 ,':' ,CASE WHEN VS.SOLDOUT_YN = 'Y' THEN 'Y'
-		            ELSE CASE WHEN VS.CURR_STOCK_QTY - VS.BASE_STOCK_QTY > 0 THEN 'N' ELSE 'Y' END END) ORDER BY VS.DISP_ORD
-		            SEPARATOR ',') AS SIZES
-		    FROM BASE_GOODS G
-		       , VW_STOCK VS
-		       , TB_COLOR C
-		       , TB_COMMON_CODE CC
-		    WHERE G.GOODS_CD = VS.GOODS_CD
-		    AND VS.OPT_CD1 = C.COLOR_CD
-		    AND G.SELF_GOODS_YN = 'Y' /*자사상품*/
-		    AND VS.DISP_YN = 'Y'
-		    AND C.USE_YN = 'Y'
-		    AND C.COLOR_GRP_CD = CC.CD
-		    AND CC.USE_YN = 'Y'
-		    GROUP BY G.GOODS_CD, VS.OPT_CD1, C.COLOR_CD, CC.CD_DESC
-		)
-		, TAB_OPT_SIZE_SELFNO AS (
-		/*옵션 사이즈 목록 조회*/
-		/*입점상품*/
-		    SELECT G.GOODS_CD
-		        , GROUP_CONCAT(DISTINCT CONCAT(VS.OPT_CD2 ,':' ,CASE WHEN VS.SOLDOUT_YN = 'Y' THEN 'Y'
-		        ELSE CASE WHEN VS.CURR_STOCK_QTY - VS.BASE_STOCK_QTY > 0 THEN 'N' ELSE 'Y' END END) ORDER BY VS.DISP_ORD
-		        SEPARATOR ',') AS SIZES
-		    FROM BASE_GOODS G
-		    , VW_STOCK VS
-		    WHERE G.GOODS_CD = VS.GOODS_CD
-		    AND G.SELF_GOODS_YN = 'N' /*자사상품*/
-		    AND VS.DISP_YN = 'Y'
-		    GROUP BY G.GOODS_CD
+		         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    B.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="ageArr" 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' /*사용하는 브랜드그룹*/
+		         AND G.SELF_GOODS_YN = 'N'
+		        <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="sizeArr" 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>
+		        <if test='benefitArr != null and benefitArr.length > 0'>
+		         AND    EXISTS (SELECT 1
+		                        FROM   TB_GOODS_BENEFIT
+		                        WHERE  GOODS_CD = G.GOODS_CD
+		                        AND    BENEFIT_GB IN
+		                        <foreach collection="benefitArr" item="item" index="index"  open="(" close=")" separator=",">
+		                            #{item}
+		                        </foreach>
+		                        )
+		        </if>
+		        <if test="colorArr != null and colorArr.length > 0"> <!-- 색상 -->
+		         AND    G.MAIN_COLOR_CD 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>
+		        <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>
+		    ) G
 		)
-		, TAB_OPT AS (
-		    /*옵션 목록*/
-		    SELECT OS.GOODS_CD
-		        , OS.OPT_CD1
-		        , OS.COLOR_CHIP /*RGB값*/
-		        , GROUP_CONCAT(OS.SIZES ORDER BY OS.SIZES) AS SIZES
-		    FROM TAB_OPT_SIZE OS
-		    GROUP BY OS.GOODS_CD, OS.OPT_CD1, OS.COLOR_CHIP
+		SELECT COUNT(*)
+		FROM   TAB_GOODS G
+		WHERE 1=1
+	</select>
+
+	<!-- 카테고리별 상품 목록 -->
+	<select id="getCategoryGoodsList" parameterType="SearchEngine" resultType="SearchEngine">
+		/* TsfGoods.getCategoryGoodsList */
+		WITH TAB_GOODS AS (
+		    SELECT DISTINCT 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.OPT_CD1,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     /*리뷰등록건수*/
+		    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  IFNULL(GBP.STAFF_PC_CURR_PRICE,G.CURR_PRICE)
+		                       WHEN #{frontGb} = 'M' AND #{custGb} = 'G100_20' THEN  IFNULL(GBP.STAFF_MO_CURR_PRICE,G.CURR_PRICE)
+		                       WHEN #{frontGb} = 'A' AND #{custGb} = 'G100_20' THEN  IFNULL(GBP.STAFF_APP_CURR_PRICE,G.CURR_PRICE)
+		                       WHEN #{frontGb} = 'P' AND #{custGb} != 'G100_20' THEN IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE)
+		                       WHEN #{frontGb} = 'M' AND #{custGb} != 'G100_20' THEN IFNULL(GBP.MO_CURR_PRICE,G.CURR_PRICE)
+		                       WHEN #{frontGb} = 'A' AND #{custGb} != 'G100_20' THEN IFNULL(GBP.APP_CURR_PRICE,G.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    B.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="ageArr" 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' /*사용하는 브랜드그룹*/
+		             AND G.SELF_GOODS_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="sizeArr" 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>
+		            <if test='benefitArr != null and benefitArr.length > 0'>
+		             AND    EXISTS (SELECT 1
+		                            FROM   TB_GOODS_BENEFIT
+		                            WHERE  GOODS_CD = G.GOODS_CD
+		                            AND    BENEFIT_GB IN
+		                            <foreach collection="benefitArr" item="item" index="index"  open="(" close=")" separator=",">
+		                                #{item}
+		                            </foreach>
+		                            )
+		            </if>
+		            <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>
+		        ) G
+		        INNER JOIN TB_OPTION O ON G.GOODS_CD = O.GOODS_CD AND    O.DISP_YN = 'Y' <!--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>
 		    UNION ALL
-		    SELECT OSS.GOODS_CD
-		        , '' AS OPT_CD1
-		        , '' AS COLOR_CHIP
-		        , OSS.SIZES
-		    FROM TAB_OPT_SIZE_SELFNO OSS
-		)
-		, TAB_GOODS AS (
-		    SELECT G.BRAND_GROUP_NM     /*브랜드그룹명*/
+		    SELECT DISTINCT G.BRAND_GROUP_NM     /*브랜드그룹명*/
 		         , G.GOODS_CD           /*상품코드*/
 		         , G.GOODS_NM           /*상품명*/
 		         , G.GOODS_GB           /*상품구분*/
@@ -2124,341 +2432,247 @@
 		         , G.PARALLEL_IMPORT_YN /*병행수입여부*/
 		         , G.ORDER_MADE_YN      /*주문제작여부*/
 		         , G.GOODS_TNM          /*상품타이틀명*/
-		         , IFNULL(O.OPT_CD1,G.MAIN_COLOR_CD) AS MAIN_COLOR_CD      /*대표색상코드*/
+		         , NULL AS MAIN_COLOR_CD      /*대표색상코드*/
 		         , G.LIST_PRICE         /*정상가(최초판매가)*/
 		         , G.CURR_PRICE         /*현재판매가*/
 		         , G.FORMAL_GB          /*정상이월구분*/
 		         , G.REG_DT             /*등록일시*/
 		         , G.SELL_WEEK_QTY      /*주간판매수량*/
 		         , G.REVIEW_REG_CNT     /*리뷰등록건수*/
-		         , O.SIZES
-		    FROM   BASE_GOODS g
-		    , TAB_OPT O
-		    WHERE G.GOODS_CD = O.GOODS_CD
-		    <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>
-		)
-		SELECT COUNT(*)
-		FROM   TAB_GOODS G
-		WHERE 1=1
-	</select>
-
-	<!-- 카테고리별 상품 목록 -->
-	<select id="getCategoryGoodsList" parameterType="SearchEngine" resultType="SearchEngine">
-		/* TsfGoods.getCategoryGoodsList */
-		WITH BASE_GOODS AS (
-		        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  IFNULL(GBP.STAFF_PC_CURR_PRICE,G.CURR_PRICE)
-		        WHEN #{frontGb} = 'M' AND #{custGb} = 'G100_20' THEN  IFNULL(GBP.STAFF_MO_CURR_PRICE,G.CURR_PRICE)
-		        WHEN #{frontGb} = 'A' AND #{custGb} = 'G100_20' THEN  IFNULL(GBP.STAFF_APP_CURR_PRICE,G.CURR_PRICE)
-		        WHEN #{frontGb} = 'P' AND #{custGb} != 'G100_20' THEN IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE)
-		        WHEN #{frontGb} = 'M' AND #{custGb} != 'G100_20' THEN IFNULL(GBP.MO_CURR_PRICE,G.CURR_PRICE)
-		        WHEN #{frontGb} = 'A' AND #{custGb} != 'G100_20' THEN IFNULL(GBP.APP_CURR_PRICE,G.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' /*상품카테고리*/
+		    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  IFNULL(GBP.STAFF_PC_CURR_PRICE,G.CURR_PRICE)
+		               WHEN #{frontGb} = 'M' AND #{custGb} = 'G100_20' THEN  IFNULL(GBP.STAFF_MO_CURR_PRICE,G.CURR_PRICE)
+		               WHEN #{frontGb} = 'A' AND #{custGb} = 'G100_20' THEN  IFNULL(GBP.STAFF_APP_CURR_PRICE,G.CURR_PRICE)
+		               WHEN #{frontGb} = 'P' AND #{custGb} != 'G100_20' THEN IFNULL(GBP.PC_CURR_PRICE,G.CURR_PRICE)
+		               WHEN #{frontGb} = 'M' AND #{custGb} != 'G100_20' THEN IFNULL(GBP.MO_CURR_PRICE,G.CURR_PRICE)
+		               WHEN #{frontGb} = 'A' AND #{custGb} != 'G100_20' THEN IFNULL(GBP.APP_CURR_PRICE,G.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}
+		         AND    C4.CATE1_NO = #{cate1No}
 		        </if>
 		        <if test="cate2No != null and cate2No != ''">
-		        	AND    C4.CATE2_NO = #{cate2No}
+		         AND    C4.CATE2_NO = #{cate2No}
 		        </if>
 		        <if test="cate3No != null and cate3No != ''">
-		        	AND    C4.CATE3_NO = #{cate3No}
+		         AND    C4.CATE3_NO = #{cate3No}
 		        </if>
 		        <if test="cate4No != null and cate4No != ''">
-		        	AND    C4.CATE4_NO = #{cate4No}
+		         AND    C4.CATE4_NO = #{cate4No}
 		        </if>
 		        <if test="cate5No != null and cate5No != ''">
-		        	AND    C4.CATE5_NO = #{cate5No}
+		         AND    C4.CATE5_NO = #{cate5No}
 		        </if>
 		        <choose>
 		            <when test="brandGroupNo != null and brandGroupNo > 0">
-		                AND    B.BRAND_GROUP_NO = #{brandGroupNo}
+		         AND    B.BRAND_GROUP_NO = #{brandGroupNo}
 		            </when>
 		            <otherwise>
-		                AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
+		          AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
 		            </otherwise>
 		        </choose>
 		        <if test="formalGb != null and formalGb !=''">
-		            AND    G.FORMAL_GB = #{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 /*유효한 판매기간*/
+		          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
+		         AND    G.AGE_GRP_CD IN
 		            <foreach collection="ageArr" item="item" index="index"  open="(" close=")" separator=",">
 		                #{item}
 		            </foreach>
 		        </if>
 		        <if test="seasonArr != null and seasonArr.length > 0"> <!-- 시즌 -->
-		            AND    G.SEASON_CD IN
+		         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' /*사용하는 브랜드그룹*/
+		         AND    S.STOCK_QTY > 0 /*재고있는 상품*/
+		         AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+		         AND    BG.USE_YN = 'Y' /*사용하는 브랜드그룹*/
+		         AND G.SELF_GOODS_YN = 'N'
 		        <if test="brandGroupArr != null and brandGroupArr.length > 0">
-		            AND    BG.BRAND_GROUP_NO IN
+		         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}
+		         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="sizeArr" item="item" index="index"  open="(" close=")" separator=",">
-		                        #{item}
-		                   </foreach>
-		                   AND    DISP_YN = 'Y'
-		                   )
+		         AND    EXISTS (SELECT 1
+		                         FROM   TB_OPTION
+		                         WHERE  GOODS_CD = CG.GOODS_CD
+		                         AND    OPT_CD2 IN
+		                         <foreach collection="sizeArr" 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}
-		                  )
+		         AND    EXISTS (SELECT 1
+		                        FROM   TB_GOODS_BENEFIT
+		                        WHERE  GOODS_CD = G.GOODS_CD
+		                        AND    BENEFIT_GB = #{newGoods}
+		                        )
 		        </if>
 		        <if test='benefitArr != null and benefitArr.length > 0'>
-		            AND    EXISTS (SELECT 1
-		                           FROM   TB_GOODS_BENEFIT
-		                           WHERE  GOODS_CD = G.GOODS_CD
-		                           AND    BENEFIT_GB IN
-		                           <foreach collection="benefitArr" item="item" index="index"  open="(" close=")" separator=",">
-		                               #{item}
-		                           </foreach>
-		                           )
+		         AND    EXISTS (SELECT 1
+		                        FROM   TB_GOODS_BENEFIT
+		                        WHERE  GOODS_CD = G.GOODS_CD
+		                        AND    BENEFIT_GB IN
+		                        <foreach collection="benefitArr" item="item" index="index"  open="(" close=")" separator=",">
+		                           #{item}
+		                        </foreach>
+		                        )
+		        </if>
+		        <if test="colorArr != null and colorArr.length > 0"> <!-- 색상 -->
+		         AND    G.MAIN_COLOR_CD 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>
 		        <if test="priceFrom != null and priceFrom != ''">
-		            AND    G.CURR_PRICE <![CDATA[>=]]> #{priceFrom}
+		         AND    G.CURR_PRICE <![CDATA[>=]]> #{priceFrom}
 		        </if>
 		        <if test="priceTo != null and priceTo != ''">
-		            AND    G.CURR_PRICE <![CDATA[<=]]> #{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}
+		         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>
-		        <if test="priceArr != null and priceArr.length>0">
-		            AND (${priceSql})
-		        </if>
-		        <if test="dcRateArr != null and dcRateArr.length>0">
-		            AND (${dcRateSql})
+		         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>
+		    ) G
+		    <choose>
+		        <when test="sortingType == 'BEST'"> <!-- 인기상품순 -->
+		     ORDER BY SELL_WEEK_QTY DESC, GOODS_CD
+		        </when>
+		        <when test="sortingType == 'REVIEW'"> <!-- 리뷰많은순 -->
+		     ORDER BY REVIEW_REG_CNT DESC, GOODS_CD
+		        </when>
+		        <otherwise> <!-- 최신상품순 -->
+		     ORDER BY REG_DT DESC, GOODS_CD
+		        </otherwise>
+		    </choose>
+		    <if test="pageable != null and pageable.endRow != null and pageable.endRow > 0">
+		     LIMIT #{pageable.limitStartRow} , #{pageable.pageSize}
+		    </if>
 		)
-		, TAB_OPT_SIZE AS (
-		    /*옵션 사이즈 목록 조회*/
-		    /*자사상품*/
-		    SELECT G.GOODS_CD
-		        , VS.OPT_CD1
-		        , C.COLOR_CD
-		        , CC.CD_DESC AS COLOR_CHIP /*RGB값*/
-		        , GROUP_CONCAT(DISTINCT CONCAT(VS.OPT_CD2 ,':' ,CASE WHEN VS.SOLDOUT_YN = 'Y' THEN 'Y'
-		        ELSE CASE WHEN VS.CURR_STOCK_QTY - VS.BASE_STOCK_QTY > 0 THEN 'N' ELSE 'Y' END END) ORDER BY VS.DISP_ORD
-		        SEPARATOR ',') AS SIZES
-		    FROM BASE_GOODS G
-		    , VW_STOCK VS
-		    , TB_COLOR C
-		    , TB_COMMON_CODE CC
-		    WHERE G.GOODS_CD = VS.GOODS_CD
-		    AND VS.OPT_CD1 = C.COLOR_CD
-		    AND G.SELF_GOODS_YN = 'Y' /*자사상품*/
-		    AND VS.DISP_YN = 'Y'
-		    AND C.USE_YN = 'Y'
-		    AND C.COLOR_GRP_CD = CC.CD
-		    AND CC.USE_YN = 'Y'
-		    GROUP BY G.GOODS_CD, VS.OPT_CD1, C.COLOR_CD, CC.CD_DESC
-		)
-		, TAB_OPT_SIZE_SELFNO AS (
-		    /*옵션 사이즈 목록 조회*/
-		    /*입점상품*/
-		    SELECT G.GOODS_CD
-		        , GROUP_CONCAT(DISTINCT CONCAT(VS.OPT_CD2 ,':' ,CASE WHEN VS.SOLDOUT_YN = 'Y' THEN 'Y'
-		        ELSE CASE WHEN VS.CURR_STOCK_QTY - VS.BASE_STOCK_QTY > 0 THEN 'N' ELSE 'Y' END END) ORDER BY VS.DISP_ORD
-		        SEPARATOR ',') AS SIZES
-		    FROM BASE_GOODS G
-		    , VW_STOCK VS
-		    WHERE G.GOODS_CD = VS.GOODS_CD
-		    AND G.SELF_GOODS_YN = 'N' /*자사상품*/
-		    AND VS.DISP_YN = 'Y'
-		    GROUP BY G.GOODS_CD
-		)
-		, TAB_OPT AS (
-		    /*옵션 목록*/
-		    SELECT OS.GOODS_CD
-		        , OS.OPT_CD1
-		        , OS.COLOR_CHIP /*RGB값*/
-		        , GROUP_CONCAT(OS.SIZES ORDER BY OS.SIZES) AS SIZES
-		    FROM TAB_OPT_SIZE OS
-		    GROUP BY OS.GOODS_CD, OS.OPT_CD1, OS.COLOR_CHIP
-		    UNION ALL
-		    SELECT OSS.GOODS_CD
-		        , '' AS OPT_CD1
-		        , '' AS COLOR_CHIP
-		        , OSS.SIZES
-		    FROM TAB_OPT_SIZE_SELFNO OSS
-		)
-		, 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          /*상품타이틀명*/
-		     , IFNULL(O.OPT_CD1,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     /*리뷰등록건수*/
-		     , O.SIZES
-		     FROM   BASE_GOODS g
-		     , TAB_OPT O
-		     WHERE G.GOODS_CD = O.GOODS_CD
-		<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>
-		<choose>
-		    <when test="sortingType == 'BEST'"> <!-- 인기상품순 -->
-		        ORDER BY G.SELL_WEEK_QTY DESC, G.GOODS_CD
-		    </when>
-		    <when test="sortingType == 'REVIEW'"> <!-- 리뷰많은순 -->
-		        ORDER BY G.REVIEW_REG_CNT DESC, G.GOODS_CD
-		    </when>
-		    <otherwise> <!-- 최신상품순 -->
-		        ORDER BY 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>
-		)
-		SELECT DISTINCT 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.SELF_GOODS_YN
-		      , G.MAIN_COLOR_CD
-		      , G.LIST_PRICE
-		      , G.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 /*컬러칩*/
-		, G.SIZES /*사이즈*/
-		, (
-		    SELECT GROUP_CONCAT(CONCAT(BENEFIT_GB,':',BENEFIT_NM) ORDER BY NUMB SEPARATOR ',')
-		    FROM   (
+		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.SELF_GOODS_YN
+		     , G.MAIN_COLOR_CD
+		     , G.LIST_PRICE
+		     , G.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(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
+		                 , 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
+		         ) Z
+		     ) AS BENEFITS
+		     , G.FORMAL_GB
+		     , G.REG_DT
 		<choose>
 		    <when test="custNo != null and custNo > 0"> <!-- 로그인 했으면 -->
-		        , IF(W.GOODS_CD IS NULL,'','likeit')                                                           AS LIKE_IT       /*위시리스트담긴상품*/
+		     , IF(W.GOODS_CD IS NULL,'','likeit')                                                           AS LIKE_IT       /*위시리스트담긴상품*/
 		    </when>
 		    <otherwise>
-		        , ''                                                                                           AS LIKE_IT       /*위시리스트담긴상품*/
+		     , ''                                                                                           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}
+		 LEFT OUTER JOIN TB_WISHLIST W ON G.GOODS_CD = W.GOODS_CD
+		 AND    W.CUST_NO = #{custNo}
 		</if>
 		WHERE 1=1
 	</select>

+ 18 - 1
src/main/webapp/WEB-INF/views/web/display/SearchGoodsListFormWeb.html

@@ -1683,7 +1683,10 @@
 
 	<script th:inline="javascript">
 		$(document).ready( function() {
-//결과내 재 검색 - 검색어 입력 시
+			fnCreateSearchCategoryList();
+			// fnCreateSearchFilter();
+
+			//결과내 재 검색 - 검색어 입력 시
 			$(document).on('keyup','.sch_result .area_info .inner_search input',function(e){
 				var reSearchValue = $(this).val();
 				if(reSearchValue.length > 0) {
@@ -1746,6 +1749,20 @@
 				$(this).parent('li').children(".sub_cate").toggle();
 			});
 		});
+
+		// 좌측 카테고리 생성
+		var fnCreateSearchCategoryList = function (){
+			let cateList = [[${cateList}]];
+			let tag = '';
+
+			if(cateList.length > 0){
+				$.each(cateList, function (idx,item){
+					console.log('idx::'+idx);
+					console.log(item);
+					console.log(item.cate1No);
+				});
+			}
+		}
 	</script>
 
 </th:block>