Procházet zdrojové kódy

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

gagamel před 5 roky
rodič
revize
fa286076f5

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

@@ -1896,7 +1896,7 @@
 		            , G.PARALLEL_IMPORT_YN /*병행수입여부*/
 		            , G.ORDER_MADE_YN      /*주문제작여부*/
 		            , G.GOODS_TNM          /*상품타이틀명*/
-		            , G.MAIN_COLOR_CD      /*대표색상코드*/
+		            , IFNULL(O.OPT_CD1,G.MAIN_COLOR_CD) AS MAIN_COLOR_CD      /*대표색상코드*/
 		            , G.LIST_PRICE         /*정상가(최초판매가)*/
 		            , G.CURR_PRICE         /*현재판매가*/
 		            , G.FORMAL_GB          /*정상이월구분*/
@@ -2022,34 +2022,46 @@
 		                            </foreach>
 		            )
 		         </if>
-				<if test="priceFrom != null and priceFrom != ''">
-					AND    G.CURR_PRICE <![CDATA[>=]]> #{priceFrom}
-				</if>
-				<if test="priceTo != null and priceTo != ''">
-					AND    G.CURR_PRICE <![CDATA[<=]]> #{priceTo}
-				</if>
-				<if test="dcRateFrom != null and dcRateFrom != ''">
-					AND    ((IF(G.LIST_PRICE = 0,0,G.LIST_PRICE) - G.CURR_PRICE) / IF(G.LIST_PRICE = 0,0,G.LIST_PRICE) * 100) <![CDATA[>=]]> #{dcRateFrom}
-				</if>
-				<if test="dcRateTo != null and dcRateTo != ''">
-					AND    ((IF(G.LIST_PRICE = 0,0,G.LIST_PRICE) - G.CURR_PRICE) / IF(G.LIST_PRICE = 0,0,G.LIST_PRICE) * 100) <![CDATA[<=]]> #{dcRateTo}
-				</if>
+		        <if test="priceFrom != null and priceFrom != ''">
+		            AND    G.CURR_PRICE <![CDATA[>=]]> #{priceFrom}
+		        </if>
+		        <if test="priceTo != null and priceTo != ''">
+		            AND    G.CURR_PRICE <![CDATA[<=]]> #{priceTo}
+		        </if>
+		        <if test="dcRateFrom != null and dcRateFrom != ''">
+		            AND    ((IF(G.LIST_PRICE = 0,0,G.LIST_PRICE) - G.CURR_PRICE) / IF(G.LIST_PRICE = 0,0,G.LIST_PRICE) * 100) <![CDATA[>=]]> #{dcRateFrom}
+		        </if>
+		        <if test="dcRateTo != null and dcRateTo != ''">
+		            AND    ((IF(G.LIST_PRICE = 0,0,G.LIST_PRICE) - G.CURR_PRICE) / IF(G.LIST_PRICE = 0,0,G.LIST_PRICE) * 100) <![CDATA[<=]]> #{dcRateTo}
+		        </if>
 		       ) G
-				LEFT OUTER JOIN TB_OPTION O ON G.GOODS_CD = O.GOODS_CD AND G.SELF_GOODS_YN = 'Y' /*자사상품만*/ AND    O.DISP_YN = 'Y'
-				<if test="colorArr != null and colorArr.length > 0"> <!-- 색상 -->
-					AND    O.OPT_CD1 IN (SELECT COLOR_CD
-					FROM   TB_COLOR
-					WHERE  1 = 1
-					AND    COLOR_GRP_CD IN
-					<foreach collection="colorArr" item="item" index="index"  open="(" close=")" separator=",">
-						#{item}
-					</foreach>
-					AND    USE_YN = 'Y' /*사용하는색상*/
-					)
-				</if>
+		        LEFT OUTER JOIN TB_OPTION O ON G.GOODS_CD = O.GOODS_CD AND G.SELF_GOODS_YN = 'Y' /*자사상품만*/ AND    O.DISP_YN = 'Y'
+		        <if test="colorArr != null and colorArr.length > 0"> <!-- 색상 -->
+		            AND    O.OPT_CD1 IN (SELECT COLOR_CD
+		            FROM   TB_COLOR
+		            WHERE  1 = 1
+		            AND    COLOR_GRP_CD IN
+		            <foreach collection="colorArr" item="item" index="index"  open="(" close=")" separator=",">
+		                #{item}
+		            </foreach>
+		            AND    USE_YN = 'Y' /*사용하는색상*/
+		            )
+		        </if>
 		)
 		SELECT COUNT(*)
 		FROM   TAB_GOODS G
