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

Merge remote-tracking branch 'origin/gagamel_autologin' into card007

card007 4 лет назад
Родитель
Сommit
c9fbb24a1d

+ 4 - 4
src/main/java/com/style24/front/support/controller/TsfBaseController.java

@@ -166,10 +166,10 @@ public class TsfBaseController {
 	 * 공유하기 URL
 	 * @return
 	 */
-	@ModelAttribute("shareUrl")
-	public String getShareUrl() {
-		return TsfSession.getAttribute("shareUrl");
-	}
+//	@ModelAttribute("shareUrl")
+//	public String getShareUrl() {
+//		return TsfSession.getAttribute("shareUrl");
+//	}
 
 	@ResponseBody
 	public GagaResponse ok() {

+ 12 - 2
src/main/java/com/style24/front/support/interceptor/TsfRememberMeInterceptor.java

@@ -1,7 +1,9 @@
 package com.style24.front.support.interceptor;
 
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Base64;
+import java.util.Calendar;
 import java.util.List;
 
 import javax.servlet.http.HttpServletRequest;
@@ -30,7 +32,7 @@ import com.gagaframework.web.util.GagaDateUtil;
 
 /**
  * 자동로그인 RememberMe 선처리
- * 
+ *
  * @author gagamel
  * @since 2020. 9. 11
  */
@@ -73,7 +75,15 @@ public class TsfRememberMeInterceptor extends HandlerInterceptorAdapter {
 				this.createSession(request, new TsfLoginDetails(loginInfo, authorities));
 
 //				Date expiry = new Date(System.currentTimeMillis() + (1000 * TsfConstants.REMEMBER_ME_LIMIT));
-				String expiry = GagaDateUtil.getOffsetDate(TsfConstants.REMEMBER_ME_LIMIT, "yyyyMMddHHmmss");
+
+//				<<<<<<< 2021-09-12 일 자동로그인 과련 이슈로 GagaDateUtil.getOffsetDate 변경처리 시작
+//				String expiry = GagaDateUtil.getOffsetDate(TsfConstants.REMEMBER_ME_LIMIT);
+//				==============================================================================
+				Calendar cal = Calendar.getInstance();
+				cal.add(Calendar.DATE, TsfConstants.REMEMBER_ME_LIMIT);
+				String expiry = new SimpleDateFormat("yyyyMMddHHmmss").format(cal.getTime());
+//				>>>>>>> 2021-09-12 일 자동로그인 과련 이슈로 GagaDateUtil.getOffsetDate 변경처리 끝
+
 //				String md5HexToken = GagaCryptoUtil.encryptMD5(token.getCustNo() + ":" + GagaDateUtil.getDate(expiry, "yyyyMMddHHmmss") + ":" + TsfSession.getSessionId());
 				String md5HexToken = GagaCryptoUtil.encryptMD5(token.getCustNo() + ":" + expiry + ":" + TsfSession.getSessionId());
 				String remembermeToken = Base64.getEncoder().encodeToString((TsfConstants.REMEMBER_ME_KEY + ":" + md5HexToken).getBytes());

+ 14 - 5
src/main/java/com/style24/front/support/interceptor/TsfReturnUrlInterceptor.java

@@ -42,15 +42,24 @@ public class TsfReturnUrlInterceptor extends HandlerInterceptorAdapter {
 		String returnUrl = request.getRequestURL() + queryString;
 		log.info("returnUrl: [{}]", returnUrl);
 
+		// SSL Server
+		boolean isSslServer = Boolean.parseBoolean(hasSsl);
+		log.info("isSslServer: [{}]", isSslServer);
+
 		// 공유하기 URL을 통해 접근한 경우 shareUrl로 세션에 설정
-		TsfSession.setAttribute("shareUrl", "");
+//		TsfSession.setAttribute("shareUrl", "");
 		if (StringUtils.isNotBlank(returnUrl) && returnUrl.lastIndexOf("share") > -1) {
-			TsfSession.setAttribute("shareUrl", returnUrl);
+			returnUrl = returnUrl.replaceAll("&share=Y", "");
+			log.info("shareUrl==> {}", returnUrl);
+//			TsfSession.setAttribute("shareUrl", returnUrl);
+			if (isSslServer) {
+				GagaCookieUtil.setSecureCookie(response, TsfConstants.CK_PREFIX + "_share_url", returnUrl, -1);
+			} else {
+				GagaCookieUtil.setCookie(response, TsfConstants.CK_PREFIX + "_share_url", returnUrl, -1);
+			}
+
 		}
 
-		// SSL Server
-		boolean isSslServer = Boolean.parseBoolean(hasSsl);
-		log.info("isSslServer: [{}]", isSslServer);
 
 		if (isSslServer) {
 			GagaCookieUtil.setSecureCookie(response, TsfConstants.CK_PREFIX + "_return_url", returnUrl, -1);

+ 25 - 0
src/main/webapp/WEB-INF/views/mob/common/fragments/ScriptsMob.html

@@ -21,5 +21,30 @@
 <script type="text/javascript" th:src="@{'/ux/plugins/gaga/gaga.validation.js'}" src="/ux/plugins/gaga/gaga.validation.js"></script>
 <script type="text/javascript" th:src="@{'/ux/plugins/vg-controller-client.latest.min.js'}" src="/ux/plugins/vg-controller-client.latest.min.js"></script>
 <script type="text/javascript" th:src="@{'/biz/comLib.js'}" src="/biz/comLib.js"></script>
+<script type="text/javascript">
+// 공유하기 기능 추가
+var shareUrl = gagajf.getCookie('st24ck_share_url');
+gagajf.setCookie('st24ck_share_url', '', 1);
+
+if (!gagajf.isNull(shareUrl) && _frontGb === 'M') {
+
+	var aosUrl = 'intent://style24://share?targetUrl=';
+	var iosUrl = 'style24://share?targetUrl=';
+	if (_osType === 'A') {
+		setTimeout(function () {
+			cfnGoToPage(_PAGE_MAIN);
+		}, 1500);
+		aosUrl += shareUrl + '#Intent;package=com.istyle24.commerce;scheme=style24;end';
+		location.href = aosUrl;
+	} else if (_osType === 'I') {
+		iosUrl += shareUrl;
+		setTimeout(function () {
+			window.open('https://apps.apple.com/kr/app/id627774402?mt=8');
+		}, 1500);
+		location.href = iosUrl;
+	}
+}
+</script>
+
 </th:block>
 </html>

+ 134 - 128
src/main/webapp/WEB-INF/views/web/common/fragments/FooterWeb.html

@@ -62,7 +62,7 @@
 			<div class="ft_cpinfo">
 				<dl>
 					<dt>아이스타일이십사 주식회사</dt>
-					<dd> 
+					<dd>
 						<div>
 							<p>
 								<span>대표이사 : 윤종선</span>
@@ -80,7 +80,7 @@
 			<div class="ft_cpinfo">
 				<dl>
 					<dt>소비자피해보상보험</dt>
-					<dd> 
+					<dd>
 						<div>
 							<p>
 								고객님은 안전거래를 위해 현금 결제 시 저희 쇼핑몰이 가입한<br>
@@ -101,7 +101,7 @@
 			<a href="javascript:appBroswer('http://m.ssg.com','mo');" class="btn_def">모바일 버전으로 가기</a>
 		</div>
 	</div>
-	
+
 	<!-- 제휴및입점팝업 -->
 	<div class="modal fade partners_pop" id="partnersPop" tabindex="-1" role="dialog" aria-labelledby="modalScrollLabel" aria-hidden="true">
 		<div class="modal-dialog" role="document">
@@ -122,7 +122,7 @@
 									<col width="140px">
 									<col width="100px">
 									<col width="240px">
-								</colgroup>   
+								</colgroup>
 								<thead>
 									<tr>
 										<th>구분</th>
@@ -149,7 +149,7 @@
 			</div>
 		</div>
 	</div>
-	
+
 	<!-- 퀵메뉴 -->
 	<div id="quick_menu">
 		<ul class="quick_btn">
@@ -205,7 +205,7 @@
 				</div>
 			</div>
 			<div class="wishlist quick_con quick03"> <!-- 퀵메뉴_위시리스트 -->
-				<div class="quick_head"> 
+				<div class="quick_head">
 					<h3><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MYPAGE_WISHLIST);">위시리스트</a></h3>
 				</div>
 				<div class="quick_body" id="quickMenuWishList"> <!-- 최근 본 상품 없을 시 nodata 클래스 추가 --> <!-- 비로그인 시 need_login 클래스 추가 -->
@@ -225,19 +225,19 @@
 						</div>
 						<a href="javascript:void(0);" class="more_btn" onclick="cfnGoToPage(_PAGE_EVENT_MAIN);">더 보기</a>
 					</div>
-					
+
 					<div id="coupon_type02" class="coupon_area">
 						<div class="coupon_list" id="ownCoupon">
 						</div>
 						<a href="javascript:void(0);" class="more_btn" onclick="cfnGoToPage(_PAGE_MYPAGE_COUPON);">더 보기</a>
 					</div>
-					
+
 					<div class="login_con">
 						<div>
 							<p>로그인 후 이용 가능한 서비스입니다.</p>
 							<button type="button" class="btn btn_sm" onclick="cfnGoToPage(_PAGE_LOGIN);"><span>로그인</span></button>
 						</div>
-					</div> 
+					</div>
 				</div>
 			</div>
 			<div class="category quick_con quick05"> <!-- 퀵메뉴_카테고리 -->
@@ -258,7 +258,7 @@
 		</div>
 	</div>
 	<!-- 퀵메뉴 -->
-	
+
 	<!-- 쿠폰 사용 내역 팝업 -->
 	<div class="modal coupon_popup" tabindex="-1" role="dialog" aria-labelledby="PopupBasicLabel" aria-hidden="true">
 		<div class="modal-dialog" role="document">
@@ -283,7 +283,7 @@
 			</div>
 		</div>
 	</div>
-	
+
 	<!-- 2021.04.02 다음우편번호 공통화 작업 -->
 	<!-- 다음우편번호 팝업 -->
 	<div class="jquery-modal blocker current" id="daumZipcodePop" style="display:none; z-index:3000;">
@@ -304,7 +304,7 @@
 	</div>
 	<!-- //다음우편번호 팝업 -->
 	<!-- //2021.04.02 다음우편번호 공통화 작업 -->
-	
+
 	<!-- 2021.04.02 배송지변경팝업 공통화 작업 -->
 	<!-- 배송지변경 팝업 -->
 	<div class="modal fade adrsChange_pop" id="adrsChangePop" tabindex="-1" role="dialog" aria-labelledby="adrsChangeLabel" aria-hidden="true">
@@ -316,7 +316,7 @@
 		<a href="#close-modal" rel="modal:close" id="adrsChangePop_close" class="close-modal">Close</a>
 	</div>
 	<!-- //배송지변경 팝업 -->
-	
+
 	<!-- 배송지추가 팝업 -->
 	<div class="modal fade adrsModify_pop" id="adrsAddPop" tabindex="-1" role="dialog" aria-labelledby="adrsAddLabel" aria-hidden="true">
 		<div class="modal-dialog" role="document">
@@ -327,7 +327,7 @@
 		<a href="#close-modal" rel="modal:close" id="adrsAddPop_close" class="close-modal">Close</a>
 	</div>
 	<!-- //배송지추가 팝업 -->
-	
+
 	<!-- 배송지수정 팝업 -->
 	<div class="modal fade adrsModify_pop" id="adrsModifyPop" tabindex="-1" role="dialog" aria-labelledby="adrsModifyLabel" aria-hidden="true">
 		<div class="modal-dialog" role="document">
@@ -338,7 +338,7 @@
 		<a href="#close-modal" rel="modal:close" id="adrsModifyPop_close" class="close-modal">Close</a>
 	</div>
 	<!-- //배송지수정 팝업 -->
-	
+
 	<!-- 배송요청사항수정 팝업 -->
 	<div class="modal fade rqstModify_pop" id="rqstModifyPop" tabindex="-1" role="dialog" aria-labelledby="rqstModifyLabel" aria-hidden="true">
 		<div class="modal-dialog" role="document">
@@ -350,19 +350,25 @@
 	</div>
 	<!-- //배송요청사항수정 팝업 -->
 	<!-- //2021.04.02 배송지변경팝업 공통화 작업 -->
-	
+
 	<!-- 쿠폰 사용 내역 팝업 -->
 	<div class="modal fade couponInfo_pop" id="couponInfoPop" tabindex="-1" role="dialog" aria-labelledby="couponInfoLabel" aria-hidden="true">
 	<div class="modal-dialog" role="document">
 		<div class="modal-content">
-			<!-- 쿠폰사용안내 팝업 내용 -->      
+			<!-- 쿠폰사용안내 팝업 내용 -->
 		</div>
 	</div>
 	<a href="#close-modal" rel="modal:close" id="couponInfoPop_close" class="close-modal">Close</a>
 	</div>
-	
+
 <script th:inline="javascript">
 /*<![CDATA[*/
+
+	//2021-09-12 일 브라우저 닫을 경우 선호사이트 쿠기 제거처리
+	$(window).unload(function(){
+		gagajf.setCookie("st24ck_site_preference", null);
+	});
+
 	// 패밀리 사이트
 	let fnGetFamilySite = function() {
 		$.getJSON('/renderer/familysite/list'
@@ -371,19 +377,19 @@
 					if (result.length > 0) {
 						$('#family_site').html('');
 						let tag = '<dt class="no_tit"><span class="blind">그룹없음</span></dt>';
-						
+
 						$.each(result, function (idx, item) {
 							if (!gagajf.isNull(item.cdNm)) {
 								tag += '<dd><a class="clickable" href="' + item.cdNm.substring(0, item.cdNm.indexOf('|')) + '" target="_blank" title="새창 열림">' + item.cdNm.substring(item.cdNm.indexOf('|') + 1) + '</a></dd>\n';
 							}
 						});
-						
+
 						$('#family_site').html(tag);
 					}
 				}
 		});
 	}
-	
+
 	// 퀵메뉴카테고리
 	let fnGetQuickMenuCategory = function(cate1) {
 		let tag = '';
@@ -403,7 +409,7 @@
 		}
 		return tag;
 	}
-	
+
 	// 퀵메뉴탭 생성
 	let fnCreateQuickMenuTab = function() {
 		$.getJSON('/display/gnb/tab/list'
@@ -413,7 +419,7 @@
 						$('#ulQuickMenuCate').html('');
 						$('#ulQuickMenuCate').append('<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MAIN);"><span>홈</span></a></li>\n');
 						$('#ulQuickMenuCate').append('<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_ALL_BRAND);"><span>브랜드</span></a></li>\n');
-						
+
 						let allCate = gAllCate;
 						$.each(result, function(idx, item) {
 							if (item.contentsType == 'C' ) { // 컨텐츠유형:카테고리, 아울렛
@@ -455,7 +461,7 @@
 
 		return tag;
 	}
-	
+
 	// 최근본상품
 	let fnGetRecentlyGoods = function() {
 // 	$('#quick01').on('click', function() {
@@ -463,13 +469,13 @@
 				, function(result, status) {
 					if (status == 'success') {
 						$('#quickMenuTodayGoods').html('');
-						
+
 						$('#quick01').find('span').html(result.length);
 						let tag = '';
 						if (result.length > 0) {
 							tag += '<div class="product_count"><span class="c_primary">' + result.length + '</span>개의 상품</div>\n';
 							tag += '	<div class="itemsGrp">\n';
-							
+
 							$.each(result, function (idx, item) {
 								tag += '		<div class="item_prod">\n';
 								tag += '			<div class="item_state">\n';
@@ -481,14 +487,14 @@
 								tag += '			</div>\n';
 								tag += '		</div>\n';
 							});
-							
+
 							tag += '	</div>\n';
-							
+
 						} else {
 							tag += '<div class="no_item">';
 							tag += '	최근 본 상품이 없습니다.';
 							tag += '</div>';
-							
+
 							$('#quickMenuTodayGoods').attr('class','quick_body nodata');
 						}
 						$('#quickMenuTodayGoods').html(tag);
@@ -695,11 +701,11 @@
 			tag+='		<button type="button" class="btn btn_sm" onclick="cfnGoToPage(_PAGE_LOGIN)"><span>로그인</span></button>';
 			tag+='	</div>';
 			tag+='</div>';
-			
+
 			$('#quickMenuWishList').html(tag);
 			return false;
 		}
-		
+
 		$.getJSON('/goods/wish/list'
 				, function(result, status) {
 					if (status == 'success') {
@@ -711,7 +717,7 @@
 							$("#quickMenuWishList").attr("class","quick_body");
 							tag += '<div class="product_count"><span class="c_primary" id="quickMenuWishListCount">'+result.length+'</span>개의 상품</div>\n';
 							tag += '	<div class="itemsGrp">\n';
-							
+
 							$.each(result, function (idx, item) {
 								tag += '<div class="item_prod">\n';
 								tag += '	<div class="item_state ';
@@ -744,7 +750,7 @@
 								tag += '</div>\n';
 							});
 							tag += '	</div>\n';
-							
+
 						} else {
 							$("#quickMenuWishList").addClass("nodata");
 							tag += '<div class="itemsGrp">';
@@ -753,28 +759,28 @@
 							tag += '</div>';
 							tag += '</div>';
 						}
-						
+
 						$('#quickMenuWishList').html(tag);
 					}
 			});
 	}
-	
+
 	// 딜상품일 경우 alert
 	var wishDealGoods = function() {
 		mcxDialog.alert("해당 상품은 옵션 선택 후 쇼핑백 담기가 가능합니다.");
 		return;
 	}
-	
+
 	// 위시리스트 해제
 	let fnWishDelete = function(obj) {
 		cfnPutWishList(obj);
 		fnGetWishList();
 	}
-	
+
 	var wishCardAdd = function (obj) {
 		let btnType = "C";
 		let params = [];
-		
+
 		let cart = new Object();
 	    cart.goodsCd = $(obj).attr("goodsCd");
 		cart.optCd = $(obj).attr("optCd");
@@ -786,14 +792,14 @@
 		//cart.contentsLoc = $(obj).attr("contentsLoc");
 		cart.contentsLoc = '';
 		cart.planDtlSq = '';
-		params.push(cart); 
-		
+		params.push(cart);
+
 		// 장바구니담기
 		if (params.length > 0){
-			cfnAddCart(params);	
+			cfnAddCart(params);
 		}
 	}
-	
+
 	var wishCardSetAdd = function (obj) {
 		let cartGoodsList = [];
 		var optCdArr = $(obj).attr("optCd").split(",");
@@ -804,7 +810,7 @@
 		cartCompsList : new Array()
 		}
 
-		for(let j = 0 ; j <  optCdArr.length ; j++) { 
+		for(let j = 0 ; j <  optCdArr.length ; j++) {
 			let temp = new Object;
 			temp.goodsCd = $(obj).attr("goodsCd");
 			temp.optCd = optCdArr[j];
@@ -817,13 +823,13 @@
 			temp.contentsLoc = "";
 			temp.planDtlSq = "";
 			compsList.push(temp);
-		}  
+		}
 
 		goodsList.cartCompsList = compsList;
 		cartGoodsList.push(goodsList);
 		cfnAddCart(cartGoodsList);
 	}
-	
+
 	// 쿠폰리스트
 	let issueCouponBtn = function() {
 		if (!cfCheckLogin()) {
@@ -848,15 +854,15 @@
 									}else{
 										tag += '					<span><em>'+item.dcVal.addComma()+'</em>원</span>';
 									}
-									
-									
+
+
 									tag += '				</p>';
 									if(item.custPubLimitQty == 0){
 										tag += '				<p class="cp_condition">'+item.useCondition+'<span></span>';
 									}else{
 										tag += '				<p class="cp_condition">'+item.useCondition+'<span>1인 최대'+item.custPubLimitQty.addComma()+'장</span>';
 									}
-									
+
 									tag += '				</p>';
 									tag += '			</div>';
 									tag += '			<button type="button" id="coupon_'+item.cpnId+'" class="btn btn_dark btn_block btn_coupon_down" onclick="fnQuickCouponDown('+item.cpnId+')"><span>쿠폰받기</span></button>';
@@ -868,15 +874,15 @@
 								tag += '<div class="no_item">';
 								tag += 	'다운 가능한 쿠폰이 없습니다.';
 								tag += '</div>';
-								
+
 							}
 							$('#issueCoupon').html(tag);
 						}
 				});
 		}
 	}
