Bladeren bron

프론트 띠배너 esacpe 문자열 오류 수정

gagamel 4 jaren geleden
bovenliggende
commit
c988074bf4

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

@@ -1,1349 +1,1348 @@
-package com.style24.front.biz.web;
-
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-
-import javax.servlet.http.HttpServletResponse;
-
-import com.gagaframework.web.util.GagaStringUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.mobile.device.Device;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.servlet.ModelAndView;
-
-import com.style24.core.biz.service.TscEnvsetService;
-import com.style24.core.biz.service.TscLookbookService;
-import com.style24.core.support.env.TscConstants;
-import com.style24.core.support.message.TscMessageByLocale;
-import com.style24.front.biz.service.TsfCommonService;
-import com.style24.front.biz.service.TsfDisplayService;
-import com.style24.front.biz.service.TsfGoodsService;
-import com.style24.front.biz.service.TsfPlanningService;
-import com.style24.front.biz.service.TsfSocialService;
-import com.style24.front.biz.thirdparty.EigeneaiApi;
-import com.style24.front.biz.thirdparty.SearchEngineDiquest;
-import com.style24.front.support.controller.TsfBaseController;
-import com.style24.front.support.env.TsfConstants;
-import com.style24.front.support.security.session.TsfSession;
-import com.style24.persistence.TscPageRequest;
-import com.style24.persistence.domain.BrandGroup;
-import com.style24.persistence.domain.Cate1;
-import com.style24.persistence.domain.Cate4Srch;
-import com.style24.persistence.domain.Contents;
-import com.style24.persistence.domain.GnbTab;
-import com.style24.persistence.domain.Goods;
-import com.style24.persistence.domain.Login;
-import com.style24.persistence.domain.Lookbook;
-import com.style24.persistence.domain.MainLayout;
-import com.style24.persistence.domain.Plan;
-import com.style24.persistence.domain.Popup;
-import com.style24.persistence.domain.SearchKeyword;
-import com.style24.persistence.domain.Social;
-import com.style24.persistence.domain.eigene.Eigeneai.Result;
-import com.style24.persistence.domain.searchengine.AutoCompleteResponse;
-import com.style24.persistence.domain.searchengine.Filter;
-import com.style24.persistence.domain.searchengine.GoodsListResponse;
-import com.style24.persistence.domain.searchengine.PlanningResponse;
-import com.style24.persistence.domain.searchengine.SearchEngine;
-
-import lombok.extern.slf4j.Slf4j;
-
-import com.gagaframework.web.parameter.GagaMap;
-import com.gagaframework.web.util.GagaCookieUtil;
-
-/**
- * 전시 Controller
- * 
- * @author gagamel
- * @since 2020. 12. 29
- */
-@Controller
-@RequestMapping("/display")
-@Slf4j
-public class TsfDisplayController extends TsfBaseController {
-
-	@Autowired
-	private TscMessageByLocale message;
-
-	@Autowired
-	private TsfDisplayService displayService;
-
-	@Autowired
-	private TscEnvsetService envsetService;
-
-	@Autowired
-	private TsfGoodsService goodsService;
-
-	@Autowired
-	private TscLookbookService coreLookbookService;
-
-	@Autowired
-	private TsfPlanningService planningService;
-
-	@Autowired
-	private TsfSocialService socialService;
-
-	@Autowired
-	private SearchEngineDiquest diquest;
-
-	@Autowired
-	private TsfCommonService commonService;
-
-	@Autowired
-	private EigeneaiApi eigeneaiApi;
-
-	/**
-	 * PC보기. 모바일에서 <PC> 형태로 볼 때
-	 * @return
-	 * @throws Exception
-	 * @since 2021. 5. 18
-	 */
-	@GetMapping("/view/normal/form")
-	public String viewNormal() {
-		GagaCookieUtil.setCookie(TsfSession.getHttpServletResponse(), TsfConstants.CK_PREFIX + "_site_preference", "normal", -1);
-		return "redirect:/display/mall/main/form";
-	}
-
-	/**
-	 * 모바일보기. 모바일 디바이스에서 <PC보기> 클릭 후 접근한 담에 다시 <모바일보기> 클릭 시
-	 * @return
-	 * @author gagamel
-	 * @since 2021. 5. 18
-	 */
-	@GetMapping("/view/mobile/form")
-	public String viewMobile() {
-		GagaCookieUtil.deleteCookie(TsfSession.getHttpServletResponse(), TsfConstants.CK_PREFIX + "_site_preference");
-		return "redirect:/display/mall/main/form";
-	}
-
-	/**
-	 * 몰 메인
-	 * @return
-	 * @author gagamel
-	 * @since 2021. 2. 3
-	 */
-	@GetMapping("/mall/main/form")
-	public ModelAndView mallMain(Device device, @RequestParam HashMap<String, String> paramMap) {
-		ModelAndView mav = new ModelAndView();
-		MainLayout mallMainLayout = new MainLayout();
-		// 로그인 유무 확인 (로그인이 되어 있지 않으면 regNo 를 0으로 장바구니에 저장한다.)
-		Login login = new Login();
-		if (TsfSession.isLogin()) {
-			login = TsfSession.getInfo();
-		} else {
-			login.setCustNo(0);
-		}
-
-		String mainCateNo = "1700";
-		// 몰메인 PC,MOBILE 동일하게 사용으로 인한 주석처리
-//		if (device.isMobile() || "Y".equals(paramMap.get("mobileYn"))) {
-//			mainCateNo = "1720";
-//		} else {
-//			mainCateNo = "1700";
-//		}
-
-		mallMainLayout.setCateNo(Integer.parseInt(mainCateNo));
-		mallMainLayout.setPreview(paramMap.get("preview"));
-		Collection<MainLayout> mainLayoutCollection = displayService.getMainLayout(mallMainLayout);
-
-		Collection<MainLayout> mainLayoutList = new ArrayList<MainLayout>();
-
-		for (MainLayout mainLayout : mainLayoutCollection) {
-			String contentsLoc = mainLayout.getContentsLoc();
-			Contents contents = new Contents();
-			log.info("mallMain contentsLoc:::{}", contentsLoc);
-			contents.setContentsCnt(mainLayout.getContentsCnt());
-			contents.setContentsLoc(contentsLoc);
-			contents.setPreview(paramMap.get("preview"));
-			contents.setViewDt(paramMap.get("viewDt"));
-			contents.setCateNo(Integer.parseInt(mainCateNo));
-			if (contentsLoc.equals("SGNB001") || contentsLoc.equals("SGNB002") || contentsLoc.equals("STAB001") || contentsLoc.equals("SMM003") || contentsLoc.equals("SMM004") || contentsLoc.equals("SMM005") || contentsLoc.equals("SMM006")) {
-				contents.setMaxRow(1);
-			}
-			if (contentsLoc.equals("SMM011")) {
-				contents.setMaxRow(5);
-			}
-
-			Cate4Srch cate4Srch = new Cate4Srch();
-			cate4Srch.setContentsLoc(contentsLoc);
-			cate4Srch.setCustNo(login.getCustNo());
-			cate4Srch = displayService.getCate4srch(cate4Srch);
-			mainLayout.setCate4Srch(cate4Srch);
-
-			if ("C".equals(mainLayout.getContentsYn())) {
-				mainLayout.setContentsList(displayService.getContentsList(contents));
-			} else {
-				log.info("nullpoint contentsLoc::::{}", contentsLoc);
-				if ("SMM001".equals(contentsLoc)) {
-					cate4Srch.setMaxRow(3);
-				} else {
-					cate4Srch.setMaxRow(20);
-				}
-
-				Collection<Goods> goodsList = goodsService.getContentsCategoryGoodsList(cate4Srch);
-				mainLayout.setGoodsList(goodsList);
-
-				if ("A".equals(mainLayout.getContentsYn())) {
-					mainLayout.setContentsList(displayService.getContentsList(contents));
-				}
-			}
-
-			if (contentsLoc.equals("SMM004")) {
-				contents.setPageGb("MALL");
-				mainLayout.setBestItemList(displayService.getBestItemForGoods(contents));
-			}
-
-			if (contentsLoc.equals("SMM006")) {
-				Social social = new Social();
-				social.setSiteCd("G000_10");
-				social.setFrontGb(TsfSession.getFrontGb());
-				mainLayout.setSocialInfo(socialService.getSocialForGoods(social));
-			}
-
-			if (contentsLoc.equals("SMM007")) {
-				mainLayout.setBrandPickList(displayService.getContentsForGoods(contents));
-			}
-
-			if (contentsLoc.equals("SMM009") || contentsLoc.equals("SMM012")) {
-				if (contentsLoc.equals("SMM009")) {
-					contents.setMaxRow(5);
-				}
-				mainLayout.setMdPickList(displayService.getContentsForGoods(contents));
-			}
-
-			if (contentsLoc.equals("SMM003") || contentsLoc.equals("SBM007")) {
-				if(Integer.parseInt(mainLayout.getContentsCnt()) > 0){
-					mainLayout.setNewItemList(displayService.getContentsForGoods(contents));
-				}else{
-					mainLayout.setNewItemList(displayService.getMainNewGoodsList(contents));
-				}
-			}
-
-			mainLayoutList.add(mainLayout);
-		}
-
-		mav.addObject((StringUtils.isBlank(paramMap.get("preview"))) ? "" : paramMap.get("preview"));
-		mav.addObject((StringUtils.isBlank(paramMap.get("viewDt"))) ? "" : paramMap.get("viewDt"));
-		mav.addObject("viewPage", "G037_20");
-		//mav.addObject("popupCateNo", "");
-
-		//log.info("mainLayoutList::{}", mainLayoutList);
-		mav.addObject("mainLayoutList", mainLayoutList);
-		mav.setViewName(super.getDeviceViewName("display/MallMainForm"));
-
-		return mav;
-	}
-
-	/**
-	 * GNB탭 > 브랜드그룹 목록
-	 * @param contents - 컨텐츠 정보
-	 * @return
-	 * @throws Exception
-	 * @author gagamel
-	 * @since 2021. 3. 11
-	 */
-	@GetMapping("/gnb/brand/group/list")
-	@ResponseBody
-	public Collection<BrandGroup> getGnbBrandGroupList(Contents contents) {
-		contents.setContentsLoc("STAB001");
-		return displayService.getGnbBrandGroupList(contents);
-	}
-
-	/**
-	 * GNB탭 > TOP BANNER 목록
-	 * @param contents - 컨텐츠 정보
-	 * @return
-	 * @throws Exception
-	 * @author bin2107
-	 * @since 2021. 4. 11
-	 */
-	@GetMapping("/gnb/topbanner/list")
-	@ResponseBody
-	public Collection<Contents> getGnbTopBannerList(Contents contents, @RequestParam(value = "contentsLoc") String contentsLoc) {
-		contents.setContentsLoc(contentsLoc);
-		contents.setMaxRow(1);
-		Collection<Contents> bannerList = displayService.getContentsList(contents);
-
-		for(Contents tempContents : bannerList){
-			tempContents.setHtml(GagaStringUtil.replace(GagaStringUtil.replace(tempContents.getHtml(), "&lt;", "<"), "&gt;", ">"));
-		}
-
-		log.info("getGnbTopBannerList>>>>{}",bannerList);
-
-		return bannerList;
-	}
-
-//	/**
-//	 * 전체 카테고리 목록
-//	 * @return
-//	 * @author gagamel
-//	 * @since 2021. 3. 15
-//	 */
-//	@GetMapping("/all/cate/list")
-//	@ResponseBody
-//	public Collection<Cate1> getAllCategoryList() {
-//		return displayService.getAllCategoryList(TsfConstants.CateGb.BYITEM.value());
-//	}
-
-	/**
-	 * GNB 탭 목록
-	 * @param gnbTab - GNB탭 정보
-	 * @return
-	 * @throws Exception
-	 * @author gagamel
-	 * @since 2021. 3. 11
-	 */
-	@GetMapping("/gnb/tab/list")
-	@ResponseBody
-	public Collection<GnbTab> getGnbTabList(GnbTab gnbTab) {
-		gnbTab.setGtabGb("C"); // 공통GNB
-		return displayService.getGnbTabList(gnbTab);
-	}
-
-	/**
-	 * 브랜드 메인
-	 * @param device - 디바이스 정보
-	 * @param paramMap - 파라미터 정보
-	 * @param response - HttpServletResponse
-	 * @return
-	 * @throws IOException
-	 * @author gagamel
-	 * @since 2021. 3. 16
-	 */
-	@GetMapping("/brand/main/form")
-	public ModelAndView brandMain(Device device, @RequestParam HashMap<String, String> paramMap, HttpServletResponse response) throws IOException {
-		log.info("{}", paramMap);
-
-		ModelAndView mav = new ModelAndView();
-
-		if (StringUtils.isBlank(paramMap.get("brandGroupNo"))) {
-			response.sendRedirect("/");
-		}
-
-		// 브랜드그룹 정보
-		mav.addObject("brandGroupInfo", displayService.getGnbBrandGroup(Integer.parseInt(paramMap.get("brandGroupNo"))));
-
-		// 브랜드 레이아웃
-		MainLayout mainLayout = new MainLayout();
-		String mainCateNo = "1711";
-		// PC,MOBILE 동일 사용으로 인해 주석처리
-//		if (device.isMobile() || "Y".equals(paramMap.get("mobileYn"))) {
-//			mainCateNo = "1721";
-//		} else {
-//			mainCateNo = "1711";
-//		}
-		mainLayout.setCateNo(Integer.parseInt(mainCateNo));
-		mainLayout.setBrandGroupNo(Integer.parseInt(paramMap.get("brandGroupNo")));
-		Collection<MainLayout> mainLayoutCollection = displayService.getMainLayout(mainLayout);
-		Collection<MainLayout> brandMainLayoutList = new ArrayList<MainLayout>();
-
-		for (MainLayout brandMain : mainLayoutCollection) {
-			String contentsLoc = brandMain.getContentsLoc();
-			Contents contents = new Contents();
-			contents.setContentsLoc(contentsLoc);
-			contents.setPreview(paramMap.get("preview"));
-			contents.setViewDt(paramMap.get("viewDt"));
-			contents.setCateNo(Integer.parseInt(mainCateNo));
-			contents.setBrandGroupNo((brandMain.getBrandGroupNo()).toString());
-			if (contentsLoc.equals("SBM005") || contentsLoc.equals("SBM007") || contentsLoc.equals("SBM008") || contentsLoc.equals("SBM009") || contentsLoc.equals("SBM010") || contentsLoc.equals("SBM011") || contentsLoc.equals("SBM013") || contentsLoc.equals("SBM017") || contentsLoc.equals("SBM018") || contentsLoc.equals("SBM019")) {
-				contents.setMaxRow(1);
-			}
-
-			Cate4Srch cate4Srch = new Cate4Srch();
-			cate4Srch.setContentsLoc(contentsLoc);
-			cate4Srch = displayService.getCate4srch(cate4Srch);
-			brandMain.setCate4Srch(cate4Srch);
-
-			if ("C".equals(brandMain.getContentsYn())) {
-				if (contentsLoc.equals("SBM017") || contentsLoc.equals("SBM018") || contentsLoc.equals("SBM019")) {
-					cate4Srch.setBrandGroupNo(brandMain.getBrandGroupNo());
-					cate4Srch.setMaxRow(20);
-					Collection<Goods> goodsList = goodsService.getContentsCategoryGoodsList(cate4Srch);
-					brandMain.setGoodsList(goodsList);
-				}
-				brandMain.setContentsList(displayService.getContentsList(contents));
-			} else if ("E".equals(brandMain.getContentsYn())) {
-				Cate4Srch cate4Srch2 = new Cate4Srch();
-				cate4Srch2.setBrandGroupNo(brandMain.getBrandGroupNo());
-				cate4Srch2.setContentsLoc(contentsLoc);
-				if (contentsLoc.equals("SBM013") || contentsLoc.equals("SBMM013")) {
-					cate4Srch2.setMaxRow(50);
-				} else {
-					cate4Srch2.setMaxRow(20);
-				}
-				Collection<Goods> goodsList = goodsService.getContentsCategoryGoodsList(cate4Srch2);
-				brandMain.setGoodsList(goodsList);
-			} else {
-				cate4Srch.setBrandGroupNo(brandMain.getBrandGroupNo());
-				if (cate4Srch.getContentsLoc().equals("SBM008")) {
-					cate4Srch.setMaxRow(10);
-				} else if (cate4Srch.getContentsLoc().equals("SBM013") || cate4Srch.getContentsLoc().equals("SBMM013")) {
-					cate4Srch.setMaxRow(50);
-				} else {	// SBM007, SBM009
-					cate4Srch.setMaxRow(20);
-				}
-				Collection<Goods> goodsList = goodsService.getContentsCategoryGoodsList(cate4Srch);
-				brandMain.setGoodsList(goodsList);
-
-				if ("A".equals(brandMain.getContentsYn())) {
-					brandMain.setContentsList(displayService.getContentsList(contents));
-				}
-			}
-
-			// 기획전 컨텐츠일때
-			if ("SBM011".equals(brandMain.getContentsLoc()) || "SBMM011".equals(brandMain.getContentsLoc())) {
-				Plan plan = new Plan();
-				plan.setBrandGroupNo(Integer.parseInt(paramMap.get("brandGroupNo")));
-				if ("SBM011".equals(brandMain.getContentsLoc())) {
-					plan.setMaxRow(6);
-				} else {
-					plan.setMaxRow(2);
-				}
-				plan.setFrontGb(TsfSession.getFrontGb());
-				plan.setSiteCd(TscConstants.Site.STYLE24.value());
-				brandMain.setPlanningList(planningService.getPlanningMainList(plan));
-			}
-
-			// 룩북일때
-			if ("SBM010".equals(brandMain.getContentsLoc()) || "SBMM010".equals(brandMain.getContentsLoc())) {
-				Lookbook lookbook = new Lookbook();
-				lookbook.setBrandCd(paramMap.get("brandGroupNo"));
-				lookbook.setMainDispYn("Y");
-
-				brandMain.setLookbookList(coreLookbookService.getLookbookListForGoods(lookbook));
-			}
-			brandMainLayoutList.add(brandMain);
-		}
-
-		mav.addObject("preview", paramMap.get("preview"));
-		mav.addObject("viewDt", paramMap.get("viewDt"));
-		mav.addObject("viewPage", "G037_31");
-		mav.addObject("popupBrandCd", paramMap.get("brandGroupNo"));
-		mav.addObject("brandGroupNo", paramMap.get("brandGroupNo"));
-
-		//log.info("brandMainLayoutList::{}", brandMainLayoutList);
-		mav.addObject("brandMainLayoutList", brandMainLayoutList);
-		mav.setViewName(super.getDeviceViewName("display/BrandMainForm"));
-
-		return mav;
-	}
-
-	/**
-	 * 브랜드 GNB 탭 목록
-	 * @param gnbTab - GNB탭 정보
-	 * @return
-	 * @throws Exception
-	 * @author gagamel
-	 * @since 2021. 3. 16
-	 */
-	@GetMapping("/brand/gnb/tab/list")
-	@ResponseBody
-	public Collection<GnbTab> getBrandGnbTabList(GnbTab gnbTab) {
-		gnbTab.setGtabGb("B"); // 브랜드GNB
-		return displayService.getGnbTabList(gnbTab);
-	}
-
-	/**
-	 * 카테고리 메인
-	 * @param cate - 카테고리 정보
-	 * @return
-	 * @author gagamel
-	 * @since 2021. 3. 25
-	 */
-	@GetMapping("/category/main/form")
-	public ModelAndView categoryMain(Cate4Srch cate) {
-		ModelAndView mav = new ModelAndView(super.getDeviceViewName("display/CategoryMainForm"));
-
-		MainLayout mainLayout = new MainLayout();
-		mainLayout.setCateNo(cate.getCate1No());
-		Collection<MainLayout> mainLayoutCollection = displayService.getMainLayout(mainLayout);
-		Collection<MainLayout> cateMainLayoutList = new ArrayList<MainLayout>();
-
-		for (MainLayout cateMain : mainLayoutCollection) {
-			if ("SCM001".equals(cateMain.getContentsLoc())) {
-				// 기획전
-				Contents contents = new Contents();
-				contents.setContentsLoc("SCM001");
-				contents.setCateNo(cate.getCate1No());
-				mav.addObject("planningList", displayService.getGnbTabBannerlist(contents));
-			} else if ("SCM002".equals(cateMain.getContentsLoc())) {
-				// 신상품
-				Contents contents = new Contents();
-				contents.setContentsLoc("SCM002");
-				contents.setCateNo(cate.getCate1No());
-				contents.setMaxRow(1);
-				Collection<Contents> conList = displayService.getContentsList(contents);
-				mav.addObject("newGoodsList", null);
-				if(Integer.parseInt(cateMain.getContentsCnt()) > 0){
-					for (Contents contentsData : conList) {
-						cate.setContentsLoc("SCM002");
-						cate.setMaxRow(20);
-						mav.addObject("newGoodsList", goodsService.getContentsCategoryGoodsList(cate));
-					}
-				}else{
-					Collection<Contents> contentsList = displayService.getBestItemCategoryList(contents);
-					Cate4Srch tempCate = new Cate4Srch();
-					for (Contents data : contentsList) {
-						tempCate.setContentsLoc(data.getContentsLoc());
-						tempCate.setMaxRow(20);
-						tempCate.setCustNo(TsfSession.isLogin() ? TsfSession.getInfo().getCustNo() : 0);
-						tempCate.setSiteCd(data.getSiteCd());
-						tempCate.setCateGb(data.getCateGb());
-						tempCate.setCate1No(data.getCateNo());
-					}
-					mav.addObject("newGoodsList", displayService.getContentsCategoryNewGoodsList(tempCate));
-				}
-			} else if ("SCM003".equals(cateMain.getContentsLoc())) {
-				// 베스트품
-				Contents contents = new Contents();
-				contents.setContentsLoc("SCM003");
-				contents.setCateNo(cate.getCate1No());
-				contents.setMaxRow(1);
-				Collection<Contents> conList = displayService.getContentsList(contents);
-				mav.addObject("bestGoodsList", null);
-				for (Contents contentsData : conList) {
-					cate.setContentsLoc("SCM003");
-					cate.setMaxRow(Integer.parseInt(contentsData.getStrVar1()));
-					cate.setCateNo(contents.getCateNo());
-					mav.addObject("bestGoodsList", goodsService.getContentsCategoryGoodsList(cate));
-				}
-			}
-
-			cateMainLayoutList.add(cateMain);
-		}
-
-		mav.addObject("cateMainLayoutList", cateMainLayoutList);
-		mav.addObject("preview", cate.getPreview());
-		mav.addObject("viewDt", cate.getViewDt());
-		mav.addObject("viewPage", "G037_30");
-		mav.addObject("popupCateNo", cate.getCate1No());
-
-		mav.addObject("params", cate);
-
-		return mav;
-	}
-
-	/**
-	 * 룩북 메인
-	 * @param lookbook
-	 * @return
-	 * @author bin2107
-	 * @since 2021. 3. 30
-	 */
-	@GetMapping("/lookbook/main/form")
-	public ModelAndView lookbookMain(Lookbook lookbook) {
-		ModelAndView mav = new ModelAndView();
-		// 브랜드그룹 정보 : 브랜드메인 링크에 설정된 기획전으로 들어올때 GNB 변경때문에 사용
-		if (lookbook.getBrandGroupNo() != null && !lookbook.getBrandGroupNo().equals("")) {
-			lookbook.setBrandCd(lookbook.getBrandGroupNo().toString());
-			lookbook.setLookbookGb("BL");
-			mav.addObject("brandGroupInfo", displayService.getGnbBrandGroup(lookbook.getBrandGroupNo()));
-			mav.setViewName(super.getDeviceViewName("display/BrandLookbookMainForm"));
-		} else {
-			lookbook.setLookbookGb("L");
-			mav.addObject("brandGroupInfo", null);
-			mav.setViewName(super.getDeviceViewName("display/LookbookMainForm"));
-		}
-
-		mav.addObject("lbInfo", lookbook);
-		return mav;
-	}
-
-	/**
-	 * 룩북 리스트
-	 * @param lookbook
-	 * @return
-	 * @author bin2107
-	 * @since 2021. 3. 30
-	 */
-//	@GetMapping("/lookbook/main/list")
-//	@ResponseBody
-//	public Collection<Lookbook> lookbooklist(Lookbook lookbook) {
-//		lookbook.setFrontGb(TsfSession.getFrontGb());
-//		lookbook.setFrontYn("Y");
-//		return coreLookbookService.getLookbookList(lookbook);
-//	}
-	@PostMapping("/lookbook/main/list")
-	@ResponseBody
-	public GagaMap lookbooklist(@RequestBody Lookbook params) {
-		GagaMap result = new GagaMap();
-		TscPageRequest pageable = new TscPageRequest((params.getPageNo() > 0 ? params.getPageNo() - 1 : 0), params.getPageSize(), params.getPageUnit());
-		pageable.setTotalCount(coreLookbookService.getLookbookListCount(params));
-
-		params.setPageable(pageable);
-		result.set("paging", pageable);
-		result.set("dataList", coreLookbookService.getLookbookList(params));
-		return result;
-	}
-
-	@GetMapping("/lookbook/main/brand/list")
-	@ResponseBody
-	public Collection<Lookbook> lookbookBrandList(Lookbook lookbook) {
-		return coreLookbookService.lookbookBrandList(lookbook);
-	}
-
-	/**
-	 * 룩북 상세
-	 * @param lookbook
-	 * @return
-	 * @author bin2107
-	 * @since 2021. 4. 6
-	 */
-	@GetMapping("/lookbook/detail/form")
-	public ModelAndView lookbookDetail(Lookbook lookbook) {
-		ModelAndView mav = new ModelAndView();
-
-		lookbook.setFrontGb(TsfSession.getFrontGb());
-		Collection<Lookbook> lookbookList = coreLookbookService.getLookbookListForGoods(lookbook);
-		String brandNm = "";
-		String lookbookTitle = "";
-		if (lookbookList != null) {
-			for (Lookbook lbInfo : lookbookList) {
-				brandNm = lbInfo.getBrandNm();
-				lookbookTitle = lbInfo.getTitle();
-			}
-			lookbook.setBrandNm(brandNm);
-			lookbook.setTitle(lookbookTitle);
-		}
-
-		mav.addObject("lookbookDetailList", lookbookList);
-		mav.addObject("otherLookbookList", coreLookbookService.getOtherLookbookList(lookbook));
-		mav.addObject("lookbookInfo", lookbook);
-		// 브랜드그룹 정보 : 브랜드메인 링크에 설정된 기획전으로 들어올때 GNB 변경때문에 사용
-		mav.addObject("brandGroupInfo", displayService.getGnbBrandGroup(lookbook.getBrandGroupNo()));
-
-		mav.setViewName(super.getDeviceViewName("display/LookbookDetailForm"));
-		return mav;
-	}
-
-	/**
-	 * 팝업 목록
-	 *
-	 * @return
-	 * @throws Exception
-	 * @author eskim
-	 * @since 2021. 3. 30
-	 */
-	@GetMapping("/popup/list")
-	@ResponseBody
-	public GagaMap getPopupList(@RequestParam HashMap<String, String> paramMap) {
-
-		GagaMap result = new GagaMap();
-
-		Popup popup = new Popup();
-		popup.setFrontGb(TsfSession.getFrontGb());
-		popup.setViewPage(paramMap.get("viewPage"));
-		if (paramMap.get("cateNo") != null && paramMap.get("cateNo") != "") {
-			popup.setCateNo(Integer.parseInt(paramMap.get("cateNo")));
-		}
-		popup.setBrandCd(paramMap.get("brandCd"));
-		popup.setPlanSq((StringUtils.isBlank(paramMap.get("planSq").toString()) ? 0 : Integer.parseInt(paramMap.get("planSq"))));
-		popup.setPreview(paramMap.get("preview"));
-		popup.setViewDt(paramMap.get("viewDt"));
-
-		//result.set("dataList", displayService.getPopupList(popup));
-
-		return displayService.getPopupList(popup);
-	}
-
-	/**
-	 * 카테고리 상품 목록
-	 * @param params - 검색엔진 정보
-	 * @return
-	 * @author bin2107
-	 * @since 2021. 4. 2
-	 */
-	@GetMapping("/category/goods/list/form")
-	public ModelAndView categoryGoodsListForm(SearchEngine params) {
-		ModelAndView mav = new ModelAndView();
-		params.setBrandGroupNo(params.getBrandGroupNo() == null ? 0 : params.getBrandGroupNo());
-		params.setFrontGb(TsfSession.getFrontGb());
-		params.setSiteCd(TscConstants.Site.STYLE24.value());
-
-		// 브랜드그룹 정보 : 브랜드메인 링크에 설정된 기획전으로 들어올때 GNB 변경때문에 사용
-		if (params.getBrandGroupNo() != null && params.getBrandGroupNo() > 0) {
-			mav.addObject("brandGroupInfo", displayService.getGnbBrandGroup(params.getBrandGroupNo()));
-		}
-		mav.addObject("cateInfo", params);
-
-		Collection<Filter> filterList = new ArrayList<Filter>();
-
-		// 검색엔진 연동 여부
-//		String syncYn = commonService.getSearchEngineSyncYn();
-//		if (syncYn.equals("Y")) { // 검색엔진을 통한 상품리스트 조회
-		mav.setViewName(super.getDeviceViewName("display/CategoryGoodsListForm"));
-		// 카테고리 목록
-		mav.addObject("allCateList", displayService.getAllCategoryList("G032_101"));
-		// 상품검색키워드 카테고리 목록
-		SearchEngine cate1 = new SearchEngine();
-		cate1.setBrandGroupNo(params.getBrandGroupNo() == null ? 0 : params.getBrandGroupNo());
-		cate1.setFrontGb(TsfSession.getFrontGb());
-		cate1.setSiteCd(TscConstants.Site.STYLE24.value());
-		cate1.setCateGb("G032_101");
-		cate1.setCate1No(params.getCate1No());
-		mav.addObject("cateList", diquest.getCategoryList(cate1));
-		if (params.getBrandGroupNo() != null && params.getBrandGroupNo() > 0) {
-			cate1.setCate1No(null);
-			mav.addObject("brandCateList" , diquest.getCategoryList(cate1));
-		}
-		// 상품리스트 카테고리별 필터 목록
-		filterList = diquest.getFilterList(params);
-//		}else{
-//			// 카테고리 목록
-//			mav.addObject("cateList", displayService.getAllCategoryList(params.getCateGb()));
-//			mav.setViewName(super.getDeviceViewName("display/CategoryGoodsListForm2"));
-//			filterList = displayService.getGoodsListCategoryFilterList(params);
-//		}
-
-		// 필터 설정
-		mav.addObject("filterBrandList", displayService.getCategoryFilterList(filterList, "BRAND"));
-		mav.addObject("filterSizeList", displayService.getCategoryFilterList(filterList, "SIZE"));
-		mav.addObject("filterPriceList", displayService.getCategoryFilterList(filterList, "PRICE"));
-		mav.addObject("filterAgeList", displayService.getCategoryFilterList(filterList, "AGE"));
-		mav.addObject("filterSeasonList", displayService.getCategoryFilterList(filterList, "SEASON"));
-		mav.addObject("filterColorList", displayService.getCategoryFilterList(filterList, "COLOR"));
-		mav.addObject("filterBenefitList", displayService.getCategoryFilterList(filterList, "BENEFIT"));
-		if (params.getFormalGb() != null) {
-			params.setFormalGb(params.getFormalGb().toUpperCase());
-		}
-		mav.addObject("params", params);
-
-		log.info("categoryGoodsListForm params:::::{}", params);
-		log.info("filterPriceList:::{}", displayService.getCategoryFilterList(filterList, "PRICE"));
-
-		return mav;
-	}
-
-	/**
-	 * 카테고리 상품 리스트 조회
-	 * @param params - 검색엔진 정보
-	 * @return
-	 * @author bin2107
-	 * @since 2021. 4. 7
-	 */
-	@PostMapping("/category/goods/list")
-	@ResponseBody
-	public GagaMap getGoodsList(@RequestBody SearchEngine params) {
-		GagaMap result = new GagaMap();
-		log.info("getGoodsList's parameter::: {}", params);
-		TscPageRequest pageable = new TscPageRequest((params.getPageNo() > 0 ? params.getPageNo() - 1 : 0), params.getPageSize(), params.getPageUnit());
-
-		if (TsfSession.isLogin()) {
-			params.setCustNo(TsfSession.getInfo().getCustNo());
-		}
-
-		params.setSiteCd(TscConstants.Site.STYLE24.value());
-		params.setFrontGb(TsfSession.getFrontGb());
-		params.setCustGb(TsfSession.getCustGb());
-
-		if (params.getBrandGroupNo() == null) {
-			params.setBrandGroupNo(0);
-		}
-
-		Collection<SearchEngine> dataList = new ArrayList<SearchEngine>();
-
-		GoodsListResponse response = diquest.getGoodsList(params);
-		pageable.setTotalCount(response.getTotalCount());
-		dataList = response.getResponse();
-		result.set("paging", pageable);
-		result.set("dataList", dataList);
-
-		log.info("pageable>>>>{}", pageable);
-		log.info("dataList>>>>{}", dataList);
-
-		return result;
-	}
-
-	/**
-	 * 전체 브랜드
-	 * @param
-	 * @return
-	 * @author bin2107
-	 * @since 2021. 4. 12
-	 */
-	@GetMapping("/all/brand/form")
-	public ModelAndView allBrandMain(BrandGroup brandGroup) {
-		ModelAndView mav = new ModelAndView(super.getDeviceViewName("display/AllBrandForm"));
-
-		brandGroup.setSelfYn("Y");
-		mav.addObject("mainBrandList", displayService.getBrandImgList(brandGroup));
-
-		return mav;
-	}
-
-	/**
-	 * 전체 브랜드 리스트
-	 * @param
-	 * @return
-	 * @author bin2107
-	 * @since 2021. 4. 12
-	 */
-	@GetMapping("/all/brand/list")
-	@ResponseBody
-	public Collection<BrandGroup> getAllBrandList(BrandGroup brandGroup) {
-		return displayService.getAllBrandList(brandGroup);
-	}
-
-	/**
-	 * 브랜드 카테고리 목록
-	 * @param brandGroupNo - 브랜드그룹번호
-	 * @return
-	 * @author gagamel
-	 * @since 2021. 4. 12
-	 */
-	@GetMapping("/brand/cate/list")
-	@ResponseBody
-	public Collection<Cate1> getBrandCategoryList(Integer brandGroupNo) {
-		return displayService.getBrandCategoryList(brandGroupNo);
-	}
-
-	/**
-	 * 아울렛 카테고리 목록
-	 * @param
-	 * @return
-	 * @author bin2107
-	 * @since 2021. 5. 3
-	 */
-	@GetMapping("/category/reload/list")
-	@ResponseBody
-	public Collection<Cate1> getCategoryReloadList(String cateGb) {
-		return displayService.getCategoryReloadList(cateGb);
-	}
-
-	/**
-	 * 아울렛 카테고리 목록
-	 * @param
-	 * @return
-	 * @author bin2107
-	 * @since 2021. 5. 3
-	 */
-	@GetMapping("/outlet/cate/list")
-	@ResponseBody
-	public Collection<Cate1> getOutletCategoryList(String formalGb) {
-		return displayService.getOutletCategoryList(formalGb);
-	}
-
-	/**
-	 * 베스트 메인
-	 * @param
-	 * @return
-	 * @author bin2107
-	 * @since 2021. 4. 13
-	 */
-	@GetMapping("/best/main/form")
-	public ModelAndView bestMain(Contents contents) {
-		ModelAndView mav = new ModelAndView(super.getDeviceViewName("display/BestMainForm"));
-
-		contents.setContentsLoc("SCM003");
-		mav.addObject("bestCateList", displayService.getBestItemCategoryList(contents));
-
-		return mav;
-	}
-
-	/**
-	 * 베스트 메인 상품 리스트 조회
-	 * @param
-	 * @return
-	 * @author bin2107
-	 * @since 2021. 4. 13
-	 */
-	@PostMapping("/best/main/goods/list")
-	@ResponseBody
-	public GagaMap getBestMainGoodsList(@RequestBody Contents contents) {
-		GagaMap result = new GagaMap();
-		TscPageRequest pageable = new TscPageRequest((contents.getPageNo() > 0 ? contents.getPageNo() - 1 : 0), contents.getPageSize(), contents.getPageUnit());
-
-		contents.setContentsLoc("SCM003");
-		contents.setPageGb("BEST");
-
-		int totalCnt = displayService.getContentsCategoryGoodsCount(contents);
-		pageable.setTotalCount(totalCnt);
-		contents.setPageable(pageable);
-
-		result.set("paging", contents);
-		result.set("totalCnt", totalCnt);
-		result.set("endRow", pageable.getEndRow());
-		result.set("dataList", displayService.getBestItemCategoryGoodsList(contents));
-		return result;
-	}
-
-	/**
-	 * GNB TAB 기획전배너 리스트
-	 * @param Contents
-	 * @return
-	 * @author bin2107
-	 * @since 2021. 4. 14
-	 */
-	@GetMapping("/gnb/tab/banner/list")
-	@ResponseBody
-	public Collection<Contents> getGnbTabBannerlist(Contents contents) {
-//		contents.setContentsLoc("STAB003");
-		if (contents.getCateNo().equals(3000)) {
-			contents.setContentsLoc("SOM005");
-		} else {
-			contents.setContentsLoc("SCM005");
-		}
-		contents.setMaxRow(2);
-
-		return displayService.getGnbTabBannerlist(contents);
-	}
-
-	/**
-	 * 브랜드 GNB 탭 추천상풍 목록
-	 * @param
-	 * @return
-	 * @throws Exception
-	 * @author bin2107
-	 * @since 2021. 4. 15
-	 */
-	@GetMapping("/brand/gnb/tab/recommend/goods/list")
-	@ResponseBody
-	public Collection<Goods> getBrandGnbTabRecommendGoodsList(Cate4Srch cate4Srch) {
-		Collection<Goods> goodsList = goodsService.getContentsCategoryGoodsList(cate4Srch);
-		return goodsList;
-	}
-
-	/**
-	 * 아울렛 메인
-	 * @param cate - 카테고리 정보
-	 * @return
-	 * @author bin2107
-	 * @since 2021. 4. 20
-	 */
-	@GetMapping("/outlet/main/form")
-	public ModelAndView outletMain(Cate4Srch cate) {
-		cate.setCate1No(1713);
-		log.info("{}", cate);
-
-		ModelAndView mav = new ModelAndView(super.getDeviceViewName("display/OutletMainForm"));
-
-		MainLayout mainLayout = new MainLayout();
-		mainLayout.setCateNo(cate.getCate1No());
-		Collection<MainLayout> mainLayoutCollection = displayService.getMainLayout(mainLayout);
-		Collection<MainLayout> outletMainLayoutList = new ArrayList<MainLayout>();
-
-		for (MainLayout cateMain : mainLayoutCollection) {
-			if ("SOM001".equals(cateMain.getContentsLoc())) {
-				// 기획전
-				Contents contents = new Contents();
-				contents.setContentsLoc("SOM001");
-				contents.setCateNo(cate.getCate1No());
-				mav.addObject("planningList", displayService.getContentsList(contents));
-			} else if ("SOM002".equals(cateMain.getContentsLoc())) {
-				// md추천
-				cate.setContentsLoc("SOM002");
-				cate.setMaxRow(20);
-				cate.setCate1No(3000);
-				mav.addObject("mdPickGoodsList", goodsService.getContentsCategoryGoodsList(cate));
-			} else if ("SOM003".equals(cateMain.getContentsLoc())) {
-				// 베스트품
-				cate.setContentsLoc("SOM003");
-				cate.setMaxRow(20);
-				cate.setCate1No(3000);
-				mav.addObject("bestGoodsList", goodsService.getContentsCategoryGoodsList(cate));
-			}
-
-			outletMainLayoutList.add(cateMain);
-		}
-
-		mav.addObject("outletMainLayoutList", outletMainLayoutList);
-		mav.addObject("preview", cate.getPreview());
-		mav.addObject("viewDt", cate.getViewDt());
-		mav.addObject("viewPage", "G037_32");
-		//mav.addObject("popupCateNo", cate.getCate1No());
-
-		mav.addObject("params", cate);
-
-		return mav;
-	}
-
-	/**
-	 * 검색상품 목록 화면
-	 * @param keyword - 검색키워드
-	 * @param brandGroupNo - 브랜드그룹번호
-	 * @return
-	 * @author gagamel
-	 * @since 2021. 5. 6
-	 */
-	@GetMapping("/search/goods/list/form")
-	public ModelAndView searchGoodsListForm(@RequestParam(value = "keyword") String keyword, @RequestParam(value = "brandGroupNo", required = false) Integer brandGroupNo) {
-		SearchEngine params = new SearchEngine();
-		params.setKeyword(keyword);
-		params.setBrandGroupNo(brandGroupNo == null ? 0 : brandGroupNo);
-		params.setFrontGb(TsfSession.getFrontGb());
-
-		ModelAndView mav = new ModelAndView(super.getDeviceViewName("display/SearchGoodsListForm"));
-
-//		mav.addObject("cateInfo", params);
-
-		Collection<Filter> filterList = new ArrayList<Filter>();
-
-		// 카테고리 목록
-		mav.addObject("allCateList", displayService.getAllCategoryList("G032_101"));
-
-		// 검색엔진 연동 여부
-		String syncYn = commonService.getSearchEngineSyncYn();
-		if (syncYn.equals("Y")) { // 검색엔진을 통한 상품리스트 조회
-			// 상품검색키워드 카테고리 목록
-			mav.addObject("cateList", diquest.getCategoryList(params));
-
-			// 상품리스트 카테고리별 필터 목록
-			filterList = diquest.getFilterList(params);
-		} else { // DB를 통한 상품리스트 조회
-			// 상품검색키워드 카테고리 목록
-			mav.addObject("cateList", displayService.getKeywordCategoryList(params.getKeyword()));
-
-			// 상품리스트 카테고리별 필터 목록
-			filterList = displayService.getSearchGoodsListCategoryFilterList(params);
-		}
-
-		// 필터 설정
-		mav.addObject("filterBrandList", displayService.getCategoryFilterList(filterList, "BRAND"));
-		mav.addObject("filterSizeList", displayService.getCategoryFilterList(filterList, "SIZE"));
-		mav.addObject("filterPriceList", displayService.getCategoryFilterList(filterList, "PRICE"));
-		mav.addObject("filterAgeList", displayService.getCategoryFilterList(filterList, "AGE"));
-		mav.addObject("filterSeasonList", displayService.getCategoryFilterList(filterList, "SEASON"));
-		mav.addObject("filterColorList", displayService.getCategoryFilterList(filterList, "COLOR"));
-		mav.addObject("filterBenefitList", displayService.getCategoryFilterList(filterList, "BENEFIT"));
-		mav.addObject("params", params);
-
-		// 광고 배너 조회
-		Contents adContents = new Contents();
-		adContents.setContentsLoc("SAD001");
-		adContents.setMaxRow(1);
-		mav.addObject("adBannerList", displayService.getContentsList(adContents));
-
-		log.info("filterPriceList:::{}", displayService.getCategoryFilterList(filterList, "PRICE"));
-
-		return mav;
-	}
-
-	/**
-	 * 검색상품 리스트 조회
-	 * @param params - 검색엔진 정보
-	 * @return
-	 * @author gagamel
-	 * @since 2021. 5. 6
-	 */
-	@PostMapping("/search/goods/list")
-	@ResponseBody
-	public GagaMap getSearchGoodsList(@RequestBody SearchEngine params) {
-		GagaMap result = new GagaMap();
-
-		TscPageRequest pageable = new TscPageRequest((params.getPageNo() > 0 ? params.getPageNo() - 1 : 0), params.getPageSize(), params.getPageUnit());
-
-		if (TsfSession.isLogin()) {
-			params.setCustNo(TsfSession.getInfo().getCustNo());
-		}
-
-		params.setFrontGb(TsfSession.getFrontGb());
-		params.setCustGb(TsfSession.getCustGb());
-
-		Collection<SearchEngine> dataList = new ArrayList<SearchEngine>();
-		log.info("getSearchGoodsList params::{}", params);
-		// 검색엔진 연동 여부
-//		String syncYn = commonService.getSearchEngineSyncYn();
-//		if (syncYn.equals("Y")) { // 검색엔진을 통한 상품리스트 조회
-		GoodsListResponse response = diquest.getGoodsList(params);
-		pageable.setTotalCount(response.getTotalCount());
-		dataList = response.getResponse();
-//		} else { // DB를 통한 상품리스트 조회
-//			pageable.setTotalCount(goodsService.getSearchGoodsCount(params));
-//			params.setPageable(pageable);
-//			dataList = goodsService.getSearchGoodsList(params);
-//		}
-
-		result.set("paging", pageable);
-		result.set("dataList", dataList);
-
-		return result;
-	}
-
-	/**
-	 * 검색기획전 리스트 조회
-	 * @param params - 검색엔진 정보
-	 * @return
-	 * @author bin2107
-	 * @since 2021. 6. 14
-	 */
-	@PostMapping("/search/planning/list")
-	@ResponseBody
-	public GagaMap getSearchPlanningList(@RequestBody SearchEngine params) {
-		GagaMap result = new GagaMap();
-
-		TscPageRequest pageable = new TscPageRequest((params.getPageNo() > 0 ? params.getPageNo() - 1 : 0), params.getPageSize(), params.getPageUnit());
-		if (TsfSession.isLogin()) {
-			params.setCustNo(TsfSession.getInfo().getCustNo());
-		}
-
-		params.setFrontGb(TsfSession.getFrontGb());
-		params.setCustGb(TsfSession.getCustGb());
-
-		Collection<SearchEngine> planList = new ArrayList<SearchEngine>();
-
-		PlanningResponse responsePlan = diquest.getPlanningList(params.getKeyword(), params.getPageNo(), params.getPageSize());
-		pageable.setTotalCount(responsePlan.getTotalSize());
-		planList = responsePlan.getResponse();
-
-		result.set("paging", pageable);
-		result.set("planList", planList);
-
-		return result;
-	}
-
-	/**
-	 * 검색이벤트 리스트 조회
-	 * @param params - 검색엔진 정보
-	 * @return
-	 * @author bin2107
-	 * @since 2021. 6. 14
-	 */
-	@PostMapping("/search/event/list")
-	@ResponseBody
-	public GagaMap getSearchEventList(@RequestBody SearchEngine params) {
-		GagaMap result = new GagaMap();
-
-		TscPageRequest pageable = new TscPageRequest((params.getPageNo() > 0 ? params.getPageNo() - 1 : 0), params.getPageSize(), params.getPageUnit());
-		if (TsfSession.isLogin()) {
-			params.setCustNo(TsfSession.getInfo().getCustNo());
-		}
-
-		params.setFrontGb(TsfSession.getFrontGb());
-		params.setCustGb(TsfSession.getCustGb());
-
-		Collection<SearchEngine> eventList = new ArrayList<SearchEngine>();
-
-		PlanningResponse responsePlan = diquest.getEventList(params.getKeyword(), params.getPageNo(), params.getPageSize());
-		pageable.setTotalCount(responsePlan.getTotalSize());
-		eventList = responsePlan.getResponse();
-
-		result.set("paging", pageable);
-		result.set("eventList", eventList);
-
-		return result;
-	}
-
-	/**
-	 * 인기검색어 목록
-	 * @return
-	 * @author gagamel
-	 * @since 2021. 5. 10
-	 */
-	@GetMapping("/search/trend/keyword/list")
-	@ResponseBody
-	public SearchEngine getSearchTrendKeywordList() {
-		return diquest.getTrendKeywordList();
-	}
-
-	/**
-	 * 검색어 레이어
-	 * @param brandGroupNo - 브랜드그룹번호
-	 * @return
-	 * @throws UnsupportedEncodingException
-	 * @author bin2107
-	 * @since 2021. 5. 11
-	 */
-	@PostMapping("/search/layer")
-	public ModelAndView searchLayerForm(@RequestParam(value = "brandGroupNo", required = false) Integer brandGroupNo) throws UnsupportedEncodingException {
-		ModelAndView mav = new ModelAndView();
-
-		// 최근검색어 목록
-		Collection<String> recentlyKeywordList = new ArrayList<>();
-		String ckKeywords = GagaCookieUtil.getCookie(TsfSession.getHttpServletRequest(), TsfConstants.CK_PREFIX + "_today_keyword");
-		if (StringUtils.isNotBlank(ckKeywords)) {
-			ckKeywords = URLDecoder.decode(ckKeywords, "UTF-8");
-			String[] arrKeywords = ckKeywords.split("\\,");
-			StringBuilder sql = new StringBuilder();
-			if (arrKeywords.length > 0) {
-				for (String keyword : arrKeywords) {
-					if (!StringUtils.isBlank(keyword)) {
-						recentlyKeywordList.add(keyword);
-					}
-				}
-			}
-		}
-		mav.addObject("recentlyKeywordList", recentlyKeywordList);
-
-		// 인기검색어
-		mav.addObject("trendKeywordList", diquest.getTrendKeywordList());
-
-		mav.addObject("brandGroupNo", brandGroupNo);
-
-		mav.setViewName(super.getDeviceViewName("display/SearchLayer"));
-		return mav;
-	}
-
-	/**
-	 * 검색어 자동완성
-	 * @param params - 검색엔진 정보
-	 * @return
-	 * @author bin2107
-	 * @since 2021. 6. 15
-	 */
-	@PostMapping("/search/auto/complete")
-	@ResponseBody
-	public GagaMap getSearchAutoCompleteList(@RequestBody SearchEngine params) {
-		GagaMap result = new GagaMap();
-
-		params.setFrontGb(TsfSession.getFrontGb());
-		params.setCustGb(TsfSession.getCustGb());
-
-		String[] autoKeywords;
-		BrandGroup brand;
-		Collection<Cate4Srch> cateList = new ArrayList<Cate4Srch>();
-		Collection<SearchEngine> goodsList = new ArrayList<SearchEngine>();
-
-		AutoCompleteResponse autoComplete = diquest.getAutoComplete(params.getKeyword());
-		autoKeywords = autoComplete.getAutoKeywords();
-		brand = autoComplete.getBrand();
-		cateList = autoComplete.getCateList();
-		goodsList = autoComplete.getGoodsList();
-
-		result.set("autoKeywords", autoKeywords);
-		result.set("brand", brand);
-		result.set("cateList", cateList);
-		result.set("goodsList", goodsList);
-
-		return result;
-	}
-
-	/**
-	 * 주간판매베스트추천상품 목록
-	 * @return
-	 * @author gagamel
-	 * @since 2021. 6. 29
-	 */
-	@GetMapping("/weekly/best/list")
-	@ResponseBody
-	public Collection<Result> getWeeklySellBestGoodsList() {
-		return eigeneaiApi.getWeeklySellBestGoodsList(30);
-	}
-
-	/**
-	 * 검색키워드 조회
-	 * @param
-	 * @return
-	 * @throws Exception
-	 * @author bin2107
-	 * @since 2021. 7. 2
-	 */
-	@GetMapping("/search/keyword/list")
-	@ResponseBody
-	public Collection<SearchKeyword> getSearchKeywordList(SearchKeyword searchKeyword) {
-		return displayService.getSearchKeywordList(searchKeyword);
-	}
-
-	/**
-	 * 브랜드메인 검색어 레이어
-	 * @param brandGroupNo - 브랜드그룹번호
-	 * @return
-	 * @throws UnsupportedEncodingException
-	 * @author bin2107
-	 * @since 2021. 7. 12
-	 */
-	@PostMapping("/brand/search/layer")
-	public ModelAndView brandSearchLayerForm(@RequestParam(value = "brandGroupNo") Integer brandGroupNo) throws UnsupportedEncodingException {
-		ModelAndView mav = new ModelAndView();
-
-		// 최근검색어 목록
-		Collection<String> recentlyKeywordList = new ArrayList<>();
-		String ckKeywords = GagaCookieUtil.getCookie(TsfSession.getHttpServletRequest(), TsfConstants.CK_PREFIX + "_today_keyword");
-		if (StringUtils.isNotBlank(ckKeywords)) {
-			ckKeywords = URLDecoder.decode(ckKeywords, "UTF-8");
-			String[] arrKeywords = ckKeywords.split("\\,");
-			StringBuilder sql = new StringBuilder();
-			if (arrKeywords.length > 0) {
-				for (String keyword : arrKeywords) {
-					if (!StringUtils.isBlank(keyword)) {
-						recentlyKeywordList.add(keyword);
-					}
-				}
-			}
-		}
-		mav.addObject("recentlyKeywordList", recentlyKeywordList);
-
-		mav.addObject("brandGroupNo", brandGroupNo);
-
-		mav.setViewName(super.getDeviceViewName("display/BrandSearchLayer"));
-		return mav;
-	}
-
-	/**
-	 * 검색상품 목록 화면
-	 * @param keyword - 검색키워드
-	 * @param brandGroupNo - 브랜드그룹번호
-	 * @return
-	 * @author bin2107
-	 * @since 2021. 7. 12
-	 */
-	@GetMapping("/brand/search/goods/list/form")
-	public ModelAndView brandSearchGoodsListForm(@RequestParam(value = "keyword") String keyword, @RequestParam(value = "brandGroupNo") Integer brandGroupNo) {
-		SearchEngine params = new SearchEngine();
-		params.setKeyword(keyword);
-		params.setBrandGroupNo(brandGroupNo == null ? 0 : brandGroupNo);
-		params.setFrontGb(TsfSession.getFrontGb());
-
-		ModelAndView mav = new ModelAndView(super.getDeviceViewName("display/BrandSearchGoodsListForm"));
-
-		Collection<Filter> filterList = new ArrayList<Filter>();
-
-		// 카테고리 목록
-		mav.addObject("allCateList", displayService.getAllCategoryList("G032_101"));
-
-		// 상품검색키워드 카테고리 목록
-		mav.addObject("cateList", diquest.getCategoryList(params));
-
-		// 상품리스트 카테고리별 필터 목록
-		filterList = diquest.getFilterList(params);
-
-		// 필터 설정
-		mav.addObject("filterBrandList", displayService.getCategoryFilterList(filterList, "BRAND"));
-		mav.addObject("filterSizeList", displayService.getCategoryFilterList(filterList, "SIZE"));
-		mav.addObject("filterPriceList", displayService.getCategoryFilterList(filterList, "PRICE"));
-		mav.addObject("filterAgeList", displayService.getCategoryFilterList(filterList, "AGE"));
-		mav.addObject("filterSeasonList", displayService.getCategoryFilterList(filterList, "SEASON"));
-		mav.addObject("filterColorList", displayService.getCategoryFilterList(filterList, "COLOR"));
-		mav.addObject("filterBenefitList", displayService.getCategoryFilterList(filterList, "BENEFIT"));
-		mav.addObject("params", params);
-
-		// 광고 배너 조회
-		Contents adContents = new Contents();
-		adContents.setContentsLoc("SAD001");
-		adContents.setMaxRow(1);
-		mav.addObject("adBannerList", displayService.getContentsList(adContents));
-
-		log.info("filterPriceList:::{}", displayService.getCategoryFilterList(filterList, "PRICE"));
-
-		return mav;
-	}
-
-	/**
-	 * 검색엔진 전체 카테고리 목록
-	 * @return
-	 * @author bin2107
-	 * @since 2021. 7. 13
-	 */
-	@GetMapping("/searchengine/all/cate/list")
-	@ResponseBody
-	public Collection<Cate1> getSearchEngineAllCategoryList() {
-		SearchEngine cate1 = new SearchEngine();
-		cate1.setBrandGroupNo(0);
-		cate1.setFrontGb(TsfSession.getFrontGb());
-		cate1.setSiteCd(TscConstants.Site.STYLE24.value());
-		cate1.setCateGb("G032_101");
-//		cate1.setCate1No(params.getCate1No());
-
-		return diquest.getCategoryList(cate1);
-	}
-}
+package com.style24.front.biz.web;
+
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.mobile.device.Device;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.servlet.ModelAndView;
+
+import com.style24.core.biz.service.TscEnvsetService;
+import com.style24.core.biz.service.TscLookbookService;
+import com.style24.core.support.env.TscConstants;
+import com.style24.core.support.message.TscMessageByLocale;
+import com.style24.front.biz.service.TsfCommonService;
+import com.style24.front.biz.service.TsfDisplayService;
+import com.style24.front.biz.service.TsfGoodsService;
+import com.style24.front.biz.service.TsfPlanningService;
+import com.style24.front.biz.service.TsfSocialService;
+import com.style24.front.biz.thirdparty.EigeneaiApi;
+import com.style24.front.biz.thirdparty.SearchEngineDiquest;
+import com.style24.front.support.controller.TsfBaseController;
+import com.style24.front.support.env.TsfConstants;
+import com.style24.front.support.security.session.TsfSession;
+import com.style24.persistence.TscPageRequest;
+import com.style24.persistence.domain.BrandGroup;
+import com.style24.persistence.domain.Cate1;
+import com.style24.persistence.domain.Cate4Srch;
+import com.style24.persistence.domain.Contents;
+import com.style24.persistence.domain.GnbTab;
+import com.style24.persistence.domain.Goods;
+import com.style24.persistence.domain.Login;
+import com.style24.persistence.domain.Lookbook;
+import com.style24.persistence.domain.MainLayout;
+import com.style24.persistence.domain.Plan;
+import com.style24.persistence.domain.Popup;
+import com.style24.persistence.domain.SearchKeyword;
+import com.style24.persistence.domain.Social;
+import com.style24.persistence.domain.eigene.Eigeneai.Result;
+import com.style24.persistence.domain.searchengine.AutoCompleteResponse;
+import com.style24.persistence.domain.searchengine.Filter;
+import com.style24.persistence.domain.searchengine.GoodsListResponse;
+import com.style24.persistence.domain.searchengine.PlanningResponse;
+import com.style24.persistence.domain.searchengine.SearchEngine;
+
+import lombok.extern.slf4j.Slf4j;
+
+import com.gagaframework.web.parameter.GagaMap;
+import com.gagaframework.web.util.GagaCookieUtil;
+
+/**
+ * 전시 Controller
+ * 
+ * @author gagamel
+ * @since 2020. 12. 29
+ */
+@Controller
+@RequestMapping("/display")
+@Slf4j
+public class TsfDisplayController extends TsfBaseController {
+
+	@Autowired
+	private TscMessageByLocale message;
+
+	@Autowired
+	private TsfDisplayService displayService;
+
+	@Autowired
+	private TscEnvsetService envsetService;
+
+	@Autowired
+	private TsfGoodsService goodsService;
+
+	@Autowired
+	private TscLookbookService coreLookbookService;
+
+	@Autowired
+	private TsfPlanningService planningService;
+
+	@Autowired
+	private TsfSocialService socialService;
+
+	@Autowired
+	private SearchEngineDiquest diquest;
+
+	@Autowired
+	private TsfCommonService commonService;
+
+	@Autowired
+	private EigeneaiApi eigeneaiApi;
+
+	/**
+	 * PC보기. 모바일에서 <PC> 형태로 볼 때
+	 * @return
+	 * @throws Exception
+	 * @since 2021. 5. 18
+	 */
+	@GetMapping("/view/normal/form")
+	public String viewNormal() {
+		GagaCookieUtil.setCookie(TsfSession.getHttpServletResponse(), TsfConstants.CK_PREFIX + "_site_preference", "normal", -1);
+		return "redirect:/display/mall/main/form";
+	}
+
+	/**
+	 * 모바일보기. 모바일 디바이스에서 <PC보기> 클릭 후 접근한 담에 다시 <모바일보기> 클릭 시
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 5. 18
+	 */
+	@GetMapping("/view/mobile/form")
+	public String viewMobile() {
+		GagaCookieUtil.deleteCookie(TsfSession.getHttpServletResponse(), TsfConstants.CK_PREFIX + "_site_preference");
+		return "redirect:/display/mall/main/form";
+	}
+
+	/**
+	 * 몰 메인
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 2. 3
+	 */
+	@GetMapping("/mall/main/form")
+	public ModelAndView mallMain(Device device, @RequestParam HashMap<String, String> paramMap) {
+		ModelAndView mav = new ModelAndView();
+		MainLayout mallMainLayout = new MainLayout();
+		// 로그인 유무 확인 (로그인이 되어 있지 않으면 regNo 를 0으로 장바구니에 저장한다.)
+		Login login = new Login();
+		if (TsfSession.isLogin()) {
+			login = TsfSession.getInfo();
+		} else {
+			login.setCustNo(0);
+		}
+
+		String mainCateNo = "1700";
+		// 몰메인 PC,MOBILE 동일하게 사용으로 인한 주석처리
+//		if (device.isMobile() || "Y".equals(paramMap.get("mobileYn"))) {
+//			mainCateNo = "1720";
+//		} else {
+//			mainCateNo = "1700";
+//		}
+
+		mallMainLayout.setCateNo(Integer.parseInt(mainCateNo));
+		mallMainLayout.setPreview(paramMap.get("preview"));
+		Collection<MainLayout> mainLayoutCollection = displayService.getMainLayout(mallMainLayout);
+
+		Collection<MainLayout> mainLayoutList = new ArrayList<MainLayout>();
+
+		for (MainLayout mainLayout : mainLayoutCollection) {
+			String contentsLoc = mainLayout.getContentsLoc();
+			Contents contents = new Contents();
+			log.info("mallMain contentsLoc:::{}", contentsLoc);
+			contents.setContentsCnt(mainLayout.getContentsCnt());
+			contents.setContentsLoc(contentsLoc);
+			contents.setPreview(paramMap.get("preview"));
+			contents.setViewDt(paramMap.get("viewDt"));
+			contents.setCateNo(Integer.parseInt(mainCateNo));
+			if (contentsLoc.equals("SGNB001") || contentsLoc.equals("SGNB002") || contentsLoc.equals("STAB001") || contentsLoc.equals("SMM003") || contentsLoc.equals("SMM004") || contentsLoc.equals("SMM005") || contentsLoc.equals("SMM006")) {
+				contents.setMaxRow(1);
+			}
+			if (contentsLoc.equals("SMM011")) {
+				contents.setMaxRow(5);
+			}
+
+			Cate4Srch cate4Srch = new Cate4Srch();
+			cate4Srch.setContentsLoc(contentsLoc);
+			cate4Srch.setCustNo(login.getCustNo());
+			cate4Srch = displayService.getCate4srch(cate4Srch);
+			mainLayout.setCate4Srch(cate4Srch);
+
+			if ("C".equals(mainLayout.getContentsYn())) {
+				mainLayout.setContentsList(displayService.getContentsList(contents));
+			} else {
+				log.info("nullpoint contentsLoc::::{}", contentsLoc);
+				if ("SMM001".equals(contentsLoc)) {
+					cate4Srch.setMaxRow(3);
+				} else {
+					cate4Srch.setMaxRow(20);
+				}
+
+				Collection<Goods> goodsList = goodsService.getContentsCategoryGoodsList(cate4Srch);
+				mainLayout.setGoodsList(goodsList);
+
+				if ("A".equals(mainLayout.getContentsYn())) {
+					mainLayout.setContentsList(displayService.getContentsList(contents));
+				}
+			}
+
+			if (contentsLoc.equals("SMM004")) {
+				contents.setPageGb("MALL");
+				mainLayout.setBestItemList(displayService.getBestItemForGoods(contents));
+			}
+
+			if (contentsLoc.equals("SMM006")) {
+				Social social = new Social();
+				social.setSiteCd("G000_10");
+				social.setFrontGb(TsfSession.getFrontGb());
+				mainLayout.setSocialInfo(socialService.getSocialForGoods(social));
+			}
+
+			if (contentsLoc.equals("SMM007")) {
+				mainLayout.setBrandPickList(displayService.getContentsForGoods(contents));
+			}
+
+			if (contentsLoc.equals("SMM009") || contentsLoc.equals("SMM012")) {
+				if (contentsLoc.equals("SMM009")) {
+					contents.setMaxRow(5);
+				}
+				mainLayout.setMdPickList(displayService.getContentsForGoods(contents));
+			}
+
+			if (contentsLoc.equals("SMM003") || contentsLoc.equals("SBM007")) {
+				if (Integer.parseInt(mainLayout.getContentsCnt()) > 0) {
+					mainLayout.setNewItemList(displayService.getContentsForGoods(contents));
+				} else {
+					mainLayout.setNewItemList(displayService.getMainNewGoodsList(contents));
+				}
+			}
+
+			mainLayoutList.add(mainLayout);
+		}
+
+		mav.addObject((StringUtils.isBlank(paramMap.get("preview"))) ? "" : paramMap.get("preview"));
+		mav.addObject((StringUtils.isBlank(paramMap.get("viewDt"))) ? "" : paramMap.get("viewDt"));
+		mav.addObject("viewPage", "G037_20");
+		//mav.addObject("popupCateNo", "");
+
+		//log.info("mainLayoutList::{}", mainLayoutList);
+		mav.addObject("mainLayoutList", mainLayoutList);
+		mav.setViewName(super.getDeviceViewName("display/MallMainForm"));
+
+		return mav;
+	}
+
+	/**
+	 * GNB탭 > 브랜드그룹 목록
+	 * @param contents - 컨텐츠 정보
+	 * @return
+	 * @throws Exception
+	 * @author gagamel
+	 * @since 2021. 3. 11
+	 */
+	@GetMapping("/gnb/brand/group/list")
+	@ResponseBody
+	public Collection<BrandGroup> getGnbBrandGroupList(Contents contents) {
+		contents.setContentsLoc("STAB001");
+		return displayService.getGnbBrandGroupList(contents);
+	}
+
+	/**
+	 * GNB탭 > TOP BANNER 목록
+	 * @param contents - 컨텐츠 정보
+	 * @return
+	 * @throws Exception
+	 * @author bin2107
+	 * @since 2021. 4. 11
+	 */
+	@GetMapping("/gnb/topbanner/list")
+	@ResponseBody
+	public Collection<Contents> getGnbTopBannerList(Contents contents, @RequestParam(value = "contentsLoc") String contentsLoc) {
+		contents.setContentsLoc(contentsLoc);
+		contents.setMaxRow(1);
+		Collection<Contents> bannerList = displayService.getContentsList(contents);
+
+//		for(Contents tempContents : bannerList){
+//			tempContents.setHtml(GagaStringUtil.replace(GagaStringUtil.replace(tempContents.getHtml(), "&lt;", "<"), "&gt;", ">"));
+//		}
+
+		log.info("getGnbTopBannerList>>>>{}", bannerList);
+
+		return bannerList;
+	}
+
+//	/**
+//	 * 전체 카테고리 목록
+//	 * @return
+//	 * @author gagamel
+//	 * @since 2021. 3. 15
+//	 */
+//	@GetMapping("/all/cate/list")
+//	@ResponseBody
+//	public Collection<Cate1> getAllCategoryList() {
+//		return displayService.getAllCategoryList(TsfConstants.CateGb.BYITEM.value());
+//	}
+
+	/**
+	 * GNB 탭 목록
+	 * @param gnbTab - GNB탭 정보
+	 * @return
+	 * @throws Exception
+	 * @author gagamel
+	 * @since 2021. 3. 11
+	 */
+	@GetMapping("/gnb/tab/list")
+	@ResponseBody
+	public Collection<GnbTab> getGnbTabList(GnbTab gnbTab) {
+		gnbTab.setGtabGb("C"); // 공통GNB
+		return displayService.getGnbTabList(gnbTab);
+	}
+
+	/**
+	 * 브랜드 메인
+	 * @param device - 디바이스 정보
+	 * @param paramMap - 파라미터 정보
+	 * @param response - HttpServletResponse
+	 * @return
+	 * @throws IOException
+	 * @author gagamel
+	 * @since 2021. 3. 16
+	 */
+	@GetMapping("/brand/main/form")
+	public ModelAndView brandMain(Device device, @RequestParam HashMap<String, String> paramMap, HttpServletResponse response) throws IOException {
+		log.info("{}", paramMap);
+
+		ModelAndView mav = new ModelAndView();
+
+		if (StringUtils.isBlank(paramMap.get("brandGroupNo"))) {
+			response.sendRedirect("/");
+		}
+
+		// 브랜드그룹 정보
+		mav.addObject("brandGroupInfo", displayService.getGnbBrandGroup(Integer.parseInt(paramMap.get("brandGroupNo"))));
+
+		// 브랜드 레이아웃
+		MainLayout mainLayout = new MainLayout();
+		String mainCateNo = "1711";
+		// PC,MOBILE 동일 사용으로 인해 주석처리
+//		if (device.isMobile() || "Y".equals(paramMap.get("mobileYn"))) {
+//			mainCateNo = "1721";
+//		} else {
+//			mainCateNo = "1711";
+//		}
+		mainLayout.setCateNo(Integer.parseInt(mainCateNo));
+		mainLayout.setBrandGroupNo(Integer.parseInt(paramMap.get("brandGroupNo")));
+		Collection<MainLayout> mainLayoutCollection = displayService.getMainLayout(mainLayout);
+		Collection<MainLayout> brandMainLayoutList = new ArrayList<MainLayout>();
+
+		for (MainLayout brandMain : mainLayoutCollection) {
+			String contentsLoc = brandMain.getContentsLoc();
+			Contents contents = new Contents();
+			contents.setContentsLoc(contentsLoc);
+			contents.setPreview(paramMap.get("preview"));
+			contents.setViewDt(paramMap.get("viewDt"));
+			contents.setCateNo(Integer.parseInt(mainCateNo));
+			contents.setBrandGroupNo((brandMain.getBrandGroupNo()).toString());
+			if (contentsLoc.equals("SBM005") || contentsLoc.equals("SBM007") || contentsLoc.equals("SBM008") || contentsLoc.equals("SBM009") || contentsLoc.equals("SBM010") || contentsLoc.equals("SBM011") || contentsLoc.equals("SBM013") || contentsLoc.equals("SBM017") || contentsLoc.equals("SBM018") || contentsLoc.equals("SBM019")) {
+				contents.setMaxRow(1);
+			}
+
+			Cate4Srch cate4Srch = new Cate4Srch();
+			cate4Srch.setContentsLoc(contentsLoc);
+			cate4Srch = displayService.getCate4srch(cate4Srch);
+			brandMain.setCate4Srch(cate4Srch);
+
+			if ("C".equals(brandMain.getContentsYn())) {
+				if (contentsLoc.equals("SBM017") || contentsLoc.equals("SBM018") || contentsLoc.equals("SBM019")) {
+					cate4Srch.setBrandGroupNo(brandMain.getBrandGroupNo());
+					cate4Srch.setMaxRow(20);
+					Collection<Goods> goodsList = goodsService.getContentsCategoryGoodsList(cate4Srch);
+					brandMain.setGoodsList(goodsList);
+				}
+				brandMain.setContentsList(displayService.getContentsList(contents));
+			} else if ("E".equals(brandMain.getContentsYn())) {
+				Cate4Srch cate4Srch2 = new Cate4Srch();
+				cate4Srch2.setBrandGroupNo(brandMain.getBrandGroupNo());
+				cate4Srch2.setContentsLoc(contentsLoc);
+				if (contentsLoc.equals("SBM013") || contentsLoc.equals("SBMM013")) {
+					cate4Srch2.setMaxRow(50);
+				} else {
+					cate4Srch2.setMaxRow(20);
+				}
+				Collection<Goods> goodsList = goodsService.getContentsCategoryGoodsList(cate4Srch2);
+				brandMain.setGoodsList(goodsList);
+			} else {
+				cate4Srch.setBrandGroupNo(brandMain.getBrandGroupNo());
+				if (cate4Srch.getContentsLoc().equals("SBM008")) {
+					cate4Srch.setMaxRow(10);
+				} else if (cate4Srch.getContentsLoc().equals("SBM013") || cate4Srch.getContentsLoc().equals("SBMM013")) {
+					cate4Srch.setMaxRow(50);
+				} else {	// SBM007, SBM009
+					cate4Srch.setMaxRow(20);
+				}
+				Collection<Goods> goodsList = goodsService.getContentsCategoryGoodsList(cate4Srch);
+				brandMain.setGoodsList(goodsList);
+
+				if ("A".equals(brandMain.getContentsYn())) {
+					brandMain.setContentsList(displayService.getContentsList(contents));
+				}
+			}
+
+			// 기획전 컨텐츠일때
+			if ("SBM011".equals(brandMain.getContentsLoc()) || "SBMM011".equals(brandMain.getContentsLoc())) {
+				Plan plan = new Plan();
+				plan.setBrandGroupNo(Integer.parseInt(paramMap.get("brandGroupNo")));
+				if ("SBM011".equals(brandMain.getContentsLoc())) {
+					plan.setMaxRow(6);
+				} else {
+					plan.setMaxRow(2);
+				}
+				plan.setFrontGb(TsfSession.getFrontGb());
+				plan.setSiteCd(TscConstants.Site.STYLE24.value());
+				brandMain.setPlanningList(planningService.getPlanningMainList(plan));
+			}
+
+			// 룩북일때
+			if ("SBM010".equals(brandMain.getContentsLoc()) || "SBMM010".equals(brandMain.getContentsLoc())) {
+				Lookbook lookbook = new Lookbook();
+				lookbook.setBrandCd(paramMap.get("brandGroupNo"));
+				lookbook.setMainDispYn("Y");
+
+				brandMain.setLookbookList(coreLookbookService.getLookbookListForGoods(lookbook));
+			}
+			brandMainLayoutList.add(brandMain);
+		}
+
+		mav.addObject("preview", paramMap.get("preview"));
+		mav.addObject("viewDt", paramMap.get("viewDt"));
+		mav.addObject("viewPage", "G037_31");
+		mav.addObject("popupBrandCd", paramMap.get("brandGroupNo"));
+		mav.addObject("brandGroupNo", paramMap.get("brandGroupNo"));
+
+		//log.info("brandMainLayoutList::{}", brandMainLayoutList);
+		mav.addObject("brandMainLayoutList", brandMainLayoutList);
+		mav.setViewName(super.getDeviceViewName("display/BrandMainForm"));
+
+		return mav;
+	}
+
+	/**
+	 * 브랜드 GNB 탭 목록
+	 * @param gnbTab - GNB탭 정보
+	 * @return
+	 * @throws Exception
+	 * @author gagamel
+	 * @since 2021. 3. 16
+	 */
+	@GetMapping("/brand/gnb/tab/list")
+	@ResponseBody
+	public Collection<GnbTab> getBrandGnbTabList(GnbTab gnbTab) {
+		gnbTab.setGtabGb("B"); // 브랜드GNB
+		return displayService.getGnbTabList(gnbTab);
+	}
+
+	/**
+	 * 카테고리 메인
+	 * @param cate - 카테고리 정보
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 3. 25
+	 */
+	@GetMapping("/category/main/form")
+	public ModelAndView categoryMain(Cate4Srch cate) {
+		ModelAndView mav = new ModelAndView(super.getDeviceViewName("display/CategoryMainForm"));
+
+		MainLayout mainLayout = new MainLayout();
+		mainLayout.setCateNo(cate.getCate1No());
+		Collection<MainLayout> mainLayoutCollection = displayService.getMainLayout(mainLayout);
+		Collection<MainLayout> cateMainLayoutList = new ArrayList<MainLayout>();
+
+		for (MainLayout cateMain : mainLayoutCollection) {
+			if ("SCM001".equals(cateMain.getContentsLoc())) {
+				// 기획전
+				Contents contents = new Contents();
+				contents.setContentsLoc("SCM001");
+				contents.setCateNo(cate.getCate1No());
+				mav.addObject("planningList", displayService.getGnbTabBannerlist(contents));
+			} else if ("SCM002".equals(cateMain.getContentsLoc())) {
+				// 신상품
+				Contents contents = new Contents();
+				contents.setContentsLoc("SCM002");
+				contents.setCateNo(cate.getCate1No());
+				contents.setMaxRow(1);
+				Collection<Contents> conList = displayService.getContentsList(contents);
+				mav.addObject("newGoodsList", null);
+				if (Integer.parseInt(cateMain.getContentsCnt()) > 0) {
+					for (Contents contentsData : conList) {
+						cate.setContentsLoc("SCM002");
+						cate.setMaxRow(20);
+						mav.addObject("newGoodsList", goodsService.getContentsCategoryGoodsList(cate));
+					}
+				} else {
+					Collection<Contents> contentsList = displayService.getBestItemCategoryList(contents);
+					Cate4Srch tempCate = new Cate4Srch();
+					for (Contents data : contentsList) {
+						tempCate.setContentsLoc(data.getContentsLoc());
+						tempCate.setMaxRow(20);
+						tempCate.setCustNo(TsfSession.isLogin() ? TsfSession.getInfo().getCustNo() : 0);
+						tempCate.setSiteCd(data.getSiteCd());
+						tempCate.setCateGb(data.getCateGb());
+						tempCate.setCate1No(data.getCateNo());
+					}
+					mav.addObject("newGoodsList", displayService.getContentsCategoryNewGoodsList(tempCate));
+				}
+			} else if ("SCM003".equals(cateMain.getContentsLoc())) {
+				// 베스트품
+				Contents contents = new Contents();
+				contents.setContentsLoc("SCM003");
+				contents.setCateNo(cate.getCate1No());
+				contents.setMaxRow(1);
+				Collection<Contents> conList = displayService.getContentsList(contents);
+				mav.addObject("bestGoodsList", null);
+				for (Contents contentsData : conList) {
+					cate.setContentsLoc("SCM003");
+					cate.setMaxRow(Integer.parseInt(contentsData.getStrVar1()));
+					cate.setCateNo(contents.getCateNo());
+					mav.addObject("bestGoodsList", goodsService.getContentsCategoryGoodsList(cate));
+				}
+			}
+
+			cateMainLayoutList.add(cateMain);
+		}
+
+		mav.addObject("cateMainLayoutList", cateMainLayoutList);
+		mav.addObject("preview", cate.getPreview());
+		mav.addObject("viewDt", cate.getViewDt());
+		mav.addObject("viewPage", "G037_30");
+		mav.addObject("popupCateNo", cate.getCate1No());
+
+		mav.addObject("params", cate);
+
+		return mav;
+	}
+
+	/**
+	 * 룩북 메인
+	 * @param lookbook
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 3. 30
+	 */
+	@GetMapping("/lookbook/main/form")
+	public ModelAndView lookbookMain(Lookbook lookbook) {
+		ModelAndView mav = new ModelAndView();
+		// 브랜드그룹 정보 : 브랜드메인 링크에 설정된 기획전으로 들어올때 GNB 변경때문에 사용
+		if (lookbook.getBrandGroupNo() != null && !lookbook.getBrandGroupNo().equals("")) {
+			lookbook.setBrandCd(lookbook.getBrandGroupNo().toString());
+			lookbook.setLookbookGb("BL");
+			mav.addObject("brandGroupInfo", displayService.getGnbBrandGroup(lookbook.getBrandGroupNo()));
+			mav.setViewName(super.getDeviceViewName("display/BrandLookbookMainForm"));
+		} else {
+			lookbook.setLookbookGb("L");
+			mav.addObject("brandGroupInfo", null);
+			mav.setViewName(super.getDeviceViewName("display/LookbookMainForm"));
+		}
+
+		mav.addObject("lbInfo", lookbook);
+		return mav;
+	}
+
+	/**
+	 * 룩북 리스트
+	 * @param lookbook
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 3. 30
+	 */
+//	@GetMapping("/lookbook/main/list")
+//	@ResponseBody
+//	public Collection<Lookbook> lookbooklist(Lookbook lookbook) {
+//		lookbook.setFrontGb(TsfSession.getFrontGb());
+//		lookbook.setFrontYn("Y");
+//		return coreLookbookService.getLookbookList(lookbook);
+//	}
+	@PostMapping("/lookbook/main/list")
+	@ResponseBody
+	public GagaMap lookbooklist(@RequestBody Lookbook params) {
+		GagaMap result = new GagaMap();
+		TscPageRequest pageable = new TscPageRequest((params.getPageNo() > 0 ? params.getPageNo() - 1 : 0), params.getPageSize(), params.getPageUnit());
+		pageable.setTotalCount(coreLookbookService.getLookbookListCount(params));
+
+		params.setPageable(pageable);
+		result.set("paging", pageable);
+		result.set("dataList", coreLookbookService.getLookbookList(params));
+		return result;
+	}
+
+	@GetMapping("/lookbook/main/brand/list")
+	@ResponseBody
+	public Collection<Lookbook> lookbookBrandList(Lookbook lookbook) {
+		return coreLookbookService.lookbookBrandList(lookbook);
+	}
+
+	/**
+	 * 룩북 상세
+	 * @param lookbook
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 4. 6
+	 */
+	@GetMapping("/lookbook/detail/form")
+	public ModelAndView lookbookDetail(Lookbook lookbook) {
+		ModelAndView mav = new ModelAndView();
+
+		lookbook.setFrontGb(TsfSession.getFrontGb());
+		Collection<Lookbook> lookbookList = coreLookbookService.getLookbookListForGoods(lookbook);
+		String brandNm = "";
+		String lookbookTitle = "";
+		if (lookbookList != null) {
+			for (Lookbook lbInfo : lookbookList) {
+				brandNm = lbInfo.getBrandNm();
+				lookbookTitle = lbInfo.getTitle();
+			}
+			lookbook.setBrandNm(brandNm);
+			lookbook.setTitle(lookbookTitle);
+		}
+
+		mav.addObject("lookbookDetailList", lookbookList);
+		mav.addObject("otherLookbookList", coreLookbookService.getOtherLookbookList(lookbook));
+		mav.addObject("lookbookInfo", lookbook);
+		// 브랜드그룹 정보 : 브랜드메인 링크에 설정된 기획전으로 들어올때 GNB 변경때문에 사용
+		mav.addObject("brandGroupInfo", displayService.getGnbBrandGroup(lookbook.getBrandGroupNo()));
+
+		mav.setViewName(super.getDeviceViewName("display/LookbookDetailForm"));
+		return mav;
+	}
+
+	/**
+	 * 팝업 목록
+	 *
+	 * @return
+	 * @throws Exception
+	 * @author eskim
+	 * @since 2021. 3. 30
+	 */
+	@GetMapping("/popup/list")
+	@ResponseBody
+	public GagaMap getPopupList(@RequestParam HashMap<String, String> paramMap) {
+
+		GagaMap result = new GagaMap();
+
+		Popup popup = new Popup();
+		popup.setFrontGb(TsfSession.getFrontGb());
+		popup.setViewPage(paramMap.get("viewPage"));
+		if (paramMap.get("cateNo") != null && paramMap.get("cateNo") != "") {
+			popup.setCateNo(Integer.parseInt(paramMap.get("cateNo")));
+		}
+		popup.setBrandCd(paramMap.get("brandCd"));
+		popup.setPlanSq((StringUtils.isBlank(paramMap.get("planSq").toString()) ? 0 : Integer.parseInt(paramMap.get("planSq"))));
+		popup.setPreview(paramMap.get("preview"));
+		popup.setViewDt(paramMap.get("viewDt"));
+
+		//result.set("dataList", displayService.getPopupList(popup));
+
+		return displayService.getPopupList(popup);
+	}
+
+	/**
+	 * 카테고리 상품 목록
+	 * @param params - 검색엔진 정보
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 4. 2
+	 */
+	@GetMapping("/category/goods/list/form")
+	public ModelAndView categoryGoodsListForm(SearchEngine params) {
+		ModelAndView mav = new ModelAndView();
+		params.setBrandGroupNo(params.getBrandGroupNo() == null ? 0 : params.getBrandGroupNo());
+		params.setFrontGb(TsfSession.getFrontGb());
+		params.setSiteCd(TscConstants.Site.STYLE24.value());
+
+		// 브랜드그룹 정보 : 브랜드메인 링크에 설정된 기획전으로 들어올때 GNB 변경때문에 사용
+		if (params.getBrandGroupNo() != null && params.getBrandGroupNo() > 0) {
+			mav.addObject("brandGroupInfo", displayService.getGnbBrandGroup(params.getBrandGroupNo()));
+		}
+		mav.addObject("cateInfo", params);
+
+		Collection<Filter> filterList = new ArrayList<Filter>();
+
+		// 검색엔진 연동 여부
+//		String syncYn = commonService.getSearchEngineSyncYn();
+//		if (syncYn.equals("Y")) { // 검색엔진을 통한 상품리스트 조회
+		mav.setViewName(super.getDeviceViewName("display/CategoryGoodsListForm"));
+		// 카테고리 목록
+		mav.addObject("allCateList", displayService.getAllCategoryList("G032_101"));
+		// 상품검색키워드 카테고리 목록
+		SearchEngine cate1 = new SearchEngine();
+		cate1.setBrandGroupNo(params.getBrandGroupNo() == null ? 0 : params.getBrandGroupNo());
+		cate1.setFrontGb(TsfSession.getFrontGb());
+		cate1.setSiteCd(TscConstants.Site.STYLE24.value());
+		cate1.setCateGb("G032_101");
+		cate1.setCate1No(params.getCate1No());
+		mav.addObject("cateList", diquest.getCategoryList(cate1));
+		if (params.getBrandGroupNo() != null && params.getBrandGroupNo() > 0) {
+			cate1.setCate1No(null);
+			mav.addObject("brandCateList", diquest.getCategoryList(cate1));
+		}
+		// 상품리스트 카테고리별 필터 목록
+		filterList = diquest.getFilterList(params);
+//		}else{
+//			// 카테고리 목록
+//			mav.addObject("cateList", displayService.getAllCategoryList(params.getCateGb()));
+//			mav.setViewName(super.getDeviceViewName("display/CategoryGoodsListForm2"));
+//			filterList = displayService.getGoodsListCategoryFilterList(params);
+//		}
+
+		// 필터 설정
+		mav.addObject("filterBrandList", displayService.getCategoryFilterList(filterList, "BRAND"));
+		mav.addObject("filterSizeList", displayService.getCategoryFilterList(filterList, "SIZE"));
+		mav.addObject("filterPriceList", displayService.getCategoryFilterList(filterList, "PRICE"));
+		mav.addObject("filterAgeList", displayService.getCategoryFilterList(filterList, "AGE"));
+		mav.addObject("filterSeasonList", displayService.getCategoryFilterList(filterList, "SEASON"));
+		mav.addObject("filterColorList", displayService.getCategoryFilterList(filterList, "COLOR"));
+		mav.addObject("filterBenefitList", displayService.getCategoryFilterList(filterList, "BENEFIT"));
+		if (params.getFormalGb() != null) {
+			params.setFormalGb(params.getFormalGb().toUpperCase());
+		}
+		mav.addObject("params", params);
+
+		log.info("categoryGoodsListForm params:::::{}", params);
+		log.info("filterPriceList:::{}", displayService.getCategoryFilterList(filterList, "PRICE"));
+
+		return mav;
+	}
+
+	/**
+	 * 카테고리 상품 리스트 조회
+	 * @param params - 검색엔진 정보
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 4. 7
+	 */
+	@PostMapping("/category/goods/list")
+	@ResponseBody
+	public GagaMap getGoodsList(@RequestBody SearchEngine params) {
+		GagaMap result = new GagaMap();
+		log.info("getGoodsList's parameter::: {}", params);
+		TscPageRequest pageable = new TscPageRequest((params.getPageNo() > 0 ? params.getPageNo() - 1 : 0), params.getPageSize(), params.getPageUnit());
+
+		if (TsfSession.isLogin()) {
+			params.setCustNo(TsfSession.getInfo().getCustNo());
+		}
+
+		params.setSiteCd(TscConstants.Site.STYLE24.value());
+		params.setFrontGb(TsfSession.getFrontGb());
+		params.setCustGb(TsfSession.getCustGb());
+
+		if (params.getBrandGroupNo() == null) {
+			params.setBrandGroupNo(0);
+		}
+
+		Collection<SearchEngine> dataList = new ArrayList<SearchEngine>();
+
+		GoodsListResponse response = diquest.getGoodsList(params);
+		pageable.setTotalCount(response.getTotalCount());
+		dataList = response.getResponse();
+		result.set("paging", pageable);
+		result.set("dataList", dataList);
+
+		log.info("pageable>>>>{}", pageable);
+		log.info("dataList>>>>{}", dataList);
+
+		return result;
+	}
+
+	/**
+	 * 전체 브랜드
+	 * @param
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 4. 12
+	 */
+	@GetMapping("/all/brand/form")
+	public ModelAndView allBrandMain(BrandGroup brandGroup) {
+		ModelAndView mav = new ModelAndView(super.getDeviceViewName("display/AllBrandForm"));
+
+		brandGroup.setSelfYn("Y");
+		mav.addObject("mainBrandList", displayService.getBrandImgList(brandGroup));
+
+		return mav;
+	}
+
+	/**
+	 * 전체 브랜드 리스트
+	 * @param
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 4. 12
+	 */
+	@GetMapping("/all/brand/list")
+	@ResponseBody
+	public Collection<BrandGroup> getAllBrandList(BrandGroup brandGroup) {
+		return displayService.getAllBrandList(brandGroup);
+	}
+
+	/**
+	 * 브랜드 카테고리 목록
+	 * @param brandGroupNo - 브랜드그룹번호
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 4. 12
+	 */
+	@GetMapping("/brand/cate/list")
+	@ResponseBody
+	public Collection<Cate1> getBrandCategoryList(Integer brandGroupNo) {
+		return displayService.getBrandCategoryList(brandGroupNo);
+	}
+
+	/**
+	 * 아울렛 카테고리 목록
+	 * @param
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 5. 3
+	 */
+	@GetMapping("/category/reload/list")
+	@ResponseBody
+	public Collection<Cate1> getCategoryReloadList(String cateGb) {
+		return displayService.getCategoryReloadList(cateGb);
+	}
+
+	/**
+	 * 아울렛 카테고리 목록
+	 * @param
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 5. 3
+	 */
+	@GetMapping("/outlet/cate/list")
+	@ResponseBody
+	public Collection<Cate1> getOutletCategoryList(String formalGb) {
+		return displayService.getOutletCategoryList(formalGb);
+	}
+
+	/**
+	 * 베스트 메인
+	 * @param
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 4. 13
+	 */
+	@GetMapping("/best/main/form")
+	public ModelAndView bestMain(Contents contents) {
+		ModelAndView mav = new ModelAndView(super.getDeviceViewName("display/BestMainForm"));
+
+		contents.setContentsLoc("SCM003");
+		mav.addObject("bestCateList", displayService.getBestItemCategoryList(contents));
+
+		return mav;
+	}
+
+	/**
+	 * 베스트 메인 상품 리스트 조회
+	 * @param
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 4. 13
+	 */
+	@PostMapping("/best/main/goods/list")
+	@ResponseBody
+	public GagaMap getBestMainGoodsList(@RequestBody Contents contents) {
+		GagaMap result = new GagaMap();
+		TscPageRequest pageable = new TscPageRequest((contents.getPageNo() > 0 ? contents.getPageNo() - 1 : 0), contents.getPageSize(), contents.getPageUnit());
+
+		contents.setContentsLoc("SCM003");
+		contents.setPageGb("BEST");
+
+		int totalCnt = displayService.getContentsCategoryGoodsCount(contents);
+		pageable.setTotalCount(totalCnt);
+		contents.setPageable(pageable);
+
+		result.set("paging", contents);
+		result.set("totalCnt", totalCnt);
+		result.set("endRow", pageable.getEndRow());
+		result.set("dataList", displayService.getBestItemCategoryGoodsList(contents));
+		return result;
+	}
+
+	/**
+	 * GNB TAB 기획전배너 리스트
+	 * @param Contents
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 4. 14
+	 */
+	@GetMapping("/gnb/tab/banner/list")
+	@ResponseBody
+	public Collection<Contents> getGnbTabBannerlist(Contents contents) {
+//		contents.setContentsLoc("STAB003");
+		if (contents.getCateNo().equals(3000)) {
+			contents.setContentsLoc("SOM005");
+		} else {
+			contents.setContentsLoc("SCM005");
+		}
+		contents.setMaxRow(2);
+
+		return displayService.getGnbTabBannerlist(contents);
+	}
+
+	/**
+	 * 브랜드 GNB 탭 추천상풍 목록
+	 * @param
+	 * @return
+	 * @throws Exception
+	 * @author bin2107
+	 * @since 2021. 4. 15
+	 */
+	@GetMapping("/brand/gnb/tab/recommend/goods/list")
+	@ResponseBody
+	public Collection<Goods> getBrandGnbTabRecommendGoodsList(Cate4Srch cate4Srch) {
+		Collection<Goods> goodsList = goodsService.getContentsCategoryGoodsList(cate4Srch);
+		return goodsList;
+	}
+
+	/**
+	 * 아울렛 메인
+	 * @param cate - 카테고리 정보
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 4. 20
+	 */
+	@GetMapping("/outlet/main/form")
+	public ModelAndView outletMain(Cate4Srch cate) {
+		cate.setCate1No(1713);
+		log.info("{}", cate);
+
+		ModelAndView mav = new ModelAndView(super.getDeviceViewName("display/OutletMainForm"));
+
+		MainLayout mainLayout = new MainLayout();
+		mainLayout.setCateNo(cate.getCate1No());
+		Collection<MainLayout> mainLayoutCollection = displayService.getMainLayout(mainLayout);
+		Collection<MainLayout> outletMainLayoutList = new ArrayList<MainLayout>();
+
+		for (MainLayout cateMain : mainLayoutCollection) {
+			if ("SOM001".equals(cateMain.getContentsLoc())) {
+				// 기획전
+				Contents contents = new Contents();
+				contents.setContentsLoc("SOM001");
+				contents.setCateNo(cate.getCate1No());
+				mav.addObject("planningList", displayService.getContentsList(contents));
+			} else if ("SOM002".equals(cateMain.getContentsLoc())) {
+				// md추천
+				cate.setContentsLoc("SOM002");
+				cate.setMaxRow(20);
+				cate.setCate1No(3000);
+				mav.addObject("mdPickGoodsList", goodsService.getContentsCategoryGoodsList(cate));
+			} else if ("SOM003".equals(cateMain.getContentsLoc())) {
+				// 베스트품
+				cate.setContentsLoc("SOM003");
+				cate.setMaxRow(20);
+				cate.setCate1No(3000);
+				mav.addObject("bestGoodsList", goodsService.getContentsCategoryGoodsList(cate));
+			}
+
+			outletMainLayoutList.add(cateMain);
+		}
+
+		mav.addObject("outletMainLayoutList", outletMainLayoutList);
+		mav.addObject("preview", cate.getPreview());
+		mav.addObject("viewDt", cate.getViewDt());
+		mav.addObject("viewPage", "G037_32");
+		//mav.addObject("popupCateNo", cate.getCate1No());
+
+		mav.addObject("params", cate);
+
+		return mav;
+	}
+
+	/**
+	 * 검색상품 목록 화면
+	 * @param keyword - 검색키워드
+	 * @param brandGroupNo - 브랜드그룹번호
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 5. 6
+	 */
+	@GetMapping("/search/goods/list/form")
+	public ModelAndView searchGoodsListForm(@RequestParam(value = "keyword") String keyword, @RequestParam(value = "brandGroupNo", required = false) Integer brandGroupNo) {
+		SearchEngine params = new SearchEngine();
+		params.setKeyword(keyword);
+		params.setBrandGroupNo(brandGroupNo == null ? 0 : brandGroupNo);
+		params.setFrontGb(TsfSession.getFrontGb());
+
+		ModelAndView mav = new ModelAndView(super.getDeviceViewName("display/SearchGoodsListForm"));
+
+//		mav.addObject("cateInfo", params);
+
+		Collection<Filter> filterList = new ArrayList<Filter>();
+
+		// 카테고리 목록
+		mav.addObject("allCateList", displayService.getAllCategoryList("G032_101"));
+
+		// 검색엔진 연동 여부
+		String syncYn = commonService.getSearchEngineSyncYn();
+		if (syncYn.equals("Y")) { // 검색엔진을 통한 상품리스트 조회
+			// 상품검색키워드 카테고리 목록
+			mav.addObject("cateList", diquest.getCategoryList(params));
+
+			// 상품리스트 카테고리별 필터 목록
+			filterList = diquest.getFilterList(params);
+		} else { // DB를 통한 상품리스트 조회
+			// 상품검색키워드 카테고리 목록
+			mav.addObject("cateList", displayService.getKeywordCategoryList(params.getKeyword()));
+
+			// 상품리스트 카테고리별 필터 목록
+			filterList = displayService.getSearchGoodsListCategoryFilterList(params);
+		}
+
+		// 필터 설정
+		mav.addObject("filterBrandList", displayService.getCategoryFilterList(filterList, "BRAND"));
+		mav.addObject("filterSizeList", displayService.getCategoryFilterList(filterList, "SIZE"));
+		mav.addObject("filterPriceList", displayService.getCategoryFilterList(filterList, "PRICE"));
+		mav.addObject("filterAgeList", displayService.getCategoryFilterList(filterList, "AGE"));
+		mav.addObject("filterSeasonList", displayService.getCategoryFilterList(filterList, "SEASON"));
+		mav.addObject("filterColorList", displayService.getCategoryFilterList(filterList, "COLOR"));
+		mav.addObject("filterBenefitList", displayService.getCategoryFilterList(filterList, "BENEFIT"));
+		mav.addObject("params", params);
+
+		// 광고 배너 조회
+		Contents adContents = new Contents();
+		adContents.setContentsLoc("SAD001");
+		adContents.setMaxRow(1);
+		mav.addObject("adBannerList", displayService.getContentsList(adContents));
+
+		log.info("filterPriceList:::{}", displayService.getCategoryFilterList(filterList, "PRICE"));
+
+		return mav;
+	}
+
+	/**
+	 * 검색상품 리스트 조회
+	 * @param params - 검색엔진 정보
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 5. 6
+	 */
+	@PostMapping("/search/goods/list")
+	@ResponseBody
+	public GagaMap getSearchGoodsList(@RequestBody SearchEngine params) {
+		GagaMap result = new GagaMap();
+
+		TscPageRequest pageable = new TscPageRequest((params.getPageNo() > 0 ? params.getPageNo() - 1 : 0), params.getPageSize(), params.getPageUnit());
+
+		if (TsfSession.isLogin()) {
+			params.setCustNo(TsfSession.getInfo().getCustNo());
+		}
+
+		params.setFrontGb(TsfSession.getFrontGb());
+		params.setCustGb(TsfSession.getCustGb());
+
+		Collection<SearchEngine> dataList = new ArrayList<SearchEngine>();
+		log.info("getSearchGoodsList params::{}", params);
+		// 검색엔진 연동 여부
+//		String syncYn = commonService.getSearchEngineSyncYn();
+//		if (syncYn.equals("Y")) { // 검색엔진을 통한 상품리스트 조회
+		GoodsListResponse response = diquest.getGoodsList(params);
+		pageable.setTotalCount(response.getTotalCount());
+		dataList = response.getResponse();
+//		} else { // DB를 통한 상품리스트 조회
+//			pageable.setTotalCount(goodsService.getSearchGoodsCount(params));
+//			params.setPageable(pageable);
+//			dataList = goodsService.getSearchGoodsList(params);
+//		}
+
+		result.set("paging", pageable);
+		result.set("dataList", dataList);
+
+		return result;
+	}
+
+	/**
+	 * 검색기획전 리스트 조회
+	 * @param params - 검색엔진 정보
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 6. 14
+	 */
+	@PostMapping("/search/planning/list")
+	@ResponseBody
+	public GagaMap getSearchPlanningList(@RequestBody SearchEngine params) {
+		GagaMap result = new GagaMap();
+
+		TscPageRequest pageable = new TscPageRequest((params.getPageNo() > 0 ? params.getPageNo() - 1 : 0), params.getPageSize(), params.getPageUnit());
+		if (TsfSession.isLogin()) {
+			params.setCustNo(TsfSession.getInfo().getCustNo());
+		}
+
+		params.setFrontGb(TsfSession.getFrontGb());
+		params.setCustGb(TsfSession.getCustGb());
+
+		Collection<SearchEngine> planList = new ArrayList<SearchEngine>();
+
+		PlanningResponse responsePlan = diquest.getPlanningList(params.getKeyword(), params.getPageNo(), params.getPageSize());
+		pageable.setTotalCount(responsePlan.getTotalSize());
+		planList = responsePlan.getResponse();
+
+		result.set("paging", pageable);
+		result.set("planList", planList);
+
+		return result;
+	}
+
+	/**
+	 * 검색이벤트 리스트 조회
+	 * @param params - 검색엔진 정보
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 6. 14
+	 */
+	@PostMapping("/search/event/list")
+	@ResponseBody
+	public GagaMap getSearchEventList(@RequestBody SearchEngine params) {
+		GagaMap result = new GagaMap();
+
+		TscPageRequest pageable = new TscPageRequest((params.getPageNo() > 0 ? params.getPageNo() - 1 : 0), params.getPageSize(), params.getPageUnit());
+		if (TsfSession.isLogin()) {
+			params.setCustNo(TsfSession.getInfo().getCustNo());
+		}
+
+		params.setFrontGb(TsfSession.getFrontGb());
+		params.setCustGb(TsfSession.getCustGb());
+
+		Collection<SearchEngine> eventList = new ArrayList<SearchEngine>();
+
+		PlanningResponse responsePlan = diquest.getEventList(params.getKeyword(), params.getPageNo(), params.getPageSize());
+		pageable.setTotalCount(responsePlan.getTotalSize());
+		eventList = responsePlan.getResponse();
+
+		result.set("paging", pageable);
+		result.set("eventList", eventList);
+
+		return result;
+	}
+
+	/**
+	 * 인기검색어 목록
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 5. 10
+	 */
+	@GetMapping("/search/trend/keyword/list")
+	@ResponseBody
+	public SearchEngine getSearchTrendKeywordList() {
+		return diquest.getTrendKeywordList();
+	}
+
+	/**
+	 * 검색어 레이어
+	 * @param brandGroupNo - 브랜드그룹번호
+	 * @return
+	 * @throws UnsupportedEncodingException
+	 * @author bin2107
+	 * @since 2021. 5. 11
+	 */
+	@PostMapping("/search/layer")
+	public ModelAndView searchLayerForm(@RequestParam(value = "brandGroupNo", required = false) Integer brandGroupNo) throws UnsupportedEncodingException {
+		ModelAndView mav = new ModelAndView();
+
+		// 최근검색어 목록
+		Collection<String> recentlyKeywordList = new ArrayList<>();
+		String ckKeywords = GagaCookieUtil.getCookie(TsfSession.getHttpServletRequest(), TsfConstants.CK_PREFIX + "_today_keyword");
+		if (StringUtils.isNotBlank(ckKeywords)) {
+			ckKeywords = URLDecoder.decode(ckKeywords, "UTF-8");
+			String[] arrKeywords = ckKeywords.split("\\,");
+			StringBuilder sql = new StringBuilder();
+			if (arrKeywords.length > 0) {
+				for (String keyword : arrKeywords) {
+					if (!StringUtils.isBlank(keyword)) {
+						recentlyKeywordList.add(keyword);
+					}
+				}
+			}
+		}
+		mav.addObject("recentlyKeywordList", recentlyKeywordList);
+
+		// 인기검색어
+		mav.addObject("trendKeywordList", diquest.getTrendKeywordList());
+
+		mav.addObject("brandGroupNo", brandGroupNo);
+
+		mav.setViewName(super.getDeviceViewName("display/SearchLayer"));
+		return mav;
+	}
+
+	/**
+	 * 검색어 자동완성
+	 * @param params - 검색엔진 정보
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 6. 15
+	 */
+	@PostMapping("/search/auto/complete")
+	@ResponseBody
+	public GagaMap getSearchAutoCompleteList(@RequestBody SearchEngine params) {
+		GagaMap result = new GagaMap();
+
+		params.setFrontGb(TsfSession.getFrontGb());
+		params.setCustGb(TsfSession.getCustGb());
+
+		String[] autoKeywords;
+		BrandGroup brand;
+		Collection<Cate4Srch> cateList = new ArrayList<Cate4Srch>();
+		Collection<SearchEngine> goodsList = new ArrayList<SearchEngine>();
+
+		AutoCompleteResponse autoComplete = diquest.getAutoComplete(params.getKeyword());
+		autoKeywords = autoComplete.getAutoKeywords();
+		brand = autoComplete.getBrand();
+		cateList = autoComplete.getCateList();
+		goodsList = autoComplete.getGoodsList();
+
+		result.set("autoKeywords", autoKeywords);
+		result.set("brand", brand);
+		result.set("cateList", cateList);
+		result.set("goodsList", goodsList);
+
+		return result;
+	}
+
+	/**
+	 * 주간판매베스트추천상품 목록
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 6. 29
+	 */
+	@GetMapping("/weekly/best/list")
+	@ResponseBody
+	public Collection<Result> getWeeklySellBestGoodsList() {
+		return eigeneaiApi.getWeeklySellBestGoodsList(30);
+	}
+
+	/**
+	 * 검색키워드 조회
+	 * @param
+	 * @return
+	 * @throws Exception
+	 * @author bin2107
+	 * @since 2021. 7. 2
+	 */
+	@GetMapping("/search/keyword/list")
+	@ResponseBody
+	public Collection<SearchKeyword> getSearchKeywordList(SearchKeyword searchKeyword) {
+		return displayService.getSearchKeywordList(searchKeyword);
+	}
+
+	/**
+	 * 브랜드메인 검색어 레이어
+	 * @param brandGroupNo - 브랜드그룹번호
+	 * @return
+	 * @throws UnsupportedEncodingException
+	 * @author bin2107
+	 * @since 2021. 7. 12
+	 */
+	@PostMapping("/brand/search/layer")
+	public ModelAndView brandSearchLayerForm(@RequestParam(value = "brandGroupNo") Integer brandGroupNo) throws UnsupportedEncodingException {
+		ModelAndView mav = new ModelAndView();
+
+		// 최근검색어 목록
+		Collection<String> recentlyKeywordList = new ArrayList<>();
+		String ckKeywords = GagaCookieUtil.getCookie(TsfSession.getHttpServletRequest(), TsfConstants.CK_PREFIX + "_today_keyword");
+		if (StringUtils.isNotBlank(ckKeywords)) {
+			ckKeywords = URLDecoder.decode(ckKeywords, "UTF-8");
+			String[] arrKeywords = ckKeywords.split("\\,");
+			StringBuilder sql = new StringBuilder();
+			if (arrKeywords.length > 0) {
+				for (String keyword : arrKeywords) {
+					if (!StringUtils.isBlank(keyword)) {
+						recentlyKeywordList.add(keyword);
+					}
+				}
+			}
+		}
+		mav.addObject("recentlyKeywordList", recentlyKeywordList);
+
+		mav.addObject("brandGroupNo", brandGroupNo);
+
+		mav.setViewName(super.getDeviceViewName("display/BrandSearchLayer"));
+		return mav;
+	}
+
+	/**
+	 * 검색상품 목록 화면
+	 * @param keyword - 검색키워드
+	 * @param brandGroupNo - 브랜드그룹번호
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 7. 12
+	 */
+	@GetMapping("/brand/search/goods/list/form")
+	public ModelAndView brandSearchGoodsListForm(@RequestParam(value = "keyword") String keyword, @RequestParam(value = "brandGroupNo") Integer brandGroupNo) {
+		SearchEngine params = new SearchEngine();
+		params.setKeyword(keyword);
+		params.setBrandGroupNo(brandGroupNo == null ? 0 : brandGroupNo);
+		params.setFrontGb(TsfSession.getFrontGb());
+
+		ModelAndView mav = new ModelAndView(super.getDeviceViewName("display/BrandSearchGoodsListForm"));
+
+		Collection<Filter> filterList = new ArrayList<Filter>();
+
+		// 카테고리 목록
+		mav.addObject("allCateList", displayService.getAllCategoryList("G032_101"));
+
+		// 상품검색키워드 카테고리 목록
+		mav.addObject("cateList", diquest.getCategoryList(params));
+
+		// 상품리스트 카테고리별 필터 목록
+		filterList = diquest.getFilterList(params);
+
+		// 필터 설정
+		mav.addObject("filterBrandList", displayService.getCategoryFilterList(filterList, "BRAND"));
+		mav.addObject("filterSizeList", displayService.getCategoryFilterList(filterList, "SIZE"));
+		mav.addObject("filterPriceList", displayService.getCategoryFilterList(filterList, "PRICE"));
+		mav.addObject("filterAgeList", displayService.getCategoryFilterList(filterList, "AGE"));
+		mav.addObject("filterSeasonList", displayService.getCategoryFilterList(filterList, "SEASON"));
+		mav.addObject("filterColorList", displayService.getCategoryFilterList(filterList, "COLOR"));
+		mav.addObject("filterBenefitList", displayService.getCategoryFilterList(filterList, "BENEFIT"));
+		mav.addObject("params", params);
+
+		// 광고 배너 조회
+		Contents adContents = new Contents();
+		adContents.setContentsLoc("SAD001");
+		adContents.setMaxRow(1);
+		mav.addObject("adBannerList", displayService.getContentsList(adContents));
+
+		log.info("filterPriceList:::{}", displayService.getCategoryFilterList(filterList, "PRICE"));
+
+		return mav;
+	}
+
+	/**
+	 * 검색엔진 전체 카테고리 목록
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 7. 13
+	 */
+	@GetMapping("/searchengine/all/cate/list")
+	@ResponseBody
+	public Collection<Cate1> getSearchEngineAllCategoryList() {
+		SearchEngine cate1 = new SearchEngine();
+		cate1.setBrandGroupNo(0);
+		cate1.setFrontGb(TsfSession.getFrontGb());
+		cate1.setSiteCd(TscConstants.Site.STYLE24.value());
+		cate1.setCateGb("G032_101");
+//		cate1.setCate1No(params.getCate1No());
+
+		return diquest.getCategoryList(cate1);
+	}
+}

