bin2107 5 лет назад
Родитель
Сommit
2e0c41f5e4

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

@@ -15,6 +15,7 @@ import com.style24.persistence.domain.Contents;
 import com.style24.persistence.domain.GnbTab;
 import com.style24.persistence.domain.MainLayout;
 import com.style24.persistence.domain.Popup;
+import com.style24.persistence.domain.GoodsSearch;
 
 /**
  * 전시 Dao
@@ -143,4 +144,57 @@ public interface TsfDisplayDao {
 	 * @date 2021. 3. 31
 	 */
 	Collection<Contents> getContentsBannerList(Contents contents);
+
+	/**
+	 * 상품카테고리 필터 브랜드 목록
+	 * @param
+	 * @return
+	 * @author bin2107
+	 * @date 2021. 4. 5
+	 */
+	Collection<GoodsSearch> getCategoryFliterBrand(GoodsSearch goodsSearch);
+
+	/**
+	 * 상품카테고리 필터 사이즈 목록
+	 * @param
+	 * @return
+	 * @author bin2107
+	 * @date 2021. 4. 5
+	 */
+	Collection<GoodsSearch> getCategoryFliterSize(GoodsSearch goodsSearch);
+
+	/**
+	 * 상품카테고리 필터 가격 목록
+	 * @param
+	 * @return
+	 * @author bin2107
+	 * @date 2021. 4. 5
+	 */
+	Collection<GoodsSearch> getCategoryFliterPrice(GoodsSearch goodsSearch);
+
+	/**
+	 * 상품카테고리 필터 연령대 목록
+	 * @param
+	 * @return
+	 * @author bin2107
+	 * @date 2021. 4. 5
+	 */
+	Collection<GoodsSearch> getCategoryFliterAge(GoodsSearch goodsSearch);
+
+	/**
+	 * 상품카테고리 필터 시즌 목록
+	 * @param
+	 * @return
+	 * @author bin2107
+	 * @date 2021. 4. 5
+	 */
+	Collection<GoodsSearch> getCategoryFliterSeason(GoodsSearch goodsSearch);
+	/**
+	 * 상품카테고리 필터 컬러 목록
+	 * @param
+	 * @return
+	 * @author bin2107
+	 * @date 2021. 4. 5
+	 */
+	Collection<GoodsSearch> getCategoryFliterColor(GoodsSearch goodsSearch);
 }

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

@@ -22,6 +22,7 @@ import com.style24.persistence.domain.Contents;
 import com.style24.persistence.domain.GnbTab;
 import com.style24.persistence.domain.MainLayout;
 import com.style24.persistence.domain.Popup;
+import com.style24.persistence.domain.GoodsSearch;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -322,4 +323,76 @@ public class TsfDisplayService {
 		return contentsList;
 
 	}
+
+	/**
+	 * 상품카테고리 필터 브랜드 목록
+	 * @param
+	 * @return
+	 * @author bin2107
+	 * @date 2021. 4. 5
+	 */
+	@Cacheable(value = "cate", key = "'categoryFilterBrand-'.concat(#brandGroupNo).concat(#formalGb).concat(#cateNo)")
+	public Collection<GoodsSearch> getCategoryFliterBrand(GoodsSearch goodsSearch, String brandGroupNo, String formalGb, Integer cateNo){
+		return displayDao.getCategoryFliterBrand(goodsSearch);
+	}
+
+	/**
+	 * 상품카테고리 필터 사이즈 목록
+	 * @param
+	 * @return
+	 * @author bin2107
+	 * @date 2021. 4. 5
+	 */
+	@Cacheable(value = "cate", key = "'categoryFilterSize-'.concat(#brandGroupNo).concat(#formalGb).concat(#cateNo)")
+	public Collection<GoodsSearch> getCategoryFliterSize(GoodsSearch goodsSearch, String brandGroupNo, String formalGb, Integer cateNo){
+		return displayDao.getCategoryFliterSize(goodsSearch);
+	}
+
+	/**
+	 * 상품카테고리 필터 가격 목록
+	 * @param
+	 * @return
+	 * @author bin2107
+	 * @date 2021. 4. 5
+	 */
+	@Cacheable(value = "cate", key = "'categoryFilterPrice-'.concat(#brandGroupNo).concat(#formalGb).concat(#cateNo)")
+	public Collection<GoodsSearch> getCategoryFliterPrice(GoodsSearch goodsSearch, String brandGroupNo, String formalGb, Integer cateNo){
+		return displayDao.getCategoryFliterPrice(goodsSearch);
+	}
+
+	/**
+	 * 상품카테고리 필터 연령대 목록
+	 * @param
+	 * @return
+	 * @author bin2107
+	 * @date 2021. 4. 5
+	 */
+	@Cacheable(value = "cate", key = "'categoryFilterAge-'.concat(#brandGroupNo).concat(#formalGb).concat(#cateNo)")
+	public Collection<GoodsSearch> getCategoryFliterAge(GoodsSearch goodsSearch, String brandGroupNo, String formalGb, Integer cateNo){
+		return displayDao.getCategoryFliterAge(goodsSearch);
+	}
+
+	/**
+	 * 상품카테고리 필터 시즌 목록
+	 * @param
+	 * @return
+	 * @author bin2107
+	 * @date 2021. 4. 5
+	 */
+	@Cacheable(value = "cate", key = "'categoryFilterSeason-'.concat(#brandGroupNo).concat(#formalGb).concat(#cateNo)")
+	public Collection<GoodsSearch> getCategoryFliterSeason(GoodsSearch goodsSearch, String brandGroupNo, String formalGb, Integer cateNo){
+		return displayDao.getCategoryFliterSeason(goodsSearch);
+	}
+
+	/**
+	 * 상품카테고리 필터 컬러 목록
+	 * @param
+	 * @return
+	 * @author bin2107
+	 * @date 2021. 4. 5
+	 */
+	@Cacheable(value = "cate", key = "'categoryFilterColor-'.concat(#brandGroupNo).concat(#formalGb).concat(#cateNo)")
+	public Collection<GoodsSearch> getCategoryFliterColor(GoodsSearch goodsSearch, String brandGroupNo, String formalGb, Integer cateNo){
+		return displayDao.getCategoryFliterColor(goodsSearch);
+	}
 }

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

@@ -37,6 +37,7 @@ import com.style24.persistence.domain.MainLayout;
 import com.style24.persistence.domain.Plan;
 import com.style24.persistence.domain.Popup;
 import com.style24.persistence.domain.Social;