-	
-	// 보유 쿠폰 클릭 시 
+
+	// 보유 쿠폰 클릭 시
 	let ownCouponBtn = function() {
 		$.getJSON('/mypage/quick/own/coupon/list'
 				, function(result, status) {
@@ -894,7 +900,7 @@
 								}else{
 									tag += '				<strong class="sale_t won_t"><span>'+item.dcVal.addComma()+'</span>원</strong>';
 								}
-								
+
 								tag += '				<p class="cp_cont">'+item.useCondition+'</p>';
 								tag += '				<span class="cp_cnt"><span>'+item.cpnCnt.addComma()+'</span>장 보유</span>';
 								tag += '			</div>';
@@ -909,19 +915,19 @@
 								tag += '	</li>';
 							});
 							tag += '<ul>';
-							
+
 						} else {
 							tag += '<div class="no_item">';
 							tag += 	'보유한 쿠폰이 없습니다.';
 							tag += '</div>';
 						}
-						
+
 						$('#ownCoupon').html(tag);
 					}
 			});
 	}
-    
-	
+
+
 	var doubleSubmitFlag = false;
     /* function doubleSubmitCheck(){
         if(doubleSubmitFlag){
@@ -931,8 +937,8 @@
             return false;
         }
     } */
-    
-     
+
+
 	//쿠폰 다운로드
 	var fnQuickCouponDown = function(obj){
 
@@ -940,12 +946,12 @@
 			cfnGoToPage(_PAGE_LOGIN);
 			return false;
 		}
