ソースを参照

Merge remote-tracking branch 'origin/develop' into jsh77b

tsit14 4 年 前
コミット
a4833b38d9
31 ファイル変更644 行追加277 行削除
  1. 10 0
      src/main/java/com/style24/front/biz/dao/TsfDisplayDao.java
  2. 48 26
      src/main/java/com/style24/front/biz/service/TsfDisplayService.java
  3. 0 2
      src/main/java/com/style24/front/biz/service/TsfOrderService.java
  4. 6 2
      src/main/java/com/style24/front/biz/web/TsfAppController.java
  5. 1 7
      src/main/java/com/style24/front/biz/web/TsfCustomerController.java
  6. 4 1
      src/main/java/com/style24/front/biz/web/TsfDisplayController.java
  7. 5 0
      src/main/java/com/style24/front/biz/web/TsfMypageController.java
  8. 0 9
      src/main/java/com/style24/front/biz/web/TsfPgController.java
  9. 10 10
      src/main/java/com/style24/front/support/security/TsfAuthenticationProvider.java
  10. 14 3
      src/main/java/com/style24/front/support/security/handler/TsfLoginFailureHandler.java
  11. 1 1
      src/main/java/com/style24/persistence/mybatis/shop/TsfCart.xml
  12. 11 0
      src/main/java/com/style24/persistence/mybatis/shop/TsfDisplay.xml
  13. 3 3
      src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml
  14. BIN
      src/main/webapp/WEB-INF/lib/Istyle.jar
  15. 4 4
      src/main/webapp/WEB-INF/views/mob/display/BrandMainFormMob.html
  16. 320 68
      src/main/webapp/WEB-INF/views/mob/display/CategoryGoodsListFormMob.html
  17. 4 4
      src/main/webapp/WEB-INF/views/mob/display/MallMainFormMob.html
  18. 2 2
      src/main/webapp/WEB-INF/views/mob/display/OutletMainFormMob.html
  19. 17 16
      src/main/webapp/WEB-INF/views/mob/display/SearchGoodsListFormMob.html
  20. 21 4
      src/main/webapp/WEB-INF/views/mob/planning/PlanningMainFormMob.html
  21. 4 4
      src/main/webapp/WEB-INF/views/web/display/BrandMainFormWeb.html
  22. 49 23
      src/main/webapp/WEB-INF/views/web/display/CategoryGoodsListFormWeb.html
  23. 9 5
      src/main/webapp/WEB-INF/views/web/display/CategoryMainFormWeb.html
  24. 5 5
      src/main/webapp/WEB-INF/views/web/display/MallMainFormWeb.html
  25. 2 2
      src/main/webapp/WEB-INF/views/web/display/OutletMainFormWeb.html
  26. 24 21
      src/main/webapp/WEB-INF/views/web/display/SearchGoodsListFormWeb.html
  27. 21 6
      src/main/webapp/WEB-INF/views/web/planning/PlanningMainFormWeb.html
  28. 3 3
      src/main/webapp/biz/goods.js
  29. 3 3
      src/main/webapp/biz/search.js
  30. 10 10
      src/main/webapp/ux/mo/css/common_m.css
  31. 33 33
      src/main/webapp/ux/pc/css/font.css

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

@@ -246,4 +246,14 @@ public interface TsfDisplayDao {
 	 * @since 2021. 7. 2
 	 */
 	Collection<SearchKeyword> getSearchKeywordList(SearchKeyword searchKeyword);
+
+	/**
+	 * 스플래시 이미지 가져오기
+	 * @param siteCd - 사이트코드
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 7. 5
+	 */
+	String getSplashImage();
+
 }

+ 48 - 26
src/main/java/com/style24/front/biz/service/TsfDisplayService.java

@@ -3,6 +3,18 @@ package com.style24.front.biz.service;
 import java.util.ArrayList;
 import java.util.Collection;
 
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.core.env.Environment;
+import org.springframework.stereotype.Service;
+
+import com.style24.core.biz.service.TscEnvsetService;
+import com.style24.core.support.env.TscConstants;
+import com.style24.front.biz.dao.TsfDisplayDao;
+import com.style24.front.biz.dao.TsfGoodsDao;
+import com.style24.front.support.env.TsfConstants;
+import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.BrandGroup;
 import com.style24.persistence.domain.Cate1;
 import com.style24.persistence.domain.Cate2;
@@ -18,23 +30,13 @@ import com.style24.persistence.domain.Login;
 import com.style24.persistence.domain.MainLayout;
 import com.style24.persistence.domain.Popup;
 import com.style24.persistence.domain.SearchKeyword;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.cache.annotation.Cacheable;
-import org.springframework.stereotype.Service;
-
-import com.style24.core.biz.service.TscEnvsetService;
-import com.style24.core.support.env.TscConstants;
-import com.style24.front.biz.dao.TsfDisplayDao;
-import com.style24.front.biz.dao.TsfGoodsDao;
-import com.style24.front.support.env.TsfConstants;
-import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.searchengine.Filter;
 import com.style24.persistence.domain.searchengine.SearchEngine;
 
 import lombok.extern.slf4j.Slf4j;
 
 import com.gagaframework.web.parameter.GagaMap;
+import com.gagaframework.web.util.GagaFileUtil;
 
 /**
  * 전시 Service
@@ -55,6 +57,9 @@ public class TsfDisplayService {
 	@Autowired
 	private TsfGoodsDao goodsDao;
 
+	@Autowired
+	private Environment env;
+
 	/**
 	 * GNB 브랜드그룹 목록
 	 * @param contents - 컨텐츠 정보
@@ -557,15 +562,15 @@ public class TsfDisplayService {
 				data.setBannerList(displayDao.getContentsBannerList(data));
 			}
 			goodsList = (goodsDao.getContentsCategoryGoodsList(tempContents));
-			if("SMM007".equals(data.getContentsLoc())){
+			if ("SMM007".equals(data.getContentsLoc())) {
 				int maxrow = 3;
-				if(goodsList == null || goodsList.size() < 3){
+				if (goodsList == null || goodsList.size() < 3) {
 					Cate4Srch cate = new Cate4Srch();
 					cate.setSiteCd(TscConstants.Site.STYLE24.value());
 					cate.setCateGb(TsfConstants.CateGb.BYITEM.value());
 					cate.setFrontGb(data.getFrontGb());
 					cate.setBrandGroupNo(Integer.parseInt(data.getBrandGroupNo()));
-					cate.setMaxRow(maxrow-goodsList.size());
+					cate.setMaxRow(maxrow - goodsList.size());
 					goodsList.addAll(goodsDao.getContentsCategoryNewGoodsList(cate));
 				}
 			}
@@ -696,15 +701,15 @@ public class TsfDisplayService {
 		String maxPrice = "0";
 		String minPrice = "0";
 		for (Filter filter : filterList) {
-			if(!"".equals(filter.getFilterCd()) && !filter.getFilterCd().equals(null)){
-				if(filter.getFilterGb().equals("PRICE")){
-					if(idx==0){
+			if (!"".equals(filter.getFilterCd()) && !filter.getFilterCd().equals(null)) {
+				if (filter.getFilterGb().equals("PRICE")) {
+					if (idx == 0) {
 						minPrice = filter.getFilterCd();
-					}else{
+					} else {
 						maxPrice = filter.getFilterCd();
 					}
 					idx++;
-				}else{
+				} else {
 					if (filter.getFilterGb().equals(filterGb)) {
 						if ("BENEFIT".equals(filterGb)) {
 							if (!filter.getFilterCd().equals("40")) {
@@ -718,26 +723,26 @@ public class TsfDisplayService {
 			}
 		}
 
-		if(filterGb.equals("PRICE")){
+		if (filterGb.equals("PRICE")) {
 			int sliceVal = (Integer.parseInt(maxPrice) - Integer.parseInt(minPrice)) / 5;
-			int tempPrice = 0 ;
+			int tempPrice = 0;
 			Filter temp = new Filter();
 			Collection<Filter> priceList = new ArrayList<Filter>();
-			for(int i=0; i<6; i++){
+			for (int i = 0; i < 6; i++) {
 				tempPrice = 0;
 				temp = new Filter();
 				temp.setFilterGb("PRICE");
-				if(i==0){
+				if (i == 0) {
 //					tempPrice = (int)Math.floor((Integer.parseInt(minPrice)) / 1000) * 1000 ;
 					tempPrice = (int)Math.floor((Integer.parseInt(minPrice)));
 					temp.setFilterCd(String.valueOf(tempPrice));
 					temp.setFilterNm(String.valueOf(tempPrice));
-				}else if(i==5){
+				} else if (i == 5) {
 					tempPrice = (int)Math.floor((Integer.parseInt(maxPrice)));
 					temp.setFilterCd(String.valueOf(tempPrice));
 					temp.setFilterNm(String.valueOf(tempPrice));
-				}else{
-					tempPrice = (int)Math.floor((Integer.parseInt(minPrice) + sliceVal * i) / 1000) * 1000 ;
+				} else {
+					tempPrice = (int)Math.floor((Integer.parseInt(minPrice) + sliceVal * i) / 1000) * 1000;
 					temp.setFilterCd(String.valueOf(tempPrice));
 					temp.setFilterNm(String.valueOf(tempPrice));
 				}
@@ -854,4 +859,21 @@ public class TsfDisplayService {
 	public Collection<SearchKeyword> getSearchKeywordList(SearchKeyword searchKeyword) {
 		return displayDao.getSearchKeywordList(searchKeyword);
 	}
+
+	/**
+	 * 스플래시 이미지 가져오기
+	 * @param siteCd - 사이트코드
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 7. 5
+	 */
+	@Cacheable(value = "splashimg")
+	public String getSplashImageUrl() {
+		String splashImg = displayDao.getSplashImage();
+		if (StringUtils.isBlank(splashImg)) {
+			return "";
+		}
+		return "http:" + GagaFileUtil.getConcatenationPath(env.getProperty("upload.image.view"), "splashimg", splashImg);
+	}
+
 }

+ 0 - 2
src/main/java/com/style24/front/biz/service/TsfOrderService.java