+		WHERE 1=1
+		<if test="colorArr != null and colorArr.length > 0"> <!-- 색상 -->
+		  AND    G.MAIN_COLOR_CD IN (SELECT COLOR_CD
+		                               FROM   TB_COLOR
+		                               WHERE  1 = 1
+		                               AND    COLOR_GRP_CD IN
+		                               <foreach collection="colorArr" item="item" index="index"  open="(" close=")" separator=",">
+		                               	#{item}
+		                               </foreach>
+		                               AND    USE_YN = 'Y' /*사용하는색상*/
+		                              )
+		</if>
 	</select>
 
 	<!-- 카테고리별 상품 목록 -->
@@ -2065,7 +2077,7 @@
 		           , G.PARALLEL_IMPORT_YN /*병행수입여부*/
 		           , G.ORDER_MADE_YN      /*주문제작여부*/
 		           , G.GOODS_TNM          /*상품타이틀명*/
-		           , G.MAIN_COLOR_CD      /*대표색상코드*/
+		           , IFNULL(O.OPT_CD1,G.MAIN_COLOR_CD) AS MAIN_COLOR_CD      /*대표색상코드*/
 		           , G.LIST_PRICE         /*정상가(최초판매가)*/
 		           , G.CURR_PRICE         /*현재판매가*/
 		           , G.FORMAL_GB          /*정상이월구분*/
@@ -2240,8 +2252,8 @@
 		      , G.MAIN_COLOR_CD
 		      , G.LIST_PRICE
 		      , G.CURR_PRICE