-		
+
 		if (doubleSubmitFlag){
 			mcxDialog.alert("다운로드 중입니다.");
 			return false;
 		}
-		
+
 		doubleSubmitFlag = true;
 		let cpnId = obj;
 		gagajf.ajaxJsonSubmit('/mypage/quick/coupon/download', JSON.stringify({cpnId: cpnId}), fnQuickCouponCallBack);
@@ -963,14 +969,14 @@
 					}
 				}
 			});
-		}			
+		}
 	}
 
 	// 소유한 쿠폰 사용안내 모달
 	var useInfoCoupon = function (id) {
 		var data = {cpnId : id};
 		var jsonData = JSON.stringify(data);
-		
+
 		 $.ajax( {
 			type		: "POST",
 			url 		: '/mypage/coupon/detailPop',
@@ -984,10 +990,10 @@
 				}
 			}
 		});
-		
-		return false; 
+
+		return false;
 	}
-	
+
 	// 팝업
 	let fnGetPopup = function(){
 		let data = {viewPage : [[${viewPage}]]
@@ -1016,7 +1022,7 @@
 								if ("N" == item.linkTarget){
 									linkTarget = "target=\"_blank\"";
 								}
-							tag += '						<a href="'+ item.linkUrl1 +'" '+linkTarget+' >\n';	
+							tag += '						<a href="'+ item.linkUrl1 +'" '+linkTarget+' >\n';
 							}
 							tag += '						<img src="'+ _imgUrl+'/'+item.imgUrl1+'" width="100%" alt="">\n';
 							if(!gagajf.isNull(item.linkUrl1) && item.linkUrl1 !== "#"){
@@ -1026,7 +1032,7 @@
 							popupYn = "Y";
 							popupSq += item.popupSq +"|";
 						}
-					});	
+					});
 					tag += '				</div>\n';
 					tag += '				<div class="swiper-button-prev"></div>\n';
 					tag += '				<div class="swiper-button-next"></div>\n';
