Просмотр исходного кода

Merge branch 'develop' of http://112.172.147.34:4936/style24/style24.front into develop

jsshin 5 лет назад
Родитель
Сommit
1c4f2d9ab2
27 измененных файлов с 354 добавлено и 145 удалено
  1. 10 2
      src/main/java/com/style24/front/biz/dao/TsfCommonDao.java
  2. 13 5
      src/main/java/com/style24/front/biz/service/TsfCartService.java
  3. 12 5
      src/main/java/com/style24/front/biz/service/TsfCommonService.java
  4. 1 0
      src/main/java/com/style24/front/biz/service/TsfDisplayService.java
  5. 11 14
      src/main/java/com/style24/front/biz/thirdparty/SearchEngineDiquest.java
  6. 37 9
      src/main/java/com/style24/front/biz/web/TsfDisplayController.java
  7. 3 1
      src/main/java/com/style24/front/biz/web/TsfOrderController.java
  8. 1 0
      src/main/java/com/style24/persistence/domain/Contents.java
  9. 22 21
      src/main/java/com/style24/persistence/domain/searchengine/GoodsListResponse.java
  10. 9 0
      src/main/java/com/style24/persistence/mybatis/shop/TsfCommon.xml
  11. 75 37
      src/main/java/com/style24/persistence/mybatis/shop/TsfDisplay.xml
  12. 1 8
      src/main/java/com/style24/persistence/mybatis/shop/TsfGoods.xml
  13. 1 1
      src/main/webapp/WEB-INF/views/mob/common/fragments/GnbMob.html
  14. 1 0
      src/main/webapp/WEB-INF/views/mob/display/LookbookDetailFormMob.html
  15. 3 0
      src/main/webapp/WEB-INF/views/mob/display/MallMainFormMob.html
  16. 5 0
      src/main/webapp/WEB-INF/views/mob/goods/GoodsDealDetailFormMob.html
  17. 12 2
      src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailFormMob.html
  18. 5 4
      src/main/webapp/WEB-INF/views/mob/goods/GoodsSizeInfoFormMob.html
  19. 12 0
      src/main/webapp/WEB-INF/views/mob/order/OrderFormMob.html
  20. 46 12
      src/main/webapp/WEB-INF/views/mob/order/OrderGiftInfoMob.html
  21. 26 1
      src/main/webapp/WEB-INF/views/web/common/fragments/FooterWeb.html
  22. 3 2
      src/main/webapp/WEB-INF/views/web/display/CategoryMainFormWeb.html
  23. 1 0
      src/main/webapp/WEB-INF/views/web/display/LookbookDetailFormWeb.html
  24. 28 7
      src/main/webapp/WEB-INF/views/web/display/SearchGoodsListFormWeb.html
  25. 1 1
      src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html
  26. 7 5
      src/main/webapp/WEB-INF/views/web/goods/GoodsSizeInfoFormWeb.html
  27. 8 8
      src/main/webapp/ux/style24_link.js

+ 10 - 2
src/main/java/com/style24/front/biz/dao/TsfCommonDao.java

@@ -62,7 +62,7 @@ public interface TsfCommonDao {
 //	 * @since 2020. 08. 10
 //	 */
 //	void saveMobileDevice(TsfMobileDevice mobileDevice);
-	
+
 	/**
 	 * 주문배송지정보수정
 	 *
@@ -72,7 +72,7 @@ public interface TsfCommonDao {
 	 * @since 2021. 04. 02
 	 */
 	int updateDeliverAddr(Order order);
-	
+
 	/**
 	 * 주문배송지정보수정
 	 *
@@ -83,4 +83,12 @@ public interface TsfCommonDao {
 	 */
 	int updateDeliverAddrDelvMemo(Order order);
 
+	/**
+	 * 검색엔진 연동 여부
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 6. 3
+	 */
+	String getSearchEngineSyncYn();
+
 }

+ 13 - 5
src/main/java/com/style24/front/biz/service/TsfCartService.java

@@ -82,6 +82,8 @@ public class TsfCartService {
 			login.setCustGrade("G110");
 		}
 
+		result.put("custNo", login.getCustNo());
+
 		String goodsType = params.iterator().next().getGoodsType();
 		String cartGb = params.iterator().next().getCartGb();
 		if(StringUtils.isEmpty(goodsType)) {
@@ -281,7 +283,6 @@ public class TsfCartService {
 		result.put("goodsType", goodsType);
 		result.put("cartGb", cartGb);
 		result.put("message", "SUCCESS");
-		result.put("custNo", login.getCustNo());
 
 		return result;
 	}
@@ -319,6 +320,7 @@ public class TsfCartService {
 		}
 
 		cart.setJsessionId(TscSession.getSessionId());
+		boolean chkGoOrderForm = false;
 
 		List<String> sendCartSqList = new ArrayList<String>();
 		for (Cart carts : params) {
@@ -363,7 +365,11 @@ public class TsfCartService {
 				} else {
 					cart.setCartGb(TscConstants.CartGb.MOB_ORDER.value());
 				}
+				if("O".equals(cartInfos.iterator().next().getCartGb())) {
+					chkGoOrderForm = true;
+				}
 			} else if (!StringUtils.isEmpty(cartInfos.iterator().next().getCartGb()) && "G".equals(cartInfos.iterator().next().getCartGb())) {
+				chkGoOrderForm = true;
 				cart.setCartGb(TscConstants.CartGb.GIFT.value());
 			} else {
 				cart.setCartGb(TscConstants.CartGb.CREATE_ORDER.value());
@@ -408,8 +414,9 @@ public class TsfCartService {
 			cartSqComma.append(cartSq);
 			i++;
 		}
-
-		TsfSession.setAttribute("cartSqArr", cartSqComma.toString());
+		if(chkGoOrderForm) {
+			TsfSession.setAttribute("cartSqArr", cartSqComma.toString());
+		}
 	}
 
 	@Transactional("shopTxnManager")
@@ -483,8 +490,9 @@ public class TsfCartService {
 			cartSqComma.append(cartSq);
 			i++;
 		}
-
-		TsfSession.setAttribute("cartSqArr", cartSqComma.toString());
+		if (!StringUtils.isEmpty(params.iterator().next().getCartGb()) && ("O".equals(params.iterator().next().getCartGb()) || "G".equals(params.iterator().next().getCartGb()))) {
+			TsfSession.setAttribute("cartSqArr", cartSqComma.toString());
+		}
 	}
 
 	// 장바구니 상품 리스트 조회 서비스

