Преглед изворни кода

GNB TAB 기획전 배너 영역

bin2107 пре 5 година
родитељ
комит
ae0b2661f5

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

@@ -208,4 +208,12 @@ public interface TsfDisplayDao {
 	 */
 	String getBrandGroupDefaultCategoryYn(Integer brandGroupNo);
 
+	/**
+	 * GNB TAB 기획전배너 목록
+	 * @param contents - 컨텐츠 정보
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 4. 14
+	 */
+	Collection<Contents> getGnbTabBannerList(Contents contents);
 }

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

@@ -1,6 +1,7 @@
 package com.style24.front.biz.service;
 
 import java.util.Collection;
+import java.util.ArrayList;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cache.annotation.Cacheable;
@@ -476,4 +477,16 @@ public class TsfDisplayService {
 		return displayDao.getAllBrandList(brandGroup);
 	}
 
+	/**
+	 * GNB TAB 기획전배너 리스트
+	 * @param Contents
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 4. 14
+	 */
+	public Collection<Contents> getGnbTabBannerlist(Contents contenst){
+		Collection<Contents> contentsList = displayDao.getGnbTabBannerList(contenst);
+		return contentsList;
+	}
+
 }

+ 14 - 0
src/main/java/com/style24/front/biz/web/TsfDisplayController.java

@@ -664,4 +664,18 @@ public class TsfDisplayController extends TsfBaseController {
 		return result;
 	}
 
+	/**
+	 * GNB TAB 기획전배너 리스트
+	 * @param Contents
+	 * @return
+	 * @author bin2107
+	 * @since 2021. 4. 14
+	 */
+	@GetMapping("/gnb/tab/banner/list")
+	@ResponseBody
+	public Collection<Contents> getGnbTabBannerlist(Contents contents) {
+		contents.setContentsLoc("STAB003");
+		return displayService.getGnbTabBannerlist(contents);
+	}
+
 }

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

@@ -66,6 +66,10 @@ public class Contents extends TscBaseDomain {
 	private String cateGb;
 	private String cateNm;
 
+	// 몰메인 STAB003에서 사용
+	private String gnbTabTitle;		// gnbTab 기획전배너영역 타이틀
+	private String bannerGb;		// admin:수동설정, plan:기획전
+
 	private String pageGb;	// 호출페이지 구분(MALL:몰메인, BEST:베스트메인)
 
 	//private String contentsTitle;		// 메인 타이틀(md가 설정한)

+ 3 - 0
src/main/java/com/style24/persistence/domain/GnbTab.java

@@ -4,6 +4,8 @@ import com.style24.persistence.TscBaseDomain;
 
 import lombok.Data;
 
+import java.util.Collection;
+
 /**
  * 컨텐츠 Domain
  * 
@@ -29,4 +31,5 @@ public class GnbTab extends TscBaseDomain {
 	private String viewDt;			// 미리보기일시
 	private String preview;			// 미리보기여부
 
+	private String gtabBannerTitle;
 }

+ 42 - 4
src/main/java/com/style24/persistence/mybatis/shop/TsfDisplay.xml

@@ -83,6 +83,7 @@
 		    </when>
 		    <otherwise>
 		     , GTAB_SQ                                            /*GNB탭일련번호*/
+		     , CASE WHEN CONTENTS_TYPE = 'C' THEN (SELECT CONTENTS_TITLE FROM	TB_MAIN_LAYOUT WHERE CONTENTS_LOC = 'STAB003') ELSE '' END AS GTAB_BANNER_TITLE
 		FROM   TB_GNB_TAB A
 		    </otherwise>
 		</choose>
@@ -225,9 +226,12 @@
 		        <if test="cateNo != null and cateNo != ''">
 		        AND    A.CATE_NO = #{cateNo}
 		        </if>
-				<if test="brandGroupNo != null and brandGroupNo !=''">
-				AND    A.BRAND_GROUP_NO  = #{brandGroupNo}
-				</if>
+		        <if test="brandGroupNo != null and brandGroupNo !=''">
+		        AND    A.BRAND_GROUP_NO  = #{brandGroupNo}
+		        </if>
+		        <if test="contentsType != null and contentsType != ''">
+		        AND    A.CONTENTS_TYPE = #{contentsType}
+		        </if>
 		        <choose>
 		            <when test='preview != null and preview == "Y"'>
 		        AND    IFNULL((SELECT DISP_EDDT
@@ -923,5 +927,39 @@
 		FROM   TB_BRAND_GROUP
 		WHERE  BRAND_GROUP_NO = #{brandGroupNo}
 	</select>
-	
+
+	<!-- GNB TAB 기획전배너 조회 -->
+	<select id="getGnbTabBannerList" parameterType="Contents" resultType="Contents">
+		/* TsfDisplay.getGnbTabBannerList */
+		SELECT (SELECT CONTENTS_TITLE FROM TB_MAIN_LAYOUT WHERE 1=1 AND CONTENTS_LOC = 'STAB003') AS GNB_TAB_TITLE
+		      , Z.BANNER_GB
+		      , Z.IMG_PATH1
+		      , Z.STR_VAR1
+		      , Z.STR_TITLE1
+		      , Z.STR_TITLE2
+		FROM    (
+		            SELECT  'ADMIN' AS BANNER_GB
+		                  , IMG_PATH1
+		                  , STR_VAR1
+		                  , STR_TITLE1
+		                  , STR_TITLE2
+		            FROM    TB_CONTENTS
+		            WHERE   CONTENTS_LOC = #{contentsLoc}
+		            AND     CONTENTS_TYPE = #{cateNo}
+		            AND     USE_YN = 'Y'
+		            UNION ALL
+		            SELECT  'PLAN' AS BANNER_GB
+		                  , A.MAIN_PIMG AS IMG_PATH1
+		                  , CONCAT('/planning/detail/form?planSq=',A.PLAN_SQ) AS STR_VAR1
+		                  , A.PLAN_NM AS STR_TITLE1
+		                  , A.DTL_TITLE1 AS STR_TITLE2
+		            FROM  TB_PLAN A
+		            INNER JOIN TB_PLAN_CATE B ON A.PLAN_SQ = B.PLAN_SQ
+		            WHERE  1=1
+		              AND  B.CATE_NO = #{cateNo}
+		              AND  A.OPEN_YN = 'Y'
+		              AND  B.DISP_YN = 'Y'
+		        ) Z
+		LIMIT 2
+	</select>
 </mapper>

+ 41 - 28
src/main/webapp/WEB-INF/views/web/common/fragments/GnbWeb.html

@@ -608,41 +608,53 @@
 				tag += '				</ul>\n';
 				tag += '			</div>\n';
 				tag += '		</div>\n';
+				tag += '	<div class="head_banner" id="id'+cate1.cate1No+'">\n';
+				tag += '	</div>';
 				tag += '	</div>\n';
 			}
-
-			// if (cate1.bannerList.length > 0) {
-			// 	tag += '	<div class="head_banner">\n';
-			// 	tag += '		<div class="tit">\n';
-			// 	tag += '			<p>가을의 신상 만나기</p>\n';
-			// 	tag += '		</div>\n';
-			// 	tag += '		<div class="list">\n';
-			// 	tag += '			<ul class="clear event_con">\n';
-			// 	tag += '				<li>\n';
-			// 	tag += '					<a href="">\n';
-			// 	tag += '						<div class="ev_img"><img src="/images/pc/thumb/ev_list_img01.jpg" alt="ATTENTION! 20FW HOLIDAY TBJ 주목할 홀리데이 TBJ 컬렉션"></div>\n';
-			// 	tag += '						<div class="txt">\n';
-			// 	tag += '							<p class="tit">2020 FALL COLLECTION 가을에는 이 컬러 2020 FALL COLLECTION 가을에는 이 컬러</p>\n';
-			// 	tag += '						</div>\n';
-			// 	tag += '					</a>\n';
-			// 	tag += '				</li>\n';
-			// 	tag += '				<li>\n';
-			// 	tag += '					<a href="">\n';
-			// 	tag += '						<div class="ev_img"><img src="/images/pc/thumb/ev_list_img02.jpg" alt="단 48시간, 퓨어캐시미어 최대 80%세일 PURE CASHMERE 48H POP-UP"></div>\n';
-			// 	tag += '						<div class="txt">\n';
-			// 	tag += '							<p class="tit">FALL NEW ARRIVAL</p>\n';
-			// 	tag += '						</div>\n';
-			// 	tag += '					</a>\n';
-			// 	tag += '				</li>\n';
-			// 	tag += '			</ul>\n';
-			// 	tag += '		</div>\n';
-			// 	tag += '	</div>\n';
-			// }
 			tag += '</li>\n';
 		}
 		return tag;
 	}
 