@@ -1038,13 +1044,13 @@
 					tag += '		</div>\n';
 					tag += '	</div>\n';
 					tag += '</div>\n';
-					
+
 					if (popupYn == "Y"){
 						if ($('#layer_popup').length === 0) {
 							$('body').append(tag);
-						}	
+						}
 					}
-					
+
 					/* 메인 공지 팝업 갯수체크 210430_수정 */
 					var popNoticeCont = $('.popup_main_notice .swiper-slide');
 					var popNoticeLength = popNoticeCont.length;
@@ -1064,7 +1070,7 @@
 								nextEl: '.popup_main_notice .swiper-button-next',
 								prevEl: '.popup_main_notice .swiper-button-prev',
 							},
-						});	
+						});
 					} else {
 						popNoticeCont.parents('.popup_body').removeClass('onlyNotice');
 						var popup_main_notice_slide = new Swiper ('.popup_main_notice .swiper-container', {
@@ -1080,9 +1086,9 @@
 								nextEl: '.popup_main_notice .swiper-button-next',
 								prevEl: '.popup_main_notice .swiper-button-prev',
 							},
-						});	
-					}	
-					
+						});
+					}
+
 				}
 			}
 		});
@@ -1095,14 +1101,14 @@
 			//todayDate = new Date(parseInt(todayDate.getTime() / 86400000) * 86400000 + 54000000);
 			todayDate = new Date(parseInt(todayDate.getTime() / 86400000) * 86400000);	// 당일 자정처리
 			todayDate.setDate(todayDate.getDate() + unexpDays);