+import com.style24.persistence.domain.GoodsSearch;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -417,13 +418,59 @@ public class TsfDisplayController extends TsfBaseController {
 
 		String siteCd = TscConstants.Site.STYLE24.value();
 		String cateGb = paramMap.get("cateGb");
-		String formalGb = paramMap.get("formalGb");
-		String brandCd = paramMap.get("brandCd");
+		String formalGb = "G009_10";	//paramMap.get("formalGb");
+		String brandGroupNo = "0";
+		if(paramMap.get("brandGroupNo") != null && !paramMap.get("brandGroupNo").equals("")){
+			brandGroupNo = paramMap.get("brandGroupNo");
+		}
+
+		GoodsSearch goodsSearch = new GoodsSearch();
+		Integer cateNo = 0;
+		if(paramMap.get("cate4No") != null && !paramMap.get("cate4No").equals("")){
+			goodsSearch.setCate4No(Integer.parseInt(paramMap.get("cate4No")));
+			cateNo = Integer.parseInt(paramMap.get("cate4No"));
+			mav.addObject("cateNo",cateNo);
+		} else if(paramMap.get("cate3No") != null && !paramMap.get("cate3No").equals("")){
+			goodsSearch.setCate3No(Integer.parseInt(paramMap.get("cate3No")));
+			cateNo = Integer.parseInt(paramMap.get("cate3No"));
+			mav.addObject("cateNo",cateNo);
+		} else if(paramMap.get("cate2No") != null && !paramMap.get("cate2No").equals("")) {
+			goodsSearch.setCate2No(Integer.parseInt(paramMap.get("cate2No")));
+			cateNo = Integer.parseInt(paramMap.get("cate2No"));
+			mav.addObject("cateNo",cateNo);
+		} else if(paramMap.get("cate1No") != null && !paramMap.get("cate1No").equals("")){
+			goodsSearch.setCate1No(Integer.parseInt(paramMap.get("cate1No")));
+			cateNo = Integer.parseInt(paramMap.get("cate1No"));
+			mav.addObject("cateNo",cateNo);
+		}
 
+		goodsSearch.setCateNo(cateNo);
+		goodsSearch.setSiteCd(siteCd);
+		goodsSearch.setCateGb(cateGb);
+		goodsSearch.setFormalGb(formalGb);
+		goodsSearch.setBrandGroupNo(Integer.parseInt(brandGroupNo));
+		goodsSearch.setCateType("G031_10");
+		goodsSearch.setFrontGb(TsfSession.getFrontGb());
+		goodsSearch.setCustGb(TsfSession.getCustGb());
+
+		log.info("goodsSearch:::{}",goodsSearch);
+		log.info("brandGroupNo:::{}",brandGroupNo);
+		log.info("formalGb:::{}",formalGb);
+		log.info("cateNo:::{}",cateNo);
+
+		mav.addObject("filterBrandList", displayService.getCategoryFliterBrand(goodsSearch, brandGroupNo, formalGb, cateNo));
+		mav.addObject("filterSizeList", displayService.getCategoryFliterSize(goodsSearch, brandGroupNo, formalGb, cateNo));
+		mav.addObject("filterPriceList", displayService.getCategoryFliterPrice(goodsSearch, brandGroupNo, formalGb, cateNo));
+		//mav.addObject("filterAgeList", displayService.getCategoryFliterAge(goodsSearch, brandGroupNo, formalGb, cateNo));
+		//mav.addObject("filterSeasonList", displayService.getCategoryFliterSeason(goodsSearch, brandGroupNo, formalGb, cateNo));
+		mav.addObject("filterAgeList", null);
+		mav.addObject("filterSeasonList", null);
+		mav.addObject("filterColorList", displayService.getCategoryFliterColor(goodsSearch, brandGroupNo, formalGb, cateNo));
+		log.info("1111::{}",displayService.getCategoryFliterSize(goodsSearch, brandGroupNo, formalGb, cateNo));
 		mav.addObject("siteCd",siteCd);
 		mav.addObject("cateGb",cateGb);
 		mav.addObject("formalGb",formalGb);
-		mav.addObject("brandCd",brandCd);
+		mav.addObject("brandGroupNo",brandGroupNo);
 		mav.addObject("cate1No",paramMap.get("cate1No"));
 		mav.addObject("cate2No",paramMap.get("cate2No"));
 		mav.addObject("cate3No",paramMap.get("cate3No"));

+ 18 - 0
src/main/java/com/style24/persistence/domain/GoodsSearch.java

@@ -25,4 +25,22 @@ public class GoodsSearch extends TscBaseDomain {
 
     private int maxRownum;			            // 조회건수
 
+    private Integer cate1No;
+    private Integer cate2No;
+    private Integer cate3No;
+    private Integer cate4No;
+    private Integer cate5No;
+    private String siteCd;
+    private String cateGb;
+    private String formalGb;
+    private Integer brandGroupNo;
+    private String brandGroupNm;
+    private String sizeGb;
+    private String optCd2;
+    private String agesCd;
+    private String agesNm;
+    private String seasonCd;
+    private String seasonNm;
+    private String colorGrpCd;
+    private String colorChip;
 }

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

@@ -587,4 +587,356 @@
 				 ) B
 				 )
 	</select>
