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

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

eskim 5 лет назад
Родитель
Сommit
a4792e5193

+ 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;
 	}

+ 2 - 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 의 경우에는 입력한 고객정보와 인증받은 고객정보가 다른경우 고객정보 업데이트

+ 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 - 1
src/main/resources/config/application-style.yml

@@ -26,7 +26,7 @@ spring:
                 172.30.90.112:6381
                 172.30.90.113:6381
 # SSL Server
-has-ssl: false
+has-ssl: true
 
 logging:
     config: classpath:log/logback-run.xml

+ 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() {
 			

+ 11 - 1
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 = {

+ 16 - 0
src/main/webapp/WEB-INF/views/web/display/SearchGoodsListFormWeb.html

@@ -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);
 		});
 
 		// 좌측 카테고리 생성

+ 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 {