-			
+
 			$.each(arrSeq, function (idx, item) {
 				if (!gagajf.isNull(item)){
-					document.cookie = "style_popup_"+item+"=Y; path=/; expires=" + todayDate.toGMTString() + ";";	
+					document.cookie = "style_popup_"+item+"=Y; path=/; expires=" + todayDate.toGMTString() + ";";
 				}
 			});
 		}
-		
+
 		fnLayerPopupClose();
 	}
 	// 창 닫기
@@ -1110,30 +1116,30 @@
 		//$('#layer_popup').hide();
 		$('#layer_popup').remove();
 	}
-	
+
 	$(document).ready( function() {
-/*		
+/*
 		// 퀵메뉴탭 조회
 		fnCreateQuickMenuTab();
-		
+
 		// 패미리사이트 조회
 		fnGetFamilySite();
-		
+
 		// 최근본상품 조회
 		fnGetRecentlyGoods();
 
 		// 장바구니 조회
 		fnGetCartGoodsList();
-		
+
 		// 위시리스트
 		fnGetWishList();
-		
+
 		// 팝업조회
 		fnGetPopup();
-		
+
 		// 쿠폰조회
-		$("#issueCouponBtn").trigger("click");	
-		
+		$("#issueCouponBtn").trigger("click");
+
 		// Family Site
 		$('.family_link').on('click','.btn',function(e){
 			e.preventDefault();
@@ -1144,7 +1150,7 @@
 		//퀵메뉴
 		var tabAnchor = $('.quick_btn button'),
 			tabPanel = $('#quick_menu .quick_con');
-		
+
 		$(document).on('click','.quick_btn button:not(#top_btn)',function(e){
 			e.preventDefault();
 			$('body').addClass('lock');
@@ -1155,7 +1161,7 @@
 			tabPanel.hide();
 			$('.' + NewLink).show();
 		});
-		
+
 		//퀵메뉴_쿠폰
 		var couponAnchor = $('.coupon_tab a'),
 			couponPanel = $('.coupon_area');
@@ -1165,12 +1171,12 @@
 			couponAnchor.removeClass('active');
 			$(this).addClass('active');
 			var NewLink = $(this).attr('href');
-			
+
 			couponPanel.hide();
 			$(NewLink).show();
-			
+
 		});
-		
+
 		couponAnchor.eq(0).trigger('click');
 
 		//퀵메뉴 닫을 때
@@ -1198,24 +1204,24 @@
 		$(".coupon_pop_btn").click(function() {
 			$(".coupon_popup").modal("show");
 		});
-		
-						
 
-		// 메인 공지 팝업 닫기 
+
+
+		// 메인 공지 팝업 닫기
 		$(document).on('click','#btnPopupClose',function(e){
 			$('#popupMainNotice').hide();
 			return false;
-		});		
+		});
 */
-		
-		
+
+
 	});
-	
-	
+
+
 	//퀵메뉴탭 조회
 	var tabAnchor = $('.quick_btn button'),
 		tabPanel = $('#quick_menu .quick_con');
-	
+
 	$(document).on('click','.quick_btn button:not(#top_btn)',function(e){
 		e.preventDefault();
 		$('body').addClass('lock');
@@ -1238,7 +1244,7 @@
 		$('#family_site').hide();
 		$(this).find('.ico.ico_ft_arrow_b').toggleClass('ico_ft_arrow_t');
 	});
-	
+
 	var tabAnchor = $('.quick_btn button'),
 	tabPanel = $('#quick_menu .quick_con');
 
@@ -1252,7 +1258,7 @@
 		tabPanel.hide();
 		$('.' + NewLink).show();
 	});
-	
+
 	//퀵메뉴_쿠폰
 	var couponAnchor = $('.coupon_tab a'),
 	couponPanel = $('.coupon_area');
@@ -1262,10 +1268,10 @@
 		couponAnchor.removeClass('active');
 		$(this).addClass('active');
 		var NewLink = $(this).attr('href');
-		
+
 		couponPanel.hide();
 		$(NewLink).show();
-		
+
 	});
 
 	//퀵메뉴 닫을 때
@@ -1293,54 +1299,54 @@
 	$(".coupon_pop_btn").click(function() {
 		$(".coupon_popup").modal("show");
 	});
-	
+
 	// 메인 공지 팝업 닫기
 	$(document).on('click','#btnPopupClose',function(e){
 		$('#popupMainNotice').hide();
 		return false;
-	});	
-	
-	
+	});
+
+
 	//퀵메뉴
 // 	$('#ulQuickMenuCate').load('FooterWeb.html', function() {
 		fnCreateQuickMenuTab();
 // 	});
-	
+
 	//Family Site load 후
 // 	$('#family_site').load('FooterWeb.html', function() {
 		fnGetFamilySite();
-// 	}); 
-	
+// 	});
+
 	//최근본상품 조회
 // 	$('#quickMenuTodayGoods').load('FooterWeb.html', function() {
 		fnGetRecentlyGoods();
 // 	});
-	
+
 	// 장바구니 조회
 // 	$('#quick_menu .shopingbag.quick_con.quick02 .quick_body').load('FooterWeb.html', function() {
 		fnGetCartGoodsList();
 // 	});