@@ -1369,8 +1369,6 @@ public class TsfOrderService {
 		sb.append("\t\t\t\t<stockQuantity>").append(stockQty).append("</stockQuantity>\n");
 		sb.append("\t\t\t\t<status>true</status>\n");
 
-		log.info("CHECK size / optCd.length / optCd ::::: {} / {} / {}", size, optCd.length, Arrays.toString(optCd));
-
 		// 옵션 옵션조합정보 색상
 		for(int i = 0 ; i < size ; i++) {
 			sb.append("\t\t\t\t<options>\n");

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

@@ -1,6 +1,5 @@
 package com.style24.front.biz.web;
 
-import com.gagaframework.web.parameter.GagaMap;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -16,12 +15,14 @@ import com.style24.core.biz.service.TscKakaotalkService;
 import com.style24.core.support.env.TscConstants;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.front.biz.service.TsfCustomerService;
+import com.style24.front.biz.service.TsfDisplayService;
 import com.style24.front.support.controller.TsfBaseController;
 import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.Customer;
 
 import lombok.extern.slf4j.Slf4j;
 
+import com.gagaframework.web.parameter.GagaMap;
 import com.gagaframework.web.rest.server.GagaResponse;
 
 /**
@@ -47,6 +48,9 @@ public class TsfAppController extends TsfBaseController {
 	@Autowired
 	private TscKakaotalkService kakaoService;
 
+	@Autowired
+	private TsfDisplayService displayService;
+
 	/**
 	 * 앱 설정 화면
 	 *
@@ -147,7 +151,7 @@ public class TsfAppController extends TsfBaseController {
 	@GetMapping("/splash/image/url")
 	@ResponseBody
 	public String getSplashImageUrl() {
-		return envsetService.getSplashImageUrl(TscConstants.Site.STYLE24.value());
+		return displayService.getSplashImageUrl();
 	}
 
 	/**

+ 1 - 7
src/main/java/com/style24/front/biz/web/TsfCustomerController.java

@@ -5,10 +5,8 @@ import javax.servlet.http.HttpSession;
 
 import com.style24.core.biz.service.TscMailService;
 import com.style24.front.biz.service.TsfCommonService;
-import com.style24.front.biz.service.TsfCouponService;
 import com.style24.persistence.TscPageRequest;
 import com.style24.persistence.domain.Clause;
-import com.style24.persistence.domain.Coupon;
 import com.style24.persistence.domain.SupplyCompany;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,7 +21,6 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
 import com.style24.core.biz.service.TscClauseService;
-import com.style24.core.biz.service.TscKakaotalkService;
 import com.style24.core.support.env.TscConstants;
 import com.style24.core.support.message.TscMessageByLocale;
 import com.style24.front.biz.service.TsfCustomerService;
@@ -59,9 +56,6 @@ public class TsfCustomerController extends TsfBaseController {
 	@Autowired
 	private TscClauseService clauseService;
 
-	@Autowired
-	private TscKakaotalkService kakaotalkService;
-
 	@Autowired
 	private TscMailService mailService;
 
@@ -580,7 +574,7 @@ public class TsfCustomerController extends TsfBaseController {
 
 		GagaMap authInfo = niceCertify.getCertifyCellPhoneResultInfo(customer);
 		if (StringUtils.isNotBlank(customer.getCi())) {
-			log.info("ci ====> {}, sCi ======> {}", customer.getCi(), authInfo.getString("sCi"));
+			//log.info("ci ====> {}, sCi ======> {}", customer.getCi(), authInfo.getString("sCi"));
 			if (!customer.getCi().equals(authInfo.getString("sCi"))) {
 				throw new IllegalStateException("SNS 연계정보와 본인인증 연계정보가 다릅니다.");
 			}

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

@@ -665,7 +665,10 @@ public class TsfDisplayController extends TsfBaseController {
 		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{

+ 5 - 0
src/main/java/com/style24/front/biz/web/TsfMypageController.java

@@ -2204,6 +2204,11 @@ public class TsfMypageController extends TsfBaseController {
 
 		mav.addObject("custNm", customer.getCustNm());
 
+		if (StringUtils.isNotBlank(customer.getSnsType()) && StringUtils.isBlank(customer.getPasswd())) {
+			mav.setViewName("redirect:/mypage/customer/confirm/form");
+			return mav;
+		}
+
 		mav.setViewName(super.getDeviceViewName("mypage/MypageCustSecedeForm"));
 
 		return mav;

+ 0 - 9
src/main/java/com/style24/front/biz/web/TsfPgController.java

@@ -162,15 +162,6 @@ public class TsfPgController extends TsfBaseController {
 		pd.setSite_cd(request.getParameter("site_cd"));
 		pd.setEscw_used(request.getParameter("escw_used") == null ? "" : request.getParameter("escw_used"));
 
-		log.info("CHECK INFO :::::: {}", pd.getGood_mny());
-		log.info("CHECK INFO :::::: {}", pd.getGood_name());
-		log.info("CHECK INFO :::::: {}", pd.getOrdr_idxx());
-		log.info("CHECK INFO :::::: {}", pd.getPay_method());
-		log.info("CHECK INFO :::::: {}", pd.getRet_URL());
-		log.info("CHECK INFO :::::: {}", pd.getSite_cd());
-		log.info("CHECK INFO :::::: {}", pd.getEscw_used());
-
-
 		String responseType = request.getParameter("response_type");
 		if("JSON".equals(responseType) || "XML".equals(responseType)) {
 			pd.setResponse_type(responseType);

+ 10 - 10
src/main/java/com/style24/front/support/security/TsfAuthenticationProvider.java

@@ -101,21 +101,21 @@ public class TsfAuthenticationProvider implements AuthenticationProvider {
 			}
 		}
 
-		// 본인인증이 필요한 회원
-		if (StringUtils.isBlank(loginInfo.getCi())) {
-			TsfSession.setAttribute("custNo", String.valueOf(loginInfo.getCustNo()));
-			throw new TsfNonCertificationAccountException(message.getMessage("LOGN_0009"));
-		}
-
-		if (TscConstants.CustStat.DORMANT.value().equals(loginInfo.getCustStat())) { // 휴면회원
-
+		// 휴면회원
+		if (TscConstants.CustStat.DORMANT.value().equals(loginInfo.getCustStat())) {
 			// 휴면해제를 위한 고객번호 세션저장
 			TsfSession.setAttribute("custNo", String.valueOf(loginInfo.getCustNo()));
 			throw new TsfDormantAccountException(message.getMessage("LOGN_0006"));
-
-		} else if (TscConstants.CustStat.SECEDE.value().equals(loginInfo.getCustStat())) { // 탈퇴회원
+		}
+		// 탈퇴회원
+		if (TscConstants.CustStat.SECEDE.value().equals(loginInfo.getCustStat())) {
 			throw new TsfSecedeAccountException(message.getMessage("LOGN_0007"));
 		}
+		// 활동회원 중 본인인증이 필요한 회원
+		if (TscConstants.CustStat.ACTIVE.value().equals(loginInfo.getCustStat()) && StringUtils.isBlank(loginInfo.getCi())) {
+			TsfSession.setAttribute("custNo", String.valueOf(loginInfo.getCustNo()));
+			throw new TsfNonCertificationAccountException(message.getMessage("LOGN_0009"));
+		}
 
 		// 권한 설정
 		List<SimpleGrantedAuthority> authorities = new ArrayList<>();

+ 14 - 3
src/main/java/com/style24/front/support/security/handler/TsfLoginFailureHandler.java

@@ -6,8 +6,13 @@ import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.gagaframework.web.parameter.GagaParameterUtil;
+import com.gagaframework.web.rest.client.GagaRequest;
+import com.gagaframework.web.rest.server.GagaResponse;
+import com.style24.front.support.env.TsfConstants;
 import com.style24.front.support.exception.TsfNonCertificationAccountException;
 import com.style24.persistence.domain.Login;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.core.AuthenticationException;
 import org.springframework.security.web.authentication.AuthenticationFailureHandler;
@@ -44,7 +49,13 @@ public class TsfLoginFailureHandler implements AuthenticationFailureHandler {
 		AuthenticationException exception) throws IOException, ServletException {
 
 		// 로그인 실패 남기기
-		loginService.createLoginFail(request.getParameter("loginId"), "Y");
+		String loginId;
+		if (StringUtils.isNotBlank(request.getParameter("loginId"))) {
+			loginId = request.getParameter("loginId");
+		} else {
+			loginId = request.getParameter("snsType") +"_" + GagaStringUtil.replace(request.getParameter("snsId"), TsfConstants.SNSLOGIN_PREFIX, "");
+		}
+		loginService.createLoginFail(loginId, "Y");
 
 		GagaMap result = new GagaMap();
 		result.setString("message", exception.getMessage());
@@ -65,11 +76,11 @@ public class TsfLoginFailureHandler implements AuthenticationFailureHandler {
 			result.setString("status", "ETC_ERROR");
 		}
 
-		Login loginFailInfo = loginService.getLoginFailInfo(request.getParameter("loginId"));
+		Login loginFailInfo = loginService.getLoginFailInfo(loginId);
 
 		// 실패 횟수 10회 이상이면서 3분 지난경우 초기화 해준다.
 		if (loginFailInfo.getLoginFailCnt() >= 10 && loginFailInfo.getBlockSecs() <= 0) {
-			loginService.updateLoginFailInfo(request.getParameter("loginId"));
+			loginService.updateLoginFailInfo(loginId);
 		}
 		// 로그인실패정보 조회
 		result.set("loginFailInfo", loginFailInfo);

+ 1 - 1
src/main/java/com/style24/persistence/mybatis/shop/TsfCart.xml

@@ -941,7 +941,7 @@
 	<select id="selectCartGoodsColorList" parameterType="Cart" resultType="Cart">
 		/* TsfCart.selectCartGoodsColorList : 장바구니 상품 컬러 정보 조회 */
 		SELECT A.*
-		     , IFNULL(CASE WHEN SELF_GOODS_YN = 'Y' THEN C.COLOR_KNM
+		     , IFNULL(CASE WHEN A.CART_OPT_CD1 IS NOT NULL AND SELF_GOODS_YN = 'Y' THEN C.COLOR_KNM
 		                   ELSE A.CART_OPT_CD1 END, A.CART_OPT_CD1) AS CART_COLOR_NM
 		FROM   (SELECT ST.GOODS_CD
 		             , MAX(CASE WHEN SELF_GOODS_YN = 'Y' THEN (SELECT COLOR_KNM FROM TB_COLOR WHERE COLOR_CD = ST.OPT_CD1)

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

@@ -1254,4 +1254,15 @@
 		LIMIT 1
 	</select>
 	
+	<!-- 스플래시이미지 -->
+	<select id="getSplashImage" resultType="String">
+		/* TsfDisplay.getSplashImage */
+		SELECT SPLASH_IMG
+		FROM   TB_SPLASH_IMG SI
+		WHERE  NOW() BETWEEN DISP_STDT AND DISP_EDDT
+		AND    DISP_YN = 'Y'
+		ORDER  BY SPLASH_IMG_SQ DESC
+		LIMIT 1
+	</select>
+	
 </mapper>

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

@@ -3500,7 +3500,7 @@
 		          , G.CURR_PRICE         /*현재판매가*/
 		          , G.REG_DT             /*등록일시*/
 		    FROM   (
-		        SELECT CASE WHEN BG.DISP_NM_LANG = 'EN' THEN BG.BRAND_GROUP_ENM
+		        SELECT DISTINCT CASE WHEN BG.DISP_NM_LANG = 'EN' THEN BG.BRAND_GROUP_ENM
 		               ELSE BG.BRAND_GROUP_KNM  END      AS BRAND_GROUP_NM /*브랜드그룹명*/
 		             , G.GOODS_CD                                               /*상품코드*/
 		             , G.GOODS_NM                                               /*상품명*/
@@ -3516,7 +3516,7 @@
 		             , G.REG_DT                                                 /*등록일시*/
 		        FROM   TB_CATE_4SRCH C4
 		        , TB_CATE_GOODS CG
-		        , TB_GOODS G USE INDEX (IX_GOODS_01)
+		        , TB_GOODS G
 		        , TB_GOODS_STOCK GS
 		        , TB_BRAND B
 		        , TB_BRAND_GROUP BG
@@ -3575,7 +3575,7 @@
 		         , G.CURR_PRICE         /*현재판매가*/
 		         , G.REG_DT             /*등록일시*/
 		    FROM   (
-		        SELECT CASE WHEN BG.DISP_NM_LANG = 'EN' THEN BG.BRAND_GROUP_ENM
+		        SELECT DISTINCT CASE WHEN BG.DISP_NM_LANG = 'EN' THEN BG.BRAND_GROUP_ENM
 		               ELSE BG.BRAND_GROUP_KNM  END      AS BRAND_GROUP_NM /*브랜드그룹명*/
 		             , G.GOODS_CD                                               /*상품코드*/
 		             , G.GOODS_NM                                               /*상품명*/

BIN
src/main/webapp/WEB-INF/lib/Istyle.jar


+ 4 - 4
src/main/webapp/WEB-INF/views/mob/display/BrandMainFormMob.html

@@ -104,7 +104,7 @@
 														</div>
 														<p class="itemBrand" th:text="${goodsData.brandGroupNm}"></p>
 														<div class="itemName" th:text="${goodsData.goodsFullNm}"></div>
-														<div class="itemComment" th:text="${goodsData.goodsTnm}"></div>
+														<div class="itemComment" th:if="${not #strings.isEmpty(goodsData.goodsTnm)}"  th:text="${goodsData.goodsTnm}"></div>
 														<p class="itemPrice" th:text="${#numbers.formatInteger(goodsData.currPrice,1,'COMMA')}"></p>
 													</a>
 												</div>
@@ -175,7 +175,7 @@
 															</div>
 															<p class="itemBrand" th:text="${goodsData.brandGroupNm}">BRAND NAME</p>
 															<div class="itemName"th:text="${goodsData.goodsFullNm}">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
-															<div class="itemComment" th:text="${goodsData.goodsTnm}">#가을 느낌 물씬!!</div>
+															<div class="itemComment" th:if="${not #strings.isEmpty(goodsData.goodsTnm)}" th:text="${goodsData.goodsTnm}">#가을 느낌 물씬!!</div>
 															<p class="itemPrice">
 																<span class="itemPrice_original" th:if="${goodsData.currPrice != goodsData.listPrice}" th:text="${#numbers.formatInteger(goodsData.listPrice,1,'COMMA')}">89,000</span>
 																[[${#numbers.formatInteger(goodsData.currPrice,1,'COMMA')}]]
@@ -261,7 +261,7 @@
 															</div>
 															<p class="itemBrand" th:text="${goodsData.brandGroupNm}">BRAND NAME</p>
 															<div class="itemName" th:text="${goodsData.goodsFullNm}">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
-															<div class="itemComment" th:text="${goodsData.goodsTnm}">#가을 느낌 물씬!!</div>
+															<div class="itemComment" th:if="${not #strings.isEmpty(goodsData.goodsTnm)}" th:text="${goodsData.goodsTnm}">#가을 느낌 물씬!!</div>
 															<p class="itemPrice">
 																<span class="itemPrice_original" th:if="${goodsData.currPrice != goodsData.listPrice}" th:text="${#numbers.formatInteger(goodsData.listPrice,1,'COMMA')}">89,000</span>
 																[[${#numbers.formatInteger(goodsData.currPrice,0,'COMMA')}]]
@@ -356,7 +356,7 @@
 											</div>
 											<p class="itemBrand" th:text="${goodsData.brandGroupNm}">BRAND NAME</p>
 											<div class="itemName" th:text="${goodsData.goodsFullNm}">남성 헤링본 기모 팬츠 헤링본 기모 팬츠</div>
-											<div class="itemComment" th:text="${goodsData.goodsTnm}">#주문 폭주 상품</div>
+											<div class="itemComment" th:if="${not #strings.isEmpty(goodsData.goodsTnm)}" th:text="${goodsData.goodsTnm}">#주문 폭주 상품</div>
 											<p class="itemPrice">
 												<span class="itemPrice_original" th:if="${goodsData.currPrice != goodsData.listPrice}" th:text="${#numbers.formatInteger(goodsData.listPrice,1,'COMMA')}">89,000</span>
 												[[${#numbers.formatInteger(goodsData.currPrice,0,'COMMA')}]]

+ 320 - 68
src/main/webapp/WEB-INF/views/mob/display/CategoryGoodsListFormMob.html

@@ -981,6 +981,7 @@
 
 			// result.dataList != null && result.dataList.length > 0
 			if (dataListLen > 0) {
+				idx++;
 				$('.list_content .list_defult').hide();
 				//$('.list_content .count_wrap').show();
 				var goodsUrl = [[${@environment.getProperty('upload.goods.view')}]];
@@ -989,16 +990,24 @@
 				var htm = fnCreateGoodsList(result, ithrCd, contentLoc, goodsUrl, lastPage, endRow, 'Mob');
 				gagaInfiniteScroll.draw(htm);
 			}else {
-				if(totalCnt > Number($("#searchGoodsForm").find("input[name=pageSize]").val())){
-					if($("#searchGoodsForm input[name=pageNo]").val()==1){
-						// 필터 값으로 조회 데이터 없을때
-						$('.list_content .list_defult').show();
-						//$('.list_content .count_wrap').hide();
+				if(idx > 1) { // 데이터가 1건 이상
+					if(totalCnt > Number($("#searchGoodsForm").find("input[name=pageSize]").val())){
+						if($("#searchGoodsForm input[name=pageNo]").val()==1){
+							// 필터 값으로 조회 데이터 없을때
+							$('.list_content .list_defult').show();
+						}else{
+							// 마지막 페이지 일때
+							$('#endPage').show();
+						}
 					}else{
-						// 마지막 페이지 일때
-						$('#endPage').show();
-						//$('.list_content .count_wrap').hide();
+						if($("#searchGoodsForm input[name=pageNo]").val()==1){
+							// 필터 값으로 조회 데이터 없을때
+							$('.list_content .list_defult').show();
+						}
 					}
+				}else{
+					// 필터 값으로 조회 데이터 없을때
+					$('.list_content .list_defult').show();
 				}
 
 				gagaInfiniteScroll.draw('not');
@@ -1173,28 +1182,6 @@
 			return tag;
 		}
 
-		var fnTest = function (){
-			let actionUrl = '/display/brand/cate/list?brandGroupNo=' + [[${cateInfo.brandGroupNo}]];
-			let brandGroupNo = [[${cateInfo.brandGroupNo}]];
-			let cate1No = [[${cateInfo.cate1No}]];
-			let allCate = [[${cateList}]];
-			let tag = '';
-			$.getJSON(actionUrl, function(result, status){
-				$.each(allCate, function(allCateIdx, allCateItem) {
-					if (item.cate1No == allCateItem.cate1No) {
-						$.each(allCate, function(allCateIdx, allCateItem) {
-							if (item.cate1No == allCateItem.cate1No) {
-								tag += '<li>';
-								tag += '<a href="javascript:void(0);" onclick="cfnGoToGoodsList('+brandGroupNo+',\'' + cateGb + '\',' + item.cate1No + ',' + item.cate2No + ',' + item.cate3No + ',' + item.cate4No + ',' + item.cate5No + ')">'+item.cate1Nm+'</a>';
-								tag += '</li>\n';
-							}
-						});
-					}
-				});
-			});
-			$('#cateDepth').append(tag);
-		}
-
 		var fnGetSameDepthList = function (){
 			var brandGroupNo = [[${cateInfo.brandGroupNo}]];
 			var cateGb =  [[${cateInfo.cateGb}]];
@@ -1208,10 +1195,14 @@
 			let allCateList = [[${allCateList}]];
 			let tag = '';
 			let html = '';
+			if(brandGroupNo>0){
+				var brandCateList =  [[${brandCateList}]];
+			}
 
 			if(!gagajf.isNull(cate5No)){
 
 			}else if(!gagajf.isNull(cate4No)){
+				var leaf_Yn = 'N';
 				$.each(cateList, function(idx,item){
 					let cate2 = item.cate2List;
 					$.each(cate2, function(idx2, item2){
@@ -1233,6 +1224,9 @@
 									tag += '</li>\n';
 									$.each(item3.cate4List, function(idx4, item4){
 										if(item4.cate4No == cate4No){
+											if(item4.leafYn == 'Y'){
+												leaf_Yn = 'Y';
+											}
 											if(idx<1) {
 												$("#htopTitle").append(fnDisplayTitle(item4.cate4Nm));
 											}
@@ -1251,7 +1245,9 @@
 													leafTag += ');">'+item5.cate5Nm+'</a>';
 												});
 											}
-											$('#leafCateList').append(leafTag);
+											if(leaf_Yn == 'N'){
+												$('#leafCateList').append(leafTag);
+											}
 										}
 										tag += '<li ';
 										if(item4.cate4No == cate4No){
@@ -1260,7 +1256,7 @@
 										tag += '>\n';
 										tag += '<a href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\',' + item4.cate1No + ', ' + item4.cate2No + ', ' + item4.cate3No + ', ' + item4.cate4No + ' ';
 										if(formalGb=='G009_20'){
-											leafTag += ' ,\'\',\''+formalGb+'\'';
+											tag += ' ,\'\',\''+formalGb+'\'';
 										}
 										tag += ' );">'+item4.cate4Nm+'</a></li>';
 									});
@@ -1270,8 +1266,84 @@
 					});
 					tag += '</ul>\n';
 				});
-				$("#cateDepth").append(tag);
+				if(leaf_Yn == 'N'){
+					$("#cateDepth").append(tag);
+				}else{
+					tag = '';
+					$.each(cateList, function(idx,item){
+						let cate2 = item.cate2List;
+						$.each(cate2, function (idx2,item2){
+							if(item2.cate2No == cate2No){
+								tag += '<a href="javascript:void(0);" class="daps1" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\',' + item2.cate1No + ' ,' + item2.cate2No + ' ';
+								if(formalGb=='G009_20'){
+									tag += ' ,\'\',\'\',\'\',\''+formalGb+'\'';
+								}
+								tag += ' )">'+item2.cate2Nm+'</a>';
+								tag += '<ul class="daps2">\n';
+								tag += '<li>';
+								tag += '<a href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\',' + item2.cate1No + ' ,' + item2.cate2No + ' ';
+								if(formalGb=='G009_20'){
+									tag += ' ,\'\',\'\',\'\',\''+formalGb+'\'';
+								}
+								tag += ' )">전체</a>';
+								tag += '</li>\n';
+								$.each(item2.cate3List, function (idx3, item3){
+									if(idx<1) {
+										tag += '<li';
+										if(item3.cate3No == cate3No){
+											if(item3.leafYn == 'Y'){
+												leaf_Yn = 'Y';
+											}
+											tag += ' class="on"';
+										}
+										tag += '><a href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\',' + item2.cate1No + ', ' + item2.cate2No + ', ' + item3.cate3No + ' ';
+										if(formalGb=='G009_20'){
+											tag += ' ,\'\',\'\',\''+formalGb+'\'';
+										}
+										tag += ');">'+item3.cate3Nm+'</a></li>';
+									}
+								});
+							}
+						});
+
+						$.each(cate2, function (idx2,item2){
+							let leafTag = '';
+							if(item2.cate2No == cate2No){
+								leafTag += '<a href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\',' + item2.cate1No + ', ' + item2.cate2No + ', ' + cate3No + ' ';
+								if(formalGb=='G009_20'){
+									leafTag += ' ,\'\',\'\',\''+formalGb+'\'';
+								}
+								leafTag += ');">전체</a>';
+								$.each(item2.cate3List, function(idx3, item3){
+									if(item3.cate3No == cate3No){
+										if(idx<1) {
+											$("#htopTitle").append(fnDisplayTitle(item3.cate3Nm));
+										}
+										if(item3.cate4List != null && item3.cate4List.length > 0){
+											$.each(item3.cate4List, function (idx4, item4){
+												leafTag += '<a href="javascript:void(0);"';
+												if(item4.cate4No == cate4No){
+													leafTag += ' class="on"';
+												}
+												leafTag += ' onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + [[${cateInfo.cateGb}]] + '\', ' + item4.cate1No + ' , ' + item4.cate2No + ', ' + item4.cate3No + ' , ' + item4.cate4No + ' ';
+												if(formalGb=='G009_20'){
+													leafTag += ' ,\'\',\''+formalGb+'\'';
+												}
+												leafTag += ');">'+item4.cate4Nm+'</a>';
+											});
+											// $('#leafCateList').append(leafTag);
+										}
+									}
+								});
+								$('#leafCateList').append(leafTag);
+							}
+						});
+						tag += '</ul>\n';
+					});
+					$("#cateDepth").append(tag);
+				}
 			}else if(!gagajf.isNull(cate3No)){
+				var leaf_Yn = 'N';
 				$.each(cateList, function(idx,item){
 					let cate2 = item.cate2List;
 					$.each(cate2, function (idx2,item2){
@@ -1293,6 +1365,9 @@
 								if(idx<1) {
 									tag += '<li';
 									if(item3.cate3No == cate3No){
+										if(item3.leafYn == 'Y'){
+											leaf_Yn = 'Y';
+										}
 										tag += ' class="on"';
 									}
 									tag += '><a href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\',' + item2.cate1No + ', ' + item2.cate2No + ', ' + item3.cate3No + ' ';
@@ -1330,13 +1405,76 @@
 									}
 								}
 							});
-							$('#leafCateList').append(leafTag);
+							if(leaf_Yn == 'N'){
+								$('#leafCateList').append(leafTag);
+							}
 						}
 					});
 					tag += '</ul>\n';
 				});
-				$("#cateDepth").append(tag);
+				if(leaf_Yn == 'N'){
+					$("#cateDepth").append(tag);
+				}else{
+					tag = '';
+					$.each(cateList, function(idx,item){
+						tag += '<a href="javascript:void(0);" class="daps1" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\',' + item.cate1No + ' ';
+						if(formalGb=='G009_20'){
+							tag += ' ,\'\',\'\',\'\',\'\',\''+formalGb+'\'';
+						}
+						tag += ' )">'+item.cate1Nm+'</a>';
+						tag += '<ul class="daps2">\n';
+						tag += '<li>';
+						tag += '<a href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\',' + item.cate1No + ' ';
+						if(formalGb=='G009_20'){
+							tag += ' ,\'\',\'\',\'\',\'\',\''+formalGb+'\'';
+						}
+						tag += ' )">전체</a>';
+						tag += '</li>\n';
+						$.each(item.cate2List, function (idx2,item2){
+							if(item2.cate2No == cate2No){
+								if(idx<1) {
+									$("#htopTitle").append(fnDisplayTitle(item2.cate2Nm));
+								}
+								if(item2.cate3List != null && item2.cate3List.length > 0){
+									let leafTag = '';
+									leafTag += '<a href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\',' + item2.cate1No + ', ' + item2.cate2No + ' ';
+									if(formalGb=='G009_20'){
+										leafTag += ' ,\'\',\'\',\'\',\''+formalGb+'\'';
+									}
+									leafTag += ');">전체</a>';
+									$.each(item2.cate3List, function (idx3, item3){
+										leafTag += '<a href="javascript:void(0);" ';
+										if(cate3No == item3.cate3No){
+											leafTag += 'class="on"';
+										}
+										leafTag += 'onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + [[${cateInfo.cateGb}]] + '\', ' + item3.cate1No + ' , ' + item3.cate2No + ', ' + item3.cate3No + ' ';
+										if(formalGb=='G009_20'){
+											leafTag += ' ,\'\',\'\',\''+formalGb+'\'';
+										}
+										leafTag += ');">'+item3.cate3Nm+'</a>';
+									});
+									$('#leafCateList').append(leafTag);
+								}
+							}
+							if(idx<1) {
+								tag += '<li';
+								if(item2.cate2No == cate2No){
+									tag += ' class="on"';
+								}
+								tag += '><a href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\',' + item2.cate1No + ', ' + item2.cate2No + ' ';
+								if(formalGb=='G009_20'){
+									tag += ' ,\'\',\'\',\'\',\''+formalGb+'\'';
+								}
+								tag += ');">'+item2.cate2Nm+'</a></li>';
+							}
+
+						});
+						tag += '</ul>\n';
+					});
+					$("#cateDepth").append(tag);
+				}
 			}else if(!gagajf.isNull(cate2No)){
+				var leaf_Yn = 'N';
 				$.each(cateList, function(idx,item){
 					tag += '<a href="javascript:void(0);" class="daps1" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\',' + item.cate1No + ' ';
 					if(formalGb=='G009_20'){
@@ -1353,6 +1491,9 @@
 					tag += '</li>\n';
 					$.each(item.cate2List, function (idx2,item2){
 						if(item2.cate2No == cate2No){
+							if(item2.leafYn == 'Y'){
+								leaf_Yn = 'Y';
+							}
 							if(idx<1) {
 								$("#htopTitle").append(fnDisplayTitle(item2.cate2Nm));
 							}
@@ -1370,7 +1511,9 @@
 									}
 									leafTag += ');">'+item3.cate3Nm+'</a>';
 								});
-								$('#leafCateList').append(leafTag);
+								if(leaf_Yn == 'N'){
+									$('#leafCateList').append(leafTag);
+								}
 							}
 						}
 						if(idx<1) {
@@ -1388,32 +1531,127 @@
 					});
 					tag += '</ul>\n';
 				});
-				$("#cateDepth").append(tag);
-			}else if(!gagajf.isNull(cate1No)){
-				if(formalGb=='G009_20'){
-					tag += '<a class="daps1" href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\',\'\',\'\',\'\',\'\',\'\',\''+formalGb+'\')";>전체</a>\n';
-					tag += '<ul class="daps2">\n';
-				}
-				$.each(cateList, function(idx,item){
-					$.each(allCateList, function (allIdx, allItem){
-						if(brandGroupNo > 0){
-							if(item.cate1No==allItem.cate1No){
-								if(idx<1) {
-									$("#htopTitle").append(fnDisplayTitle(item.cate1Nm));
+				if(leaf_Yn == 'N'){
+					$("#cateDepth").append(tag);
+				}else{
+					tag = '';
+					if(formalGb=='G009_20'){
+						tag += '<a class="daps1" href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\',\'\',\'\',\'\',\'\',\'\',\''+formalGb+'\')";>전체</a>\n';
+						tag += '<ul class="daps2">\n';
+					}
+					$.each(cateList, function(idx,item){
+						$.each(allCateList, function (allIdx, allItem){
+							if(brandGroupNo > 0){
+								if(item.cate1No==allItem.cate1No){
+									if(idx<1) {
+										$("#htopTitle").append(fnDisplayTitle(item.cate1Nm));
+									}
+									if(idx<1) {
+										tag += '<li';
+										if(item.cate1No==allItem.cate1No){
+											tag += ' class="on"';
+										}
+										tag += '><a href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\',' + item.cate1No + ' ';
+										if(formalGb=='G009_20'){
+											tag += ' ,\'\',\'\',\'\',\'\',\''+formalGb+'\'';
+										}
+										tag += ');">'+item.cate1Nm+'</a></li>';
+									}
+								}
+							}else{
+								if(item.cate1No==allItem.cate1No){
+									if(idx<1) {
+										$("#htopTitle").append(fnDisplayTitle(item.cate1Nm));
+									}
 								}
 								if(idx<1) {
 									tag += '<li';
 									if(item.cate1No==allItem.cate1No){
 										tag += ' class="on"';
 									}
-									tag += '><a href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\',' + item.cate1No + ' ';
+									tag += '><a href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\',' + allItem.cate1No + ' ';
 									if(formalGb=='G009_20'){
 										tag += ' ,\'\',\'\',\'\',\'\',\''+formalGb+'\'';
 									}
-									tag += ');">'+item.cate1Nm+'</a></li>';
+									tag += ');">'+allItem.cate1Nm+'</a></li>';
 								}
 							}
-						}else{
+						});
+
+						if(item.cate2List != null && item.cate2List.length > 0){
+							let leafTag = '';
+							leafTag += '<a href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\', \'\' ';
+							if(formalGb=='G009_20'){
+								leafTag += ' ,\'\',\'\',\'\',\'\',\''+formalGb+'\'';
+							}
+							leafTag += ');">전체</a>';
+							$.each(item.cate2List, function (idx, item){
+								leafTag += '<a href="javascript:void(0);"';
+								if(item.cate2No == cate2No){
+									leafTag += ' class="on"';
+								}
+								leafTag += ' onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + [[${cateInfo.cateGb}]] + '\', ' + item.cate1No + ' , ' + item.cate2No + ' ';
+								if(formalGb=='G009_20'){
+									leafTag += ' ,\'\',\'\',\'\',\''+formalGb+'\'';
+								}
+								leafTag += ');">'+item.cate2Nm+'</a>';
+							});
+							$('#leafCateList').append(leafTag);
+						}
+					});
+					if(formalGb=='G009_20'){
+						tag += '</ul>\n';
+					}
+					$("#cateDepth").append(tag);
+				}
+			}else if(!gagajf.isNull(cate1No)){
+				if(brandGroupNo > 0){
+					tag += '<a class="daps1" href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\',\'\',\'\',\'\',\'\',\'\',\'\')";>전체</a>\n';
+					tag += '<ul class="daps2">\n';
+				}
+				if(formalGb=='G009_20'){
+					tag += '<a class="daps1" href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\',\'\',\'\',\'\',\'\',\'\',\''+formalGb+'\')";>전체</a>\n';
+					tag += '<ul class="daps2">\n';
+				}
+
+				if(brandGroupNo > 0){
+					$.each(brandCateList, function(idx,item){
+						$.each(allCateList, function (allIdx, allItem){
+							if(item.cate1No==allItem.cate1No){
+								if(idx<1) {
+									$("#htopTitle").append(fnDisplayTitle(item.cate1Nm));
+								}
+								tag += '<li';
+								if(item.cate1No==cate1No){
+									tag += ' class="on"';
+								}
+								tag += '><a href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\',' + item.cate1No + ' ';
+								if(formalGb=='G009_20'){
+									tag += ' ,\'\',\'\',\'\',\'\',\''+formalGb+'\'';
+								}
+								tag += ');">'+item.cate1Nm+'</a></li>';
+							}
+						});
+						if(item.cate2List != null && item.cate2List.length > 0){
+							let leafTag = '';
+							leafTag += '<a href="javascript:void(0);" class="on" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\', \'\' ';
+							if(formalGb=='G009_20'){
+								leafTag += ' ,\'\',\'\',\'\',\'\',\''+formalGb+'\'';
+							}
+							leafTag += ');">전체</a>';
+							$.each(item.cate2List, function (idx, item){
+								leafTag += '<a href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + [[${cateInfo.cateGb}]] + '\', ' + item.cate1No + ' , ' + item.cate2No + ' ';
+								if(formalGb=='G009_20'){
+									leafTag += ' ,\'\',\'\',\'\',\''+formalGb+'\'';
+								}
+								leafTag += ');">'+item.cate2Nm+'</a>';
+							});
+							$('#leafCateList').append(leafTag);
+						}
+					});
+				}else{
+					$.each(cateList, function(idx,item){
+						$.each(allCateList, function (allIdx, allItem){
 							if(item.cate1No==allItem.cate1No){
 								if(idx<1) {
 									$("#htopTitle").append(fnDisplayTitle(item.cate1Nm));
@@ -1430,32 +1668,46 @@
 								}
 								tag += ');">'+allItem.cate1Nm+'</a></li>';
 							}
-						}
-					});
+						});
 
-					if(item.cate2List != null && item.cate2List.length > 0){
-						let leafTag = '';
-						leafTag += '<a href="javascript:void(0);" class="on" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\', \'\' ';
-						if(formalGb=='G009_20'){
-							leafTag += ' ,\'\',\'\',\'\',\'\',\''+formalGb+'\'';
-						}
-						leafTag += ');">전체</a>';
-						$.each(item.cate2List, function (idx, item){
-							leafTag += '<a href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + [[${cateInfo.cateGb}]] + '\', ' + item.cate1No + ' , ' + item.cate2No + ' ';
+						if(item.cate2List != null && item.cate2List.length > 0){
+							let leafTag = '';
+							leafTag += '<a href="javascript:void(0);" class="on" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\', \'\' ';
 							if(formalGb=='G009_20'){
-								leafTag += ' ,\'\',\'\',\'\',\''+formalGb+'\'';
+								leafTag += ' ,\'\',\'\',\'\',\'\',\''+formalGb+'\'';
 							}
-							leafTag += ');">'+item.cate2Nm+'</a>';
-						});
-						$('#leafCateList').append(leafTag);
-					}
-				});
+							leafTag += ');">전체</a>';
+							$.each(item.cate2List, function (idx, item){
+								leafTag += '<a href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + [[${cateInfo.cateGb}]] + '\', ' + item.cate1No + ' , ' + item.cate2No + ' ';
+								if(formalGb=='G009_20'){
+									leafTag += ' ,\'\',\'\',\'\',\''+formalGb+'\'';
+								}
+								leafTag += ');">'+item.cate2Nm+'</a>';
+							});
+							$('#leafCateList').append(leafTag);
+						}
+					});
+				}
+
 				if(formalGb=='G009_20'){
 					tag += '</ul>\n';
 				}
 				$("#cateDepth").append(tag);
 			}else{
 				let tag = '';
+				if(brandGroupNo > 0 ){
+					$("#htopTitle").text('전체');
+					tag += '<ul class="daps2">\n';
+					tag += '<li>';
+					tag += '<a href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\',\'\'';
+					if(formalGb=='G009_20'){
+						tag += ' ,\'\',\'\',\'\',\'\',\''+formalGb+'\'';
+					}
+					tag += ' )">전체</a>';
+					tag += '</li>\n';
+					tag += '</ul>\n';
+					$("#cateDepth").append(tag);
+				}
 				if(formalGb == 'G009_20'){
 					$("#htopTitle").text('아울렛');
 					tag += '<ul class="daps2">\n';

+ 4 - 4
src/main/webapp/WEB-INF/views/mob/display/MallMainFormMob.html

@@ -120,7 +120,7 @@
 															<img alt="BLUE-a" class=" pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}" onerror="noneImg(this)"  >
 														</div>
 														<p class="itemBrand" th:text="${goodsData.brandGroupNm}">BRAND NAME</p>
-														<div class="itemComment" th:text="${goodsData.goodsTnm}">#주문 폭주 상품</div>
+														<div class="itemComment" th:if="${not #strings.isEmpty(goodsData.goodsTnm)}" th:text="${goodsData.goodsTnm}">#주문 폭주 상품</div>
 														<div class=" itemName" th:text="${goodsData.goodsFullNm}">가을 신상 남성 스탠다드핏 로고맨 블루 볼 캡 유니 경량다운 시보리넥 베스트</div>
 														<p class="itemPrice" th:text="${#numbers.formatInteger(goodsData.currPrice,1,'COMMA')}">488,000</p>
 													</a>
@@ -177,7 +177,7 @@
 																		<img alt="" class=" pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + bestItemData.sysImgNm}" onerror="noneImg(this)">
 																	</div>
 																	<p class="itemBrand" th:text="${bestItemData.brandGroupNm}">TBJ</p>
-																	<div class="itemComment" th:text="${bestItemData.goodsTnm}"># 가을 느낌 물씬!</div>
+																	<div class="itemComment" th:if="${not #strings.isEmpty(bestItemData.goodsTnm)}" th:text="${bestItemData.goodsTnm}"># 가을 느낌 물씬!</div>
 																	<div class="itemName" th:text="${bestItemData.goodsFullNm}">11111 남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
 																	<p class="itemPrice">
 																		<span class="itemPrice_original" th:if="${bestItemData.currPrice != bestItemData.listPrice}" th:text="${#numbers.formatInteger(bestItemData.listPrice,3,'COMMA')}">89,000</span>[[${#numbers.formatInteger(bestItemData.currPrice,0,'COMMA')}]]
@@ -272,7 +272,7 @@
 																	<img alt="" class=" pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}" onerror="noneImg(this)">
 																</div>
 																<p class="itemBrand" th:text="${goodsData.brandGroupNm}">TBJ</p>
-																<div class="itemComment" th:text="${goodsData.goodsTnm}"># 가을 느낌 물씬!</div>
+																<div class="itemComment" th:if="${not #strings.isEmpty(goodsData.goodsTnm)}"  th:text="${goodsData.goodsTnm}"># 가을 느낌 물씬!</div>
 																<div class="itemName" th:text="${goodsData.goodsNm}">11111 남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
 																<p class="itemPrice">
 																	<span class="itemPrice_original" th:if="${goodsData.currPrice != goodsData.listPrice}" th:text="${#numbers.formatInteger(goodsData.listPrice,0,'COMMA')}">89,000</span>[[${#numbers.formatInteger(goodsData.currPrice,0,'COMMA')}]]
@@ -436,7 +436,7 @@
 																			<img alt="" class=" pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}" onerror="noneImg(this)">
 																		</div>
 																		<p class="itemBrand" th:text="${goodsData.brandGroupNm}">TBJ</p>
-																		<div class="itemComment" th:text="${goodsData.goodsTnm}"># 가을 느낌 물씬!</div>
+																		<div class="itemComment" th:if="${not #strings.isEmpty(goodsData.goodsTnm)}" th:text="${goodsData.goodsTnm}"># 가을 느낌 물씬!</div>
 																		<div class="itemName" th:text="${goodsData.goodsFullNm}">11111 남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
 																		<p class="itemPrice">
 																			<span class="itemPrice_original" th:if="${goodsData.currPrice != goodsData.listPrice}" th:text="${#numbers.formatInteger(goodsData.listPrice,1,'COMMA')}">89,000</span>[[${#numbers.formatInteger(goodsData.currPrice,0,'COMMA')}]]

+ 2 - 2
src/main/webapp/WEB-INF/views/mob/display/OutletMainFormMob.html

@@ -79,7 +79,7 @@
 														[[${#numbers.formatInteger(item.currPrice,0,'COMMA')}]]
 														<span class="itemPercent" th:if="${item.currPrice != item.listPrice}" th:text="${(item.listPrice == 0 ? 0 : #numbers.formatDecimal((item.listPrice - item.currPrice) / (item.listPrice * 1.0) * 100, 1, 0)) + '%'}">10%</span>
 													</p>
-													<div class="itemComment" th:text="${item.goodsTnm}">#주문 폭주 상품</div>
+													<div class="itemComment" th:if="${not #strings.isEmpty(item.goodsTnm)}" th:text="${item.goodsTnm}">#주문 폭주 상품</div>
 												</a>
 											</div>
 										</div>
@@ -124,7 +124,7 @@
 														<span class="badge13" th:if="${idx.index<3}" th:value="${iconArray[0]}" th:text="${iconArray[1]}"></span>
 													</th:block>
 												</p>
-												<div class="itemComment" th:text="${item.goodsTnm}">#주문 폭주 상품</div>
+												<div class="itemComment" th:if="${not #strings.isEmpty(item.goodsTnm)}" th:text="${item.goodsTnm}">#주문 폭주 상품</div>
 											</a>
 										</div>
 									</div>

+ 17 - 16
src/main/webapp/WEB-INF/views/mob/display/SearchGoodsListFormMob.html

@@ -697,6 +697,7 @@
 		}
 
 		if(dataListLen > 0){
+			idx++;
 			$('#noFilterData').hide();
 			$('#endPage').hide();
 			$('#eventNodata').hide();
@@ -709,27 +710,27 @@
 			gagaInfiniteScroll.draw(htm);
 			//fnImgOnoff();
 		}else{
-			if(totalCnt > Number($("#searchGoodsForm").find("input[name=pageSize]").val())){
-				if($("#searchGoodsForm input[name=pageNo]").val()==1){
+			if(idx > 1){ // 데이터가 1건 이상
+				if(totalCnt > Number($("#searchGoodsForm").find("input[name=pageSize]").val())){
+					if($("#searchGoodsForm input[name=pageNo]").val()==1){
+						// 필터 값으로 조회 데이터 없을때
+						$('#noDataFilter').show();
+						// $('.list_content .count_wrap').hide();
+						$('#endPage').hide();
+					}else{
+						// 마지막 페이지 일때
+						$('#endPage').show();
+						$('#noDataFilter').hide();
+					}
+				}else{
 					// 필터 값으로 조회 데이터 없을때
 					$('#noDataFilter').show();
-					// $('.list_content .count_wrap').hide();
 					$('#endPage').hide();
-				}else{
-					// 마지막 페이지 일때
-					$('#endPage').show();
-					$('#noDataFilter').hide();
 				}
 			}else{
-				if($("#searchGoodsForm input[name=pageNo]").val()==1){
-					$('#goodsNodata').show();
-					$('#goodsKeyword').text([[${params.keyword}]]);
-					$('#dataArea').hide();
-				}else{
-					$('#goodsNodata').show();
-					$('#goodsKeyword').text([[${params.keyword}]]);
-					$('#dataArea').hide();
-				}
+				$('#goodsNodata').show();
+				$('#goodsKeyword').text([[${params.keyword}]]);
+				$('#dataArea').hide();
 			}
 			gagaInfiniteScroll.draw('not');
 		}

+ 21 - 4
src/main/webapp/WEB-INF/views/mob/planning/PlanningMainFormMob.html

@@ -24,12 +24,18 @@
 		<section class="content dp_exhibition">
 			<div class="inner wide">
 				<div class="category_nav">
-					<ul>
+					<ul th:if="${brandGroupInfo==null}">
 						<li><button type="button" th:class="${cateNo == null ? 'active' : ''}" onclick="cfnGoToPage(_PAGE_PLANNING_MAIN);">전체</button></li>
 						<th:block th:each="oneData, stat : ${cateList}">
 						<li><button type="button" th:class="${oneData.cateNo == cateNo ? 'active' : '' }" th:onclick="|cfnGoToPage(_PAGE_PLANNING_MAIN + '?cateNo=${oneData.cateNo}');|">[[${oneData.cateNm}]]</button></li>
 						</th:block>
 					</ul>
+					<ul th:unless="${brandGroupInfo==null}">
+						<li><button type="button" th:class="${cateNo == null ? 'active' : ''}" th:onclick="|cfnGoToPage(_PAGE_PLANNING_MAIN + '?brandGroupNo=${brandGroupInfo.brandGroupNo}');|">전체</button></li>
+						<th:block th:each="oneData, stat : ${cateList}">
+							<li><button type="button" th:class="${oneData.cateNo == cateNo ? 'active' : '' }" th:onclick="|cfnGoToPage(_PAGE_PLANNING_MAIN + '?cateNo=${oneData.cateNo}'+ '&brandGroupNo=${brandGroupInfo.brandGroupNo}');|">[[${oneData.cateNm}]]</button></li>
+						</th:block>
+					</ul>
 				</div>
 			</div>
 			<div class="inner">
@@ -43,7 +49,8 @@
                           <div>
                               <p>등록된 기획전이 없습니다.</p>
                           </div>
-                         <button type="button" class="btn btn_default" onclick="cfnGoToPage(_PAGE_MAIN);"><span>홈으로 가기</span></button>
+                         <button type="button" class="btn btn_default" th:if="${brandGroupInfo==null}" onclick="cfnGoToPage(_PAGE_MAIN);"><span>홈으로 가기</span></button>
+						 <button type="button" class="btn btn_default" th:unless="${brandGroupInfo==null}" th:onclick="cfnGoToBrandMain([[${brandGroupInfo.brandGroupNo}]]);"><span th:text="${brandGroupInfo.brandGroupNm+' 홈으로 가기'}"></span></button>
                      </div>
 					<div class="list_item" style="display: none;" id="divPlanningList">
 					</div>
@@ -58,7 +65,13 @@
 	let fnGetPlanningList = function(cateNo,brandGroupNo) {
 		let actionUrl = '/planning/main/list';
 		if (!gagajf.isNull(cateNo)) actionUrl += '?cateNo=' + cateNo;
-		if (!gagajf.isNull(brandGroupNo)) actionUrl += '?brandGroupNo=' + brandGroupNo;
+		if (!gagajf.isNull(brandGroupNo)){
+			if (!gagajf.isNull(cateNo)){
+				actionUrl += '&brandGroupNo=' + brandGroupNo;
+			}else{
+				actionUrl += '?brandGroupNo=' + brandGroupNo;
+			}
+		}
 		
 		$.getJSON(actionUrl
 			, function(result, status) {
@@ -71,7 +84,11 @@
 						$.each(result, function(idx, item) {
 							let tag = '<div>\n';
 							tag += '	<div class="visual">\n';
-							tag += '   <a href="javascript:void(0);" onclick="cfnGoToPlanDetail(\'' + item.planSq + '\')">';
+							if(!gagajf.isNull(brandGroupNo)){
+								tag += '   <a href="javascript:void(0);" onclick="cfnGoToPlanDetail(\'' + item.planSq + '\',\'' + brandGroupNo + '\')">';
+							}else{
+								tag += '   <a href="javascript:void(0);" onclick="cfnGoToPlanDetail(\'' + item.planSq + '\')">';
+							}
 							if (item.newYn == 'Y') {
 								tag += '		<div class="shape ranker"><span>NEW</span></div>\n';
 							}

+ 4 - 4
src/main/webapp/WEB-INF/views/web/display/BrandMainFormWeb.html

@@ -115,7 +115,7 @@
 														</div>
 														<p class="itemBrand" th:text="${goodsData.brandGroupNm}"></p>
 														<div class=" itemName" th:text="${goodsData.goodsFullNm}"></div>
-														<div class="itemComment" th:text="${goodsData.goodsTnm}">#가을느낌 물씬!</div>
+														<div class="itemComment" th:unless="${goodsData.goodsTnm == null or goodsData.goodsTnm == ''}" th:text="${goodsData.goodsTnm}">#가을느낌 물씬!</div>
 														<p class="itemPrice" th:text="${#numbers.formatInteger(goodsData.currPrice,1,'COMMA')+'원'}"></p>
 													</a>
 												</div>
@@ -190,7 +190,7 @@
 														</div>
 														<p class="itemBrand" th:text="${goodsData.brandGroupNm}"></p>
 														<div class="itemName" th:text="${goodsData.goodsFullNm}"></div>
-														<div class="itemComment" th:text="${goodsData.goodsTnm}">#가을느낌 물씬!!</div>
+														<div class="itemComment" th:unless="${goodsData.goodsTnm == null or goodsData.goodsTnm == ''}" th:text="${goodsData.goodsTnm}">#가을느낌 물씬!!</div>
 														<p class="itemPrice">
 															[[${#numbers.formatInteger(goodsData.currPrice,1,'COMMA')} + 원]]
 															<span class="itemPrice_original" th:if="${goodsData.currPrice != goodsData.listPrice}" th:text="${#numbers.formatInteger(goodsData.listPrice,1,'COMMA')}"></span>
@@ -270,7 +270,7 @@
 													</div>
 													<p class=" itemBrand" th:text="${goodsData.brandGroupNm}">BRAND NAME</p>
 													<div class=" itemName" th:text="${goodsData.goodsFullNm}">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
-													<div class="itemComment" th:text="${goodsData.goodsTnm}">#베이직 셔츠의 정수1</div>
+													<div class="itemComment" th:unless="${goodsData.goodsTnm == null or goodsData.goodsTnm == ''}" th:text="${goodsData.goodsTnm}">#베이직 셔츠의 정수1</div>
 													<p class="itemPrice" >
 														[[${#numbers.formatInteger(goodsData.currPrice,0,'COMMA')} + 원]]
 														<span class="itemPrice_original" th:text="${#numbers.formatInteger(goodsData.listPrice,1,'COMMA')}">89,000</span>
@@ -374,7 +374,7 @@
 												</div>
 												<p class=" itemBrand" th:text="${goodsData.brandGroupNm}"></p>
 												<div class="itemName" th:text="${goodsData.goodsFullNm}"></div>
-												<div class="itemComment" th:text="${goodsData.goodsTnm}">#가을느낌 물씬!</div>
+												<div class="itemComment" th:unless="${goodsData.goodsTnm == null or goodsData.goodsTnm == ''}" th:text="${goodsData.goodsTnm}">#가을느낌 물씬!</div>
 												<p class="itemPrice">[[${#numbers.formatInteger(goodsData.currPrice,0,'COMMA')} + 원]]
 													<span class="itemPrice_original" th:if="${goodsData.currPrice != goodsData.listPrice}" th:text="${#numbers.formatInteger(goodsData.listPrice,1,'COMMA')}">89,000</span>
 													<span class=" itemPercent" th:if="${goodsData.currPrice != goodsData.listPrice}" th:text="${(goodsData.listPrice == 0 ? 0 : #numbers.formatDecimal((goodsData.listPrice - goodsData.currPrice) / (goodsData.listPrice * 1.0) * 100, 1, 0)) + '%'}">10%</span>

+ 49 - 23
src/main/webapp/WEB-INF/views/web/display/CategoryGoodsListFormWeb.html

@@ -471,29 +471,40 @@ console.log(allCateList);
 			if(brandGroupNo>0){
 				$("#brandNm").show();
 				$("#brandNm").text(brandGroupNm);
+				var brandCateList =  [[${brandCateList}]];
 			}
 
 			if(cateList.length > 0){
 				if(gagajf.isNull(cate1No) && gagajf.isNull(cate2No) && gagajf.isNull(cate3No) && gagajf.isNull(cate4No) && gagajf.isNull(cate5No) && formalGb == 'G009_20'){
-					let html = '<li><a class="on" href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\',\'\',\'\',\'\',\'\',\'\',\'' + formalGb + '\');">전체</a></li>';
-					$('#ulAllCate').append(html);
 					$('#navNm').show();
 					$('#navNm').text('아울렛');
 					$('#formTitle').text('아울렛');
+				}if(gagajf.isNull(cate1No) && gagajf.isNull(cate2No) && gagajf.isNull(cate3No) && gagajf.isNull(cate4No) && gagajf.isNull(cate5No) && brandGroupNo > 0){
+					let html = '<li><a class="on" href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\',\'\',\'\',\'\',\'\',\'\',\'\');">전체</a></li>';
+					$('#ulAllCate').append(html);
+					$('#navNm').show();
+					$('#navNm').text('전체');
+					$('#formTitle').text('전체');
 				}else if(formalGb == 'G009_20'){
-					let html = '<li><a href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\',\'\',\'\',\'\',\'\',\'\',\'' + formalGb + '\');">전체</a></li>';
+					let html = '<li><a';
+					if(gagajf.isNull(cate1No) && gagajf.isNull(cate2No) && gagajf.isNull(cate3No) && gagajf.isNull(cate4No) && gagajf.isNull(cate5No)){
+						html += ' class="on"';
+					}
+					html += ' href="javascript:void(0);" onclick="cfnGoToGoodsList(' + brandGroupNo + ',\'' + cateGb + '\',\'\',\'\',\'\',\'\',\'\',\'' + formalGb + '\');">전체</a></li>';
 					$('#ulAllCate').append(html);
 				}
 
-				$.each(cateList,function (idx,item){
-					$.each(allCateList, function (allIdx, allItem){
-						if(brandGroupNo > 0){
+				if(brandGroupNo > 0){
+					$.each(brandCateList,function (idx,item){
+						$.each(allCateList, function (allIdx, allItem){
 							if(allItem.cate1No==item.cate1No){
-								if(idx<1){
-									$('#ulAllCate').append(fnCreateSearchEngineCategoryList(item));
-								}
+								$('#ulAllCate').append(fnCreateSearchEngineCategoryList(item));
 							}
-						}else{
+						});
+					});
+				}else{
+					$.each(cateList,function (idx,item){
+						$.each(allCateList, function (allIdx, allItem){
 							if(allItem.cate1No==item.cate1No){
 								if(idx<1){
 									$('#ulAllCate').append(fnCreateSearchEngineCategoryList(item));
@@ -509,14 +520,14 @@ console.log(allCateList);
 									$('#ulAllCate').append(html);
 								}
 							}
-						}
+						});
 					});
-				});
-
+				}
 			}
 		}
 
 		var fnCreateSearchEngineCategoryList = function (cate1){
+			console.log('000');
 			var brandGroupNo = [[${cateInfo.brandGroupNo}]];
 			var cateGb =  [[${cateInfo.cateGb}]];
 			var formalGb = [[${cateInfo.formalGb}]];
@@ -847,6 +858,7 @@ console.log(allCateList);
 
 			// result.dataList != null && result.dataList.length > 0
 			if (dataListLen > 0) {
+				idx++;
 				$('.list_content .list_defult').hide();
 				$('.list_content .count_wrap').show();
 				var goodsUrl = [[${@environment.getProperty('upload.goods.view')}]];
@@ -856,18 +868,32 @@ console.log(allCateList);
 				gagaInfiniteScroll.draw(htm);
 				fnImgOnoff();
 			}else {
-				if(totalCnt > Number($("#searchGoodsForm").find("input[name=pageSize]").val())){
-					if($("#searchGoodsForm input[name=pageNo]").val()==1){
-						// 필터 값으로 조회 데이터 없을때
-						$('#noFilterData').show();
-						$('.list_content .count_wrap').hide();
-						$('#endPage').hide();
+				if(idx > 1){ // 데이터가 1건 이상
+					if(totalCnt > Number($("#searchGoodsForm").find("input[name=pageSize]").val())){
+						if($("#searchGoodsForm input[name=pageNo]").val()==1){
+							// 필터 값으로 조회 데이터 없을때
+							$('#noFilterData').show();
+							$('.list_content .count_wrap').hide();
+							$('#endPage').hide();
+						}else{
+							// 마지막 페이지 일때
+							$('#endPage').show();
+							$('#noFilterData').hide();
+							//$('.list_content .count_wrap').hide();
+						}
 					}else{
-						// 마지막 페이지 일때
-						$('#endPage').show();
-						$('#noFilterData').hide();
-						//$('.list_content .count_wrap').hide();
+						if($("#searchGoodsForm input[name=pageNo]").val()==1){
+							// 필터 값으로 조회 데이터 없을때
+							$('#noFilterData').show();
+							$('.list_content .count_wrap').hide();
+							$('#endPage').hide();
+						}
 					}
+				}else{
+					// 필터 값으로 조회 데이터 없을때
+					$('#noFilterData').show();
+					$('.list_content .count_wrap').hide();
+					$('#endPage').hide();
 				}
 
 				gagaInfiniteScroll.draw('not');

+ 9 - 5
src/main/webapp/WEB-INF/views/web/display/CategoryMainFormWeb.html

@@ -29,14 +29,18 @@
 	</div>
 
 	<div class="wrap">
+		<div class="content">
+			<!-- 210623_ 수정 : 페이지 타이틀 분리 -->
+			<div class="cont_head">
+				<div>
+					<h3 class="cate1Nm"></h3>
+				</div>
+			</div>
+		</div>
+
 		<th:block th:if="${cateMainLayoutList}" th:each="mainLayoutData, mainStat : ${cateMainLayoutList}" th:with="contentsLoc=${#strings.replace(mainLayoutData.contentsLoc,'SCM','')},contentsTitle=${mainLayoutData.contentsTitle}">
 			<th:block th:if="${contentsLoc=='001'}">
 				<div class="content dp_submain" > <!-- 페이지특정 클래스 = dp_list -->
-					<div class="cont_head">
-						<div>
-							<h3 class="cate1Nm"></h3>
-						</div>
-					</div>
 					<div class="cont_body" th:if="${planningList != null and !planningList.empty}">
 						<div class="dp_sum_slide dp_inner">
 							<div class="swiper-container">

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

@@ -128,7 +128,7 @@
 															<img alt="BLUE-a" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}" onerror="noneImg(this)">
 														</div>
 														<p class="itemBrand" th:text="${goodsData.brandGroupNm}">BRAND NAME</p>
-														<div class="itemComment" th:text="${goodsData.goodsTnm}">#가을느낌 물씬!</div>
+														<div class="itemComment" th:unless="${goodsData.goodsTnm == null or goodsData.goodsTnm == ''}" th:text="${goodsData.goodsTnm}">#가을느낌 물씬!</div>
 														<div class=" itemName" th:text="${goodsData.goodsFullNm}">스타 착용 여성 퍼 아플리케 오버핏 투마일 웨어링 점퍼</div>
 														<p class="itemPrice" th:text="${#numbers.formatInteger(goodsData.currPrice,1,'COMMA')}">488,000원</p>
 													</a>
@@ -182,7 +182,7 @@
 																<img alt="BLACK-a" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + bestItemData.sysImgNm}" onerror="noneImg(this)">
 															</div>
 															<p class=" itemBrand" th:text="${bestItemData.brandGroupNm}">BRAND NAME</p>
-															<div class="itemComment" th:text="${bestItemData.goodsTnm}">#데일리웨어로 매일입고싶은</div>
+															<div class="itemComment" th:unless="${bestItemData.goodsTnm == null or bestItemData.goodsTnm == ''}" th:text="${bestItemData.goodsTnm}">#데일리웨어로 매일입고싶은</div>
 															<div class=" itemName" th:text="${bestItemData.goodsFullNm}">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
 															<p class="itemPrice">[[${#numbers.formatInteger(bestItemData.currPrice,0,'COMMA')}]]
 																<span class="itemPrice_original" th:if="${bestItemData.currPrice != bestItemData.listPrice}" th:text="${#numbers.formatInteger(bestItemData.listPrice,3,'COMMA')}">89,000</span>
@@ -346,7 +346,7 @@
 																<img alt="" class="pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}" onerror="noneImg(this)">
 															</div>
 															<p class="itemBrand" th:text="${goodsData.brandGroupNm}">BRAND NAME</p>
-															<div class="itemComment" th:text="${goodsData.goodsTnm}">#데일리웨어로 매일입고싶은</div>
+															<div class="itemComment" th:unless="${goodsData.goodsTnm == null or goodsData.goodsTnm == ''}" th:text="${goodsData.goodsTnm}">#데일리웨어로 매일입고싶은</div>
 															<div class="itemName" th:text="${goodsData.goodsNm}">여성 체인 프린트 큐롯 스커트 프린트 큐롯 스커트</div>
 															<p class="itemPrice">
 																[[${#numbers.formatInteger(goodsData.currPrice,0,'COMMA')}]]
@@ -429,7 +429,7 @@
 																	</th:block>
 																	<img alt="BLACK-a" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}" onerror="noneImg(this)">
 																</div>
-																<div class="itemComment" th:text="${goodsData.goodsTnm}">#데일리웨어로 매일입고싶은</div>
+																<div class="itemComment" th:unless="${goodsData.goodsTnm == null or goodsData.goodsTnm == ''}" th:text="${goodsData.goodsTnm}">#데일리웨어로 매일입고싶은</div>
 																<div class=" itemName" th:text="${goodsData.goodsFullNm}">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
 																<p class="itemPrice" th:text="${#numbers.formatInteger(goodsData.currPrice,1,'COMMA')}">80,100
 																	<span class="itemPrice_original" th:if="${goodsData.currPrice != goodsData.listPrice}" th:text="${#numbers.formatInteger(goodsData.listPrice,1,'COMMA')}">89,000</span>
@@ -523,7 +523,7 @@
 																			<img alt="" class=" vLHTC pd_img" th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsData.sysImgNm}" onerror="noneImg(this)">
 																		</div>
 																		<p class="itemBrand" th:text="${goodsData.brandGroupNm}">BRAND NAME</p>
-																		<div class="itemComment" th:text="${goodsData.goodsTnm}">#주문 폭주 상품</div>
+																		<div class="itemComment" th:unless="${goodsData.goodsTnm == null or goodsData.goodsTnm == ''}" th:text="${goodsData.goodsTnm}">#주문 폭주 상품</div>
 																		<div class=" itemName" th:text="${goodsData.goodsFullNm}">남성 로고 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건 자카드 방풍 패딩 스웨터 가디건</div>
 																		<p class="itemPrice">[[${#numbers.formatInteger(goodsData.currPrice,0,'COMMA')}]]
 																			<span class="itemPrice_original" th:if="${goodsData.currPrice != goodsData.listPrice}" th:text="${#numbers.formatInteger(goodsData.listPrice,1,'COMMA')}">89,000</span>

+ 2 - 2
src/main/webapp/WEB-INF/views/web/display/OutletMainFormWeb.html

@@ -110,7 +110,7 @@
 												<span class="itemPrice_original" th:if="${item.currPrice != item.listPrice}" th:text="${#numbers.formatInteger(item.listPrice,3,'COMMA')}">89,000</span>
 												<span class=" itemPercent" th:if="${item.currPrice != item.listPrice}" th:text="${(item.listPrice == 0 ? 0 : #numbers.formatDecimal((item.listPrice - item.currPrice) / (item.listPrice * 1.0) * 100, 1, 0)) + '%'}">10%</span>
 											</p>
-											<div class="itemComment" th:text="${item.goodsTnm}">#주문 폭주 상품</div>
+											<div class="itemComment" th:if="${not #strings.isEmpty(item.goodsTnm)}" th:text="${item.goodsTnm}">#주문 폭주 상품</div>
 										</a>
 									</div>
 								</div>
@@ -164,7 +164,7 @@
 												<span class="badge13" th:if="${idx.index<3}" th:value="${iconArray[0]}" th:text="${iconArray[1]}"></span>
 											</th:block>
 										</p>
-										<div class="itemComment" th:text="${item.goodsTnm}">#주문 폭주 상품</div>
+										<div class="itemComment" th:if="${not #strings.isEmpty(item.goodsTnm)}" th:text="${item.goodsTnm}">#주문 폭주 상품</div>
 									</a>
 								</div>
 							</div>

+ 24 - 21
src/main/webapp/WEB-INF/views/web/display/SearchGoodsListFormWeb.html

@@ -611,6 +611,7 @@
 			}
 
 			if(dataListLen > 0){
+				idx++;
 				$('#noFilterData').hide();
 				$('#endPage').hide();
 				$('#goodsNodata').hide();
@@ -625,30 +626,32 @@
 				gagaInfiniteScroll.draw(htm);
 				//fnImgOnoff();
 			}else{
-				console.log('11');
-				if(totalCnt > Number($("#searchGoodsForm").find("input[name=pageSize]").val())){
-					if($("#searchGoodsForm input[name=pageNo]").val()==1){
-						// 필터 값으로 조회 데이터 없을때
-						$('#noFilterData').show();
-						$('.cont .count_wrap').hide();
-						$('#endPage').hide();
+				// console.log('idx:::'+idx);
+				if(idx > 1){ // 데이터가 1건 이상
+					if(totalCnt > Number($("#searchGoodsForm").find("input[name=pageSize]").val())){
+						if($("#searchGoodsForm input[name=pageNo]").val()==1){
+							// 필터 값으로 조회 데이터 없을때
+							$('#noFilterData').show();
+							$('.cont .count_wrap').hide();
+							$('#endPage').hide();
+						}else{
+							// 마지막 페이지 일때
+							$('#endPage').show();
+							$('#noFilterData').hide();
+						}
 					}else{
-						// 마지막 페이지 일때
-						$('#endPage').show();
-						$('#noFilterData').hide();
+						if($("#searchGoodsForm input[name=pageNo]").val()==1){
+							// 필터 값으로 조회 데이터 없을때
+							$('#noFilterData').show();
+							$('.cont .count_wrap').hide();
+							$('#endPage').hide();
+						}
 					}
 				}else{
-					if($("#searchGoodsForm input[name=pageNo]").val()==1){
-						$('#goodsNodata').show();
-						$('#goodsKeyword').text([[${params.keyword}]]);
-						$('.cont_body .lnb').hide();
-						$('.cont_body .cont').hide();
-					}else{
-						$('#goodsNodata').show();
-						$('#goodsKeyword').text([[${params.keyword}]]);
-						$('.cont_body .lnb').hide();
-						$('.cont_body .cont').hide();
-					}
+					$('#goodsNodata').show();
+					$('#goodsKeyword').text([[${params.keyword}]]);
+					$('.cont_body .lnb').hide();
+					$('.cont_body .cont').hide();
 				}
 				gagaInfiniteScroll.draw('not');
 			}

+ 21 - 6
src/main/webapp/WEB-INF/views/web/planning/PlanningMainFormWeb.html

@@ -23,7 +23,9 @@
 	<div id="container" class="container dp">
 		<div class="breadcrumb"> 
 			<ul>
-				<li class="bread_home"><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MAIN);">홈</a></li>
+				<li class="bread_home" th:if="${brandGroupInfo==null}"><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MAIN);">홈</a></li>
+				<li class="bread_home" th:unless="${brandGroupInfo==null}"><a href="javascript:void(0);" th:onclick="cfnGoToBrandMain([[${brandGroupInfo.brandGroupNo}]]);">홈</a></li>
+				<li class="bread_home" th:unless="${brandGroupInfo==null}" th:text="${brandGroupInfo.brandGroupNm}"></li>
 				<li class="bread_2depth">기획전</li>
 			</ul> 
 		</div>
@@ -38,8 +40,10 @@
 					<div class="taps">
 						<div>
 							<ul>
-								<li th:class="${cateNo == null ? 'active' : ''}"><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_PLANNING_MAIN);">전체</a></li>
-								<li th:each="oneData, stat : ${cateList}" th:class="${oneData.cateNo == cateNo ? 'active' : '' }" ><a href="javascript:void(0);" th:onclick="|cfnGoToPage(_PAGE_PLANNING_MAIN + '?cateNo=${oneData.cateNo}');|">[[${oneData.cateNm}]]</a></li>
+								<li th:if="${brandGroupInfo==null}" th:class="${cateNo == null ? 'active' : ''}"><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_PLANNING_MAIN);">전체</a></li>
+								<li th:unless="${brandGroupInfo==null}" th:class="${cateNo == null ? 'active' : ''}"><a href="javascript:void(0);" th:onclick="|cfnGoToPage(_PAGE_PLANNING_MAIN + '?brandGroupNo=${brandGroupInfo.brandGroupNo}');|">전체</a></li>
+								<li th:if="${brandGroupInfo==null}" th:each="oneData, stat : ${cateList}" th:class="${oneData.cateNo == cateNo ? 'active' : '' }" ><a href="javascript:void(0);" th:onclick="|cfnGoToPage(_PAGE_PLANNING_MAIN + '?cateNo=${oneData.cateNo}');|">[[${oneData.cateNm}]]</a></li>
+								<li th:unless="${brandGroupInfo==null}" th:each="oneData, stat : ${cateList}" th:class="${oneData.cateNo == cateNo ? 'active' : '' }" ><a href="javascript:void(0);" th:onclick="|cfnGoToPage(_PAGE_PLANNING_MAIN + '?cateNo=${oneData.cateNo}' + '&brandGroupNo=${brandGroupInfo.brandGroupNo}');|">[[${oneData.cateNm}]]</a></li>
 							</ul>
 						</div>
 					</div>
@@ -54,7 +58,8 @@
 								<p>등록된 기획전이 없습니다.</p>
 							</div>
 							<div class="btn_box">
-								<button class="btn btn_default" onclick="cfnGoToPage(_PAGE_MAIN);"><span>메인으로 가기</span></button>
+								<button class="btn btn_default" th:if="${brandGroupInfo==null}" onclick="cfnGoToPage(_PAGE_MAIN);"><span>메인으로 가기</span></button>
+								<button class="btn btn_default" th:unless="${brandGroupInfo==null}" th:onclick="cfnGoToBrandMain([[${brandGroupInfo.brandGroupNo}]]);"><span th:text="${brandGroupInfo.brandGroupNm+' 홈으로 가기'}"></span></button>
 							</div>
 						</div>
 					</div> 
@@ -116,7 +121,13 @@
 	let fnGetPlanningList = function(cateNo,brandGroupNo) {
 		let actionUrl = '/planning/main/list';
 		if (!gagajf.isNull(cateNo)) actionUrl += '?cateNo=' + cateNo;
-		if (!gagajf.isNull(brandGroupNo)) actionUrl += '?brandGroupNo=' + brandGroupNo;
+		if (!gagajf.isNull(brandGroupNo)){
+			if (!gagajf.isNull(cateNo)){
+				actionUrl += '&brandGroupNo=' + brandGroupNo;
+			}else{
+				actionUrl += '?brandGroupNo=' + brandGroupNo;
+			}
+		}
 		
 		$.getJSON(actionUrl	, function(result, status) {
 				if (status == 'success') {
@@ -133,7 +144,11 @@
 						$.each(result, function(idx, item) {
 						    tag += '  <div class="exhi_item">\n';
 						    tag += '       <div class="exhi_item_img">\n';
-						    tag += '           <a href= "javascript:void(0);" onclick="cfnGoToPlanDetail(\'' + item.planSq + '\')">\n';
+						    if(!gagajf.isNull(brandGroupNo)){
+								tag += '           <a href= "javascript:void(0);" onclick="cfnGoToPlanDetail(\'' + item.planSq + '\',\'' + brandGroupNo + '\')">\n';
+							}else{
+								tag += '           <a href= "javascript:void(0);" onclick="cfnGoToPlanDetail(\'' + item.planSq + '\')">\n';
+							}
                             if (item.newYn == 'Y') {
 						    	tag += '				<div class="shape ranker"><span>NEW</span></div>\n';
 						    }

+ 3 - 3
src/main/webapp/biz/goods.js

@@ -797,9 +797,9 @@ var fnSortingChange = function (obj, sortingType, stat, appGb){
 	console.log('here sort');
 	fnCategoryGoodsInfiniteScrollInit();
 	if(stat != 'back'){
-		if($("#searchGoodsForm input[name=sortingType]").val()==sortingType){
-			return;
-		}
+		// if($("#searchGoodsForm input[name=sortingType]").val()==sortingType){
+		// 	return;
+		// }
 	}
 
 	if(appGb != 'Mob'){

+ 3 - 3
src/main/webapp/biz/search.js

@@ -439,9 +439,9 @@ var fnDeleteFilter = function (obj, gubun, staus, sizeGb){
 var fnSortingChange = function (obj, sortingType, stat, appGb){
 	fnCategoryGoodsInfiniteScrollInit();
 	if(stat != 'back'){
-		if($("#searchGoodsForm input[name=sortingType]").val()==sortingType){
-			return;
-		}
+		// if($("#searchGoodsForm input[name=sortingType]").val()==sortingType){
+		// 	return;
+		// }
 	}
 
 	if(appGb != 'Mob'){

+ 10 - 10
src/main/webapp/ux/mo/css/common_m.css

@@ -5,65 +5,65 @@
     font-family: 'Noto Sans KR';
     font-style: normal;
     font-weight: 100;
-    src: url("//image.istyle24.com/Style24/ux//fonts/NotoSansKR-Thin.otf") format('opentype');
+    src: url("//image.istyle24.com/Style24/ux/fonts/NotoSansKR-Thin.otf") format('opentype');
   }
   @font-face {
     font-family: 'Noto Sans KR';
     font-style: normal;
     font-weight: 200;
-    src: url("//image.istyle24.com/Style24/ux//fonts/NotoSansKR-Light.otf") format('opentype');
+    src: url("//image.istyle24.com/Style24/ux/fonts/NotoSansKR-Light.otf") format('opentype');
   }
   @font-face {
      font-family: 'Noto Sans KR';
      font-style: normal;
      font-weight: 300;
-     src: url("//image.istyle24.com/Style24/ux//fonts/NotoSansKR-Regular.otf") format('opentype');
+     src: url("//image.istyle24.com/Style24/ux/fonts/NotoSansKR-Regular.otf") format('opentype');
    }
   @font-face {
      font-family: 'Noto Sans KR';
      font-style: normal;
      font-weight: 500;
-     src: url("//image.istyle24.com/Style24/ux//fonts/NotoSansKR-Medium.otf") format('opentype');
+     src: url("//image.istyle24.com/Style24/ux/fonts/NotoSansKR-Medium.otf") format('opentype');
    }
   @font-face {
      font-family: 'Noto Sans KR';
      font-style: normal;
      font-weight: 600;
-     src:  url("//image.istyle24.com/Style24/ux//fonts/NotoSansKR-Bold.otf") format('opentype');
+     src:  url("//image.istyle24.com/Style24/ux/fonts/NotoSansKR-Bold.otf") format('opentype');
    }
   @font-face {
     font-family: 'Noto Sans KR';
     font-style: normal;
     font-weight: 900;
-    src: url("//image.istyle24.com/Style24/ux//fonts/NotoSansKR-Black.otf") format('opentype');
+    src: url("//image.istyle24.com/Style24/ux/fonts/NotoSansKR-Black.otf") format('opentype');
   } 
  
 /* lato */
 @font-face {
     font-family: 'LATO';
     src: 
-    url("//image.istyle24.com/Style24/ux//fonts/Lato-Light.eot") format('eot'), url("//image.istyle24.com/Style24/ux//fonts/Lato-Light.woff") format('woff'), url("//image.istyle24.com/Style24/ux//fonts/Lato-Light.ttf") format('ttf');
+    url("//image.istyle24.com/Style24/ux/fonts/Lato-Light.eot") format('eot'), url("//image.istyle24.com/Style24/ux/fonts/Lato-Light.woff") format('woff'), url("//image.istyle24.com/Style24/ux/fonts/Lato-Light.ttf") format('ttf');
     font-weight: 200;
     font-style: normal;
 }
 @font-face {
     font-family: 'LATO';
     src: 
-    url("//image.istyle24.com/Style24/ux//fonts/Lato-Regular.eot") format('eot'), url("//image.istyle24.com/Style24/ux//fonts/Lato-Regular.woff") format('woff'), url("//image.istyle24.com/Style24/ux//fonts/Lato-Regular.ttf") format('ttf');
+    url("//image.istyle24.com/Style24/ux/fonts/Lato-Regular.eot") format('eot'), url("//image.istyle24.com/Style24/ux/fonts/Lato-Regular.woff") format('woff'), url("//image.istyle24.com/Style24/ux/fonts/Lato-Regular.ttf") format('ttf');
     font-weight: 300;
     font-style: normal;
 }
 @font-face {
     font-family: 'LATO';
     src: 
-    url("//image.istyle24.com/Style24/ux//fonts/Lato-Medium.eot") format('eot'), url("//image.istyle24.com/Style24/ux//fonts/Lato-Medium.woff") format('woff'), url("//image.istyle24.com/Style24/ux//fonts/Lato-Medium.ttf") format('ttf');
+    url("//image.istyle24.com/Style24/ux/fonts/Lato-Medium.eot") format('eot'), url("//image.istyle24.com/Style24/ux/fonts/Lato-Medium.woff") format('woff'), url("//image.istyle24.com/Style24/ux/fonts/Lato-Medium.ttf") format('ttf');
     font-weight: 500;
     font-style: normal;
 }
 @font-face {
     font-family: 'LATO';
     src: 
-    url("//image.istyle24.com/Style24/ux//fonts/Lato-Semibold.eot") format('eot'), url("//image.istyle24.com/Style24/ux//fonts/Lato-Semibold.woff") format('woff'), url("//image.istyle24.com/Style24/ux//fonts/Lato-Semibold.ttf") format('ttf');
+    url("//image.istyle24.com/Style24/ux/fonts/Lato-Semibold.eot") format('eot'), url("//image.istyle24.com/Style24/ux/fonts/Lato-Semibold.woff") format('woff'), url("//image.istyle24.com/Style24/ux/fonts/Lato-Semibold.ttf") format('ttf');
     font-weight: 600;
     font-style: normal;
 }

+ 33 - 33
src/main/webapp/ux/pc/css/font.css

@@ -4,94 +4,94 @@
     font-family: 'Noto Sans KR';
     font-style: normal;
     font-weight: 100;
-    src: url("//image.istyle24.com/Style24/ux//fonts/NotoSansKR-Thin.woff2") format('woff2');
-    src: url("//image.istyle24.com/Style24/ux//fonts/NotoSansKR-Thin.woff") format('woff');
-    src: url("//image.istyle24.com/Style24/ux//fonts/NotoSansKR-Thin.otf") format('opentype');
+    src: url("//image.istyle24.com/Style24/ux/fonts/NotoSansKR-Thin.woff2") format('woff2');
+    src: url("//image.istyle24.com/Style24/ux/fonts/NotoSansKR-Thin.woff") format('woff');
+    src: url("//image.istyle24.com/Style24/ux/fonts/NotoSansKR-Thin.otf") format('opentype');
 }
   @font-face {
     font-family: 'Noto Sans KR';
     font-style: normal;
     font-weight: 200;
-    src: url("//image.istyle24.com/Style24/ux//fonts/NotoSansKR-Light.woff2") format('woff2');
-    src: url("//image.istyle24.com/Style24/ux//fonts/NotoSansKR-Light.woff") format('woff');
-    src: url("//image.istyle24.com/Style24/ux//fonts/NotoSansKR-Light.otf") format('opentype');
+    src: url("//image.istyle24.com/Style24/ux/fonts/NotoSansKR-Light.woff2") format('woff2');
+    src: url("//image.istyle24.com/Style24/ux/fonts/NotoSansKR-Light.woff") format('woff');
+    src: url("//image.istyle24.com/Style24/ux/fonts/NotoSansKR-Light.otf") format('opentype');
   }
   @font-face {
      font-family: 'Noto Sans KR';
      font-style: normal;
      font-weight: 300;
-     src: url("//image.istyle24.com/Style24/ux//fonts/NotoSansKR-Regular.woff2") format('woff2');
-     src: url("//image.istyle24.com/Style24/ux//fonts/NotoSansKR-Regular.woff") format('woff');
-     src: url("//image.istyle24.com/Style24/ux//fonts/NotoSansKR-Regular.otf") format('opentype');
+     src: url("//image.istyle24.com/Style24/ux/fonts/NotoSansKR-Regular.woff2") format('woff2');
+     src: url("//image.istyle24.com/Style24/ux/fonts/NotoSansKR-Regular.woff") format('woff');
+     src: url("//image.istyle24.com/Style24/ux/fonts/NotoSansKR-Regular.otf") format('opentype');
    }
   @font-face {
      font-family: 'Noto Sans KR';
      font-style: normal;
      font-weight: 500;
-     src: url("//image.istyle24.com/Style24/ux//fonts/NotoSansKR-Medium.woff2") format('woff2');
-     src: url("//image.istyle24.com/Style24/ux//fonts/NotoSansKR-Medium.woff") format('woff');
-     src: url("//image.istyle24.com/Style24/ux//fonts/NotoSansKR-Medium.otf") format('opentype');
+     src: url("//image.istyle24.com/Style24/ux/fonts/NotoSansKR-Medium.woff2") format('woff2');
+     src: url("//image.istyle24.com/Style24/ux/fonts/NotoSansKR-Medium.woff") format('woff');
+     src: url("//image.istyle24.com/Style24/ux/fonts/NotoSansKR-Medium.otf") format('opentype');
    }
   @font-face {
      font-family: 'Noto Sans KR';
      font-style: normal;
      font-weight: 600;
-     src:  url("//image.istyle24.com/Style24/ux//fonts/NotoSansKR-Bold.woff2") format('woff2');
-     src:  url("//image.istyle24.com/Style24/ux//fonts/NotoSansKR-Bold.woff") format('woff');
-     src:  url("//image.istyle24.com/Style24/ux//fonts/NotoSansKR-Bold.otf") format('opentype');
+     src:  url("//image.istyle24.com/Style24/ux/fonts/NotoSansKR-Bold.woff2") format('woff2');
+     src:  url("//image.istyle24.com/Style24/ux/fonts/NotoSansKR-Bold.woff") format('woff');
+     src:  url("//image.istyle24.com/Style24/ux/fonts/NotoSansKR-Bold.otf") format('opentype');
    }
   @font-face {
     font-family: 'Noto Sans KR';
     font-style: normal;
     font-weight: 900;
-    src: url("//image.istyle24.com/Style24/ux//fonts/NotoSansKR-Black.woff2") format('woff2');
-    src: url("//image.istyle24.com/Style24/ux//fonts/NotoSansKR-Black.woff") format('woff');
-    src: url("//image.istyle24.com/Style24/ux//fonts/NotoSansKR-Black.otf") format('opentype');
+    src: url("//image.istyle24.com/Style24/ux/fonts/NotoSansKR-Black.woff2") format('woff2');
+    src: url("//image.istyle24.com/Style24/ux/fonts/NotoSansKR-Black.woff") format('woff');
+    src: url("//image.istyle24.com/Style24/ux/fonts/NotoSansKR-Black.otf") format('opentype');
   } 
  
 /* lato */
 @font-face {
     font-family: 'LATO';
     src: 
-    url("//image.istyle24.com/Style24/ux//fonts/Lato-Light.eot") format('eot'),
-    url("//image.istyle24.com/Style24/ux//fonts/Lato-Light.woff") format('woff'),
-    url("//image.istyle24.com/Style24/ux//fonts/Lato-Light.ttf") format('ttf');
+    url("//image.istyle24.com/Style24/ux/fonts/Lato-Light.eot") format('eot'),
+    url("//image.istyle24.com/Style24/ux/fonts/Lato-Light.woff") format('woff'),
+    url("//image.istyle24.com/Style24/ux/fonts/Lato-Light.ttf") format('ttf');
     font-weight: 200;
     font-style: normal;
 }
 @font-face {
     font-family: 'LATO';
     src: 
-    url("//image.istyle24.com/Style24/ux//fonts/Lato-Regular.eot") format('eot'),
-    url("//image.istyle24.com/Style24/ux//fonts/Lato-Regular.woff") format('woff'),
-    url("//image.istyle24.com/Style24/ux//fonts/Lato-Regular.ttf") format('ttf');
+    url("//image.istyle24.com/Style24/ux/fonts/Lato-Regular.eot") format('eot'),
+    url("//image.istyle24.com/Style24/ux/fonts/Lato-Regular.woff") format('woff'),
+    url("//image.istyle24.com/Style24/ux/fonts/Lato-Regular.ttf") format('ttf');
     font-weight: 300;
     font-style: normal;
 }
 @font-face {
     font-family: 'LATO';
     src: 
-    url("//image.istyle24.com/Style24/ux//fonts/Lato-Medium.eot") format('eot'),
-    url("//image.istyle24.com/Style24/ux//fonts/Lato-Medium.woff") format('woff'),
-    url("//image.istyle24.com/Style24/ux//fonts/Lato-Medium.ttf") format('ttf');
+    url("//image.istyle24.com/Style24/ux/fonts/Lato-Medium.eot") format('eot'),
+    url("//image.istyle24.com/Style24/ux/fonts/Lato-Medium.woff") format('woff'),
+    url("//image.istyle24.com/Style24/ux/fonts/Lato-Medium.ttf") format('ttf');
     font-weight: 500;
     font-style: normal;
 }
 @font-face {
     font-family: 'LATO';
     src: 
-    url("//image.istyle24.com/Style24/ux//fonts/Lato-Semibold.eot") format('eot'),
-    url("//image.istyle24.com/Style24/ux//fonts/Lato-Semibold.woff") format('woff'),
-    url("//image.istyle24.com/Style24/ux//fonts/Lato-Semibold.ttf") format('ttf');
+    url("//image.istyle24.com/Style24/ux/fonts/Lato-Semibold.eot") format('eot'),
+    url("//image.istyle24.com/Style24/ux/fonts/Lato-Semibold.woff") format('woff'),
+    url("//image.istyle24.com/Style24/ux/fonts/Lato-Semibold.ttf") format('ttf');
     font-weight: 600;
     font-style: normal;
 }
 @font-face {
     font-family: 'LATO';
     src: 
-    url("//image.istyle24.com/Style24/ux//fonts/Lato-Bold.eot") format('eot'),
-    url("//image.istyle24.com/Style24/ux//fonts/Lato-Bold.woff") format('woff'),
-    url("//image.istyle24.com/Style24/ux//fonts/Lato-Bold.ttf") format('ttf');
+    url("//image.istyle24.com/Style24/ux/fonts/Lato-Bold.eot") format('eot'),
+    url("//image.istyle24.com/Style24/ux/fonts/Lato-Bold.woff") format('woff'),
+    url("//image.istyle24.com/Style24/ux/fonts/Lato-Bold.ttf") format('ttf');
     font-weight: 700;
     font-style: normal;
 }