+ 701 - 700
src/main/webapp/WEB-INF/views/web/common/fragments/GnbWeb.html

@@ -1,701 +1,702 @@
-<!DOCTYPE html>
-<html lang="ko"
-	  xmlns:th="http://www.thymeleaf.org">
-<!--
- *******************************************************************************
- * @source  : GnbWeb.html
- * @desc    : GNB
- *============================================================================
- * STYLE24
- * Copyright(C) 2020 TSIT, All rights reserved.
- *============================================================================
- * VER  DATE         AUTHOR      DESCRIPTION
- * ===  ===========  ==========  =============================================
- * 1.0  2021.01.28   gagamel     최초 작성
- *******************************************************************************
- -->
-<header id="header" th:fragment="gnb">
-
-	<!-- head start -->
-	<div class="common_header main_header">
-		<!-- 프로모션 띠 배너 등록 시 노출 -->
- 		<div class="hd_top_banner" id="divTopbanner">
-<!-- 			<div class="bnrtype_open" style="background-color:#496ac9;">-->
-<!-- 				<a href="" target="">-->
-<!-- 					<img src="/images/pc/thumb/tmp_top_banner2.jpg" alt="">-->
-<!-- 					<div class="open_bnr_area">-->
-<!-- 						<img src="/images/pc/thumb/tmp_top_banner2_open.jpg" alt=""/>-->
-<!-- 					</div>-->
-<!-- 				</a>-->
-<!-- 				<button class="btn_toggle_bnr"><span>열기</span></button>-->
-<!-- 			</div>-->
-<!-- 			<div class="bnrtype_img" style="background-color:#57799d;">-->
-<!-- 				<a href="" target="">-->
-<!-- 					<img src="/images/pc/thumb/tmp_top_banner1.jpg" alt=""/>-->
-<!-- 				</a>-->
-<!-- 			</div>-->
-<!-- 			<div class="bnrtype_text" style="background-color:#fd4801;">-->
-<!-- 				<a href="" target="">-->
-<!-- 					<div style="color:#fff; font-size:20px; font-weight:300;">-->
-<!-- 						<span style="font-weight:500">APP</span> 수신동의 하면 <span style="font-weight:500">1</span>만 포인트 증정!-->
-<!-- 					</div>-->
-<!-- 				</a>-->
-<!-- 			</div>-->
-<!-- 			<div class="close_bnr_area">-->
-<!-- 				<form class="form_wrap">-->
-<!-- 					<div class="form_field">-->
-<!-- 						<input id="chk-cookie" type="checkbox"><label for="chk-cookie"><span>오늘 하루 보지 않기</span></label>-->
-<!-- 					</div>-->
-<!-- 				</form>-->
-<!-- 				<button id="btn_close_bnr" class="btn_close"><span>닫기</span></button>-->
-<!-- 			</div>-->
- 		</div>
-		<!-- //프로모션 띠 배너 등록 시 노출 -->
-
-		<div class="area">
-			<div class="logo">
-				<a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MAIN);">
-					<h1>
-						<i class="ico ico_logo"></i>
-						<em class="blind">STYLE24</em>
-					</h1>
-				</a>
-			</div>
-			<div class="util_group">
-				<span th:if="${sessionInfo == null}"><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_LOGIN);" title="로그인 바로가기">로그인</a></span>
-				<span th:if="${sessionInfo != null}"><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_LOGOUT);" title="로그아웃">로그아웃</a></span>
-				<span th:if="${sessionInfo == null}"><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_CUSTOMER_JOIN_TYPE);" title="회원가입 바로가기">회원가입</a></span>
-				<span><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE);" title="마이페이지 바로가기">마이페이지</a></span>
-			</div>
-		</div>
-
-		<div class="gnb">
-			<!-- nav -->
-			<div class="nav">
-				<ul class="bundle btn_home">
-					<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MAIN);" class="">홈</a></li>
-				</ul>
-
-				<ul class="bundle">
-					<li class="has_depth">
-						<a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_ALL_BRAND);">브랜드</a>
-						<!-- 브랜드_depth -->
-						<div class="depth_menu brand">
-							<div class="head_category">
-								<div class="tit">
-									<p>브랜드</p>
-									<a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_ALL_BRAND);" class="more">전체보기</a>
-								</div>
-								<div class="menu" id="divGnbBrandGrp">
-								</div>
-							</div>
-						</div>
-					</li>
-				</ul>
-				<ul class="bundle" id="divGnbTab">
-				</ul>
-			</div>
-			<!-- // nav -->
-
-			<div class="more_category">
-				<a href="" class="btn_more_cate">더보기</a>
-				<div class="cate_list">
-					<ul id="ulGnbTab">
-					</ul>
-				</div>
-			</div>
-
-			<!-- search -->
-			<div class="search">
-				<!-- 프로모션 문구 노출 검색용-->
-				<div class="area" id="searchArea">
-<!--					<p class="promotion_search">모이몰론, 남들보다 빠르게! 신상 check</p>-->
-<!--					<button type="button" class="btn_sch_promotion" id="btnGnbSearch" onclick="cfnSearchLayer();"><i class="ico ico_search"><em>프로모션 검색 바로가기</em></i></button>-->
-				</div>
-				<!-- //프로모션 문구 노출 검색용-->
-				<!-- 통합검색 -->
-				<button type="button" class="btn_open_search" id="searchBtn"><i class="ico ico_search"><em>통합검색</em></i></button>
-				<a href="#" class="btn_ico btn_cart" title="장바구니 바로가기"><i class="ico ico_bag"></i><span class="circle_count">99+</span></a>
-				<!-- //통합검색 -->
-			</div>
-			<!-- //search -->
-		</div>
-		<div class="black_screen"></div>
-	</div>
-	
-<script th:inline="javascript">
-/*<![CDATA[*/
-	// 전체카테고리 조회
-// 	let allCate;
-// 	let fnGetAllCategory = function() {
-// 		$.getJSON('/display/all/cate/list'
-// 			, function(result, status) {
-// 				if (status == 'success') {
-// 					allCate = result;
-					
-// 					// GNB탭 > 브랜드 생성
-// 					fnCreateGnbBrandGroup();
-// 				}
-// 		});
-// 	}
-
-// 검색엔진 전체카테고리 조회
-	let searchEngineAllCate;
-	let fnGetSearchEngineAllCategory = function() {
-		$.getJSON('/display/searchengine/all/cate/list'
-			, function(result, status) {
-				if (result.length > 0) {
-					searchEngineAllCate = result;
-					// GNB탭 > 브랜드 생성
-					// fnCreateGnbBrandGroup();
-					fnCreateGnbTab();
-				}
-		});
-	}
-	var bannerCloseYn = 'Y';
-	
-	// GNB탭 > 카테고리
-	let fnGetGnbCategory = function(cate1) {
-		let tag = '';
-
-		if (cate1 != null) {
-			tag += '<li class="has_depth">\n'; //depth_menu 있을 시 has_depth 클래스 추가
-			tag += '	<a href="javascript:void(0);" onclick="cfnGoToCategoryMain(\'' + cate1.cateGb + '\',' + cate1.cate1No + ');">' + cate1.cate1Nm + '</a>\n';
-			tag += '	<div class="depth_menu category">\n';
-			tag += '		<div class="head_category">\n';
-			tag += '			<div class="tit">\n';
-			tag += '				<p>' + cate1.cate1Nm + '</p>\n';
-			tag += '				<a href="javascript:void(0);" onclick="cfnGoToGoodsList(0,\'' + cate1.cateGb + '\',' + cate1.cate1No + ');" class="more">전체보기</a>\n';
-			tag += '			</div>\n';
-			if (cate1.leafYn == 'N' && cate1.cate2List.length > 0) {
-				tag += '			<div class="menu">\n';
-				tag += '				<ul class="maintabs">\n';
-				$.each(cate1.cate2List, function(idx2, cate2) {
-					tag += '					<li>\n';
-					tag += '						<a href="javascript:void(0);" onclick="cfnGoToGoodsList(0,\'' + cate2.cateGb + '\',' + cate2.cate1No + ',' + cate2.cate2No + ');">' + cate2.cate2Nm + '</a>\n';
-					if (cate2.leafYn == 'N' && cate2.cate3List != null && cate2.cate3List.length > 0) {
-						tag += '						<ul class="box_depth2">\n';
-						$.each(cate2.cate3List, function(idx3, cate3) {
-							tag += '							<li>\n';
-							tag += '								<a href="javascript:void(0);" onclick="cfnGoToGoodsList(0,\'' + cate3.cateGb + '\',' + cate3.cate1No + ',' + cate3.cate2No + ',' + cate3.cate3No + ');">' + cate3.cate3Nm + '</a>\n';
-							if (cate3.leafYn == 'N' && cate3.cate4List != null && cate3.cate4List.length > 0) {
-								tag += '								<ul class="box_depth3">\n';
-								$.each(cate3.cate4List, function(idx4, cate4) {
-									tag += '									<li><a href="javascript:void(0);" onclick="cfnGoToGoodsList(0,\'' + cate4.cateGb + '\',' + cate4.cate1No + ',' + cate4.cate2No + ',' + cate4.cate3No + ',' + cate4.cate4No + ');">' + cate4.cate4Nm + '</a></li>\n';
-								});
-								tag += '								</ul>\n';
-							}
-							tag += '							</li>\n';
-						});
-						tag += '						</ul>\n';
-					}
-					tag += '					</li>\n';
-				});
-				tag += '				</ul>\n';
-				tag += '			</div>\n';
-				tag += '		</div>\n';
-				tag += '	<div class="head_banner" id="id'+cate1.cate1No+'">\n';
-				tag += '	</div>';
-				tag += '	</div>\n';
-			}
-			tag += '</li>\n';
-		}
-		return tag;
-	}
-
-	let fnGetGnbBanner = function (cateNo){
-		let actionUrl = '/display/gnb/tab/banner/list?cateNo='+cateNo;
-		let tag2 = '';
-		$.getJSON(actionUrl
-		, function(result, status){
-			var bannerImgUrl = _imgUrl; //[[${@environment.getProperty('domain.image')}]];
-			var planninImgUrl = _uploadImageUrl; //[[${@environment.getProperty('upload.image.view')}]];
-			if(result.length>0){
-				tag2 += '		<div class="tit">\n';
-				if(!gagajf.isNull(result[0].gnbTabTitle)){
-					tag2 += '			<p>'+result[0].gnbTabTitle+'</p>\n';
-				}
-				tag2 += '		</div>\n';
-				tag2 += '		<div class="list">\n';
-				tag2 += '			<ul class="clear event_con">\n';
-				$.each(result, function (idx, item){
-					tag2 += '				<li>\n';
-					tag2 += '					<a href="javascript:void(0);" onclick="cfnGoToPage(\''+item.strVar1+'\')">\n';
-					if(item.bannerGb=='ADMIN'){
-						tag2 += '						<div class="ev_img"><img src="'+bannerImgUrl+''+item.imgPath1+'" alt=""></div>\n';
-					}else{
-						tag2 += '						<div class="ev_img"><img src="'+planninImgUrl+''+item.imgPath1+'" alt=""></div>\n';
-					}
-
-					tag2 += '						<div class="txt">\n';
-					tag2 += '							<p class="tit">'+item.strTitle1+'</p>\n';
-					// tag2 += '							<p class="tit">'+item.strTitle2+'</p>\n';
-					tag2 += '						</div>\n';
-					tag2 += '					</a>\n';
-					tag2 += '				</li>\n';
-				});
-				tag2 += '			</ul>\n';
-				tag2 += '		</div>\n';
-			}
-			$('#id'+cateNo).append(tag2);
-			return tag2;
-		});
-
-	}
-
-	// GNB탭 생성
-	let fnCreateGnbTab = function() {
-		$.getJSON('/display/gnb/tab/list'
-			, function(result, status) {
-				if (status == 'success') {
-					if (result.length > 0) {
-						$('#divGnbTab').html('');
-						$('#ulGnbTab').html('');
-						
-						// let allCate = [[${allCateList}]];
-						let allCate = searchEngineAllCate;
-						$.each(result, function(idx, item) {
-							if (item.contentsType == 'C') { // 컨텐츠유형:카테고리, 아울렛
-								$.each(allCate, function(allCateIdx, allCateItem) {
-									if (item.cate1No == allCateItem.cate1No) {
-										let gnbCate = fnGetGnbCategory(allCateItem);
-										fnGetGnbBanner(item.cate1No);
-										$('#divGnbTab').append(gnbCate);
-										$('#ulGnbTab').append(gnbCate);
-									}
-								});
-							} else if(item.contentsType == 'O'){
-								let outletCate = fnGetOutletCategory(item.gtabNm);
-								$('#divGnbTab').append(outletCate);
-								$('#ulGnbTab').append(outletCate);
-								// $('#divGnbTab').append('<li><a href="' + item.linkUrl + '">' + item.gtabNm + '</a></li>');
-								// $('#ulGnbTab').append('<li><a href="' + item.linkUrl + '">' + item.gtabNm + '</a></li>');
-								fnGetOutletLeafCategory(outletCate);
-								fnGetGnbBanner('3000');
-							} else if (item.contentsType == 'L') { // 컨텐츠유형:링크
-								$('#divGnbTab').append('<li><a href="' + item.linkUrl + '">' + item.gtabNm + '</a></li>');
-								$('#ulGnbTab').append('<li><a href="' + item.linkUrl + '">' + item.gtabNm + '</a></li>');
-							}
-						});
-						
-						fnui_gnbOvers();
-					}
-				}
-			});
-	}
-
-	var fnGetOutletCategory = function (outletNm){
-		let formalGb = 'G009_20';
-		var tag = '';
-		tag += '<li class="has_depth">\n'; //depth_menu 있을 시 has_depth 클래스 추가
-		tag += '	<a href="javascript:void(0);" onclick="cfnGoToOutletMain(\'G032_103\');">' + outletNm + '</a>\n';
-		tag += '	<div class="depth_menu category">\n';
-		tag += '		<div class="head_category">\n';
-		tag += '			<div class="tit">\n';
-		tag += '				<p>' + outletNm + '</p>\n';
-		tag += '				<a href="javascript:void(0);" onclick="cfnGoToOutletMain(\'G032_103\');" class="more">전체보기</a>\n';
-		tag += '			</div>\n';
-		let allCate = [[${allCateList}]];
-		tag += '			<div class="menu">\n';
-		tag += '				<ul class="maintabs" >\n';
-		$.each(allCate, function(allCateIdx, allCateItem) {
-			tag += '					<li id="cate'+allCateItem.cate1No+'">\n';
-			tag += '						<a href="javascript:void(0);" onclick="cfnGoToGoodsList(0,\'' + allCateItem.cateGb + '\',' + allCateItem.cate1No + ',\'\',\'\',\'\',\'\',\'' + formalGb + '\');">' + allCateItem.cate1Nm + '</a>\n';
-			tag += '					</li>\n';
-		});
-		tag += '				</ul>\n';
-		tag += '			</div>\n';
-		tag += '		</div>\n';
-		tag += '	<div class="head_banner" id="id3000">\n';
-		tag += '	</div>';
-		tag += '	</div>\n';
-		tag += '</li>\n';
-		return tag;
-	}
-
-	var fnGetOutletLeafCategory = function (cate1List){
-		let formalGb = 'G009_20';
-		let actionUrl = '/display/outlet/cate/list?cate1No=&formalGb='+formalGb;
-		$.getJSON(actionUrl , function(result, status) {
-			if (result.length > 0) {
-				let allCate = [[${allCateList}]];
-				$.each(result, function(idx, item) {
-					$.each(allCate, function(allCateIdx, allCateItem) {
-						if (item.cate1No == allCateItem.cate1No) {
-							let gnbCate = fnGetOutletLeafData(idx,item);
-							$('#cate'+allCateItem.cate1No).append(gnbCate);
-						}
-					});
-				});
-			}
-		});
-	}
-
-	var fnGetOutletLeafData= function (idx, cate1){
-		let tag2 = '';
-		let formalGb = 'G009_20';
-		if (cate1 != null) {
-			if (cate1.leafYn == 'N' && cate1.cate2List.length > 0) {
-				tag2 += '<ul class="box_depth2">';
-				$.each(cate1.cate2List, function(idx2, cate2) {
-					tag2 += '					<li>\n';
-					tag2 += '						<a href="javascript:void(0);" onclick="cfnGoToGoodsList(0,\'' + cate2.cateGb + '\',' + cate2.cate1No + ',' + cate2.cate2No + ',\'\',\'\',\'\',\'' + formalGb + '\');">' + cate2.cate2Nm + '</a>\n';
-					if (cate2.leafYn == 'N' && cate2.cate3List != null && cate2.cate3List.length > 0) {
-						tag2 += '						<ul class="box_depth2">\n';
-						$.each(cate2.cate3List, function(idx3, cate3) {
-							tag2 += '							<li>\n';
-							tag2 += '								<a href="javascript:void(0);" onclick="cfnGoToGoodsList(0,\'' + cate3.cateGb + '\',' + cate3.cate1No + ',' + cate3.cate2No + ',' + cate3.cate3No + ',\'\',\'\',\'' + formalGb + '\');">' + cate3.cate3Nm + '</a>\n';
-							if (cate3.leafYn == 'N' && cate3.cate4List != null && cate3.cate4List.length > 0) {
-								tag2 += '								<ul class="box_depth3">\n';
-								$.each(cate3.cate4List, function(idx4, cate4) {
-									tag2 += '									<li><a href="javascript:void(0);" onclick="cfnGoToGoodsList(0,\'' + cate4.cateGb + '\',' + cate4.cate1No + ',' + cate4.cate2No + ',' + cate4.cate3No + ',' + cate4.cate4No + ',\'\',\'' + formalGb + '\');">' + cate4.cate4Nm + '</a></li>\n';
-								});
-								tag2 += '								</ul>\n';
-							}
-							tag2 += '							</li>\n';
-						});
-						tag2 += '						</ul>\n';
-					}
-					tag2 += '					</li>\n';
-				});
-				tag2 += '</ul>';
-			}
-		}
-		return tag2;
-	}
-
-	// GNB탭 > 브랜드 생성
-	let fnCreateGnbBrandGroup = function() {
-		$.getJSON('/display/gnb/brand/group/list'
-			, function(result, status) {
-				if (status == 'success') {
-					if (result.length > 0) {
-						$('#divGnbBrandGrp').html('');
-						let tag = '';
-						let prevTitle = '';
-						$.each(result, function (idx, item) {
-							if (prevTitle != item.title) {
-								if (idx > 0) {
-									tag += '		</ul>\n';
-									tag += '	</div>\n';
-									tag += '</div>\n';
-								}
-								tag += '<div class="row">\n';
-								tag += '	<p>' + item.title + '</p>\n';
-								tag += '	<div class="brand_list swiper-container">\n';
-								tag += '		<ul class="clear swiper-wrapper">\n';
-							}
-							tag += '			<li class="swiper-slide">\n';
-							tag += '				<a href="javascript:void(0);" onclick="cfnGoToBrandMain(' + item.brandGroupNo + ');">\n';
-							tag += '					<img src="' + _uploadDefaultUrl + item.logoFileNm + '" alt=""/>\n';
-							tag += '					<span><em>' + item.brandGroupNm + '</em></span>\n';
-							tag += '				</a>\n';
-							tag += '			</li>\n';
-
-							prevTitle = item.title;
-						});
-						tag += '		</ul>\n';
-						tag += '	</div>\n';
-						tag += '</div>\n';
-						$('#divGnbBrandGrp').html(tag);
-					}
-					// fnCreateGnbTab();
-				}
-		});
-	}
-
-	// $('#btnGnbSearch').on('click', function() {
-	// 	//검색창 호출
-	// 	$(".common_search").addClass('active');
-	// });
-
-	// 띠배너 닫기(쿠키설정)
-	let fnGnbTobBannerClose = function(unexpDays){
-		let chkNoShow = $("#chk-cookie").is(":checked");
-		if(chkNoShow){
-			let todayDate = new Date();
-			todayDate = new Date(parseInt(todayDate.getTime() / 86400000) * 86400000);	// 당일 자정처리
-			todayDate.setDate(todayDate.getDate() + unexpDays);
-			document.cookie = "gnbtop_banner=Y; path=/; expires=" + todayDate.toGMTString() + ";";
-		}
-	}
-
-	// 띠배너 조회
-	let fnCreateTopBanner = function (){
-		var url = '/display/gnb/topbanner/list?contentsLoc=SGNB001';
-
-		$.getJSON(url, function (result, status){
-			if(status=='success'){
-				if(result.length>0){
-					let bannerYn = "N";
-					var bannerImgUrl = _imgUrl; // [[${@environment.getProperty('domain.image')}]];
-					$.each(result, function (idx, item) {
-						$('#divTopbanner').html('');
-						if(document.cookie.match('(^|;)?gnbtop_banner=([^;]*)(;|$)')==null){
-							bannerYn = "Y";
-							let tag = '';
-
-							if(item.contentsType == 'OPEN'){
-								tag +='<div class="bnrtype_open" style="background-color:#'+item.strVar5.replaceAll('#','')+';">';
-								if(item.strVar7=='IMG'){
-									tag +=' 	<a href="'+item.strVar1+'" target="">';
-									tag +=' 		<img src="'+bannerImgUrl+''+item.imgPath1+'" alt="">';
-									tag +=' 		<div class="open_bnr_area">';
-									tag +=' 			<img src="'+bannerImgUrl+''+item.imgPath2+'" alt=""/>';
-									tag +=' 		</div>';
-									tag +=' 	</a>';
-									tag +=' 	<button class="btn_toggle_bnr">열기</button>';
-								}else{
-									tag +=' 	<a href="'+item.strVar1+'" target="">';
-									tag +=' 		<img src="'+bannerImgUrl+''+item.imgPath1+'" alt="">';
-									tag +=' 		<div class="open_bnr_area">'+item.html+'</div>';
-									tag +=' 	</a>';
-									tag +=' 	<button class="btn_toggle_bnr">열기</button>';
-								}
-								tag +='</div>';
-								// if(item.strVar8=='Y'){
-									tag+='<div class="close_bnr_area">';
-									tag+=' 	<form class="form_wrap">';
-									tag+=' 		<div class="form_field">';
-									tag+=' 			<input id="chk-cookie" type="checkbox"><label for="chk-cookie"><span>오늘 하루 보지 않기</span></label>';
-									tag+=' 		</div>';
-									tag+=' 	</form>';
-									tag+=' 	<button id="btn_close_bnr" class="btn_close" onclick="fnGnbTobBannerClose(1);"><span>닫기</span></button>';
-									tag+='</div>';
-								// }
-								if($(".open_bnr_area").text() == '열기'){
-									$('.close_bnr_area').show();
-								}else{
-									if(item.strVar8=='Y'){
-										$('.close_bnr_area').show();
-										bannerCloseYn = 'Y';
-									}else{
-										$('.close_bnr_area').hide();
-										bannerCloseYn = 'N';
-									}
-								}
-							}else if(item.contentsType == 'IMG'){
-								tag+='<div class="bnrtype_img" style="background-color:#'+item.strVar5.replaceAll('#','')+';">';
-								tag+=' 	<a href="'+item.strVar1+'" target="">';
-								tag+=' 		<img src="'+bannerImgUrl+''+item.imgPath1+'" alt=""/>';
-								tag+=' 	</a>';
-								tag+='</div>';
-								tag+='<div class="close_bnr_area">';
-								tag+=' 	<form class="form_wrap">';
-								tag+=' 		<div class="form_field">';
-								tag+=' 			<input id="chk-cookie" type="checkbox"><label for="chk-cookie"><span>오늘 하루 보지 않기</span></label>';
-								tag+=' 		</div>';
-								tag+=' 	</form>';
-								tag+=' 	<button id="btn_close_bnr" class="btn_close" onclick="fnGnbTobBannerClose(1);"><span>닫기</span></button>';
-								tag+='</div>';
-							}else{
-								tag+='<div class="bnrtype_text" style="background-color:#fd4801;">';
-								tag+=' 	<a href="'+item.strVar1+'" target="">';
-								tag+=' 		<div style="color:#fff; font-size:20px; font-weight:300;">';
-								tag+=' 			<span style="font-weight:500">'+item.strTitle1+'</span>';
-								tag+=' 		</div>';
-								tag+=' 	</a>';
-								tag+='</div>';
-								tag+='<div class="close_bnr_area">';
-								tag+=' 	<form class="form_wrap">';
-								tag+=' 		<div class="form_field">';
-								tag+=' 			<input id="chk-cookie" type="checkbox"><label for="chk-cookie"><span>오늘 하루 보지 않기</span></label>';
-								tag+=' 		</div>';
-								tag+=' 	</form>';
-								tag+=' 	<button id="btn_close_bnr" class="btn_close" onclick="fnGnbTobBannerClose(1);"><span>닫기</span></button>';
-								tag+='</div>';
-							}
-							// tag+='<div class="close_bnr_area">';
-							// tag+=' 	<form class="form_wrap">';
-							// tag+=' 		<div class="form_field">';
-							// tag+=' 			<input id="chk-cookie" type="checkbox"><label for="chk-cookie"><span>오늘 하루 보지 않기</span></label>';
-							// tag+=' 		</div>';
-							// tag+=' 	</form>';
-							// if(item.contentsType != 'OPEN' || (item.contentsType == 'OPEN' && item.strVar8=='Y')){
-							// 	tag+=' 	<button id="btn_close_bnr" class="btn_close" onclick="fnGnbTobBannerClose(1);"><span>닫기</span></button>';
-							// }
-							// tag+='</div>';
-
-							if(bannerYn=="Y"){
-								$('#divTopbanner').html(tag);
-							}
-
-							// if(item.contentsType == 'OPEN'){
-							// 	if(item.strVar7!='IMG'){
-							// 		var countdown = document.getElementById("testOpen");
-							// 		var vvv = ""+item.html+"";
-							// 		countdown.innerHTML = vvv;
-							// 	}
-							// }
-						}
-					});
-				}
-			}
-		});
-	}
-
-	// 검색키워드 조회
-	var fnCreateSearchArea = function (){
-		var url = '/display/search/keyword/list';
-		let html = '';
-		$.getJSON(url, function (result, status){
-			if(result.length>0){
-				$.each(result, function (idx, item) {
-					html += '<a href="javascript:void(0);" onclick="cfnSearchLayer();"><p class="promotion_search">'+item.keyword+'</p></a>\n';
-					// html += '<button type="button" class="btn_sch_promotion" id="btnGnbSearch" onclick="cfnSearchLayer();"><i class="ico ico_search"><em>프로모션 검색 바로가기</em></i></button>';
-					html += '<button type="button" class="btn_sch_promotion" id="btnGnbSearch" onclick="fnGotoLink(\''+item.linkUrl+'\');"><i class="ico ico_search"><em>프로모션 검색 바로가기</em></i></button>';
-				});
-			}else{
-				html += '<a href="javascript:void(0);" onclick="cfnSearchLayer();"><p class="promotion_search"></p></a>\n';
-				html += '<button type="button" class="btn_sch_promotion" id="btnGnbSearch" onclick="cfnSearchLayer();"><i class="ico ico_search"><em>프로모션 검색 바로가기</em></i></button>\n';
-			}
-			$("#searchArea").append(html);
-		});
-	}
-
-	// 검색 키워드 링크 연결
-	let fnGotoLink = function (linkUrl){
-		document.location.href = linkUrl;
-	}
-	
-	// gnb overs show/hide
-	function fnui_gnbOvers() {
-		var categoryWidth = $('#divGnbTab').outerWidth();
-		var bdList_index = $('#divGnbTab > li').get();
-			bdList_index.reverse();
-		var bdList_legth = bdList_index.length;
-		var mrList_index = $('.more_category .cate_list ul > li').get();
-		var mrList_legth = mrList_index.length;
-			mrList_index.reverse();
-
-		for ( var i = 0; i < bdList_legth; i++ ) {
-			if (categoryWidth > 994 ){
-				bdList_index[i].style.display="none";
-				mrList_index[i].style.display="block";
-				return false;
-			}else if(categoryWidth < 993 ){
-				$('.more_category').css('display', 'none');
-				return false;
-			}
-			categoryWidth = $('#divGnbTab').outerWidth();
-		}
-	}
-	
-	$(document).ready(function() {
-		//TOP BANNER close
-		$(document).on('click','#btn_close_bnr',function(e){
-			$('body').removeClass('lock');
-			$('.bnrtype_open').removeClass('fixed');
-			$('.hd_top_banner').remove();
-		});
-		
-		//TOP BANNER OPEN TYPE		
-		$(document).on('click','.bnrtype_open .btn_toggle_bnr',function(e){
-			$('body').toggleClass('lock');
-			$('.bnrtype_open').toggleClass('fixed');
-			$(this).text($(this).text() == '열기' ? '닫기' : '열기');
-			// $(this).text() == '열기' ? $('.close_bnr_area').show() : $('.close_bnr_area').hide();
-			if(bannerCloseYn == 'N'){
-				if($(this).text() == '열기'){
-					$('.close_bnr_area').show();
-				}else{
-					$('.close_bnr_area').hide();
-				}
-			}else{
-				$('.close_bnr_area').show();
-			}
-		});
-		
-		// GNB toggle
-		$(document).on('mouseenter','.common_header .gnb .nav > ul > li',function(e){
-			$(this).parents('.nav').find('.bundle > li > a').removeClass('active');
-			$(this).children('a').addClass('active');
-			if(!$(this).hasClass('has_depth')){
-				$('.black_screen').hide();
-				$('.common_header .gnb .depth_menu, .box_depth2, .box_depth3, .box_depth4').hide();
-			} else if($(this).hasClass('has_depth')){
-				$('.black_screen').show();
-				$(this).find('.depth_menu').show();
-				$(this).parents('ul').siblings('ul').find('li.has_depth .depth_menu').hide();
-				$(this).siblings('li.has_depth').find('.depth_menu').hide();
-			}
-		}).on('mouseleave','.common_header .gnb',function(e){
-			$(this).find('.bundle > li > a').removeClass('active');
-			$('.black_screen').hide();
-			$('.common_header .gnb .depth_menu, .box_depth2, .box_depth3, .box_depth4').hide();
-		});
-
-		// GNB 하위메뉴
-		$(document).on('mouseenter','.common_header .maintabs li',function(e){
-			if($(this).find('> ul').length > 0){
-				$(this).addClass('on');
-			}
-			$(this).find('> ul').show();
-			$(this).siblings('li').find('> ul').hide();
-		});
-
-		// GNB 하위메뉴
-		$(document).on('mouseenter','.common_header .maintabs li',function(e){
-			if($(this).find('> ul').length > 0){
-				$(this).addClass('on');
-			}
-			$(this).find('> ul').show();
-			$(this).siblings('li').find('> ul').hide();
-		});
-		
-		// GNB 더보기
-		$(document).on('click','.more_category .btn_more_cate',function(e){
-			$(this).parent('.more_category').toggleClass('on');
-			$(this).parent('.more_category').find('.cate_list').toggle();
-			return false;
-		});
-
-		// GNB - 슬라이드 > 브랜드_GNB
-		var brand_gnb_slide = new Swiper('#header .gnb .brand_list', {
-			observer: true,
-			observeParents: true,
-			centeredSlides: false,
-			slidesPerView: 'auto',
-			freeMode:true,
-		});
-
-		//통합검색 - 슬라이드 > 지금 고객님들이 많이 보고 있어요
-		var realtimeItemSwiper = new Swiper('.common_search .realtime_slider .swiper-container', {
-			observer: true,
-			observeParents: true,
-			slidesPerView: 5,
-			spaceBetween: 20,
-			autoplay: {
-				delay: 2500,
-				disableOnInteraction:false,
-			},
-			navigation: {
-				nextEl: '.common_search .realtime_slider .swiper-button-next',
-				prevEl: '.common_search .realtime_slider .swiper-button-prev',
-			},
-			pagination: {
-				el: '.common_search .realtime_slider .swiper-pagination',
-				clickable: true,
-			},
-		});
-
-// 		// 전체 카테고리 조회
-// 		fnGetAllCategory();
-// 		// 검색엔진 카테고리 조회
- 		fnGetSearchEngineAllCategory();
-		
-		// GNB탭 > 브랜드 생성
-		fnCreateGnbBrandGroup();
-
-		// 띠배너 조회
-		fnCreateTopBanner();
-
-		// 검색키워드 조회
-		fnCreateSearchArea();
-	});
-/*]]>*/
-</script>
-
-</header>
-
+<!DOCTYPE html>
+<html lang="ko"
+	  xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : GnbWeb.html
+ * @desc    : GNB
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.01.28   gagamel     최초 작성
+ *******************************************************************************
+ -->
+<header id="header" th:fragment="gnb">
+
+	<!-- head start -->
+	<div class="common_header main_header">
+		<!-- 프로모션 띠 배너 등록 시 노출 -->
+ 		<div class="hd_top_banner" id="divTopbanner">
+<!-- 			<div class="bnrtype_open" style="background-color:#496ac9;">-->
+<!-- 				<a href="" target="">-->
+<!-- 					<img src="/images/pc/thumb/tmp_top_banner2.jpg" alt="">-->
+<!-- 					<div class="open_bnr_area">-->
+<!-- 						<img src="/images/pc/thumb/tmp_top_banner2_open.jpg" alt=""/>-->
+<!-- 					</div>-->
+<!-- 				</a>-->
+<!-- 				<button class="btn_toggle_bnr"><span>열기</span></button>-->
+<!-- 			</div>-->
+<!-- 			<div class="bnrtype_img" style="background-color:#57799d;">-->
+<!-- 				<a href="" target="">-->
+<!-- 					<img src="/images/pc/thumb/tmp_top_banner1.jpg" alt=""/>-->
+<!-- 				</a>-->
+<!-- 			</div>-->
+<!-- 			<div class="bnrtype_text" style="background-color:#fd4801;">-->
+<!-- 				<a href="" target="">-->
+<!-- 					<div style="color:#fff; font-size:20px; font-weight:300;">-->
+<!-- 						<span style="font-weight:500">APP</span> 수신동의 하면 <span style="font-weight:500">1</span>만 포인트 증정!-->
+<!-- 					</div>-->
+<!-- 				</a>-->
+<!-- 			</div>-->
+<!-- 			<div class="close_bnr_area">-->
+<!-- 				<form class="form_wrap">-->
+<!-- 					<div class="form_field">-->
+<!-- 						<input id="chk-cookie" type="checkbox"><label for="chk-cookie"><span>오늘 하루 보지 않기</span></label>-->
+<!-- 					</div>-->
+<!-- 				</form>-->
+<!-- 				<button id="btn_close_bnr" class="btn_close"><span>닫기</span></button>-->
+<!-- 			</div>-->
+ 		</div>
+		<!-- //프로모션 띠 배너 등록 시 노출 -->
+
+		<div class="area">
+			<div class="logo">
+				<a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MAIN);">
+					<h1>
+						<i class="ico ico_logo"></i>
+						<em class="blind">STYLE24</em>
+					</h1>
+				</a>
+			</div>
+			<div class="util_group">
+				<span th:if="${sessionInfo == null}"><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_LOGIN);" title="로그인 바로가기">로그인</a></span>
+				<span th:if="${sessionInfo != null}"><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_LOGOUT);" title="로그아웃">로그아웃</a></span>
+				<span th:if="${sessionInfo == null}"><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_CUSTOMER_JOIN_TYPE);" title="회원가입 바로가기">회원가입</a></span>
+				<span><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE);" title="마이페이지 바로가기">마이페이지</a></span>
+			</div>
+		</div>
+
+		<div class="gnb">
+			<!-- nav -->
+			<div class="nav">
+				<ul class="bundle btn_home">
+					<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MAIN);" class="">홈</a></li>
+				</ul>
+
+				<ul class="bundle">
+					<li class="has_depth">
+						<a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_ALL_BRAND);">브랜드</a>
+						<!-- 브랜드_depth -->
+						<div class="depth_menu brand">
+							<div class="head_category">
+								<div class="tit">
+									<p>브랜드</p>
+									<a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_ALL_BRAND);" class="more">전체보기</a>
+								</div>
+								<div class="menu" id="divGnbBrandGrp">
+								</div>
+							</div>
+						</div>
+					</li>
+				</ul>
+				<ul class="bundle" id="divGnbTab">
+				</ul>
+			</div>
+			<!-- // nav -->
+
+			<div class="more_category">
+				<a href="" class="btn_more_cate">더보기</a>
+				<div class="cate_list">
+					<ul id="ulGnbTab">
+					</ul>
+				</div>
+			</div>
+
+			<!-- search -->
+			<div class="search">
+				<!-- 프로모션 문구 노출 검색용-->
+				<div class="area" id="searchArea">
+<!--					<p class="promotion_search">모이몰론, 남들보다 빠르게! 신상 check</p>-->
+<!--					<button type="button" class="btn_sch_promotion" id="btnGnbSearch" onclick="cfnSearchLayer();"><i class="ico ico_search"><em>프로모션 검색 바로가기</em></i></button>-->
+				</div>
+				<!-- //프로모션 문구 노출 검색용-->
+				<!-- 통합검색 -->
+				<button type="button" class="btn_open_search" id="searchBtn"><i class="ico ico_search"><em>통합검색</em></i></button>
+				<a href="#" class="btn_ico btn_cart" title="장바구니 바로가기"><i class="ico ico_bag"></i><span class="circle_count">99+</span></a>
+				<!-- //통합검색 -->
+			</div>
+			<!-- //search -->
+		</div>
+		<div class="black_screen"></div>
+	</div>
+	
+<script th:inline="javascript">
+/*<![CDATA[*/
+	// 전체카테고리 조회
+// 	let allCate;
+// 	let fnGetAllCategory = function() {
+// 		$.getJSON('/display/all/cate/list'
+// 			, function(result, status) {
+// 				if (status == 'success') {
+// 					allCate = result;
+					
+// 					// GNB탭 > 브랜드 생성
+// 					fnCreateGnbBrandGroup();
+// 				}
+// 		});
+// 	}
+
+// 검색엔진 전체카테고리 조회
+	let searchEngineAllCate;
+	let fnGetSearchEngineAllCategory = function() {
+		$.getJSON('/display/searchengine/all/cate/list'
+			, function(result, status) {
+				if (result.length > 0) {
+					searchEngineAllCate = result;
+					// GNB탭 > 브랜드 생성
+					// fnCreateGnbBrandGroup();
+					fnCreateGnbTab();
+				}
+		});
+	}
+	var bannerCloseYn = 'Y';
+	
+	// GNB탭 > 카테고리
+	let fnGetGnbCategory = function(cate1) {
+		let tag = '';
+
+		if (cate1 != null) {
+			tag += '<li class="has_depth">\n'; //depth_menu 있을 시 has_depth 클래스 추가
+			tag += '	<a href="javascript:void(0);" onclick="cfnGoToCategoryMain(\'' + cate1.cateGb + '\',' + cate1.cate1No + ');">' + cate1.cate1Nm + '</a>\n';
+			tag += '	<div class="depth_menu category">\n';
+			tag += '		<div class="head_category">\n';
+			tag += '			<div class="tit">\n';
+			tag += '				<p>' + cate1.cate1Nm + '</p>\n';
+			tag += '				<a href="javascript:void(0);" onclick="cfnGoToGoodsList(0,\'' + cate1.cateGb + '\',' + cate1.cate1No + ');" class="more">전체보기</a>\n';
+			tag += '			</div>\n';
+			if (cate1.leafYn == 'N' && cate1.cate2List.length > 0) {
+				tag += '			<div class="menu">\n';
+				tag += '				<ul class="maintabs">\n';
+				$.each(cate1.cate2List, function(idx2, cate2) {
+					tag += '					<li>\n';
+					tag += '						<a href="javascript:void(0);" onclick="cfnGoToGoodsList(0,\'' + cate2.cateGb + '\',' + cate2.cate1No + ',' + cate2.cate2No + ');">' + cate2.cate2Nm + '</a>\n';
+					if (cate2.leafYn == 'N' && cate2.cate3List != null && cate2.cate3List.length > 0) {
+						tag += '						<ul class="box_depth2">\n';
+						$.each(cate2.cate3List, function(idx3, cate3) {
+							tag += '							<li>\n';
+							tag += '								<a href="javascript:void(0);" onclick="cfnGoToGoodsList(0,\'' + cate3.cateGb + '\',' + cate3.cate1No + ',' + cate3.cate2No + ',' + cate3.cate3No + ');">' + cate3.cate3Nm + '</a>\n';
+							if (cate3.leafYn == 'N' && cate3.cate4List != null && cate3.cate4List.length > 0) {
+								tag += '								<ul class="box_depth3">\n';
+								$.each(cate3.cate4List, function(idx4, cate4) {
+									tag += '									<li><a href="javascript:void(0);" onclick="cfnGoToGoodsList(0,\'' + cate4.cateGb + '\',' + cate4.cate1No + ',' + cate4.cate2No + ',' + cate4.cate3No + ',' + cate4.cate4No + ');">' + cate4.cate4Nm + '</a></li>\n';
+								});
+								tag += '								</ul>\n';
+							}
+							tag += '							</li>\n';
+						});
+						tag += '						</ul>\n';
+					}
+					tag += '					</li>\n';
+				});
+				tag += '				</ul>\n';
+				tag += '			</div>\n';
+				tag += '		</div>\n';
+				tag += '	<div class="head_banner" id="id'+cate1.cate1No+'">\n';
+				tag += '	</div>';
+				tag += '	</div>\n';
+			}
+			tag += '</li>\n';
+		}
+		return tag;
+	}
+
+	let fnGetGnbBanner = function (cateNo){
+		let actionUrl = '/display/gnb/tab/banner/list?cateNo='+cateNo;
+		let tag2 = '';
+		$.getJSON(actionUrl
+		, function(result, status){
+			var bannerImgUrl = _imgUrl; //[[${@environment.getProperty('domain.image')}]];
+			var planninImgUrl = _uploadImageUrl; //[[${@environment.getProperty('upload.image.view')}]];
+			if(result.length>0){
+				tag2 += '		<div class="tit">\n';
+				if(!gagajf.isNull(result[0].gnbTabTitle)){
+					tag2 += '			<p>'+result[0].gnbTabTitle+'</p>\n';
+				}
+				tag2 += '		</div>\n';
+				tag2 += '		<div class="list">\n';
+				tag2 += '			<ul class="clear event_con">\n';
+				$.each(result, function (idx, item){
+					tag2 += '				<li>\n';
+					tag2 += '					<a href="javascript:void(0);" onclick="cfnGoToPage(\''+item.strVar1+'\')">\n';
+					if(item.bannerGb=='ADMIN'){
+						tag2 += '						<div class="ev_img"><img src="'+bannerImgUrl+''+item.imgPath1+'" alt=""></div>\n';
+					}else{
+						tag2 += '						<div class="ev_img"><img src="'+planninImgUrl+''+item.imgPath1+'" alt=""></div>\n';
+					}
+
+					tag2 += '						<div class="txt">\n';
+					tag2 += '							<p class="tit">'+item.strTitle1+'</p>\n';
+					// tag2 += '							<p class="tit">'+item.strTitle2+'</p>\n';
+					tag2 += '						</div>\n';
+					tag2 += '					</a>\n';
+					tag2 += '				</li>\n';
+				});
+				tag2 += '			</ul>\n';
+				tag2 += '		</div>\n';
+			}
+			$('#id'+cateNo).append(tag2);
+			return tag2;
+		});
+
+	}
+
+	// GNB탭 생성
+	let fnCreateGnbTab = function() {
+		$.getJSON('/display/gnb/tab/list'
+			, function(result, status) {
+				if (status == 'success') {
+					if (result.length > 0) {
+						$('#divGnbTab').html('');
+						$('#ulGnbTab').html('');
+						
+						// let allCate = [[${allCateList}]];
+						let allCate = searchEngineAllCate;
+						$.each(result, function(idx, item) {
+							if (item.contentsType == 'C') { // 컨텐츠유형:카테고리, 아울렛
+								$.each(allCate, function(allCateIdx, allCateItem) {
+									if (item.cate1No == allCateItem.cate1No) {
+										let gnbCate = fnGetGnbCategory(allCateItem);
+										fnGetGnbBanner(item.cate1No);
+										$('#divGnbTab').append(gnbCate);
+										$('#ulGnbTab').append(gnbCate);
+									}
+								});
+							} else if(item.contentsType == 'O'){
+								let outletCate = fnGetOutletCategory(item.gtabNm);
+								$('#divGnbTab').append(outletCate);
+								$('#ulGnbTab').append(outletCate);
+								// $('#divGnbTab').append('<li><a href="' + item.linkUrl + '">' + item.gtabNm + '</a></li>');
+								// $('#ulGnbTab').append('<li><a href="' + item.linkUrl + '">' + item.gtabNm + '</a></li>');
+								fnGetOutletLeafCategory(outletCate);
+								fnGetGnbBanner('3000');
+							} else if (item.contentsType == 'L') { // 컨텐츠유형:링크
+								$('#divGnbTab').append('<li><a href="' + item.linkUrl + '">' + item.gtabNm + '</a></li>');
+								$('#ulGnbTab').append('<li><a href="' + item.linkUrl + '">' + item.gtabNm + '</a></li>');
+							}
+						});
+						
+						fnui_gnbOvers();
+					}
+				}
+			});
+	}
+
+	var fnGetOutletCategory = function (outletNm){
+		let formalGb = 'G009_20';
+		var tag = '';
+		tag += '<li class="has_depth">\n'; //depth_menu 있을 시 has_depth 클래스 추가
+		tag += '	<a href="javascript:void(0);" onclick="cfnGoToOutletMain(\'G032_103\');">' + outletNm + '</a>\n';
+		tag += '	<div class="depth_menu category">\n';
+		tag += '		<div class="head_category">\n';
+		tag += '			<div class="tit">\n';
+		tag += '				<p>' + outletNm + '</p>\n';
+		tag += '				<a href="javascript:void(0);" onclick="cfnGoToOutletMain(\'G032_103\');" class="more">전체보기</a>\n';
+		tag += '			</div>\n';
+		let allCate = [[${allCateList}]];
+		tag += '			<div class="menu">\n';
+		tag += '				<ul class="maintabs" >\n';
+		$.each(allCate, function(allCateIdx, allCateItem) {
+			tag += '					<li id="cate'+allCateItem.cate1No+'">\n';
+			tag += '						<a href="javascript:void(0);" onclick="cfnGoToGoodsList(0,\'' + allCateItem.cateGb + '\',' + allCateItem.cate1No + ',\'\',\'\',\'\',\'\',\'' + formalGb + '\');">' + allCateItem.cate1Nm + '</a>\n';
+			tag += '					</li>\n';
+		});
+		tag += '				</ul>\n';
+		tag += '			</div>\n';
+		tag += '		</div>\n';
+		tag += '	<div class="head_banner" id="id3000">\n';
+		tag += '	</div>';
+		tag += '	</div>\n';
+		tag += '</li>\n';
+		return tag;
+	}
+
+	var fnGetOutletLeafCategory = function (cate1List){
+		let formalGb = 'G009_20';
+		let actionUrl = '/display/outlet/cate/list?cate1No=&formalGb='+formalGb;
+		$.getJSON(actionUrl , function(result, status) {
+			if (result.length > 0) {
+				let allCate = [[${allCateList}]];
+				$.each(result, function(idx, item) {
+					$.each(allCate, function(allCateIdx, allCateItem) {
+						if (item.cate1No == allCateItem.cate1No) {
+							let gnbCate = fnGetOutletLeafData(idx,item);
+							$('#cate'+allCateItem.cate1No).append(gnbCate);
+						}
+					});
+				});
+			}
+		});
+	}
+
+	var fnGetOutletLeafData= function (idx, cate1){
+		let tag2 = '';
+		let formalGb = 'G009_20';
+		if (cate1 != null) {
+			if (cate1.leafYn == 'N' && cate1.cate2List.length > 0) {
+				tag2 += '<ul class="box_depth2">';
+				$.each(cate1.cate2List, function(idx2, cate2) {
+					tag2 += '					<li>\n';
+					tag2 += '						<a href="javascript:void(0);" onclick="cfnGoToGoodsList(0,\'' + cate2.cateGb + '\',' + cate2.cate1No + ',' + cate2.cate2No + ',\'\',\'\',\'\',\'' + formalGb + '\');">' + cate2.cate2Nm + '</a>\n';
+					if (cate2.leafYn == 'N' && cate2.cate3List != null && cate2.cate3List.length > 0) {
+						tag2 += '						<ul class="box_depth2">\n';
+						$.each(cate2.cate3List, function(idx3, cate3) {
+							tag2 += '							<li>\n';
+							tag2 += '								<a href="javascript:void(0);" onclick="cfnGoToGoodsList(0,\'' + cate3.cateGb + '\',' + cate3.cate1No + ',' + cate3.cate2No + ',' + cate3.cate3No + ',\'\',\'\',\'' + formalGb + '\');">' + cate3.cate3Nm + '</a>\n';
+							if (cate3.leafYn == 'N' && cate3.cate4List != null && cate3.cate4List.length > 0) {
+								tag2 += '								<ul class="box_depth3">\n';
+								$.each(cate3.cate4List, function(idx4, cate4) {
+									tag2 += '									<li><a href="javascript:void(0);" onclick="cfnGoToGoodsList(0,\'' + cate4.cateGb + '\',' + cate4.cate1No + ',' + cate4.cate2No + ',' + cate4.cate3No + ',' + cate4.cate4No + ',\'\',\'' + formalGb + '\');">' + cate4.cate4Nm + '</a></li>\n';
+								});
+								tag2 += '								</ul>\n';
+							}
+							tag2 += '							</li>\n';
+						});
+						tag2 += '						</ul>\n';
+					}
+					tag2 += '					</li>\n';
+				});
+				tag2 += '</ul>';
+			}
+		}
+		return tag2;
+	}
+
+	// GNB탭 > 브랜드 생성
+	let fnCreateGnbBrandGroup = function() {
+		$.getJSON('/display/gnb/brand/group/list'
+			, function(result, status) {
+				if (status == 'success') {
+					if (result.length > 0) {
+						$('#divGnbBrandGrp').html('');
+						let tag = '';
+						let prevTitle = '';
+						$.each(result, function (idx, item) {
+							if (prevTitle != item.title) {
+								if (idx > 0) {
+									tag += '		</ul>\n';
+									tag += '	</div>\n';
+									tag += '</div>\n';
+								}
+								tag += '<div class="row">\n';
+								tag += '	<p>' + item.title + '</p>\n';
+								tag += '	<div class="brand_list swiper-container">\n';
+								tag += '		<ul class="clear swiper-wrapper">\n';
+							}
+							tag += '			<li class="swiper-slide">\n';
+							tag += '				<a href="javascript:void(0);" onclick="cfnGoToBrandMain(' + item.brandGroupNo + ');">\n';
+							tag += '					<img src="' + _uploadDefaultUrl + item.logoFileNm + '" alt=""/>\n';
+							tag += '					<span><em>' + item.brandGroupNm + '</em></span>\n';
+							tag += '				</a>\n';
+							tag += '			</li>\n';
+
+							prevTitle = item.title;
+						});
+						tag += '		</ul>\n';
+						tag += '	</div>\n';
+						tag += '</div>\n';
+						$('#divGnbBrandGrp').html(tag);
+					}
+					// fnCreateGnbTab();
+				}
+		});
+	}
+
+	// $('#btnGnbSearch').on('click', function() {
+	// 	//검색창 호출
+	// 	$(".common_search").addClass('active');
+	// });
+
+	// 띠배너 닫기(쿠키설정)
+	let fnGnbTobBannerClose = function(unexpDays){
+		let chkNoShow = $("#chk-cookie").is(":checked");
+		if(chkNoShow){
+			let todayDate = new Date();
+			todayDate = new Date(parseInt(todayDate.getTime() / 86400000) * 86400000);	// 당일 자정처리
+			todayDate.setDate(todayDate.getDate() + unexpDays);
+			document.cookie = "gnbtop_banner=Y; path=/; expires=" + todayDate.toGMTString() + ";";
+		}
+	}
+
+	// 띠배너 조회
+	let fnCreateTopBanner = function (){
+		var url = '/display/gnb/topbanner/list?contentsLoc=SGNB001';
+
+		$.getJSON(url, function (result, status){
+			if(status=='success'){
+				if(result.length>0){
+					let bannerYn = "N";
+					var bannerImgUrl = _imgUrl; // [[${@environment.getProperty('domain.image')}]];
+					$.each(result, function (idx, item) {
+						$('#divTopbanner').html('');
+						if(document.cookie.match('(^|;)?gnbtop_banner=([^;]*)(;|$)')==null){
+							bannerYn = "Y";
+							let tag = '';
+
+							if(item.contentsType == 'OPEN'){
+								tag +='<div class="bnrtype_open" style="background-color:#'+item.strVar5.replaceAll('#','')+';">';
+								if(item.strVar7=='IMG'){
+									tag +=' 	<a href="'+item.strVar1+'" target="">';
+									tag +=' 		<img src="'+bannerImgUrl+''+item.imgPath1+'" alt="">';
+									tag +=' 		<div class="open_bnr_area">';
+									tag +=' 			<img src="'+bannerImgUrl+''+item.imgPath2+'" alt=""/>';
+									tag +=' 		</div>';
+									tag +=' 	</a>';
+									tag +=' 	<button class="btn_toggle_bnr">열기</button>';
+								}else{
+									tag +=' 	<a href="'+item.strVar1+'" target="">';
+									tag +=' 		<img src="'+bannerImgUrl+''+item.imgPath1+'" alt="">';
+									tag +=' 		<div class="open_bnr_area">'+ item.html.replace(/(&lt;)/g, '<').replace(/(&gt;)/g, '>').replace(/(&quot;)/g, '"') +'</div>';
+// 									tag +=' 		<div class="open_bnr_area">'+ item.html +'</div>';
+									tag +=' 	</a>';
+									tag +=' 	<button class="btn_toggle_bnr">열기</button>';
+								}
+								tag +='</div>';
+								// if(item.strVar8=='Y'){
+									tag+='<div class="close_bnr_area">';
+									tag+=' 	<form class="form_wrap">';
+									tag+=' 		<div class="form_field">';
+									tag+=' 			<input id="chk-cookie" type="checkbox"><label for="chk-cookie"><span>오늘 하루 보지 않기</span></label>';
+									tag+=' 		</div>';
+									tag+=' 	</form>';
+									tag+=' 	<button id="btn_close_bnr" class="btn_close" onclick="fnGnbTobBannerClose(1);"><span>닫기</span></button>';
+									tag+='</div>';
+								// }
+								if($(".open_bnr_area").text() == '열기'){
+									$('.close_bnr_area').show();
+								}else{
+									if(item.strVar8=='Y'){
+										$('.close_bnr_area').show();
+										bannerCloseYn = 'Y';
+									}else{
+										$('.close_bnr_area').hide();
+										bannerCloseYn = 'N';
+									}
+								}
+							}else if(item.contentsType == 'IMG'){
+								tag+='<div class="bnrtype_img" style="background-color:#'+item.strVar5.replaceAll('#','')+';">';
+								tag+=' 	<a href="'+item.strVar1+'" target="">';
+								tag+=' 		<img src="'+bannerImgUrl+''+item.imgPath1+'" alt=""/>';
+								tag+=' 	</a>';
+								tag+='</div>';
+								tag+='<div class="close_bnr_area">';
+								tag+=' 	<form class="form_wrap">';
+								tag+=' 		<div class="form_field">';
+								tag+=' 			<input id="chk-cookie" type="checkbox"><label for="chk-cookie"><span>오늘 하루 보지 않기</span></label>';
+								tag+=' 		</div>';
+								tag+=' 	</form>';
+								tag+=' 	<button id="btn_close_bnr" class="btn_close" onclick="fnGnbTobBannerClose(1);"><span>닫기</span></button>';
+								tag+='</div>';
+							}else{
+								tag+='<div class="bnrtype_text" style="background-color:#fd4801;">';
+								tag+=' 	<a href="'+item.strVar1+'" target="">';
+								tag+=' 		<div style="color:#fff; font-size:20px; font-weight:300;">';
+								tag+=' 			<span style="font-weight:500">'+item.strTitle1+'</span>';
+								tag+=' 		</div>';
+								tag+=' 	</a>';
+								tag+='</div>';
+								tag+='<div class="close_bnr_area">';
+								tag+=' 	<form class="form_wrap">';
+								tag+=' 		<div class="form_field">';
+								tag+=' 			<input id="chk-cookie" type="checkbox"><label for="chk-cookie"><span>오늘 하루 보지 않기</span></label>';
+								tag+=' 		</div>';
+								tag+=' 	</form>';
+								tag+=' 	<button id="btn_close_bnr" class="btn_close" onclick="fnGnbTobBannerClose(1);"><span>닫기</span></button>';
+								tag+='</div>';
+							}
+							// tag+='<div class="close_bnr_area">';
+							// tag+=' 	<form class="form_wrap">';
+							// tag+=' 		<div class="form_field">';
+							// tag+=' 			<input id="chk-cookie" type="checkbox"><label for="chk-cookie"><span>오늘 하루 보지 않기</span></label>';
+							// tag+=' 		</div>';
+							// tag+=' 	</form>';
+							// if(item.contentsType != 'OPEN' || (item.contentsType == 'OPEN' && item.strVar8=='Y')){
+							// 	tag+=' 	<button id="btn_close_bnr" class="btn_close" onclick="fnGnbTobBannerClose(1);"><span>닫기</span></button>';
+							// }
+							// tag+='</div>';
+
+							if(bannerYn=="Y"){
+								$('#divTopbanner').html(tag);
+							}
+
+							// if(item.contentsType == 'OPEN'){
+							// 	if(item.strVar7!='IMG'){
+							// 		var countdown = document.getElementById("testOpen");
+							// 		var vvv = ""+item.html+"";
+							// 		countdown.innerHTML = vvv;
+							// 	}
+							// }
+						}
+					});
+				}
+			}
+		});
+	}
+
+	// 검색키워드 조회
+	var fnCreateSearchArea = function (){
+		var url = '/display/search/keyword/list';
+		let html = '';
+		$.getJSON(url, function (result, status){
+			if(result.length>0){
+				$.each(result, function (idx, item) {
+					html += '<a href="javascript:void(0);" onclick="cfnSearchLayer();"><p class="promotion_search">'+item.keyword+'</p></a>\n';
+					// html += '<button type="button" class="btn_sch_promotion" id="btnGnbSearch" onclick="cfnSearchLayer();"><i class="ico ico_search"><em>프로모션 검색 바로가기</em></i></button>';
+					html += '<button type="button" class="btn_sch_promotion" id="btnGnbSearch" onclick="fnGotoLink(\''+item.linkUrl+'\');"><i class="ico ico_search"><em>프로모션 검색 바로가기</em></i></button>';
+				});
+			}else{
+				html += '<a href="javascript:void(0);" onclick="cfnSearchLayer();"><p class="promotion_search"></p></a>\n';
+				html += '<button type="button" class="btn_sch_promotion" id="btnGnbSearch" onclick="cfnSearchLayer();"><i class="ico ico_search"><em>프로모션 검색 바로가기</em></i></button>\n';
+			}
+			$("#searchArea").append(html);
+		});
+	}
+
+	// 검색 키워드 링크 연결
+	let fnGotoLink = function (linkUrl){
+		document.location.href = linkUrl;
+	}
+	
+	// gnb overs show/hide
+	function fnui_gnbOvers() {
+		var categoryWidth = $('#divGnbTab').outerWidth();
+		var bdList_index = $('#divGnbTab > li').get();
+			bdList_index.reverse();
+		var bdList_legth = bdList_index.length;
+		var mrList_index = $('.more_category .cate_list ul > li').get();
+		var mrList_legth = mrList_index.length;
+			mrList_index.reverse();
+
+		for ( var i = 0; i < bdList_legth; i++ ) {
+			if (categoryWidth > 994 ){
+				bdList_index[i].style.display="none";
+				mrList_index[i].style.display="block";
+				return false;
+			}else if(categoryWidth < 993 ){
+				$('.more_category').css('display', 'none');
+				return false;
+			}
+			categoryWidth = $('#divGnbTab').outerWidth();
+		}
+	}
+	
+	$(document).ready(function() {
+		//TOP BANNER close
+		$(document).on('click','#btn_close_bnr',function(e){
+			$('body').removeClass('lock');
+			$('.bnrtype_open').removeClass('fixed');
+			$('.hd_top_banner').remove();
+		});
+		
+		//TOP BANNER OPEN TYPE		
+		$(document).on('click','.bnrtype_open .btn_toggle_bnr',function(e){
+			$('body').toggleClass('lock');
+			$('.bnrtype_open').toggleClass('fixed');
+			$(this).text($(this).text() == '열기' ? '닫기' : '열기');
+			// $(this).text() == '열기' ? $('.close_bnr_area').show() : $('.close_bnr_area').hide();
+			if(bannerCloseYn == 'N'){
+				if($(this).text() == '열기'){
+					$('.close_bnr_area').show();
+				}else{
+					$('.close_bnr_area').hide();
+				}
+			}else{
+				$('.close_bnr_area').show();
+			}
+		});
+		
+		// GNB toggle
+		$(document).on('mouseenter','.common_header .gnb .nav > ul > li',function(e){
+			$(this).parents('.nav').find('.bundle > li > a').removeClass('active');
+			$(this).children('a').addClass('active');
+			if(!$(this).hasClass('has_depth')){
+				$('.black_screen').hide();
+				$('.common_header .gnb .depth_menu, .box_depth2, .box_depth3, .box_depth4').hide();
+			} else if($(this).hasClass('has_depth')){
+				$('.black_screen').show();
+				$(this).find('.depth_menu').show();
+				$(this).parents('ul').siblings('ul').find('li.has_depth .depth_menu').hide();
+				$(this).siblings('li.has_depth').find('.depth_menu').hide();
+			}
+		}).on('mouseleave','.common_header .gnb',function(e){
+			$(this).find('.bundle > li > a').removeClass('active');
+			$('.black_screen').hide();
+			$('.common_header .gnb .depth_menu, .box_depth2, .box_depth3, .box_depth4').hide();
+		});
+
+		// GNB 하위메뉴
+		$(document).on('mouseenter','.common_header .maintabs li',function(e){
+			if($(this).find('> ul').length > 0){
+				$(this).addClass('on');
+			}
+			$(this).find('> ul').show();
+			$(this).siblings('li').find('> ul').hide();
+		});
+
+		// GNB 하위메뉴
+		$(document).on('mouseenter','.common_header .maintabs li',function(e){
+			if($(this).find('> ul').length > 0){
+				$(this).addClass('on');
+			}
+			$(this).find('> ul').show();
+			$(this).siblings('li').find('> ul').hide();
+		});
+		
+		// GNB 더보기
+		$(document).on('click','.more_category .btn_more_cate',function(e){
+			$(this).parent('.more_category').toggleClass('on');
+			$(this).parent('.more_category').find('.cate_list').toggle();
+			return false;
+		});
+
+		// GNB - 슬라이드 > 브랜드_GNB
+		var brand_gnb_slide = new Swiper('#header .gnb .brand_list', {
+			observer: true,
+			observeParents: true,
+			centeredSlides: false,
+			slidesPerView: 'auto',
+			freeMode:true,
+		});
+
+		//통합검색 - 슬라이드 > 지금 고객님들이 많이 보고 있어요
+		var realtimeItemSwiper = new Swiper('.common_search .realtime_slider .swiper-container', {
+			observer: true,
+			observeParents: true,
+			slidesPerView: 5,
+			spaceBetween: 20,
+			autoplay: {
+				delay: 2500,
+				disableOnInteraction:false,
+			},
+			navigation: {
+				nextEl: '.common_search .realtime_slider .swiper-button-next',
+				prevEl: '.common_search .realtime_slider .swiper-button-prev',
+			},
+			pagination: {
+				el: '.common_search .realtime_slider .swiper-pagination',
+				clickable: true,
+			},
+		});
+
+// 		// 전체 카테고리 조회
+// 		fnGetAllCategory();
+// 		// 검색엔진 카테고리 조회
+ 		fnGetSearchEngineAllCategory();
+		
+		// GNB탭 > 브랜드 생성
+		fnCreateGnbBrandGroup();
+
+		// 띠배너 조회
+		fnCreateTopBanner();
+
+		// 검색키워드 조회
+		fnCreateSearchArea();
+	});
+/*]]>*/
+</script>
+
+</header>
+
 </html>