-			  , (SELECT SYS_IMG_NM FROM TB_GOODS_IMG X WHERE X.GOODS_CD = G.GOODS_CD AND G.MAIN_COLOR_CD = X.COLOR_CD AND DEFAULT_IMG_YN = 'Y') AS SYS_IMG_NM
-			  , (SELECT SYS_IMG_NM FROM TB_GOODS_IMG X WHERE X.GOODS_CD = G.GOODS_CD AND G.MAIN_COLOR_CD = X.COLOR_CD AND MOUSEOVER_IMG_YN = 'Y') AS SYS_IMG_NM2
+			  , (SELECT SYS_IMG_NM FROM TB_GOODS_IMG X WHERE X.GOODS_CD = G.GOODS_CD AND G.MAIN_COLOR_CD = X.COLOR_CD AND DEFAULT_IMG_YN = 'Y' LIMIT 1) AS SYS_IMG_NM
+			  , (SELECT SYS_IMG_NM FROM TB_GOODS_IMG X WHERE X.GOODS_CD = G.GOODS_CD AND G.MAIN_COLOR_CD = X.COLOR_CD AND MOUSEOVER_IMG_YN = 'Y' LIMIT 1) AS SYS_IMG_NM2
 		      , (
 		      SELECT GROUP_CONCAT(CONCAT(VIDEO_GB,':',KMC_KEY) ORDER BY NUMB SEPARATOR ',')
 		      FROM   (
@@ -2306,6 +2318,18 @@
 		    LEFT OUTER JOIN TB_WISHLIST W ON G.GOODS_CD = W.GOODS_CD
 		    AND    W.CUST_NO = #{custNo}
 		</if>
+		WHERE 1=1
+		<if test="colorArr != null and colorArr.length > 0"> <!-- 색상 -->
+		  AND    G.MAIN_COLOR_CD IN (SELECT COLOR_CD
+		        FROM   TB_COLOR
+		        WHERE  1 = 1
+		        AND    COLOR_GRP_CD IN
+		        <foreach collection="colorArr" item="item" index="index"  open="(" close=")" separator=",">
+		            #{item}
+		        </foreach>
+		        AND    USE_YN = 'Y' /*사용하는색상*/
+		  )
+		</if>
 	</select>
 	
 	<!-- 검색상품 총건수 -->

+ 57 - 112
src/main/webapp/WEB-INF/views/mob/display/CategoryGoodsListFormMob.html

@@ -93,62 +93,16 @@
 						<div class="filter_header">
 							<div class="form_field">
 								<div>
-									<input id="price" type="checkbox"><label for="price"> <span>남여 공용만 보기</span> </label>
+									<input id="unisex" type="checkbox" onclick="fnFilterOption(this,'on');"><label for="unisex"> <span>남여 공용만 보기</span> </label>
 								</div>
 								<div>
-									<input id="chk-2" type="checkbox"><label for="chk-2"> <span>신상품만 보기</span> </label>
+									<input id="newGoods" type="checkbox" checked="checked" onclick="fnFilterOption(this,'off');"><label for="newGoods"> <span>신상품만 보기</span> </label>
 								</div>
 							</div>
 						</div>
 						<div class="filter_body">
 							<!-- 필터메뉴 -->
 							<ul>
-								<li class="categori" id="categoryFilterDiv">
-									<a href="javascript:void(0)" class="daps1">카테고리<!--<span class="pic">셔츠/블라우스</span>--></a>
-									<ul class="daps2" id="categoryArea">
-<!--										<li>-->
-<!--											<a href="javascript:void(0)">여성</a>-->
-<!--											<ul class="daps3">-->
-<!--												<li>-->
-<!--													<a href="javascript:void(0)">티셔츠/셔츠</a>-->
-<!--													<ul class="daps4">-->
-<!--														<li>-->
-<!--															<a href="javascript:void(0)">셔츠/블라우스</a>-->
-<!--															<ul class="daps5">-->
-<!--																<li><a href="javascript:void(0)">셔츠</a></li>-->
-<!--																<li><a href="javascript:void(0)">블라우스</a></li>-->
-<!--															</ul>-->
-<!--														</li>-->
-<!--														<li>-->
-<!--															<a href="javascript:void(0)">맨투맨/모자티</a>-->
-<!--															<ul class="daps5">-->
-<!--																<li><a href="javascript:void(0)">맨투맨</a></li>-->
-<!--																<li><a href="javascript:void(0)">모자티</a></li>-->
-<!--															</ul>-->
-<!--														</li>-->
-<!--													</ul>-->
-<!--												</li>-->
-<!--											</ul>-->
-<!--										</li>-->
-<!--										<li>-->
-<!--											<a href="javascript:void(0)">남성</a>-->
-<!--											<ul class="daps3">-->
-<!--												<li>-->
-<!--													<a href="javascript:void(0)">티셔츠/셔츠</a>-->
-<!--													<ul class="daps4">-->
-<!--														<li>-->
-<!--															<a href="javascript:void(0)">셔츠/블라우스</a>-->
-<!--															<ul class="daps5">-->
-<!--																<li><a href="javascript:void(0)">셔츠</a></li>-->
-<!--																<li><a href="javascript:void(0)">블라우스</a></li>-->
-<!--															</ul>-->
-<!--														</li>-->
-<!--													</ul>-->
-<!--												</li>-->
-<!--											</ul>-->
-<!--										</li>-->
-									</ul>
-								</li>
 								<li class="brand" th:if="${filterBrandList != null and !filterBrandList.empty}" id="brandGroupFilterDiv">
 									<a href="javascript:void(0)" class="daps1">브랜드</a>
 									<ul class="daps2">
@@ -197,69 +151,6 @@
 								<li class="price" id="priceFilterDiv">
 									<a href="javascript:void(0)" class="daps1">가격<!--<span class="pic">230,000원~487,000원, 700,000원~990,000원</span>--></a>
 									<ul class="daps2" id="priceArea">
-<!--										<li>-->
-<!--											<a href="javascript:void(0)">-->
-<!--												<div class="form_field">-->
-<!--													<div>-->
-<!--														<input id="price1" type="checkbox"><label for="price1"> <span>9천원 이하</span> </label>-->
-<!--													</div>-->
-<!--												</div>-->
-<!--											</a>-->
-<!--										</li>-->
-<!--										<li>-->
-<!--											<a href="javascript:void(0)">-->
-<!--												<div class="form_field">-->
-<!--													<div>-->
-<!--														<input id="price2" type="checkbox"><label for="price2"> <span>9천원 ~ 23만원</span> </label>-->
-<!--													</div>-->
-<!--												</div>-->
-<!--											</a>-->
-<!--										</li>-->
-<!--										<li>-->
-<!--											<a href="javascript:void(0)">-->
-<!--												<div class="form_field">-->
-<!--													<div>-->
-<!--														<input id="price3" type="checkbox" checked><label for="price3"> <span>23만원 ~ 48만원 7천원</span> </label>-->
-<!--													</div>-->
-<!--												</div>-->
-<!--											</a>-->
-<!--										</li>-->
-<!--										<li>-->
-<!--											<a href="javascript:void(0)">-->
-<!--												<div class="form_field">-->
-<!--													<div>-->
-<!--														<input id="price4" type="checkbox" ><label for="price4"> <span>48만원 7천원 ~ 79만원</span> </label>-->
-<!--													</div>-->
-<!--												</div>-->
-<!--											</a>-->
-<!--										</li>-->
-<!--										<li>-->
-<!--											<a href="javascript:void(0)">-->
-<!--												<div class="form_field">-->
-<!--													<div>-->
-<!--														<input id="price5" type="checkbox" checked><label for="price5"> <span>70만원 ~ 99만원</span> </label>-->
-<!--													</div>-->
-<!--												</div>-->
-<!--											</a>-->
-<!--										</li>-->
-<!--										<li>-->
-<!--											<a href="javascript:void(0)">-->
-<!--												<div class="form_field">-->
-<!--													<div>-->
-<!--														<input id="price6" type="checkbox"><label for="price6"> <span>99만원 ~ 136만원</span> </label>-->
-<!--													</div>-->
-<!--												</div>-->
-<!--											</a>-->
-<!--										</li>-->
-<!--										<li>-->
-<!--											<a href="javascript:void(0)">-->
-<!--												<div class="form_field">-->
-<!--													<div>-->
-<!--														<input id="price7" type="checkbox"><label for="price7"> <span>136만원 ~ 179만원 9천원</span> </label>-->
-<!--													</div>-->
-<!--												</div>-->
-<!--											</a>-->
-<!--										</li>-->
 									</ul>
 								</li>
 								<li class="discount" id="dcRateFilterDiv">
@@ -496,6 +387,7 @@
 				$("#priceArea").append(priceHtml);
 			}
 
+			// 상단노출 하위 카테고리
 			fnCreateCategoryList();
 
 			if ($('#sizeLi1').find('label').length == 0) $('#sizeLi1').hide();
@@ -681,6 +573,7 @@
 
 		});
 