+	let fnGetGnbBanner = function (cateNo, title){
+		let actionUrl = '/display/gnb/tab/banner/list?cateNo='+cateNo;
+		let tag2 = '';
+		$.getJSON(actionUrl
+		, function(result, status){
+			var bannerImgUrl = [[${@environment.getProperty('domain.image')}]];
+			var planninImgUrl = [[${@environment.getProperty('upload.image.view')}]];
+			if(result.length>0){
+				tag2 += '		<div class="tit">\n';
+				tag2 += '			<p>'+title+'</p>\n';
+				tag2 += '		</div>\n';
+				tag2 += '		<div class="list">\n';
+				tag2 += '			<ul class="clear event_con">\n';
+				$.each(result, function (idx, item){
+					tag2 += '				<li>\n';
+					tag2 += '					<a href="javascript:void(0);" onclick="cfnGoToPage(\''+item.strVar1+'\')">\n';
+					if(item.bannerGb=='ADMIN'){
+						tag2 += '						<div class="ev_img"><img src="'+bannerImgUrl+''+item.imgPath1+'" alt=""></div>\n';
+					}else{
+						tag2 += '						<div class="ev_img"><img src="'+planninImgUrl+''+item.imgPath1+'" alt=""></div>\n';
+					}
+
+					tag2 += '						<div class="txt">\n';
+					tag2 += '							<p class="tit">'+item.strTitle1+'</p>\n';
+					// tag2 += '							<p class="tit">'+item.strTitle2+'</p>\n';
+					tag2 += '						</div>\n';
+					tag2 += '					</a>\n';
+					tag2 += '				</li>\n';
+				});
+				tag2 += '			</ul>\n';
+				tag2 += '		</div>\n';
+			}
+			$('#id'+cateNo).append(tag2);
+			return tag2;
+		});
+
+	}
+
 	// GNB탭 생성
 	let fnCreateGnbTab = function() {
 		$.getJSON('/display/gnb/tab/list'
@@ -658,6 +670,7 @@
 								$.each(allCate, function(allCateIdx, allCateItem) {
 									if (item.cate1No == allCateItem.cate1No) {
 										let gnbCate = fnGetGnbCategory(allCateItem);
+										fnGetGnbBanner(item.cate1No ,item.gtabBannerTitle);
 										$('#divGnbTab').append(gnbCate);
 										$('#ulGnbTab').append(gnbCate);
 									}