-	
+
 	// 위시리스트
 // 	$('#quickMenuWishList').load('FooterWeb.html', function() {
 		fnGetWishList();
 // 	});
-	
+
 	// 팝업조회
 	//$('#layer_popup').load('footer.html', function() {
 		fnGetPopup();
 	//});
-	
+
 	// 쿠폰조회
 // 	$('#issueCoupon').load('FooterWeb.html', function() {
 		//$("#issueCouponBtn").trigger("click");
 		couponAnchor.eq(0).trigger('click');
 // 	});
 	//$("#issueCouponBtn").trigger("click");
-	
+
 	//couponAnchor.eq(0).trigger('click');
-	
-	
+
+
 /*]]>*/
 </script>
 
@@ -1362,37 +1368,37 @@ var cfnGetDaumRoadAddr = function(data) {
 	if (data.bname !== '' && /[동|로|가]$/g.test(data.bname)) {
 		extraRoadAddr += data.bname;
 	}
-	
+
 	// 2021.08.11 건물명이 제대로 나오지 않음 수정
 	// 건물명이 있고, 공동주택일 경우 추가한다.
 	//if (data.buildingName !== '' && data.apartment === 'Y') {
 	if (data.buildingName !== '') {
 		extraRoadAddr += (extraRoadAddr !== '' ? ', ' + data.buildingName : data.buildingName);
 	}
-	
+
 	// 도로명, 지번 조합형 주소가 있을 경우, 괄호까지 추가한 최종 문자열을 만든다.
 	if (extraRoadAddr !== '') {
 		extraRoadAddr = ' (' + extraRoadAddr + ')';
 	}
-	
+
 	// 도로명, 지번 주소의 유무에 따라 해당 조합형 주소를 추가한다.
 	if (fullRoadAddr !== '') {
 		fullRoadAddr += extraRoadAddr;
 	}
-	
+
 	return fullRoadAddr;
 }
 
 var cfnOpenDaumAddr = function(daumZip) {
-	
+
 	// 다은우편번호팝업 노출
 	$("#daumZipcodePop").show();
-	
+
 	if ($('html').hasClass('is-ie')) {
 		daumZip.open();
 	} else {
 		daumZip.embed(element_layer);
-		
+
 		// iframe을 넣은 element를 보이게 한다.
 		element_layer.style.display = 'block';
 
@@ -1405,7 +1411,7 @@ var cfnOpenDaumAddr = function(daumZip) {
 var cfnCloseDaumAddr = function() {
 	// iframe을 넣은 element를 안보이게 한다.
 	element_layer.style.display = 'none';
-	
+
 	// 다음우편번호팝업 닫기
 	$("#daumZipcodePop").hide();
 }
@@ -1422,13 +1428,13 @@ var cfnInitLayerPosition = function() {
 	//element_layer.style.width = width + 'px';
 	//element_layer.style.height = height + 'px';
 	element_layer.style.border = borderWidth + 'px solid';
-	
+
 	// 실행되는 순간의 화면 너비와 높이 값을 가져와서 중앙에 뜰 수 있도록 위치를 계산한다.
 	/*
 	element_layer.style.left = (((window.innerWidth || document.documentElement.clientWidth) - width) / 2 - borderWidth) + 'px';
 	element_layer.style.top = (((window.innerHeight || document.documentElement.clientHeight) - height) / 2 - borderWidth) + 'px';
 	*/
-	
+
 	// 다음 레이어 적용
 	$("#__daum__layer_1").css("z-index", 3000);
 }

+ 37 - 36
src/main/webapp/biz/mypage.js

@@ -55,7 +55,7 @@ var fnSetNoMemberLocation = function(depth3, depth4) {
 var fnGoToOrderDetail = function(param, noMember) {
 	// 이전 페이지 정보 세션 저장
 	fnSetPrePageInfo()
-	
+
 	if (noMember == 'noMember') {
 		cfnGoToPage(_PAGE_NOMEMBER_ORDER_DETAIL);
 	} else {
@@ -68,7 +68,7 @@ var fnGoToOrderDetail = function(param, noMember) {
 var fnGoToGoodsDetail = function(param) {
 	// 이전 페이지 정보 세션 저장
 	fnSetPrePageInfo()
-	
+
 	let goodsCd = $(param).attr('goodsCd');
 	let colorCd = $(param).attr('optCd1');
 	let ithrCd = $(param).attr('ithrCd');
@@ -79,7 +79,7 @@ var fnGoToGoodsDetail = function(param) {
 var fnGoToOneToOnePage = function(param) {
 	// 이전 페이지 정보 세션 저장
 	fnSetPrePageInfo()
-	
+
 	cfnGoToPage(_PAGE_ONETOONE_QNA);
 }
 
@@ -87,9 +87,9 @@ var fnGoToOneToOnePage = function(param) {
 var fnGoToDelivery = function(param, noMember) {
 	// 이전 페이지 정보 등록
 	fnSetPrePageInfo();
-	
+
 	let url = '';
-	
+
 	if (noMember == 'noMember') {
 		url = '/noMember/delivery/info/form';
 	} else {
@@ -99,7 +99,7 @@ var fnGoToDelivery = function(param, noMember) {
 	url += '&ordDtlNo=' + $(param).attr('ordDtlNo');
 	url += '&invoiceNo=' + $(param).attr('invoiceNo');
 	url += '&shipCompCd=' + $(param).attr('shipCompCd');
-	
+
 	cfnGoToPage(_frontUrl + url);
 }
 
@@ -121,10 +121,10 @@ var fnDecideOrder = function(param) {
 		sureBtnText: "확인",
 		sureBtnClick: function(){
 			let data = {};
-			
+
 			data.ordNo = ordNo;
 			data.ordDtlNoArr = orderDecisionArr;
-			
+
 			var jsonData = JSON.stringify(data);
 			gagajf.ajaxJsonSubmit('/mypage/order/decision'
 				, jsonData
@@ -143,7 +143,7 @@ var fnDecideOrder = function(param) {
 var fnCreateReview = function(param) {
 	// 이전 페이지 정보 세션 저장
 	fnSetPrePageInfo()
-	
+
 	let ordNo = $(param).attr('ordNo');
 	let ordDtlNo = $(param).attr('ordDtlNo');
 	let goodsCd = $(param).attr('goodsCd');
@@ -162,19 +162,19 @@ var fnCreateCart = function(param) {
 	}
 
 	let data = {};
-	
+
 	data.ordNo = ordNo;
 	data.ordDtlNo = ordDtlNo;
-	
+
 	var jsonData = JSON.stringify(data);
-	
+
 	gagajf.ajaxJsonSubmit(url, jsonData, fnAddCart);
 }
 
 //장바구니담기
 var fnAddCart = function(param){
 	let data = [];
-	
+
 	$.each(param, function(idx, item) {
 		let obj = {};
 		obj.goodsCd = item.goodsCd;
@@ -189,7 +189,7 @@ var fnAddCart = function(param){
 
 		data.push(obj);
 	});
-	
+
 	cfnAddCart(data);
 }
 
@@ -199,9 +199,9 @@ var fnReSendSms = function(param) {
 	let url = '/mypage/gift/kakao/resend';
 	let data = {};
 	data.ordNo = ordNo;
-	
+
 	let jsonData = JSON.stringify(data);
-	
+
 	gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
 		console.log(result);
 	}, true);
@@ -211,7 +211,7 @@ var fnReSendSms = function(param) {
 var fnCreateChange = function(param, gubun, noMember) {
 	// 이전 페이지 정보 세션 저장
 	fnSetPrePageInfo()
-	
+
 	let ordCanChgQty = $(param).attr('ordCanChgQty');
 	let str = '';
 	let url = '';
@@ -252,7 +252,7 @@ var fnCreateChange = function(param, gubun, noMember) {
 	if (noMember != 'noMember') {
 		url += '&ordNo=' + $(param).attr('ordNo');
 	}
-	
+
 	cfnGoToPage(_frontUrl + url);
 }
 
@@ -263,7 +263,7 @@ var fnDeleteOrder = function(noMember) {
 		sureBtnText: "확인",
 		sureBtnClick: function(){
 			let url = '';
-			
+
 			if (noMember == 'noMember') {
 				url = '/noMember/order/delete';
 			} else {
@@ -364,7 +364,7 @@ var fnReceipt = function(param) {
 		if (!gagajf.isNull(paymentInfo.ordChgSq)) {
 			order_no = 'C' + paymentInfo.ordChgSq;
 		}
-		
+
 		// URL 설정
 		receiptWin += '?cmd=card_bill';
 		receiptWin += '&tno=' + paymentInfo.pgTid;
@@ -379,7 +379,7 @@ var fnReceipt = function(param) {
 		receiptWin += '&cash_no=' + paymentInfo.cashTradeNo;
 		receiptWin += '&order_id=' + ordNo;
 		receiptWin += '&trade_mony=' + (orderAmtInfo.realOrdAmt + orderAmtInfo.realDelvAmt);
-		
+
 		// 팝업 크기 설정
 		option = 'width=370, height=625';
 	} else if (param == 'cancel') {
@@ -393,7 +393,7 @@ var fnReceipt = function(param) {
 			mcxDialog.alert('아직 전표생성이 되지 않았습니다.');
 			return false;
 		}
-		
+
 		// 팝업 크기 설정
 		option = 'width=455, height=815';
 	} else if (param == 'delivery') {
@@ -402,7 +402,7 @@ var fnReceipt = function(param) {
 		receiptWin += '&tno=' + oneData.pgTid;
 		receiptWin += '&order_no=' + oneData.ordNo;
 		receiptWin += '&trade_mony=' + oneData.addPayCost;
-		
+
 		// 팝업 크기 설정
 		option = 'width=455, height=815';
 	}
@@ -422,7 +422,7 @@ var fnGetTextLength = function(obj, maxLen) {
 	//	$(obj).val(content.substring(0, maxLen));
 	//	$('.txt_cnt').html('<span id="review_cnt" class="c_primary">'+maxLen+'</span>/'+maxLen);
 	//}
-	
+
 	var content = $(obj).val();
 	$('.txt_cnt').html('<span id="review_cnt" class="c_primary">'+content.length+'</span>/'+maxLen);
 };
@@ -433,12 +433,12 @@ var fnReviewCreate = function(obj1,obj2,obj3) {
 	let ordDtlNo = obj2;
 	let goodsCd = obj3;
 	let reviewStat = 'c';
-	
+
 	$('#createReview input[name=ordNo]').val(ordNo);
 	$('#createReview input[name=ordDtlNo]').val(ordDtlNo);
 	$('#createReview input[name=goodsCd]').val(goodsCd);
 	$('#createReview input[name=reviewStat]').val(reviewStat);
-	
+
 	document.createReview.submit();
 }
 
@@ -471,9 +471,9 @@ var fnCreCancel = function(param, noMember) {
 	let data = {};
 	data.ordNo = ordNo;
 	data.ordChgSq = ordChgSq;
-	
+
 	let jsonData = JSON.stringify(data);
-	
+
 	mcxDialog.confirm(msg, {
 		cancelBtnText: "취소",
 		sureBtnText: "확인",
@@ -537,11 +537,11 @@ function getFormatDate(date) {
 	if (day > lastDay) {
 		day = lastDay;
 	}
-	
+
 	month = month >= 10 ? month : '0' + month;
-	
+
 	day = day >= 10 ? day : '0' + day;
-	
+
 	return year + '-' + month + '-' + day;
 }
 
@@ -549,10 +549,10 @@ function getFormatDate(date) {
 var fnSetInitPeriod = function() {
 	let date 		= new Date();
 	let edDate 		= getFormatDate(date);
-	
+
 	date.setDate(date.getDate() - 7);
 	let stDate 		= getFormatDate(date);
-	
+
 	$('#edDate').val(edDate);
 	$('#searchForm input[name=edDate]').val(edDate);
 	$('#stDate').val(stDate);
@@ -564,7 +564,8 @@ var fnSetPrePageInfo = function() {
 	// 인피니스크롤위치이동
 	let scrollpos = $(window).scrollTop();
 	localStorage.setItem('scrollpos', scrollpos);
-	
+	gagajf.setCookie('scrollpos', scrollpos);
+
 	// PageNo 저장
 	let pageNo = $("#searchForm input[name=pageNo]").val();
 	localStorage.setItem('pageNo', pageNo);
@@ -587,7 +588,7 @@ var fnSetPrePageInfo = function() {
 // 캐쉬페이징 정보 설정
 var fnGetPrePageInfo = function() {
 	pageNo = localStorage.getItem('pageNo');
-	
+
 	var period = localStorage.getItem('period');
 	$.each($('#odDatePop button'), function(idx, item) {
 		if ($(item).attr('period') == period) {
@@ -597,7 +598,7 @@ var fnGetPrePageInfo = function() {
 			$(item).removeClass('on');
 		}
 	});
-	
+
 	var code = localStorage.getItem('code');
 	$.each($('#odStatusPop button'), function(idx, item) {
 		if ($(item).attr('code') == code) {

+ 1 - 0
src/main/webapp/biz/search.js

@@ -520,6 +520,7 @@ var fnSortingChange = function (obj, sortingType, stat, appGb){
 var fnClickGoodsCd = function (goodsCd, mainColorCd, keyWord , searchId){
 	let scrollpos = $(window).scrollTop();
 	localStorage.setItem('scrollpos', scrollpos);
+	gagajf.setCookie('scrollpos',scrollpos);
 	cfnGoToGoodsDetail(goodsCd, mainColorCd,'','','','', keyWord , searchId);
 }
 

+ 5 - 0
src/main/webapp/ux/plugins/gaga/gaga.infinite.scroll.js

@@ -154,6 +154,11 @@ var gagaInfiniteScroll = {
 			// Append HTML
 			this.obj.$ajaxBox.append($addHtm);
 
+			if(gagajf.getCookie('scrollpos')){
+				scrollTop = gagajf.getCookie('scrollpos');
+				gagajf.setCookie('scrollpos', null);
+			}
+
 			if (scrollTop && containerHeight) {
 				gagaInfiniteScroll.obj.$window.scrollTop.scrollTop(0).scrollTop(scrollTop);
 			} else {

+ 7 - 3
src/main/webapp/ux/plugins/gaga/gaga.infinite.scrollLayer.js

@@ -63,7 +63,7 @@ var gagaInfiniteScroll = {
 	},
 	scrollCheck : function() {
 		var obj = this.obj, stat = this.pageStatus;
-		
+
 		if ($('[data-id="layer_infinite"]').scrollTop() + $('[data-id="layer_infinite"]').height() >= $('[data-id="layer_infinite_item"]').height() ) { // 더보기
 			if (stat.loadAlign == 'not') {
 				var pageLen = this.pageStatus.pageNum.length - 1;
@@ -72,7 +72,7 @@ var gagaInfiniteScroll = {
 				this.pageStatus.loadPage = nextPageNum;
 				stat.loadAlign = 'next';
 				this.getDataList();
-				
+
 			};
 		}
 	},
@@ -111,7 +111,7 @@ var gagaInfiniteScroll = {
 //		$(window).on('scroll', function() {
 //			gagaInfiniteScroll.scrollCheck();
 //		});
-		
+
 		$('[data-id="layer_infinite"]').on('scroll', function() {
 			gagaInfiniteScroll.scrollCheck();
 		});
@@ -164,6 +164,10 @@ var gagaInfiniteScroll = {
 			// Append HTML
 			this.obj.$ajaxBox.append($addHtm);
 
+			if(gagajf.getCookie('scrollpos')){
+				scrollTop = gagajf.getCookie('scrollpos');
+				gagajf.setCookie('scrollpos', null);
+			}
 			if (scrollTop && containerHeight) {
 				gagaInfiniteScroll.obj.$window.scrollTop.scrollTop(0).scrollTop(scrollTop);
 			} else {

+ 1 - 0
src/main/webapp/ux/plugins/gaga/gaga.infinite.scrollSession.js

@@ -86,6 +86,7 @@ var gagaInfiniteScroll = {
 		if ( pos != null && $(window).scrollTop() < pos ) {
 			$("html, body").scrollTop(pos);
 			localStorage.removeItem('scrollpos');
+			gagajf.setCookie('scrollpos',null);
 		}
 	},
 	getDataList : function() {

+ 5 - 4
src/main/webapp/ux/style24_link.js

@@ -1519,7 +1519,7 @@ function cfMypageReviewDetail(goodsCd, photoYn, reviewSq, rvAtcSq) {
 function copyToClipboard() {
 	var t = document.createElement("textarea");
 	document.body.appendChild(t);
-	t.value = window.location.href;
+	t.value = window.location.href.replaceAll('#enp_mbris','') + '&share=Y';
 	t.select();
 	document.execCommand('copy');
 	document.body.removeChild(t);
@@ -1576,7 +1576,7 @@ function sendSns(sns, url, txt, media, description)
 	var _description = encodeURIComponent(description);
 	
 	_url = location.protocol + encodeURIComponent(url);
-	
+	_url = _url.replaceAll('#enp_mbris','') +'&share=Y'
 	switch(sns)
 	{
 		case 'facebook':
@@ -1594,7 +1594,8 @@ function sendSns(sns, url, txt, media, description)
 var kakaoInitCnt = 0; //카카오 초기화 카운트, 재실행 방지를 위해 사용함
 function cfnSendToKakao(linkUrl, linkNm, linkImg) {
 	linkUrl = location.protocol + encodeURIComponent(linkUrl);
-	
+	linkUrl = linkUrl.replaceAll('#enp_mbris','') +'&share=Y';
+
 	// Kakao Key
 	if ( kakaoInitCnt == 0 ) {
 		Kakao.init(_kakaoDomainKey);
@@ -1628,7 +1629,7 @@ function cfnSendToKakao(linkUrl, linkNm, linkImg) {
 
 function cfnSendToKakaoMob(linkUrl, linkNm, linkImg) {
 	linkUrl = location.protocol + encodeURIComponent(linkUrl);
-	
+	linkUrl = linkUrl.replaceAll('#enp_mbris','') +'&share=Y';
 	// Kakao Key
 	if ( kakaoInitCnt == 0 ) {
 		Kakao.init(_kakaoDomainKey);