+ 12 - 5
src/main/java/com/style24/front/biz/service/TsfCommonService.java

@@ -84,7 +84,7 @@ public class TsfCommonService {
 //	public void saveMobileDevice(TsfMobileDevice mobileDevice) {
 //		commonDao.saveMobileDevice(mobileDevice);
 //	}
-	
+
 	/**
 	 * 주문배송지정보수정
 	 *
@@ -97,7 +97,7 @@ public class TsfCommonService {
 	public int updateDeliverAddr(Order order) {
 		return commonDao.updateDeliverAddr(order);
 	}
-	
+
 	/**
 	 * 주문배송지정보수정
 	 *
@@ -110,8 +110,15 @@ public class TsfCommonService {
 	public int updateDeliverAddrDelvMemo(Order order) {
 		return commonDao.updateDeliverAddrDelvMemo(order);
 	}
-	
-	
-	
+
+	/**
+	 * 검색엔진 연동 여부
+	 * @return
+	 * @author gagamel
+	 * @since 2021. 6. 3
+	 */
+	public String getSearchEngineSyncYn() {
+		return commonDao.getSearchEngineSyncYn();
+	}
 
 }

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

@@ -411,6 +411,7 @@ public class TsfDisplayService {
 			tempContents.setMaxRow(20);
 			tempContents.setCustNo(TsfSession.isLogin() ? TsfSession.getInfo().getCustNo() : 0);
 			if ("SMM007".equals(data.getContentsLoc())) {
+				data.setFrontGb(TsfSession.getFrontGb());
 				data.setBannerList(displayDao.getContentsBannerList(data));
 			}
 			data.setGoodsList(goodsDao.getContentsCategoryGoodsList(tempContents));

+ 11 - 14
src/main/java/com/style24/front/biz/thirdparty/SearchEngineDiquest.java

@@ -16,11 +16,11 @@ import com.diquest.ir.common.exception.IRException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.gson.Gson;
 import com.style24.front.biz.dao.TsfDisplayDao;
-import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.domain.Cate1;
 import com.style24.persistence.domain.searchengine.CateResponse;
 import com.style24.persistence.domain.searchengine.Filter;
 import com.style24.persistence.domain.searchengine.FilterResponse;
+import com.style24.persistence.domain.searchengine.GoodsListResponse;
 import com.style24.persistence.domain.searchengine.SearchEngine;
 
 import istyle.AutoSearch;
@@ -102,7 +102,6 @@ public class SearchEngineDiquest {
 		paramMap.put("adminPort", port);
 //		paramMap.put("cate1No", 1300);
 //		paramMap.put("brandGroupNo", 0);
-		paramMap.put("frontGb", TsfSession.getFrontGb());
 //		paramMap.put("keyword", "키즈");
 //		paramMap.put("formalGb", "G009_20");
 
@@ -144,7 +143,6 @@ public class SearchEngineDiquest {
 		Map<String, Object> paramMap = this.convertObjectToMap(params);
 		paramMap.put("adminIp", ipAddr);
 		paramMap.put("adminPort", port);
-		paramMap.put("frontGb", TsfSession.getFrontGb());
 		log.info("///[getFilterList] paramMap: {}", paramMap);
 
 		try {
@@ -172,25 +170,24 @@ public class SearchEngineDiquest {
 	 * @author gagamel
 	 * @since 2021. 5. 31
 	 */
-	@SuppressWarnings("unchecked")
-	public SearchEngine getGoodsList(SearchEngine params) {
-		SearchEngine result = new SearchEngine();
+	public GoodsListResponse getGoodsList(SearchEngine params) {
+		GoodsListResponse result = new GoodsListResponse();
 
 		Map<String, Object> paramMap = this.convertObjectToMap(params);
 		paramMap.put("adminIp", ipAddr);
 		paramMap.put("adminPort", port);
-		log.info("{}", paramMap);
+		paramMap.put("pageNumber", "1");
+		paramMap.put("rowsPerPage", "30");
+		log.info("///[getGoodsList] paramMap: {}", paramMap);
 
 		try {
 			JSONObject jsonObj = SearchService.getGoodsList(paramMap);
-			log.info("jsonObj.toJSONString(): {}", jsonObj.toJSONString());
+			log.info("///[getGoodsList] jsonObj: {}", jsonObj.toJSONString());
 
-			Gson gson = new Gson();
-			Map<String, Object> resMap = gson.fromJson(jsonObj.toJSONString(), Map.class);
-			log.info("{}", resMap);
-
-			if (resMap.get("returnCode").equals("1")) { // 성공
-				result = gson.fromJson(resMap.get("response").toString(), SearchEngine.class);
+			if (jsonObj.get("returnCode").toString().equals("1")) { // 성공
+				Gson gson = new Gson();
+				result = gson.fromJson(jsonObj.toJSONString(), GoodsListResponse.class);
+				log.info("///[getGoodsList] result: {}", result);
 			}
 		} catch (Exception e) {
 			e.printStackTrace();

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

@@ -25,6 +25,7 @@ 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;
@@ -47,6 +48,7 @@ import com.style24.persistence.domain.Plan;
 import com.style24.persistence.domain.Popup;
 import com.style24.persistence.domain.Social;
 import com.style24.persistence.domain.searchengine.Filter;
+import com.style24.persistence.domain.searchengine.GoodsListResponse;
 import com.style24.persistence.domain.searchengine.SearchEngine;
 
 import lombok.extern.slf4j.Slf4j;
@@ -89,6 +91,9 @@ public class TsfDisplayController extends TsfBaseController {
 	@Autowired
 	private SearchEngineDiquest diquest;
 
+	@Autowired
+	private TsfCommonService commonService;
+
 	/**
 	 * PC보기. 모바일에서 <PC> 형태로 볼 때
 	 * @return
@@ -948,18 +953,29 @@ public class TsfDisplayController extends TsfBaseController {
 		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);
 
-		// 상품검색키워드 카테고리 목록
-		mav.addObject("cateList", diquest.getCategoryList(params));
-//		mav.addObject("cateList", displayService.getKeywordCategoryList(params.getKeyword()));
+		Collection<Filter> filterList = new ArrayList<Filter>();
 
-		// 상품리스트 카테고리별 필터 목록
-		Collection<Filter> filterList = diquest.getFilterList(params);
-//		Collection<Filter> filterList = displayService.getSearchGoodsListCategoryFilterList(params);
+		// 검색엔진 연동 여부
+		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"));
@@ -994,10 +1010,22 @@ public class TsfDisplayController extends TsfBaseController {
 		params.setFrontGb(TsfSession.getFrontGb());
 		params.setCustGb(TsfSession.getCustGb());
 
-		pageable.setTotalCount(goodsService.getSearchGoodsCount(params));
-		params.setPageable(pageable);
+		Collection<SearchEngine> dataList = new ArrayList<SearchEngine>();
+
+		// 검색엔진 연동 여부
+		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", goodsService.getSearchGoodsList(params));
+		result.set("dataList", dataList);
 
 		return result;
 	}

+ 3 - 1
src/main/java/com/style24/front/biz/web/TsfOrderController.java

@@ -83,7 +83,8 @@ public class TsfOrderController extends TsfBaseController {
 	public ModelAndView orderNoMember(Order order, @RequestParam(value = "sEncData", required = false) String sEncData
 			, @RequestParam(value = "authMethod", required = false) String authMethod) {
 		ModelAndView mav = new ModelAndView();
-		
+		TsfSession.removeAtrribute("cartSqArr");		// 2021.06.03 주문서 접근시 장바구니 등록 세션 제거
+
 		// 비회원 주문시 로직 정리
 		// @ WEB 인 경우에는 고객정보 입력 화면 후 주문서 이동 후 본인인중
 		// @ WEB 의 경우에는 입력한 고객정보와 인증받은 고객정보가 다른경우 고객정보 업데이트
@@ -479,6 +480,7 @@ public class TsfOrderController extends TsfBaseController {
 		ModelAndView mav = new ModelAndView();
 		mav.addObject("order"				, order);									// 파라미터
 		mav.addObject("isLogin"				, TsfSession.isLogin());					// 로그인여부
+		mav.addObject("frontGb"				, TsfSession.getFrontGb());					// 디바이스구분
 		mav.setViewName(super.getDeviceViewName("order/OrderGiftInfo"));
 		
 		return mav;

+ 1 - 0
src/main/java/com/style24/persistence/domain/Contents.java

@@ -75,6 +75,7 @@ public class Contents extends TscBaseDomain {
 	private String bannerGb;		// admin:수동설정, plan:기획전
 
 	private String pageGb;	// 호출페이지 구분(MALL:몰메인, BEST:베스트메인)
+	private String frontGb; // 몰메인 브랜드픽에서 사용
 
 	//private String contentsTitle;		// 메인 타이틀(md가 설정한)
 

+ 22 - 21
src/main/java/com/style24/persistence/domain/searchengine/GoodsListResponse.java

@@ -17,26 +17,27 @@ public class GoodsListResponse implements Serializable {
 
 	private Integer returnCode;				// 응답코드(양수: 정상, 음수: 오류)
 	private int totalCount;					// 상품전체건수
-	private Collection<Goods> response;
-
-	@Data
-	public class Goods {
-		private String brandGroupNm;	// 브랜드그룹명
-		private String goodsCd;			// 상품코드
-		private String goodsFullNm;		// 상품FULL명
-		private String goodsTnm;		// 상품타이틀명
-		private int listPrice;			// 정상가
-		private int currPrice;			// 현재판매가(=혜택가)
-		private String sysImgNm;		// 상품시스템파일명(썸네일 기본 이미지)
-		private String sysImgNm2;		// 상품시스템파일명2(썸네일 마우스오버 이미지)
-		private String videos;			// 동영상들(,로 연결된 문자열. 동영상구분:미디어컨텐츠 또는 유튜브동영상ID, ...)
-		private String colorChips;		// 컬러칩들(,로 연결된 문자열. 색상코드:컬러칩, ...)
-		private String sizes;			// 사이즈들(,로 연결된 문자열. 사이즈코드:품절여부, ...)
-		private String benefits;		// 혜택들(,로 연결된 문자열. 혜택구분:혜택명, ...)
-
-		private String likeIt;			// 좋아요(위시리스트에담긴상품)
-		private String mainColorCd;		// 메인컬러
-		private String selfGoodsYn;		// 자사상품여부
-	}
+	private Collection<SearchEngine> response;
+//	private Collection<Goods> response;
+//
+//	@Data
+//	public class Goods {
+//		private String brandGroupNm;	// 브랜드그룹명
+//		private String goodsCd;			// 상품코드
+//		private String goodsFullNm;		// 상품FULL명
+//		private String goodsTnm;		// 상품타이틀명
+//		private int listPrice;			// 정상가
+//		private int currPrice;			// 현재판매가(=혜택가)
+//		private String sysImgNm;		// 상품시스템파일명(썸네일 기본 이미지)
+//		private String sysImgNm2;		// 상품시스템파일명2(썸네일 마우스오버 이미지)
+//		private String videos;			// 동영상들(,로 연결된 문자열. 동영상구분:미디어컨텐츠 또는 유튜브동영상ID, ...)
+//		private String colorChips;		// 컬러칩들(,로 연결된 문자열. 색상코드:컬러칩, ...)
+//		private String sizes;			// 사이즈들(,로 연결된 문자열. 사이즈코드:품절여부, ...)
+//		private String benefits;		// 혜택들(,로 연결된 문자열. 혜택구분:혜택명, ...)
+//
+//		private String likeIt;			// 좋아요(위시리스트에담긴상품)
+//		private String mainColorCd;		// 메인컬러
+//		private String selfGoodsYn;		// 자사상품여부
+//	}
 
 }

+ 9 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfCommon.xml

@@ -78,5 +78,14 @@
 		WHERE  1=1
 		AND    DELV_ADDR_SQ         = #{delvAddrSq}
 	</update>
+	
+	<!-- 검색엔진 연동 여부 -->
+	<select id="getSearchEngineSyncYn" resultType="String">
+		/* TsfCommon.getSearchEngineSyncYn */
+		SELECT UPPER(IFNULL(USE_YN,'N')) AS SYNC_YN
+		FROM   TB_COMMON_CODE
+		WHERE  CD_GB = 'G085'
+		AND    CD = 'SEARCHSYNCYN'
+	</select>
 
 </mapper>

+ 75 - 37
src/main/java/com/style24/persistence/mybatis/shop/TsfDisplay.xml

@@ -719,44 +719,82 @@
 	<!-- 몰메인 브랜드픽 조회 -->
 	<select id="getContentsBannerList" parameterType="Contents" resultType="Contents">
 		/* TsfDisplay.getContentsBannerList */
-		SELECT   CASE B.M WHEN 1 THEN A.IMG_PATH1
-						  WHEN 2 THEN A.IMG_PATH2
-						  WHEN 3 THEN A.IMG_PATH3
-						  WHEN 4 THEN A.IMG_PATH4
-						  WHEN 5 THEN A.IMG_PATH5 END IMG_PATH1
-			 ,CASE B.M WHEN 1 THEN A.STR_VAR1
-					   WHEN 2 THEN A.STR_VAR2
-					   WHEN 3 THEN A.STR_VAR3
-					   WHEN 4 THEN A.STR_VAR4
-					   WHEN 5 THEN A.STR_VAR5 END STR_VAR1
-			 ,CASE B.M WHEN 1 THEN A.STR_TITLE1
-					   WHEN 2 THEN A.STR_TITLE2
-					   WHEN 3 THEN A.STR_TITLE3
-					   WHEN 4 THEN A.STR_TITLE4
-					   WHEN 5 THEN '' END STR_TITLE1
-			 ,CASE B.M WHEN 1 THEN A.SUB_TEXT1
-					   WHEN 2 THEN A.SUB_TEXT2
-					   WHEN 3 THEN A.SUB_TEXT3
-					   WHEN 4 THEN A.SUB_TEXT4
-					   WHEN 5 THEN '' END SUB_TEXT1
+		SELECT BRAND_GROUP_NO
+			 , IMG_PATH1
+			 , IMG_PATH2
+			 , STR_VAR1
+			 , STR_VAR2
+			 , STR_TITLE1
+			 , STR_TITLE2
+			 , SUB_TEXT1
+			 , SUB_TEXT2
 		FROM (
-			  (SELECT	BRAND_GROUP_NO
-					, IMG_PATH1 , IMG_PATH2 , IMG_PATH3 , IMG_PATH4, IMG_PATH5
-					, STR_VAR1 , STR_VAR2 , STR_VAR3 , STR_VAR4 , STR_VAR5
-					, STR_TITLE1 , STR_TITLE2 , STR_TITLE3 , STR_TITLE4
-					, SUB_TEXT1 , SUB_TEXT2 , SUB_TEXT3 , SUB_TEXT4
-			   FROM	TB_CONTENTS
-			   WHERE	CONTENTS_LOC = #{contentsLoc}
-				 AND		BRAND_GROUP_NO = #{brandGroupNo}
-			  ) A
-				 ,(
-			  SELECT 1 M
-			  UNION ALL SELECT 2
-			  UNION ALL SELECT 3
-			  UNION ALL SELECT 4
-			  UNION ALL SELECT 5
-				 ) B
-				 )
+				 SELECT BRAND_GROUP_NO
+					  , IMG_PATH1
+					  , IMG_PATH2
+					  , STR_VAR1
+					  , STR_VAR2
+					  , STR_TITLE1
+					  , STR_TITLE2
+					  , SUB_TEXT1
+					  , SUB_TEXT2
+				 FROM TB_CONTENTS
+				 WHERE 1 = 1
+				   AND CONTENTS_LOC = #{contentsLoc}
+				   AND NOW() BETWEEN DISP_STDT AND DISP_EDDT
+				   AND USE_YN = 'Y'
+				   AND BRAND_GROUP_NO = #{brandGroupNo}
+				 UNION ALL
+				 SELECT BRAND_GROUP_NO
+					  , IMG_PATH1
+					  , IMG_PATH2
+					  , STR_VAR1
+					  , STR_VAR2
+					  , STR_TITLE1
+					  , STR_TITLE2
+					  , SUB_TEXT1
+					  , SUB_TEXT2
+				 FROM (
+						  SELECT BRAND_CD                      AS BRAND_GROUP_NO
+							   , ORG_TNFILE_NM                 AS IMG_PATH1
+							   , ''                            AS IMG_PATH2
+							   , CONCAT('/display/lookbook/detail/form?lookbookGb=L&amp;lookbookSq=',LOOKBOOK_SQ ,'&amp;brandCd=',BRAND_CD) AS STR_VAR1
+							   , ''                            AS STR_VAR2
+							   , TITLE                         AS STR_TITLE1
+							   , ''                            AS STR_TITLE2
+							   , ''                            AS SUB_TEXT1
+							   , ''                            AS SUB_TEXT2
+						  FROM TB_LOOKBOOK
+						  WHERE 1 = 1
+							AND BRAND_CD = #{brandGroupNo}
+							AND NOW() BETWEEN DISP_STDT AND DISP_EDDT
+							AND DISP_YN = 'Y'
+						  ORDER BY REG_DT DESC
+						  LIMIT 1
+					  ) A
+				 UNION ALL
+				 SELECT PB.BRAND_GROUP_NO
+					  , P.MAIN_PIMG                                        AS IMG_PATH1
+					  , ''                                                 AS IMG_PATH2
+					  , CONCAT('/planning/detail/form?planSq=', P.PLAN_SQ) AS STR_VAR1
+					  , ''                                                 AS STR_VAR2
+					  , P.DTL_TITLE1                                       AS STR_TITLE1
+					  , P.DTL_TITLE2                                       AS STR_TITLE2
+					  , ''                                                 AS SUB_TEXT1
+					  , ''                                                 AS SUB_TEXT2
+				 FROM TB_PLAN P
+						  INNER JOIN TB_PLAN_BRAND PB ON P.PLAN_SQ = PB.PLAN_SQ AND PB.DISP_YN = 'Y'
+				 WHERE 1 = 1
+				   AND BRAND_GROUP_NO = #{brandGroupNo}
+				   AND NOW() BETWEEN DISP_STDT AND DISP_EDDT
+				   AND PLAN_GB = 'P'
+				   AND DEL_YN = 'N'
+				   AND OPEN_YN = 'Y'
+				<if test="frontGb != null and frontGb != ''">
+				   AND FRONT_GB LIKE CONCAT('%',#{frontGb},'%')
+				</if>
+			 ) AS Z
+		LIMIT 5
 	</select>
 
 	<!-- 상품리스트 카테고리별 필터 목록 -->

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

@@ -1538,14 +1538,7 @@
 		    </otherwise>
 		</choose>
 		<if test="pageable != null and pageable.endRow != null and pageable.endRow > 0">
-		    <choose>
-		        <when test="pageGb == 'BEST' and pageable.endRow >= 100">
-		    LIMIT 100
-		        </when>
-		        <otherwise>
-		    LIMIT #{pageable.limitStartRow} , #{pageable.pageSize}
-		        </otherwise>
-		    </choose>
+			LIMIT #{pageable.limitStartRow} , #{pageable.pageSize}
 		</if>
 		<if test="maxRow != null and maxRow !=''">
 		    LIMIT #{maxRow}

+ 1 - 1
src/main/webapp/WEB-INF/views/mob/common/fragments/GnbMob.html

@@ -61,7 +61,7 @@
 	</div>
 
 	<!-- 210510_추가 : 띠배너 추가. -->
-	<div class="bnrtype_banner" id="divTopbanner">
+	<div class="bnrtype_banner" id="divTopbanner" style="display:none;">
 <!--		<a href="javascript:;" target="">-->
 <!--			&lt;!&ndash; 텍스트 영역 &ndash;&gt;-->
 <!--			<div>-->

+ 1 - 0
src/main/webapp/WEB-INF/views/mob/display/LookbookDetailFormMob.html

@@ -241,6 +241,7 @@
 		let goodsIdx = 0;
 
 		$target.each(function(){
+			params = [];
 			goodsIdx ++;
 			if ($(this).hasClass('unable')) {
 

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

@@ -791,6 +791,9 @@
 		}
 		// 컨텐츠 호출
 		$(document).ready(function() {
+			// 몰메인 띠배너 표출
+			$("#divTopbanner").show();
+
 			setHtop();
 			let randomNum = Math.floor( ( Math.random() * 4 ) );
 			$(".it_nav .btn").eq(randomNum).trigger('click');

+ 5 - 0
src/main/webapp/WEB-INF/views/mob/goods/GoodsDealDetailFormMob.html

@@ -947,6 +947,11 @@
 			mcxDialog.alert("옵션을 선택해 주세요.");
 			return false;
 		}
+
+		if (btnType == "G" && targetSize > 1){
+			mcxDialog.alert("선물하기는 1개의 옵션만 선택하실 수 있습니다.");
+			return false;
+		}
 		
 		$target.each(function() {
 			

+ 12 - 2
src/main/webapp/WEB-INF/views/mob/goods/GoodsDetailFormMob.html

@@ -2106,6 +2106,12 @@
 			
 			if (goodsType == 'G056_N'){
 				let compsList = [];
+
+				if(btnType == "G" && targetSize > 1) {
+					mcxDialog.alert("선물하기는 1개의 옵션만 선택하실 수 있습니다.");
+					return false;
+				}
+
 				target.each(function() {
 
 					let ea = parseInt($(this).val());
@@ -2133,7 +2139,11 @@
 				cfnAddCart(compsList);
 
 			}else{ // 세트
-				
+				if(btnType == "G" && targetSize > 1) {
+					mcxDialog.alert("선물하기는 1개의 옵션만 선택하실 수 있습니다.");
+					return false;
+				}
+
 				target.each(function() {
 					let compsList = [];
 					let goodsList = {
@@ -2179,10 +2189,10 @@
 		let $target = $obj.parent().parent().parent().find('.swiper-container').find('.item_prod');
 		let goodsSize = $target.length;
 		let btnType = "C";
-		let params = [];
 		let goodsIdx = 0;
 		
 		$target.each(function(){
+			let params = [];
 			goodsIdx ++; 
 			if ($(this).hasClass('unable')) {
 				

+ 5 - 4
src/main/webapp/WEB-INF/views/mob/goods/GoodsSizeInfoFormMob.html

@@ -51,7 +51,7 @@
 											</thead>
 											<tbody>
 												<th:block th:each="measurement, status : ${measurementList}" th:if="${status.first}">
-												<th:block th:if="${typeCd == '상의'}">
+												<th:block th:if="${measurement.typecd == '상의'}">
 												<tr>
 													<td scope="col">가슴둘레</td>
 												</tr>
@@ -65,8 +65,7 @@
 													<td scope="col">총길이</td>
 												</tr>
 												</th:block>
-												<th:block th:unless="${typeCd == '상의'}">
-												</th:block>
+												<th:block th:unless="${measurement.typecd == '상의'}">
 												<tr>
 													<td scope="col">허리둘레</td>
 												</tr>
@@ -119,7 +118,8 @@
 												</tr>
 											</thead>
 											<tbody>
-												<tr th:each="measurement, status : ${measurementList}" th:if="${not status.first}">
+												<th:block th:each="measurement, status : ${measurementList}" th:with="count=${(measurement.typecd =='상의')? 4: 5}">
+												<tr th:if="${not status.first and status.index <= count}">
 													<td th:if="${measurement.size1}" th:text="${measurement.size1}">95</td>
 													<td th:if="${measurement.size2}" th:text="${measurement.size2}">95</td>
 													<td th:if="${measurement.size3}" th:text="${measurement.size3}">95</td>
@@ -133,6 +133,7 @@
 													<td th:if="${measurement.size11}" th:text="${measurement.size11}">95</td>
 													<td th:if="${measurement.size12}" th:text="${measurement.size12}">95</td>
 												</tr>
+												</th:block>
 											</tbody>
 										</table>
 									</div>

+ 12 - 0
src/main/webapp/WEB-INF/views/mob/order/OrderFormMob.html

@@ -576,6 +576,12 @@ var orderGiftInfoSet = function() {
 				} else {
 					$(this).parent().parent().find("input[name=recipNm]").attr("readOnly", true);
 					$(this).parent().parent().find("input[name=recipPhnno]").attr("readOnly", true);
+					
+					// 2021.06.03
+					window.style24.getContact();
+					// 데이타테스트
+					//var obj = {"contact" : {"name" : "홍길동", "phnno" : "010-1234-0000"}}
+					//contactInfo(obj);
 				}
 			});
 			
@@ -585,6 +591,12 @@ var orderGiftInfoSet = function() {
 	});
 }
 
+// 2021.06.03 어플 callback 함수 호출
+var contactInfo = function(jsonString) {
+	$("#orderForm #orderGiftInfo input[name=recipNm]").val(jsonString.contact.name);
+	$("#orderForm #orderGiftInfo input[name=recipPhnno]").val(jsonString.contact.phnno);
+}
+
 // 1.4.2 배송정보로드
 var deliveryAddrInfoSet = function(delvObj, temp) {
 	

+ 46 - 12
src/main/webapp/WEB-INF/views/mob/order/OrderGiftInfoMob.html

@@ -27,22 +27,56 @@
 						</div>
 					</a>
 				</div>
+				
 				<div class="fold_cont" style="display: none;">
-					<div class="inner"><!-- 210419_ : 모바일웹에서만 .inner 사용 -->
-						<div class="form_field">
-							<div class="input_wrap">
-								<input type="text" name="recipNm" class="form_control" value="" maxlength="10" placeholder="받는 분">
+					<!-- 210419_ : 모바일웹에서만 .inner 사용 -->
+					<th:block th:unless="${frontGb} == 'A'">
+						<div class="inner">
+							<div class="form_field">
+								<div class="input_wrap">
+									<input type="text" name="recipNm" class="form_control" value="" maxlength="10" placeholder="받는 분">
+								</div>
+								<div class="input_wrap">
+									<input type="text" name="recipPhnno" class="form_control" value="" minlength="10" maxlength="14" placeholder="받는 분 휴대폰번호">
+									<p class="desc_txt">선물이 타인에게 전송될수 있으니 받으실분 연락처를 정확하게 입력해주세요.</p> <!-- 210421_삭제 : 전화번호를 텍스트 삭제 -->
+								</div>
+								<div class="textarea_wrap">
+									<textarea class="doc_review" name="review" id="giftMsg" placeholder="선물 메시지 입력&#13;&#10;(미 입력시 ‘감사합니다’로 발송됩니다.)"></textarea>
+									<p class="txt_cnt"><span id="review_cnt" class="c_primary">0</span>/200</p>
+								</div>
 							</div>
-							<div class="input_wrap">
-								<input type="text" name="recipPhnno" class="form_control" value="" minlength="10" maxlength="14" placeholder="받는 분 휴대폰번호">
-								<p class="desc_txt">선물이 타인에게 전송될수 있으니 받으실분 연락처를 정확하게 입력해주세요.</p> <!-- 210421_삭제 : 전화번호를 텍스트 삭제 -->
-							</div>
-							<div class="textarea_wrap">
-								<textarea class="doc_review" name="review" id="giftMsg" placeholder="선물 메시지 입력&#13;&#10;(미 입력시 ‘감사합니다’로 발송됩니다.)"></textarea>
-								<p class="txt_cnt"><span id="review_cnt" class="c_primary">0</span>/200</p>
+						</div>
+					</th:block>
+					
+					<!-- 210419_ : APP 전용 : 탭 전체/ '연락처불러오기'는 모바일웹에서 사용하지않음. -->
+					<th:block th:if="${frontGb} == 'A'">
+						<div class="tabWrap">
+							<ul class="tabIndex">
+								<li class="" value="Call"><a href="javascript:void(0);"><span>연락처 불러오기</span></a></li>
+								<li class="active" value="Direct"><a href="javascript:void(0);"><span>직접입력</span></a></li>
+							</ul>
+							
+							<div class="tabContents">
+								<div class="form_field">
+									<div class="tab_cont active">
+										<div class="input_wrap">
+											<input type="text" name="recipNm" class="form_control" value="" maxlength="10" placeholder="받는 분">
+										</div>
+										<div class="form_field">
+											<div class="input_wrap">
+												<input type="text" name="recipPhnno" class="form_control" value="" minlength="10" maxlength="14" placeholder="받으실분 휴대폰번호">
+												<p class="desc_txt">선물이 타인에게 전송될수 있으니 전화번호를 받으실분 연락처를 정확하게 입력해주세요.</p>
+											</div>
+											<div class="textarea_wrap">
+												<textarea class="doc_review" name="review" id="giftMsg" placeholder="선물 메시지 입력&#13;&#10;(미 입력시 ‘감사합니다’로 발송됩니다.)"></textarea>
+												<p class="txt_cnt"><span id="review_cnt" class="c_primary">0</span>/200</p>
+											</div>
+										</div>
+									</div>
+								</div>
 							</div>
 						</div>
-					</div>
+					</th:block>
 				</div>
 				<!-- //주문고객정보 -->
 			</li>

+ 26 - 1
src/main/webapp/WEB-INF/views/web/common/fragments/FooterWeb.html

@@ -928,12 +928,16 @@
 						
 						let allCate = [[${allCateList}]];
 						$.each(result, function(idx, item) {
-							if (item.contentsType == 'C' || item.contentsType == 'O') { // 컨텐츠유형:카테고리, 아울렛
+							if (item.contentsType == 'C' ) { // 컨텐츠유형:카테고리, 아울렛
 								$.each(allCate, function(allCateIdx, allCateItem) {
 									if (item.cate1No == allCateItem.cate1No) {
 										$('#ulQuickMenuCate').append(fnGetQuickMenuCategory(allCateItem));
 									}
 								});
+							}else if(item.contentsType == 'O'){
+								// $('#ulQuickMenuCate').append('<li><a href="' + item.linkUrl + '"><span>' + item.gtabNm + '</span></a></li>');
+								let outletCate = fnGetQuickOutletCategory(item.gtabNm);
+								$('#ulQuickMenuCate').append(outletCate);
 							} else if (item.contentsType == 'L') { // 컨텐츠유형:링크
 								$('#ulQuickMenuCate').append('<li><a href="' + item.linkUrl + '"><span>' + item.gtabNm + '</span></a></li>');
 							}
@@ -942,6 +946,27 @@
 				}
 			});
 	}
+
+	// 퀵 아울렛
+	let fnGetQuickOutletCategory = function (outletNm){
+		let formalGb = 'G009_20';
+		let cateGb = 'G032_101';
+		var tag = '';
+
+		tag += '<li class="has_children">\n';
+		tag += '<a href="javascript:void(0);"><span>'+outletNm+'</span></a>\n';
+		tag += '<ul class="quick_depth">\n';
+		tag += '<li><a href="javascript:void(0);" onclick="cfnGoToOutletMain(\'G032_103\');"><span>메인</span></a></li>\n';
+		tag += '<li><a href="javascript:void(0);" onclick="cfnGoToGoodsList(0,\'' + cateGb + '\',\'\',\'\',\'\',\'\',\'\',\'' + formalGb + '\');"><span>전체</span></a></li>\n';
+		let allCate = [[${allCateList}]];
+		$.each(allCate, function(allCateIdx, allCateItem) {
+			tag += '<li><a href="javascript:void(0);" onclick="cfnGoToGoodsList(0,\'' + allCateItem.cateGb + '\',' + allCateItem.cate1No + ',\'\',\'\',\'\',\'\',\'' + formalGb + '\');"><span>' + allCateItem.cate1Nm + '</span></a></li>\n';
+		});
+		tag += '</ul>\n';
+		tag += '</li>\n';
+
+		return tag;
+	}
 	
 	// 최근본상품
 	let fnGetRecentlyGoods = function() {

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

@@ -24,7 +24,7 @@
 	<div class="breadcrumb"> 
 		<ul>
 			<li class="bread_home"><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MAIN);">홈</a></li>
-			<li class="bread_2depth cate1Nm">여성1</li>
+			<li class="bread_2depth cateMainNm">여성1</li>
 		</ul> 
 	</div>
 
@@ -241,7 +241,8 @@
 					});
 				}
 				$('.dp_cate_list').html(tag);
-				$('.cate1Nm').html(cate1.cate1Nm+'메인');
+				$('.cateMainNm').html(cate1.cate1Nm+'메인');
+				$('.cate1Nm').html(cate1.cate1Nm);
 			}
 		});
 	}

+ 1 - 0
src/main/webapp/WEB-INF/views/web/display/LookbookDetailFormWeb.html

@@ -248,6 +248,7 @@
 		let goodsIdx = 0;
 		
 		$target.each(function(){
+			params = [];
 			goodsIdx ++;
 			if ($(this).find('.item_state').hasClass('soldout')) {
 				

+ 28 - 7
src/main/webapp/WEB-INF/views/web/display/SearchGoodsListFormWeb.html

@@ -36,7 +36,7 @@
 								<fieldset>
 									<legend>결과 내 재검색</legend>
 									<input type="text" id="search" name="search" value="티비제이 제기장 스웨터" placeholder="" class="search_input" title="검색어 입력" maxlength="100">
-									<button type="button" class="sch_btn"><span>검색</span></button>
+									<button type="button" class="sch_btn" onclick="fnSearchData();"><span>검색</span></button>
 								</fieldset>
 							</form>
 							<div class="autokeyword">
@@ -77,7 +77,7 @@
 						</div>
 					</div>
 					<!-- 결과내 재검색 결과 없을 시 노출 -->
-					<div class="nodata">
+					<div class="nodata" style="display: none;">
 						<div class="txt_box">
 							<p>
 								<span>‘티비제이 제기장 스웨터’</span>대한<br>
@@ -103,7 +103,7 @@
 					<!-- 검색결과 : 상품 -->
 					<div class="sch_result_cont" style="display:block;">
 						<!-- 통합 상품 검색결과 없을 시 노출 -->
-						<div class="nodata">
+						<div class="nodata" style="display:none;">
 							<div class="txt_box">
 								<p>
 									<span>‘티비제이 제기장 스웨터’</span> 에 대한 상품 검색결과가 없습니다.
@@ -112,7 +112,7 @@
 						</div>
 						<!-- //통합 상품 검색결과 없을 시 노출 -->
 						<!-- 추천상품 노출 -->
-						<div class="sch_recommend">
+						<div class="sch_recommend" style="display:none;">
 							<h3>이런 상품은 어떤가요?</h3>
 							<div class="itemsGrp">
 								<div class="item_prod">
@@ -921,7 +921,7 @@
 								</div>
 								<div class="area_list">
 									<!-- 검색필터 결과 없을 시 노출 -->
-									<div class="nodata">
+									<div class="nodata" style="display:none;">
 										<div class="txt_box">
 											<p>
 												선택하신 조건에 맞는 상품이 없습니다. <br>
@@ -1300,7 +1300,7 @@
 					<!-- 검색결과 : 기획전 -->
 					<div class="sch_result_cont">
 						<!-- 기획전 검색결과 없을 시 노출 -->
-						<div class="nodata">
+						<div class="nodata" style="display:none;">
 							<div class="txt_box">
 								<p>
 									<span>‘티비제이 제기장 스웨터’</span> 에 대한 기획전 검색결과가 없습니다.
@@ -1539,7 +1539,7 @@
 					<!-- 검색결과 : 이벤트 -->
 					<div class="sch_result_cont">
 						<!-- 이벤트 검색결과 없을 시 노출 -->
-						<div class="nodata">
+						<div class="nodata" style="display:none;">
 							<div class="txt_box">
 								<p>
 									<span>‘티비제이 제기장 스웨터’</span> 에 대한 이벤트 검색결과가 없습니다.
@@ -1681,7 +1681,21 @@
 		</div>
 	</div>
 
+	<form id="searchGoodsForm" name="searchGoodsForm">
+		<input type="hidden" name="pageNo" id="pageNo" value ="1"/>
+		<input type="hidden" name="pageSize" value ="30"/>
+		<input type="hidden" name="keyword" value ="티셔츠"/>
+	</form>
+	
 	<script th:inline="javascript">
+		// 상품 검색
+		var fnGetInfiniteScrollDataList = function (pageNum) {
+			$("#searchGoodsForm input[name=pageNo]").val(pageNum + 1);
+			gagajf.ajaxFormSubmit("/display/search/goods/list", document.searchGoodsForm, function(result) {
+				console.log(result);
+			}, true);
+		}
+	
 		$(document).ready( function() {
 			fnCreateSearchCategoryList();
 			// fnCreateSearchFilter();
@@ -1748,6 +1762,8 @@
 				$(this).parent('li').siblings('li').find('.sub_cate').hide();
 				$(this).parent('li').children(".sub_cate").toggle();
 			});
+			
+			fnGetInfiniteScrollDataList(1);
 		});
 
 		// 좌측 카테고리 생성
@@ -1763,6 +1779,11 @@
 				});
 			}
 		}
+
+		// 검색
+		let fnSearchData = function (){
+
+		}
 	</script>
 
 </th:block>

+ 1 - 1
src/main/webapp/WEB-INF/views/web/goods/GoodsDetailFormWeb.html

@@ -1564,9 +1564,9 @@
 		let $target = $obj.parent().find('.li_item').find('.item_prod');
 		let goodsSize = $target.length;
 		let btnType = "C";
-		let params = [];
 		let goodsIdx = 0;
 		$target.each(function(){
+			let params = [];
 			goodsIdx ++; 
 			if ($(this).hasClass('unable')) {
 				

+ 7 - 5
src/main/webapp/WEB-INF/views/web/goods/GoodsSizeInfoFormWeb.html

@@ -51,7 +51,7 @@
 											</thead>
 											<tbody>
 												<th:block th:each="measurement, status : ${measurementList}" th:if="${status.first}">
-												<th:block th:if="${typeCd == '상의'}">
+												<th:block th:if="${measurement.typecd == '상의'}">
 												<tr>
 													<td scope="col">가슴둘레</td>
 												</tr>
@@ -65,8 +65,7 @@
 													<td scope="col">총길이</td>
 												</tr>
 												</th:block>
-												<th:block th:unless="${typeCd == '상의'}">
-												</th:block>
+												<th:block th:unless="${measurement.typecd == '상의'}">
 												<tr>
 													<td scope="col">허리둘레</td>
 												</tr>
@@ -83,6 +82,7 @@
 													<td scope="col">총길이</td>
 												</tr>
 												</th:block>
+												</th:block>
 											</tbody>
 										</table>
 									</div>
@@ -103,7 +103,7 @@
 												<col th:if="${measurement.size12}" th:attr="width=${typeWith+'%'}">
 											</colgroup>
 											<thead>
-												<tr th:each="measurement, status : ${measurementList}" th:if="${status.first}" th:with="sizeCount=${measurement.sizeCount}">
+												<tr th:each="measurement, status : ${measurementList}" th:if="${status.first}" >
 													<th scope="col" th:if="${measurement.size1}" th:text="${measurement.size1}">M</th>
 													<th scope="col" th:if="${measurement.size2}" th:text="${measurement.size2}">M</th>
 													<th scope="col" th:if="${measurement.size3}" th:text="${measurement.size3}">M</th>
@@ -119,7 +119,8 @@
 												</tr>
 											</thead>
 											<tbody>
-												<tr th:each="measurement, status : ${measurementList}" th:if="${not status.first}">
+												<th:block th:each="measurement, status : ${measurementList}" th:with="count=${(measurement.typecd =='상의')? 4: 5}">
+												<tr th:if="${not status.first and status.index <= count}">
 													<td th:if="${measurement.size1}" th:text="${measurement.size1}">95</td>
 													<td th:if="${measurement.size2}" th:text="${measurement.size2}">95</td>
 													<td th:if="${measurement.size3}" th:text="${measurement.size3}">95</td>
@@ -133,6 +134,7 @@
 													<td th:if="${measurement.size11}" th:text="${measurement.size11}">95</td>
 													<td th:if="${measurement.size12}" th:text="${measurement.size12}">95</td>
 												</tr>
+												</th:block>
 											</tbody>
 										</table>
 									</div>

+ 8 - 8
src/main/webapp/ux/style24_link.js

@@ -355,16 +355,16 @@ function cfnAddCart(cartList) {
 						$("#directOrderForm").submit();
 					}
 				} else if (result.cartGb == "G") {
-					if(result.custNo == 0) {
+					if(result.custNo != null && result.custNo != 0) {
+						let orderHtml = "";
+						for(let i = 0 ; i < result.cartSqList.length ; i++) {
+							orderHtml += '<input type="hidden" name="cartSqArr" value="' + result.cartSqList[i] + '" />';
+						}
+						$("#directOrderForm").html(orderHtml);
+						$("#directOrderForm").submit();
+					} else {
 						location.href="/signin";
 					}
-					
-					let orderHtml = "";
-					for(let i = 0 ; i < result.cartSqList.length ; i++) {
-						orderHtml += '<input type="hidden" name="cartSqArr" value="' + result.cartSqList[i] + '" />';
-					}
-					$("#directOrderForm").html(orderHtml);
-					$("#directOrderForm").submit();
 				} else if (result.cartGb == "N") {
 					buy_nc_req(result.cartSqList);
 				} else {