+
+	<!-- 상품 카테고리 필터 브랜드 -->
+	<select id="getCategoryFliterBrand" parameterType="GoodsSearch" resultType="GoodsSearch" timeout="300">
+		/* TsfDisplay.getCategoryFliterBrand */
+		SELECT BG.BRAND_GROUP_NO
+		     , CASE WHEN BG.DISP_NM_LANG = 'EN' THEN
+		            BG.BRAND_GROUP_ENM
+		       ELSE
+		            BG.BRAND_GROUP_KNM
+		       END               AS BRAND_GROUP_NM /*브랜드그룹명*/
+		FROM   TB_BRAND_GROUP BG
+		WHERE  BRAND_GROUP_NO IN (SELECT B.BRAND_GROUP_NO
+		                          FROM   TB_CATE_4SRCH C4
+		                               , TB_CATE_GOODS CG
+		                               , TB_GOODS G
+		                               , TB_GOODS_STOCK GS
+		                               , TB_BRAND B
+		                               , TB_SITE_BRAND SB
+		                          WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+		                          <choose>
+			                        <when test="brandGroupNo != null and brandGroupNo != ''">
+				                  AND    CG.BRAND_GROUP_NO = #{brandGroupNo}
+									</when>
+			                        <otherwise>
+				                  AND    CG.BRAND_GROUP_NO = 0
+			                        </otherwise>
+		                          </choose>
+		                          AND    CG.GOODS_CD = G.GOODS_CD
+		                          AND    G.GOODS_CD = GS.GOODS_CD
+		                          AND    G.BRAND_CD = B.BRAND_CD
+		                          AND    B.BRAND_CD = SB.BRAND_CD
+		                          AND    C4.SITE_CD = #{siteCd}
+		                          AND    C4.CATE_GB = #{cateGb}
+		                          AND    C4.CATE_TYPE = 'G031_10'
+		                          AND    C4.CATE1_NO = #{cate1No}
+		                          <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>
+		                          AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		                          AND    G.SELF_MALL_YN = 'Y'   /*몰노출상품*/
+		                          AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT   /*판매기간*/
+		                          AND    GS.STOCK_QTY <![CDATA[>]]> 0 /*재고있는상품*/
+		                          AND    SB.SITE_CD = #{siteCd}
+		                          AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+		                          AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+		                         )
+		AND  BG.USE_YN = 'Y' /*사용하는 브랜드그룹*/
+		ORDER  BY 2
+	</select>
+
+	<!-- 상품 카테고리 필터 사이즈 -->
+	<select id="getCategoryFliterSize" parameterType="GoodsSearch" resultType="GoodsSearch" timeout="300">
+		/* TsfDisplay.getCategoryFliterSize */
+		SELECT DISTINCT
+		       I.SIZE_GB /*사이즈구분(T:상의, B:하의, S:신발)*/
+		       , S.OPT_CD2 /*옵션코드2*/
+		FROM   TB_CATE_4SRCH C4
+		     , TB_CATE_GOODS CG
+		     , TB_GOODS G
+		     , TB_ITEMKIND I
+		     , VW_STOCK S
+		     , TB_BRAND B
+		     , TB_SITE_BRAND SB
+		WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+		<choose>
+			<when test="brandGroupNo != null and brandGroupNo != ''">
+				AND    CG.BRAND_GROUP_NO = #{brandGroupNo}
+			</when>
+			<otherwise>
+				AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
+			</otherwise>
+		</choose>
+		AND    CG.GOODS_CD = G.GOODS_CD
+		AND    G.ITEMKIND_CD = I.ITEMKIND_CD
+		AND    G.GOODS_CD = S.GOODS_CD
+		AND    G.BRAND_CD = B.BRAND_CD
+		AND    B.BRAND_CD = SB.BRAND_CD
+		AND    C4.SITE_CD = #{siteCd}
+		AND    C4.CATE_GB = #{cateGb}
+		AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+		AND    C4.CATE1_NO = #{cate1No}
+		<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>
+		AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		AND    G.SELF_MALL_YN = 'Y'   /*몰노출상품*/
+		AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT   /*판매기간*/
+		AND    I.SIZE_GB IS NOT NULL
+		AND    S.CURR_STOCK_QTY - S.BASE_STOCK_QTY <![CDATA[>]]> 0 /*재고있는옵션*/
+		AND    S.SOLDOUT_YN = 'N' /*품절이 아닌 옵션*/
+		AND    S.DISP_YN = 'Y' /*노출하는 옵션*/
+		AND    LENGTH(S.OPT_CD2) > 0
+		AND    SB.SITE_CD = #{siteCd}
+		AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+		AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+		ORDER  BY CASE WHEN I.SIZE_GB = 'T' THEN 1
+		               WHEN I.SIZE_GB = 'B' THEN 2
+		               WHEN I.SIZE_GB = 'S' THEN 3
+		               ELSE 4
+		               END, S.OPT_CD2
+	</select>
+
+	<!-- 상품 카테고리 필터 사이즈 -->
+	<select id="getCategoryFliterPrice" parameterType="GoodsSearch" resultType="GoodsSearch" timeout="300">
+		/* TsfDisplay.getCategoryFliterPrice */
+		SELECT FLOOR(MIN_CURR_PRICE / 1000) * 1000                   AS PRICE1
+		     , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 1) / 1000) * 1000 AS PRICE2
+		     , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 2) / 1000) * 1000 AS PRICE3
+		     , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 3) / 1000) * 1000 AS PRICE4
+		     , FLOOR((MIN_CURR_PRICE + SLICE_VAL * 4) / 1000) * 1000 AS PRICE5
+		     , FLOOR(MAX_CURR_PRICE / 1000) * 1000                   AS PRICE6
+		FROM   (
+		        SELECT MIN(CURR_PRICE) AS MIN_CURR_PRICE                    /*최소현재판매가*/
+		        , MAX(CURR_PRICE) AS MAX_CURR_PRICE                    /*최대현재판매가*/
+		        , (MAX(CURR_PRICE) - MIN(CURR_PRICE)) / 5 AS SLICE_VAL /*분할값*/
+		        FROM   (
+		                SELECT FN_GET_BENEFIT_PRICE(#{frontGb},G.GOODS_CD,G.CURR_PRICE,#{custGb}) AS CURR_PRICE /*현재판매가*/
+		                FROM   TB_CATE_4SRCH C4
+		                     , TB_CATE_GOODS CG
+		                     , TB_GOODS G
+		                     , TB_GOODS_STOCK GS
+		                     , TB_BRAND B
+		                     , TB_SITE_BRAND SB
+		                WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+		                <choose>
+		                	<when test="brandGroupNo != null and brandGroupNo != ''">
+		                		AND    CG.BRAND_GROUP_NO = #{brandGroupNo}
+		                	</when>
+		                	<otherwise>
+		                		AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
+		                	</otherwise>
+		                </choose>
+		                AND    CG.GOODS_CD = G.GOODS_CD
+		                AND    CG.GOODS_CD = GS.GOODS_CD
+		                AND    G.BRAND_CD = B.BRAND_CD
+		                AND    B.BRAND_CD = SB.BRAND_CD
+		                AND    C4.SITE_CD = #{siteCd}
+		                AND    C4.CATE_GB = #{cateGb}
+		                AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+		                AND    C4.CATE1_NO = #{cate1No}
+		                <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>
+		                AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		                AND    G.SELF_MALL_YN = 'Y'   /*몰노출상품*/
+		                AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT   /*판매기간*/
+		                AND    GS.STOCK_QTY <![CDATA[>]]> 0 /*재고있는상품*/
+		                AND    SB.SITE_CD = #{siteCd}
+		                AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+		                AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+		        ) Z
+		) Z
+	</select>
+
+	<!-- 상품 카테고리 필터 연령대 -->
+	<select id="getCategoryFliterAge" parameterType="GoodsSearch" resultType="GoodsSearch" timeout="300">
+		/* TsfDisplay.getCategoryFliterAge */
+		SELECT CD    AS AGES_CD /*연령대코드*/
+		     , CD_NM AS AGES_NM /*연령대명*/
+		FROM   TB_COMMON_CODE
+		WHERE  CD_GB = 'G023'
+		AND    CD IN (SELECT G.AGE_GRP_CD
+		              FROM   TB_CATE_4SRCH C4
+		                   , TB_CATE_GOODS CG
+		                   , TB_GOODS G
+		                   , TB_GOODS_STOCK GS
+		                   , TB_BRAND B
+		                   , TB_SITE_BRAND SB
+		              WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+		              <choose>
+		              	<when test="brandGroupNo != null and brandGroupNo != ''">
+		              		AND    CG.BRAND_GROUP_NO = #{brandGroupNo}
+		              	</when>
+		              	<otherwise>
+		              		AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
+		              	</otherwise>
+		              </choose>
+		              AND    CG.GOODS_CD = G.GOODS_CD
+		              AND    CG.GOODS_CD = GS.GOODS_CD
+		              AND    G.BRAND_CD = B.BRAND_CD
+		              AND    B.BRAND_CD = SB.BRAND_CD
+		              AND    C4.SITE_CD = #{siteCd}
+		              AND    C4.CATE_GB = #{cateGb}
+		              AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+		              AND    C4.CATE1_NO = #{cate1No}
+		              <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>
+		              AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		              AND    G.SELF_MALL_YN = 'Y'   /*몰노출상품*/
+		              AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT   /*판매기간*/
+		              AND    GS.STOCK_QTY <![CDATA[>]]> 0 /*재고있는상품*/
+		              AND    SB.SITE_CD = #{siteCd}
+		              AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+		              AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+		            )
+		AND    USE_YN = 'Y'
+		ORDER  BY DISP_ORD
+	</select>
+
+	<!-- 상품 카테고리 필터 시즌 -->
+	<select id="getCategoryFliterSeason" parameterType="GoodsSearch" resultType="GoodsSearch" timeout="300">
+	/* TsfDisplay.getCategoryFliterSeason */
+		SELECT CD    AS SEASON_CD /*시즌코드*/
+		     , CD_NM AS SEASON_NM /*시즌명*/
+		FROM   TB_COMMON_CODE
+		WHERE  CD_GB = 'G006'
+		AND    CD IN (SELECT G.SEASON_CD
+		              FROM   TB_CATE_4SRCH C4
+		                   , TB_CATE_GOODS CG
+		                   , TB_GOODS G
+		                   , TB_GOODS_STOCK GS
+		                   , TB_BRAND B
+		                   , TB_SITE_BRAND SB
+		              WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+		              <choose>
+		              	<when test="brandGroupNo != null and brandGroupNo != ''">
+		              		AND    CG.BRAND_GROUP_NO = #{brandGroupNo}
+		              	</when>
+		              	<otherwise>
+		              		AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
+		              	</otherwise>
+		              </choose>
+		              AND    CG.GOODS_CD = G.GOODS_CD
+		              AND    CG.GOODS_CD = GS.GOODS_CD
+		              AND    G.BRAND_CD = B.BRAND_CD
+		              AND    B.BRAND_CD = SB.BRAND_CD
+		              AND    C4.SITE_CD = #{siteCd}
+		              AND    C4.CATE_GB = #{cateGb}
+		              AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+		              AND    C4.CATE1_NO = #{cate1No}
+		              <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>
+		              AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		              AND    G.SELF_MALL_YN = 'Y'   /*몰노출상품*/
+		              AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT   /*판매기간*/
+		              AND    GS.STOCK_QTY <![CDATA[>]]> 0 /*재고있는상품*/
+		              AND    SB.SITE_CD = #{siteCd}
+		              AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+		              AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+		     )
+		AND    USE_YN = 'Y'
+		ORDER  BY DISP_ORD
+	</select>
+
+	<!-- 상품 카테고리 필터 컬러 -->
+	<select id="getCategoryFliterColor" parameterType="GoodsSearch" resultType="GoodsSearch" timeout="300">
+		/* TsfDisplay.getCategoryFliterColor */
+		SELECT C.COLOR_GRP_CD               /*컬러그룹코드*/
+		     , CC.CD_DESC     AS COLOR_CHIP /*컬러칩*/
+		FROM   TB_COLOR C
+		     , TB_COMMON_CODE CC
+		WHERE  C.COLOR_GRP_CD = CC.CD
+		AND    CC.CD_GB = 'G072'
+		AND    C.COLOR_CD IN (SELECT O.OPT_CD1
+		                      FROM   TB_CATE_4SRCH C4
+		                           , TB_CATE_GOODS CG
+		                           , TB_GOODS G
+		                           , TB_GOODS_STOCK GS
+		                           , TB_BRAND B
+		                           , TB_SITE_BRAND SB
+		                           , TB_OPTION O
+		                      WHERE  C4.LEAF_CATE_NO = CG.CATE_NO
+		                      <choose>
+		                      	<when test="brandGroupNo != null and brandGroupNo != ''">
+		                      		AND    CG.BRAND_GROUP_NO = #{brandGroupNo}
+		                      	</when>
+		                      	<otherwise>
+		                      		AND    CG.BRAND_GROUP_NO = 0 /*브랜드메인에서 접근한 것이 아니면*/
+		                      	</otherwise>
+		                      </choose>
+		                      AND    CG.GOODS_CD = G.GOODS_CD
+		                      AND    CG.GOODS_CD = GS.GOODS_CD
+		                      AND    G.BRAND_CD = B.BRAND_CD
+		                      AND    B.BRAND_CD = SB.BRAND_CD
+		                      AND    G.GOODS_CD = O.GOODS_CD
+		                      AND    C4.SITE_CD = #{siteCd}
+		                      AND    C4.CATE_GB = #{cateGb}
+		                      AND    C4.CATE_TYPE = 'G031_10' /*상품카테고리*/
+		                      AND    C4.CATE1_NO = #{cate1No}
+		                      <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>
+		                      AND    G.GOODS_STAT = 'G008_90' /*승인완료상품*/
+		                      AND    G.SELF_MALL_YN = 'Y'   /*몰노출상품*/
+		                      AND    NOW() BETWEEN G.SELL_STDT AND G.SELL_EDDT   /*판매기간*/
+		                      AND    GS.STOCK_QTY <![CDATA[>]]> 0 /*재고있는상품*/
+		                      AND    SB.SITE_CD = #{siteCd}
+		                      AND    SB.USE_YN = 'Y' /*사이트에서 사용하는 브랜드*/
+		                      AND    B.USE_YN = 'Y' /*사용하는 브랜드*/
+		                      AND    O.SOLDOUT_YN = 'N' /*품절이 아닌 옵션*/
+		                      AND    O.DISP_YN = 'Y' /*노출하는 옵션*/
+		            )
+		AND    CC.USE_YN = 'Y'
+		GROUP BY C.COLOR_GRP_CD , CC.CD_DESC
+		ORDER  BY CC.DISP_ORD
+	</select>
 </mapper>

+ 72 - 450
src/main/webapp/WEB-INF/views/web/display/CategoryGoodsListFormWeb.html

@@ -23,14 +23,14 @@
 		<div class="breadcrumb">
 			<ul>
 				<li class="bread_home"><a href="index.html">홈</a></li>
-				<li class="bread_2depth">여성</li>
+				<li class="bread_2depth" id="navNm">여성</li>
 			</ul>
 		</div>
 		<div class="wrap">
 			<div class="content dp_list"> <!-- 페이지특정 클래스 = dp_list -->
 				<div class="cont_head">
 					<div>
-						<h3>여성</h3>
+						<h3 id="formTitle"></h3>
 					</div>
 				</div>
 				<div class="lnb">
@@ -39,76 +39,7 @@
 					</div>
 					<div class="lnb_category">
 						<ul class="category" id="ulAllCate">
-							<!--<li>
-								<a href="javascript:;">전체</a>
-							</li>
-							<li>
-								<a href="javascript:;">여성</a>
-								&lt;!&ndash; 2뎁스 &ndash;&gt;
-								<div class="sub_cate">
-									<ul>
-										<li><a href="javascript:;">원피스</a></li>
-										<li>
-											<a href="javascript:;">니트/가디건/베스트</a>
-											<div class="sub_cate">
-												<ul>
-													<li><a href="javascript:;">티셔츠/셔츠01</a></li>
-													<li><a href="javascript:;">니트/가디건/베스트01</a></li>
-													<li><a href="javascript:;">팬츠/레깅스01</a></li>
-												</ul>
-											</div>
-										</li>
-										<li>
-											<a href="javascript:;">팬츠/레깅스</a>
-											&lt;!&ndash; 3뎁스 &ndash;&gt;
-											<div class="sub_cate">
-												<ul>
-													<li>
-														<a href="javascript:;">티셔츠/셔츠02</a>
-														&lt;!&ndash; 4뎁스 &ndash;&gt;
-														<div class="sub_cate">
-															<ul>
-																<li><a href="javascript:;">티셔츠/셔츠03</a></li>
-																<li><a href="javascript:;">니트/가디건/베스트03</a></li>
-																<li><a href="javascript:;">팬츠/레깅스03</a></li>
-															</ul>
-														</div>
-													</li>
-													<li><a href="javascript:;">니트/가디건/베스트02</a></li>
-													<li><a href="javascript:;">팬츠/레깅스02</a></li>
-												</ul>
-											</div>
-										</li>
-									</ul>
-								</div>
-							</li>
-							<li>
-								<a href="javascript:;">남성</a>
-								<div class="sub_cate">
-									<ul>
-										<li><a href="javascript:;">티셔츠/셔츠</a></li>
-										<li><a href="javascript:;">트레이닝/스포츠</a></li>
-										<li><a href="javascript:;">언더웨어</a></li>
-									</ul>
-								</div>
-							</li>
-							<li>
-								<a href="javascript:;">유아동</a>
-								<div class="sub_cate">
-									<ul>
-										<li><a href="javascript:;">티셔츠/셔츠</a></li>
-										<li><a href="javascript:;">언더웨어</a></li>
-									</ul>
-								</div>
-							</li>
-							<li>
-								<a href="javascript:;">라이프</a>
-								<div class="sub_cate">
-									<ul>
-										<li><a href="javascript:;">잡화</a></li>
-									</ul>
-								</div>
-							</li>-->
+
 						</ul>
 					</div>
 				</div>
@@ -117,25 +48,25 @@
 						<div class="filter_list">
 							<!-- 1depth -->
 							<ul>
-								<li data-id="tap02">
+								<li data-id="tap02" th:if="${filterBrandList!=null and !filterBrandList.empty}">
 									<a href="javascript:void(0)">브랜드</a>
 								</li>
-								<li data-id="tap03">
+								<li data-id="tap03" th:if="${filterSizeList!=null and !filterSizeList.empty}">
 									<a href="javascript:void(0)">사이즈</a>
 								</li>
-								<li data-id="tap04">
+								<li data-id="tap04" th:if="${filterPriceList!=null and !filterPriceList.empty}">
 									<a href="javascript:void(0)">가격</a>
 								</li>
 								<li data-id="tap05">
 									<a href="javascript:void(0)">할인율</a>
 								</li>
-								<li data-id="tap06">
+								<li data-id="tap06" th:if="${filterAgeList!=null and !filterAgeList.empty}">
 									<a href="javascript:void(0)">연령</a>
 								</li>
-								<li data-id="tap07">
+								<li data-id="tap07" th:if="${filterSeasonList!=null and !filterSeasonList.empty}">
 									<a href="javascript:void(0)">시즌</a>
 								</li>
-								<li data-id="tap08">
+								<li data-id="tap08" th:if="${filterColorList!=null and !filterColorList.empty}">
 									<a href="javascript:void(0)">컬러</a>
 								</li>
 								<li data-id="tap09">
@@ -153,254 +84,45 @@
 						</div>
 						<div class="filter_content">
 							<!-- 브랜드 -->
-							<div class="sort tap02">
+							<div class="sort tap02" th:if="${filterBrandList!=null and !filterBrandList.empty}">
 								<ul>
+									<th:block th:each="filterBrandData, filterBrandStat : ${filterBrandList}">
 									<li>
 										<label class="brand_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterBrand00" data-name="chkFilterBrand00" name="filterBrandCds" value=""><span>모이몰른</span>
-										</label>
-									</li>
-									<li>
-										<label class="brand_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterBrand01" data-name="chkFilterBrand01" name="filterBrandCds" value=""><span>컬리수</span>
-										</label>
-									</li>
-									<li>
-										<label class="brand_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterBrand02" data-name="chkFilterBrand02" name="filterBrandCds" value=""><span>NBA</span>
-										</label>
-									</li>
-									<li>
-										<label class="brand_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterBrand03" data-name="chkFilterBrand03" name="filterBrandCds" value=""><span>밀크마일</span>
-										</label>
-									</li>
-									<li>
-										<label class="brand_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterBrand04" data-name="chkFilterBrand04" name="filterBrandCds" value=""><span>ANDEW</span>
-										</label>
-									</li>
-									<li>
-										<label class="brand_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterBrand05" data-name="chkFilterBrand05" name="filterBrandCds" value=""><span>nba Kid's</span>
-										</label>
-									</li>
-									<li>
-										<label class="brand_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterBrand06" data-name="chkFilterBrand06" name="filterBrandCds" value=""><span>몰리멜리</span>
-										</label>
-									</li>
-									<li>
-										<label class="brand_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterBrand07" data-name="chkFilterBrand07" name="filterBrandCds" value=""><span>ab.plus</span>
-										</label>
-									</li>
-									<li>
-										<label class="brand_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterBrand08" data-name="chkFilterBrand08" name="filterBrandCds" value=""><span>milkmile</span>
-										</label>
-									</li>
-									<li>
-										<label class="brand_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterBrand09" data-name="chkFilterBrand09" name="filterBrandCds" value=""><span>버커루</span>
-										</label>
-									</li>
-									<li>
-										<label class="brand_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterBrand10" data-name="chkFilterBrand10" name="filterBrandCds" value=""><span>BUCKAROO</span>
-										</label>
-									</li>
-									<li>
-										<label class="brand_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterBrand11" data-name="chkFilterBrand11" name="filterBrandCds" value=""><span>sellys</span>
-										</label>
-									</li>
-									<li>
-										<label class="brand_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterBrand12" data-name="chkFilterBrand12" name="filterBrandCds" value=""><span>올리비에스클로젯</span>
-										</label>
-									</li>
-									<li>
-										<label class="brand_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterBrand13" data-name="chkFilterBrand13" name="filterBrandCds" value=""><span>FRJ</span>
-										</label>
-									</li>
-									<li>
-										<label class="brand_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterBrand14" data-name="chkFilterBrand14" name="filterBrandCds" value=""><span>Olivier's CLOSET</span>
-										</label>
-									</li>
-									<li>
-										<label class="brand_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterBrand15" data-name="chkFilterBrand15" name="filterBrandCds" value=""><span>지오지아</span>
-										</label>
-									</li>
-									<li>
-										<label class="brand_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterBrand16" data-name="chkFilterBrand16" name="filterBrandCds" value=""><span>LPGA</span>
-										</label>
-									</li>
-									<li>
-										<label class="brand_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterBrand17" data-name="chkFilterBrand17" name="filterBrandCds" value=""><span>TRUZEN</span>
+											<input type="checkbox" group="filterValue" th:id="${'chkFilterBrand'+filterBrandStat.count}" name="filterBrandCds" th:value="${filterBrandData.brandGroupNo}"><span th:text="${filterBrandData.brandGroupNm}"></span>
 										</label>
 									</li>
+									</th:block>
 								</ul>
 								<a href="javascript:void(0)" class="tap_close">delete-btn</a>
 							</div>
 							<!-- //브랜드 -->
 							<!-- 사이즈 -->
-							<div class="sort tap03">
+							<div class="sort tap03" th:if="${filterSizeList!=null and !filterSizeList.empty}">
 								<ul>
 									<li>
 										<strong>상의</strong>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize01" data-name="chkFilterSize01" name="filterSizeCds" value=""><span>80</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize02" data-name="chkFilterSize02" name="filterSizeCds" value=""><span>85</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize03" data-name="chkFilterSize03" name="filterSizeCds" value=""><span>90</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize04" data-name="chkFilterSize04" name="filterSizeCds" value=""><span>95</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize05" data-name="chkFilterSize05" name="filterSizeCds" value=""><span>100</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize06" data-name="chkFilterSize06" name="filterSizeCds" value=""><span>105</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize07" data-name="chkFilterSize07" name="filterSizeCds" value=""><span>110</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize08" data-name="chkFilterSize08" name="filterSizeCds" value=""><span>115</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize09" data-name="chkFilterSize09" name="filterSizeCds" value=""><span>S</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize10" data-name="chkFilterSize10" name="filterSizeCds" value=""><span>M</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize11" data-name="chkFilterSize11" name="filterSizeCds" value=""><span>L</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize12" data-name="chkFilterSize12" name="filterSizeCds" value=""><span>XL</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize13" data-name="chkFilterSize13" name="filterSizeCds" value=""><span>FREE</span>
-										</label>
+										<th:block th:each="filterSizeData, filterSizeStat : ${filterSizeList}" th:if="${filterSizeData.sizeGb == 'T'}">
+											<label class="size_btn" onclick="filterSel();">
+												<input type="checkbox" group="filterValue" th:id="${'chkFilterTSize'+filterSizeStat.count}" name="filterSizeCds" th:vale="${filterSizeData.optCd2}"><span th:text="${filterSizeData.optCd2}">80</span>
+											</label>
+										</th:block>
 									</li>
 									<li>
 										<strong>하의</strong>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize14" data-name="chkFilterSize14" name="filterSizeCds" value=""><span>44</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize15" data-name="chkFilterSize15" name="filterSizeCds" value=""><span>55</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize16" data-name="chkFilterSize16" name="filterSizeCds" value=""><span>66</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize17" data-name="chkFilterSize17" name="filterSizeCds" value=""><span>77</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize18" data-name="chkFilterSize18" name="filterSizeCds" value=""><span>26</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize19" data-name="chkFilterSize19" name="filterSizeCds" value=""><span>27</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize20" data-name="chkFilterSize20" name="filterSizeCds" value=""><span>28</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize21" data-name="chkFilterSize21" name="filterSizeCds" value=""><span>29</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize22" data-name="chkFilterSize22" name="filterSizeCds" value=""><span>30</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize23" data-name="chkFilterSize23" name="filterSizeCds" value=""><span>32</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize24" data-name="chkFilterSize24" name="filterSizeCds" value=""><span>33</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize25" data-name="chkFilterSize25" name="filterSizeCds" value=""><span>34</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize26" data-name="chkFilterSize26" name="filterSizeCds" value=""><span>M</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize27" data-name="chkFilterSize27" name="filterSizeCds" value=""><span>L</span>
-										</label>
+										<th:block th:each="filterSizeData, filterSizeStat : ${filterSizeList}" th:if="${filterSizeData.sizeGb == 'B'}">
+											<label class="size_btn" onclick="filterSel();">
+												<input type="checkbox" group="filterValue" th:id="${'chkFilterBSize'+filterSizeStat.count}" name="filterSizeCds" th:vale="${filterSizeData.optCd2}"><span th:text="${filterSizeData.optCd2}">80</span>
+											</label>
+										</th:block>
 									</li>
 									<li>
 										<strong>신발</strong>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize28" data-name="chkFilterSize28" name="filterSizeCds" value=""><span>120</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize29" data-name="chkFilterSize29" name="filterSizeCds" value=""><span>130</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize30" data-name="chkFilterSize30" name="filterSizeCds" value=""><span>140</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize31" data-name="chkFilterSize31" name="filterSizeCds" value=""><span>150</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize32" data-name="chkFilterSize32" name="filterSizeCds" value=""><span>140</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize33" data-name="chkFilterSize33" name="filterSizeCds" value=""><span>150</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize34" data-name="chkFilterSize34" name="filterSizeCds" value=""><span>220</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize35" data-name="chkFilterSize35" name="filterSizeCds" value=""><span>230</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize36" data-name="chkFilterSize36" name="filterSizeCds" value=""><span>235</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize37" data-name="chkFilterSize37" name="filterSizeCds" value=""><span>240</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize38" data-name="chkFilterSize38" name="filterSizeCds" value=""><span>245</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize39" data-name="chkFilterSize39" name="filterSizeCds" value=""><span>250</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize40" data-name="chkFilterSize40" name="filterSizeCds" value=""><span>255</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize41" data-name="chkFilterSize41" name="filterSizeCds" value=""><span>260</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize42" data-name="chkFilterSize42" name="filterSizeCds" value=""><span>265</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize43" data-name="chkFilterSize43" name="filterSizeCds" value=""><span>270</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize44" data-name="chkFilterSize44" name="filterSizeCds" value=""><span>275</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize45" data-name="chkFilterSize45" name="filterSizeCds" value=""><span>280</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize46" data-name="chkFilterSize46" name="filterSizeCds" value=""><span>285</span>
-										</label>
-										<label class="size_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSize47" data-name="chkFilterSize47" name="filterSizeCds" value=""><span>290</span>
-										</label>
+										<th:block th:each="filterSizeData, filterSizeStat : ${filterSizeList}" th:if="${filterSizeData.sizeGb == 'S'}">
+											<label class="size_btn" onclick="filterSel();">
+												<input type="checkbox" group="filterValue" th:id="${'chkFilterSSize'+filterSizeStat.count}" name="filterSizeCds" th:vale="${filterSizeData.optCd2}"><span th:text="${filterSizeData.optCd2}">80</span>
+											</label>
+										</th:block>
 									</li>
 								</ul>
 								<a href="javascript:void(0)" class="tap_close">delete-btn</a>
@@ -435,152 +157,44 @@
 							</div>
 							<!-- //할인율 -->
 							<!-- 연령 -->
-							<div class="sort tap06">
+							<div class="sort tap06" th:if="${filterAgeList!=null and !filterAgeList.empty}">
 								<ul>
-									<li>
-										<label class="Age_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterAge00" data-name="chkFilterAge00" name="filterAgeCds" value=""><span>베이비(0~18개월)</span>
-										</label>
-									</li>
-									<li>
-										<label class="Age_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterAge00" data-name="chkFilterAge00" name="filterAgeCds" value=""><span>토들러(18~36개월)</span>
-										</label>
-									</li>
-									<li>
-										<label class="Age_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterAge00" data-name="chkFilterAge00" name="filterAgeCds" value=""><span>키즈(4~7세)</span>
-										</label>
-									</li>
-									<li>
-										<label class="Age_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterAge00" data-name="chkFilterAge00" name="filterAgeCds" value=""><span>주니어(7~13세)</span>
-										</label>
-									</li>
+									<th:block th:each="filterAgeData, filterAgeStat : ${filterAgeList}">
+										<li>
+											<label class="Age_btn" onclick="filterSel();">
+												<input type="checkbox" group="filterValue" th:id="${'chkFilterAge'+filterAgeStat.count}" name="filterAgeCds" th:value="${filterAgeData.agesCd}"><span th:text="${filterAgeData.agesNm}">베이비(0~18개월)</span>
+											</label>
+										</li>
+									</th:block>
 								</ul>
 								<a href="javascript:void(0)" class="tap_close">delete-btn</a>
 							</div>
 							<!-- //연령 -->
 							<!-- 시즌 -->
-							<div class="sort tap07">
+							<div class="sort tap07" th:if="${filterSeasonList!=null and !filterSeasonList.empty}">
 								<ul>
-									<li>
-										<label class="Season_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSeason00" data-name="chkFilterSeason00" name="filterSeasonCds" value=""><span>봄</span>
-										</label>
-									</li>
-									<li>
-										<label class="Season_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSeason00" data-name="chkFilterSeason00" name="filterSeasonCds" value=""><span>여름</span>
-										</label>
-									</li>
-									<li>
-										<label class="Season_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSeason00" data-name="chkFilterSeason00" name="filterSeasonCds" value=""><span>가을</span>
-										</label>
-									</li>
-									<li>
-										<label class="Season_btn" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterSeason00" data-name="chkFilterSeason00" name="filterSeasonCds" value=""><span>겨울</span>
-										</label>
-									</li>
+									<th:block th:each="filterSeasonData, filterSeasonStat : ${filterSeasonList}">
+										<li>
+											<label class="Season_btn" onclick="filterSel();">
+												<input type="checkbox" group="filterValue"  th:id="${'chkFilterSeason'+filterAgeStat.count}" name="filterSeasonCds" th:value="${filterSeasonData.seasonCd}"><span th:text="${filterSeasonData.seasonNm}">봄</span>
+											</label>
+										</li>
+									</th:block>
 								</ul>
 								<a href="javascript:void(0)" class="tap_close">delete-btn</a>
 							</div>
 							<!-- //시즌 -->
 							<!-- 컬러 -->
-							<div class="sort tap08">
+							<div class="sort tap08" th:if="${filterColorList!=null and !filterColorList.empty}">
 								<ul>
-									<li>
-										<label class="color-check" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterColor0" data-name="chkFilterColor0" name="filterColorCds" value="DM^BEIGE^color35,E1^BEIGE^color35,T3^BEIGE^color35,VM^BEIGE^color35" filtervalue="">
-											<span class="pdColor-color01"></span>
-										</label>
-									</li>
-									<li>
-										<label class="color-check" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterColor0" data-name="chkFilterColor0" name="filterColorCds" value="DM^BEIGE^color35,E1^BEIGE^color35,T3^BEIGE^color35,VM^BEIGE^color35" filtervalue="">
-											<span class="pdColor-color02"></span>
-										</label>
-									</li>
-									<li>
-										<label class="color-check" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterColor0" data-name="chkFilterColor0" name="filterColorCds" value="DM^BEIGE^color35,E1^BEIGE^color35,T3^BEIGE^color35,VM^BEIGE^color35" filtervalue="">
-											<span class="pdColor-color03"></span>
-										</label>
-									</li>
-									<li>
-										<label class="color-check" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterColor0" data-name="chkFilterColor0" name="filterColorCds" value="DM^BEIGE^color35,E1^BEIGE^color35,T3^BEIGE^color35,VM^BEIGE^color35" filtervalue="">
-											<span class="pdColor-color04"></span>
-										</label>
-									</li>
-									<li>
-										<label class="color-check" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterColor0" data-name="chkFilterColor0" name="filterColorCds" value="DM^BEIGE^color35,E1^BEIGE^color35,T3^BEIGE^color35,VM^BEIGE^color35" filtervalue="">
-											<span class="pdColor-color05"></span>
-										</label>
-									</li>
-									<li>
-										<label class="color-check" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterColor0" data-name="chkFilterColor0" name="filterColorCds" value="DM^BEIGE^color35,E1^BEIGE^color35,T3^BEIGE^color35,VM^BEIGE^color35" filtervalue="">
-											<span class="pdColor-color06"></span>
-										</label>
-									</li>
-									<li>
-										<label class="color-check" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterColor0" data-name="chkFilterColor0" name="filterColorCds" value="DM^BEIGE^color35,E1^BEIGE^color35,T3^BEIGE^color35,VM^BEIGE^color35" filtervalue="">
-											<span class="pdColor-color07"></span>
-										</label>
-									</li>
-									<li>
-										<label class="color-check" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterColor0" data-name="chkFilterColor0" name="filterColorCds" value="DM^BEIGE^color35,E1^BEIGE^color35,T3^BEIGE^color35,VM^BEIGE^color35" filtervalue="">
-											<span class="pdColor-color08"></span>
-										</label>
-									</li>
-									<li>
-										<label class="color-check" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterColor0" data-name="chkFilterColor0" name="filterColorCds" value="DM^BEIGE^color35,E1^BEIGE^color35,T3^BEIGE^color35,VM^BEIGE^color35" filtervalue="">
-											<span class="pdColor-color09"></span>
-										</label>
-									</li>
-									<li>
-										<label class="color-check" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterColor0" data-name="chkFilterColor0" name="filterColorCds" value="DM^BEIGE^color35,E1^BEIGE^color35,T3^BEIGE^color35,VM^BEIGE^color35" filtervalue="">
-											<span class="pdColor-color10"></span>
-										</label>
-									</li>
-									<li>
-										<label class="color-check" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterColor0" data-name="chkFilterColor0" name="filterColorCds" value="DM^BEIGE^color35,E1^BEIGE^color35,T3^BEIGE^color35,VM^BEIGE^color35" filtervalue="">
-											<span class="pdColor-color11"></span>
-										</label>
-									</li>
-									<li>
-										<label class="color-check" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterColor0" data-name="chkFilterColor0" name="filterColorCds" value="DM^BEIGE^color35,E1^BEIGE^color35,T3^BEIGE^color35,VM^BEIGE^color35" filtervalue="">
-											<span class="pdColor-color12"></span>
-										</label>
-									</li>
-									<li>
-										<label class="color-check" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterColor0" data-name="chkFilterColor0" name="filterColorCds" value="DM^BEIGE^color35,E1^BEIGE^color35,T3^BEIGE^color35,VM^BEIGE^color35" filtervalue="">
-											<span class="pdColor-color13"></span>
-										</label>
-									</li>
-									<li>
-										<label class="color-check" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterColor0" data-name="chkFilterColor0" name="filterColorCds" value="DM^BEIGE^color35,E1^BEIGE^color35,T3^BEIGE^color35,VM^BEIGE^color35" filtervalue="">
-											<span class="pdColor-color14"></span>
-										</label>
-									</li>
-									<li>
-										<label class="color-check" onclick="filterSel();">
-											<input type="checkbox" group="filterValue" id="chkFilterColor0" data-name="chkFilterColor0" name="filterColorCds" value="DM^BEIGE^color35,E1^BEIGE^color35,T3^BEIGE^color35,VM^BEIGE^color35" filtervalue="">
-											<span class="pdColor-color15"></span>
-										</label>
-									</li>
+									<th:block th:each="filterColorData, filterColorStat : ${filterColorList}">
+										<li>
+											<label class="color-check" onclick="filterSel();">
+												<input type="checkbox" group="filterValue" th:id="${'chkFilterColor'+filterColorStat.count}" name="filterColorCds" th:value="${filterColorData.colorChip}" >
+												<span class="pdColor-color" th:style="${'background-color:'+filterColorData.colorChip}"></span>
+											</label>
+										</li>
+									</th:block>
 								</ul>
 								<a href="javascript:void(0)" class="tap_close">delete-btn</a>
 							</div>
@@ -916,7 +530,7 @@
 		<input type="hidden" name="pageSize" value ="32"/>
 		<input type="hidden" name="cateNo"/>
 		<input type="hidden" name="cateGb" th:value="${cateGb}"/>
-		<input type="hidden" name="brandCd" th:value="${brandCd}"/>
+		<input type="hidden" name="brandGroupNo" th:value="${brandGroupNo}"/>
 		<input type="hidden" name="formalGb" th:value="${formalGb}"/>
 		<input type="hidden" name="cate1No" th:value="${cate1No}"/>
 		<input type="hidden" name="cate2No" th:value="${cate2No}"/>
@@ -927,12 +541,15 @@
 
 	<script th:inline="javascript">
 		/*<![CDATA[*/
+		var filterPriceList = [[${filterPriceList}]];
+
 		// 컨텐츠 호출
 		$(document).ready( function() {
 			//가격 슬라이드
 			var custom_values = ['9,000원', '230,000원', '487,000원', '700,000원', '1,360,000원', '1,799,000원'];
 			var my_from = custom_values.indexOf('9,000원');
 			var my_to = custom_values.indexOf('230,000원');
+
 			$(".dp .js-range-slider01, .sch_result .js-range-slider01").ionRangeSlider({
 				type: "double",
 				min: 9000,
@@ -990,15 +607,16 @@
 		}
 
 		let fnGetCategoryList = function (cate1){
-			var brandCd = [[${brandCd}]];
+			var brandGroupNo = [[${brandGroupNo}]];
 			var formalGb = [[${formalGb}]];
 			var cate1No = [[${cate1No}]];
 			var cate2No = [[${cate2No}]];
 			var cate3No = [[${cate3No}]];
 			var cate4No = [[${cate4No}]];
 
-			console.log('1.'+cate1.cate1No);
-			console.log('2.'+cate1No);
+			var navNm = "";
+			var formTitle = "";
+
 			let tag = '';
 			if (cate1 != null) {
 				tag += '<li';
@@ -1009,6 +627,10 @@
 				tag += '	<a href="javascript:;"';
 				if(cate1.cate1No == cate1No){
 					tag += ' class="on"';
+					formTitle = cate1.cate1Nm;
+					navNm = cate1.cate1Nm;
+					$("#navNm").text(navNm);
+					$("#formTitle").text(formTitle);
 				}
 				tag += '	>' + cate1.cate1Nm + '</a>\n';
 				if (cate1.leafYn == 'N' && cate1.cate2List.length > 0) {
@@ -1027,9 +649,11 @@
 						tag += '		<a href="javascript:;" ';
 						if(cate2.cate2No == cate2No){
 							tag += ' class="on"';
+							navNm = navNm +' > ' + cate2.cate2Nm;
+							$("#navNm").text(navNm);
 						}
 						tag += '		>' + cate2.cate2Nm + '</a>\n';
-						if (cate2.leafYn == 'N' && cate2.cate3List != null && cate2.cate3List.length > 0) {
+ 						if (cate2.leafYn == 'N' && cate2.cate3List != null && cate2.cate3List.length > 0) {
 							tag += '<div class="sub_cate"';
 							if(cate2.cate2No == cate2No){
 								tag += ' style="display: block;"';
@@ -1045,6 +669,8 @@
 								tag += '<a href="javascript:;"';
 								if(cate3.cate3No == cate3No){
 									tag += ' class="on"';
+									navNm = navNm +' > ' + cate3.cate3Nm;
+									$("#navNm").text(navNm);
 								}
 								tag += '>' + cate3.cate3Nm + '</a>';
 								tag += '</li>\n';
@@ -1059,12 +685,8 @@
 				}
 				tag += '</li>\n';
 			}
-			return tag;
-		}
-
-		var test1 = $("#searchGoodsForm").find("input[name=cate2No]").val();
-		if(test1 == '1101'){
 
+			return tag;
 		}
 
 		/*]]>*/