+		// 상단 하위카테고리 노출
 		var fnCreateCategoryList = function (){
 			let actionUrl = '';
 			let brandGroupNo = [[${cateInfo.brandGroupNo}]];
@@ -861,11 +754,63 @@
 			}
 		}
 
+		var fnFilterOption = function (obj, stat){
+			var thisId = $(obj).attr('id');
+			var tag = '';
+
+			if(thisId == 'unisex'){
+				if(stat=='on'){
+					$(obj).attr('onclick','fnFilterOption(this,\'off\');');
+					tag += '<input type="hidden" name="unisex" value="G007_Z"/>\n';
+					$("#searchGoodsForm").append(tag);
+				}else{
+					$(obj).attr('onclick','fnFilterOption(this,\'on\');');
+					$("#searchGoodsForm input:hidden[name=unisex]").remove();
+				}
+			}else{
+				if(stat=='on'){
+					$(obj).attr('onclick','fnFilterOption(this,\'off\');');
+					tag += '<input type="hidden" name="newGoods" value="40"/>\n';
+					$("#searchGoodsForm").append(tag);
+				}else{
+					$(obj).attr('onclick','fnFilterOption(this,\'on\');');
+					$("#searchGoodsForm input:hidden[name=newGoods]").remove();
+				}
+			}
+			fnCategoryGoodsInfiniteScrollInit();
+			fnGoodsListSearch();
+		}
+
 		// 사파리 - event.persisted || 크롬 - window.performance.navigation.type 이 1이면 새로고침, 2면 페이지 이동을 통한 캐쉬페이징
 		$(window).on("pageshow", function(event) {
+			$('#filterForm input[name=brandGroup]:checked').each(function(){
+				$(this).attr('checked', true);
+			});
+			$('#filterForm input[name=size]:checked').each(function(){
+				$(this).attr('checked', true);
+			});
+			$('#filterForm input[name=dcRate]:checked').each(function(){
+				$(this).attr('checked', true);
+			});
+			$('#filterForm input[name=age]:checked').each(function(){
+				$(this).attr('checked', true);
+			});
+			$('#filterForm input[name=season]:checked').each(function(){
+				$(this).attr('checked', true);
+			});
+			$('#filterForm input[name=color]:checked').each(function(){
+				$(this).attr('checked', true);
+			});
+			$('#filterForm input[name=benefit]:checked').each(function(){
+				$(this).attr('checked', true);
+			});
+			$('#filterForm input[name=price]:checked').each(function(){
+				$(this).attr('checked', true);
+			});
 			if ( (event.originalEvent && event.originalEvent.persisted) || (window.performance && window.performance.navigation.type == 2)) {
 				var historyData = sessionStorage.getItem(document.location.href);
 				if(historyData!=null){
+					console.log('M historyData>>'+historyData);
 					historyData = JSON.parse(historyData);
 				}else{
 					historyData = {};
@@ -879,7 +824,7 @@
 					filterStatHtml = historyData.filterStatHtml;
 				}
 				if(typeof historyData.totalCount!='undefined' && historyData.totalCount!=''){
-					//$("#totalGoodsCnt").text(historyData.totalCount);
+					$("#totCntId").text(historyData.totalCount);
 				}
 				if(typeof historyData.sortGb!='undefined' && historyData.sortGb!=''){
 					$("#sortSelect").val(historyData.sortGb);