Parcourir la source

Merge branch 'sowon' into develop

sowon4187 il y a 5 ans
Parent
commit
10c7bc3e56

+ 19 - 0
src/main/java/com/style24/front/biz/dao/TsfPlanningDao.java

@@ -44,6 +44,25 @@ public interface TsfPlanningDao {
 	 * @date 2021. 3. 8
 	 */
 	Collection<Plan> getPlanList(Plan plan);
+	
+	/**
+	 * 기획전 목록
+	 *
+	 * @param
+	 * @return
+	 * @author sowon
+	 * @date 2021. 3. 8
+	 */
+	Collection<Plan> getPlanGoodsList(Plan plan);
 
+	/**
+	 * 이벤트 갯수 조회
+	 * 
+	 * @param Plan
+	 * @return int
+	 * @author sowon
+	 * @since 2021.03.08
+	 */
+	int getEventAllCount(Plan plan);
 
 }

+ 24 - 0
src/main/java/com/style24/front/biz/service/TsfPlanningService.java

@@ -60,5 +60,29 @@ public class TsfPlanningService {
 		//plan.setSiteCd(TsfConstants.SITE_CD);
 		return planningDao.getPlanList(plan);
 	}
+	
+	/**
+	 * 기획전 상품 목록
+	 *
+	 * @param
+	 * @return
+	 * @author sowon
+	 * @since 2021. 3. 8
+	 */
+	public Collection<Plan> getPlanGoodsList(Plan plan) {
+		//plan.setSiteCd(TsfConstants.SITE_CD);
+		return planningDao.getPlanGoodsList(plan);
+	}
+
+	/**
+	 * 이벤트 갯수 조회
+	 * 
+	 * @param Plan
+	 * @author sowon
+	 * @since 2021.03.08
+	 */
+	public int getEvnetAllCount(Plan plan) {
+		return planningDao.getEventAllCount(plan);
+	}
 
 }

+ 25 - 4
src/main/java/com/style24/front/biz/web/TsfPlanningController.java

@@ -51,7 +51,7 @@ public class TsfPlanningController extends TsfBaseController {
 		Cate4Srch cate = new Cate4Srch();
 		
 		// 디바이스 set
-		plan.setFrontGb(TsfSession.getFrontGb());
+		//plan.setFrontGb(TsfSession.getFrontGb());
 		
 		// 카테고리 
 		mav.addObject("categoryList", planningService.getPlanCate1(cate));
@@ -59,7 +59,7 @@ public class TsfPlanningController extends TsfBaseController {
 		
 		
 		
-		// 각 테고리 기획전 갯수
+		// 각 테고리 기획전 갯수
 		mav.addObject("planCount",planningService.getPlanAllCount(plan));
 		
 		cate.setCate1No(plan.getCateNo());
@@ -68,9 +68,30 @@ public class TsfPlanningController extends TsfBaseController {
 		
 		
 		mav.addObject("planList", planningService.getPlanList(plan));
+		mav.addObject("goodsList", planningService.getPlanGoodsList(plan));
 		mav.setViewName(super.getDeviceViewName("planning/PlanningMainForm"));
 		return mav;
 	}
-
-
+	
+	/**
+	 * 이벤트 메인 화면
+	 * 
+	 * @return
+	 * @author sowon
+	 * @since 2021. 3. 8
+	 */
+	@GetMapping("/event/main/form")
+	public ModelAndView PlanningEventMainForm(Plan plan) throws Exception {
+		ModelAndView mav = new ModelAndView();
+		
+		// 디바이스 set
+		//plan.setFrontGb(TsfSession.getFrontGb());
+		
+		// 이벤트 갯수
+		mav.addObject("cnt",planningService.getEvnetAllCount(plan));
+				
+		
+		mav.setViewName(super.getDeviceViewName("planning/PlanningEventMainForm"));
+		return mav;
+	}
 }

+ 2 - 0
src/main/java/com/style24/persistence/domain/Plan.java

@@ -231,6 +231,8 @@ public class Plan extends TscBaseDomain{
 		private String brand;				// 기획전 리스트 (브랜드 명 외)
 		private String newPlan;				// 기획전 new 확인
 		private int cnt;					// 기획전 브랜드 카운트;
+		
+		private String sysImgNm;			// 상품 이미지
 		// Pagination
 		private TscPageRequest pageable;
 		private int pageNo = 1;

+ 99 - 2
src/main/java/com/style24/persistence/mybatis/shop/TsfPlanning.xml

@@ -37,6 +37,7 @@
 		FROM TB_PLAN P  
 		WHERE 1=1
 		   AND P.DEL_YN = 'N'
+		   AND P.PLAN_GB = 'P'
 		   <if test="cateNo != null and cateNo != ''">
 		   AND P.PLAN_SQ IN (
 		   						SELECT PLAN_SQ 
@@ -45,7 +46,7 @@
 		   					)
 		   </if>
 		    AND NOW() BETWEEN P.DISP_STDT AND P.DISP_EDDT
-		    AND P.FRONT_GB IN (#{frontGb}, 'A')
+		    <!-- AND P.FRONT_GB IN (#{frontGb}, 'A') -->
 	</select>
 	
 	<!-- 기획전 목록 -->
@@ -101,7 +102,7 @@
 		  AND P1.DEL_YN = 'N'
 		  AND P1.PLAN_GB = 'P'
 		  AND NOW() BETWEEN P1.DISP_STDT AND P1.DISP_EDDT
-		  AND P1.FRONT_GB IN (#{frontGb}, 'A')
+		 <!--  AND P1.FRONT_GB IN (#{frontGb}, 'A') -->
 		  AND P1.PLAN_SQ IN (
 				   						SELECT PLAN_SQ 
 				   						FROM TB_PLAN_CATE 
@@ -112,6 +113,102 @@
 		ORDER BY P1.NEW_PLAN DESC, ABS(DATEDIFF(P1.DISP_EDDT,NOW())) 
 	</select>
 	
+		<!-- 기획전 목록 -->
+	<select id="getPlanGoodsList" parameterType="Plan" resultType="Plan">
+		SELECT P1.PLAN_SQ 
+			      ,P1.PLAN_NM 
+			      ,P1.DTL_TITLE1 
+			      ,P1.PLAN_GB 
+			      ,P1.FRONT_GB 
+			      ,P1.MAIN_PIMG 
+			      ,P1.MAIN_MIMG 
+			      ,P1.DISP_ORD
+			      ,P1.NEW_PLAN
+			      ,P1.DISP_STDT
+			      ,P1.DISP_EDDT
+			      ,P1.REG_NO 
+			      ,P2.BRAND
+			      ,P2.CNT
+			      ,TPD.CORNER_NM
+			      ,P3.GOODS_CD
+			      ,P3.GOODS_STAT
+			      ,(SELECT MAX(SYS_IMG_NM) FROM TB_GOODS_IMG  WHERE GOODS_CD = P3.GOODS_CD AND DEFAULT_IMG_YN = 'Y' ) AS SYS_IMG_NM
+			      ,P3.CURR_PRICE
+			      ,P3.CURR_BPRICE 
+			      ,P3.GOODS_NM
+		FROM 
+		(
+			SELECT P.PLAN_SQ 
+			      ,P.PLAN_NM 
+			      ,P.DTL_TITLE1 
+			      ,P.PLAN_GB 
+			      ,P.FRONT_GB 
+			      ,P.MAIN_PIMG 
+			      ,P.MAIN_MIMG 
+			      ,P.DISP_ORD 
+			      ,P.REG_NO 
+			      ,CASE WHEN DATE(P.REG_DT) BETWEEN DATE_ADD(NOW(),INTERVAL -3 DAY ) AND NOW() THEN 'NEW' END AS 'NEW_PLAN'   /*등록일 기준 3일 */
+			      ,P.DISP_EDDT 
+			      ,P.DISP_STDT 
+			      ,P.DEL_YN 
+			FROM TB_PLAN P
+			GROUP BY  P.PLAN_SQ 
+			      ,P.PLAN_NM 
+			      ,P.DTL_TITLE1 
+			      ,P.PLAN_GB 
+			      ,P.FRONT_GB 
+			      ,P.MAIN_PIMG 
+			      ,P.MAIN_MIMG 
+			      ,P.DISP_ORD 
+			      ,P.REG_NO
+		)P1 INNER JOIN (
+						SELECT  PB.PLAN_SQ 
+						      , COUNT(PLAN_SQ) AS CNT
+						      ,CASE WHEN COUNT(PLAN_SQ) = 1 THEN MAX(TBG.BRAND_GROUP_KNM) ELSE MAX(TBG.BRAND_GROUP_KNM)END AS BRAND
+						FROM TB_PLAN_BRAND PB INNER JOIN TB_BRAND_GROUP TBG  ON PB.BRAND_GROUP_NO = TBG.BRAND_GROUP_NO
+						GROUP BY PB.PLAN_SQ
+						)P2 ON P1.PLAN_SQ = P2.PLAN_SQ 	
+			LEFT JOIN TB_PLAN_DETAIL TPD ON P1.PLAN_SQ = TPD.PLAN_SQ
+			LEFT JOIN (
+						SELECT TPG.GOODS_CD 
+						      ,TPG.DEL_YN 
+						      ,TPG.DISP_ORD 
+						      ,TPG.PLAN_DTL_SQ 
+						      ,TG.GOODS_STAT 
+						      ,TG.CURR_PRICE 
+						      ,TG.CURR_BPRICE 
+						      ,TG.GOODS_NM 
+						FROM TB_PLAN_GOODS TPG LEFT JOIN TB_GOODS TG ON TPG.GOODS_CD = TG.GOODS_CD 
+						WHERE 1=1
+						  AND TPG.DEL_YN = 'N'
+						  AND TG.GOODS_STAT = 'G008_90'
+					  )P3 ON TPD.PLAN_DTL_SQ = P3.PLAN_DTL_SQ
+		WHERE 1=1
+		  AND P1.DEL_YN = 'N'
+		  AND P1.PLAN_GB = 'P'
+		  AND NOW() BETWEEN P1.DISP_STDT AND P1.DISP_EDDT
+		  <!-- AND P1.FRONT_GB IN ('P','A') -->
+		 AND P1.PLAN_SQ IN (
+				   						SELECT PLAN_SQ 
+				   						FROM TB_PLAN_CATE 
+				   						 <if test="cateNo != null and cateNo != ''">
+				   						WHERE CATE_NO = #{cateNo}
+				   						</if>
+				   					)
+		ORDER BY P1.NEW_PLAN DESC, ABS(DATEDIFF(P1.DISP_EDDT,NOW())) 
+	</select>
+	
+	<select id="getEventAllCount" resultType="int" parameterType="Plan">
+		/* TsfPlanning.getEventAllCount */
+		SELECT COUNT(*) AS CNT
+		FROM TB_PLAN P  
+		WHERE 1=1
+		   AND P.DEL_YN = 'N'
+		   AND P.PLAN_GB = 'E'
+		    AND NOW() BETWEEN P.DISP_STDT AND P.DISP_EDDT
+		    <!-- AND P.FRONT_GB IN (#{frontGb}, 'A') -->
+	</select>
+	
 	
 
 </mapper>

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

@@ -101,7 +101,7 @@
 					<li><a href="#">총알배송</a></li>
 					<li><a href="#">아울렛</a></li>
 					<li><a href="#">룩북</a></li>
-					<li><a href="#">이벤트/혜택</a></li>
+					<li><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_EVENT_MAIN);" title="기획전 바로가기">이벤트/혜택</a></li>
 				</ul>
 			</div>
 			<!-- // nav -->

+ 215 - 0
src/main/webapp/WEB-INF/views/web/planning/PlanningEventMainFormWeb.html

@@ -0,0 +1,215 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org"
+	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
+	layout:decorator="web/common/layout/DefaultLayoutWeb">
+<!--
+ *******************************************************************************
+ * @source  : PlanningEventMainFormWeb.html
+ * @desc    : 이벤트 Page
+ *============================================================================
+ * Pastelmall
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.3.8  	 sowon     최초 작성
+ *******************************************************************************
+ -->
+ <body>
+<th:block layout:fragment="content">
+	<!--  container -->
+	<div id="container" class="container ev">
+		<div class="breadcrumb">
+			<ul>
+				<li class="bread_home"><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MAIN);">홈</a></li>
+				<li class="bread_2depth">이벤트/혜택</li>
+			</ul>
+		</div>
+		<div class="wrap">
+			<div class="content ev_list">
+				<div class="cont_head">
+					<div>
+						<h3>이벤트</h3>
+					</div>
+				</div>
+				<div class="cont_body">
+					<div class="ev_mem_rank">
+						<div class="txt">
+							<strong>STYLE24 BENEFIT</strong>
+							<p>STYLE24 회원등급에 따라<br>제공되는 혜택 정보를 확인해 보세요.</p>
+							<a href="javascript:;" class="btn btn_dark">회원등급 혜택 보기</a>
+						</div>
+						<div class="mem_rank_list">
+							<ul class="clear">
+								<li>
+									<div class="icon vip"><span>V</span></div>
+									<span>VIP</span>
+								</li>
+								<li>
+									<div class="icon gold"><span>G</span></div>
+									<span>GOLD</span>
+								</li>
+								<li>
+									<div class="icon silver"><span>S</span></div>
+									<span>SILVER</span>
+								</li>
+								<li>
+									<div class="icon bronze"><span>B</span></div>
+									<span>BRONZE</span>
+								</li>
+								<li>
+									<div class="icon welcome"><span>W</span></div>
+									<span>WELCOME</span>
+								</li>
+							</ul>
+						</div>
+					</div>
+					<th:block th:if="${cnt > 0}">
+					<div class="event_list">
+					</th:block>
+					<th:block th:unless="${cnt > 0}">
+					<div class="event_list no_data">
+					</th:block>
+						<div class="event_top">
+							<div class="count">
+								<span>[[${cnt}]]</span>개의 이벤트
+							</div>
+							<div class="event_btn">
+								<a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_NOTICE);">당첨자 발표</a>
+							</div>
+						</div>
+						<div class="list">
+							
+							<ul class="clear event_con">
+								<li>
+									<a href="">
+										<div class="ev_img">
+											<div class="rank ranker"><span>NEW</span></div>
+											<img src="/images/pc/thumb/ev_list_img01.jpg" alt="ATTENTION! 20FW HOLIDAY TBJ 주목할 홀리데이 TBJ 컬렉션">
+										</div>
+										<div class="txt">
+											<p class="tit">ATTENTION! 20FW HOLIDAY TBJ 주목할 홀리데이 TBJ 컬렉션</p>
+											<div class="date">
+												<span>2020.12.17</span> - <span>2021.01.03</span>
+											</div>
+										</div>
+									</a>
+								</li>
+								<li>
+									<a href="">
+									<div class="ev_img">
+										<div class="rank ranker"><span>NEW</span></div><img src="/images/pc/thumb/ev_list_img02.jpg" alt="단 48시간, 퓨어캐시미어 최대 80%세일 PURE CASHMERE 48H POP-UP">
+									</div>
+									<div class="txt">
+										<p class="tit">단 48시간, 퓨어캐시미어 최대 80%세일 PURE CASHMERE 48H POP-UP 단 48시간, 퓨어캐시미어 최대 80%세일 PURE CASHMERE 48H POP-UP</p>
+										<div class="date">
+											<span>2020.12.17</span> - <span>2021.01.03</span>
+										</div>
+									</div>
+								</a>
+								</li>
+								<li>
+									<a href="">
+										<div class="ev_img">
+											<img src="/images/pc/thumb/ev_list_img03.jpg" alt="ANDEW white 20winter">
+										</div>
+										<div class="txt">
+											<p class="tit">ANDEW white 20winter</p>
+											<div class="date">
+												<span>2020.12.17</span> - <span>2021.01.03</span>
+											</div>
+										</div>
+									</a>
+								</li>
+								<li>
+									<a href="">
+										<div class="ev_img">
+											<img src="/images/pc/thumb/ev_list_img04.jpg" alt="자연스럽고 편안한  Earth Colors">
+										</div>
+										<div class="txt">
+											<p class="tit">자연스럽고 편안한  Earth Colors</p>
+											<div class="date">
+												<span>2020.12.17</span> - <span>2021.01.03</span>
+											</div>
+										</div>
+									</a>
+								</li>
+								<li>
+									<a href="">
+										<div class="ev_img">
+											<img src="/images/pc/thumb/ev_list_img05.jpg" alt="RETRO CONTEMPORARY 3개 브랜드 BUCKAROO/NBA/ANDEW">
+										</div>
+										<div class="txt">
+											<p class="tit">RETRO CONTEMPORARY 3개 브랜드 BUCKAROO/NBA/ANDEW</p>
+											<div class="date">
+												<span>2020.12.17</span> - <span>2021.01.03</span>
+											</div>
+										</div>
+									</a>
+								</li>
+								<li>
+									<a href="">
+										<div class="ev_img">
+											<img src="/images/pc/thumb/ev_list_img06.jpg" alt="스타일24만의 스타일로, tbj 하이 스타일링">
+										</div>
+										<div class="txt">
+											<p class="tit">스타일24만의 스타일로, TBJ 하이 스타일링</p>
+											<div class="date">
+												<span>2020.12.17</span> - <span>2021.01.03</span>
+											</div>
+										</div>
+									</a>
+								</li>
+								<li>
+									<a href="">
+										<div class="ev_img">
+											<img src="/images/pc/thumb/ev_list_img07.jpg" alt="올 겨울, 나를 설레게하는 선물같은 브랜드 THIS IS FOUR YOU">
+										</div>
+										<div class="txt">
+											<p class="tit">올 겨울, 나를 설레게하는 선물같은 브랜드 THIS IS FOUR YOU</p>
+											<div class="date">
+												<span>2020.12.17</span> - <span>2021.01.03</span>
+											</div>
+										</div>
+									</a>
+								</li>
+								<li>
+									<a href="">
+										<div class="ev_img">
+											<img src="/images/pc/thumb/ev_list_img08.jpg" alt="한눈에 살펴보는 우리 아이 겨울 아이템">
+										</div>
+										<div class="txt">
+											<p class="tit">한눈에 살펴보는 우리 아이 겨울 아이템</p>
+											<div class="date">
+												<span>2020.12.17</span> - <span>2021.01.03</span>
+											</div>
+										</div>
+									</a>
+								</li>
+							</ul>
+							
+							<ul class="clear no_con">
+								<li>
+									<p><img src="/images/pc/ico_content_find.png" alt="등록된 이벤트가 없습니다."></p>
+									<span>등록된 이벤트가 없습니다.</span>
+									<a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MAIN);">홈으로 가기</a>
+								</li>
+							</ul>
+						
+						</div>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+	<!-- // container -->	
+
+<script th:inline="javascript">
+
+</script>
+
+</th:block>
+
+</body>
+</html>

+ 7 - 27
src/main/webapp/WEB-INF/views/web/planning/PlanningMainFormWeb.html

@@ -81,7 +81,7 @@
                                     	<th:block th:if="${PlanData.newPlan != null}">
                                         <div class="shape ranker"><span>NEW</span></div>
                                         </th:block>
-                                        <img src="${@environment.getProperty('domain.image')+'/plan/'+PlanData.mainPimg}" alt=""> <!-- 430x430 사이즈 최적 -->
+                                        <img th:src="${@environment.getProperty('domain.image')+'/planning/'+PlanData.mainPimg}" style="width: 100%;" alt=""> <!-- 430x430 사이즈 최적 -->
                                         <div class="exhi_detail">
                                         	<th:block th:if="${PlanData.cnt > 1}">
                                             <p class="brand">[[${PlanData.brand}]] 외</p>
@@ -90,46 +90,26 @@
                                             <p class="brand">[[${PlanData.brand}]]</p>
                                             </th:block>
                                             <h3 class="tit">[[${PlanData.planNm}]]</h3>
-                                            <p class="sale">신상 15%쿠폰할인</p>
+                                            <p class="sale">[[${PlanData.dtlTitle1}]]</p>
                                         </div>
                                     </a>
                                 </div>
                              	
                                 <div class="exhi_item_pr">
                                     <ul class="prod_list clear">
+                                    <th:block th:each="goodsList, k : ${goodsList}">
+										<th:block th:if="${PlanData.planSq} == ${goodsList.planSq} and ${goodsList.goodsCd} != null">
                                         <li>
                                             <a href="">
                                                 <div class="img">
-                                                    <img src="/images/pc/thumb/dp_exhibition_pr01.jpg" alt="볼패딩 푸퍼점퍼">
+                                                   <img th:src="${@environment.getProperty('upload.goods.view') + '/' + goodsList.sysImgNm}"  style="width: 100%;" alt="">
                                                 </div>
                                                 <div class="txt">
-                                                    <p class="pr_tit">볼패딩 푸퍼점퍼 T204JP060P 볼패딩 푸퍼점퍼 T204JP060P</p>
-                                                    <p class="price"><span>25,410</span>원</p>
+                                                    <p class="pr_tit">[[${goodsList.goodsNm}]]</p>
+                                                    <p class="price"><span th:text="${#numbers.formatInteger(goodsList.currPrice, 0,'COMMA')}"></span>원</p>
                                                 </div>
                                             </a>
                                         </li>
-                                        <li>
-                                            <a href="">
-                                                <div class="img">
-                                                    <img src="/images/pc/thumb/dp_exhibition_pr02.jpg" alt="테이퍼드 M톤 기모 데님 팬츠">
-                                                </div>
-                                                <div class="txt">
-                                                    <p class="pr_tit">테이퍼드 M톤 기모 데님 팬츠</p>
-                                                    <p class="price"><span>25,410</span>원</p>
-                                                </div>
-                                            </a>
-                                        </li>
-                                      <!--   <li>
-                                            <a href="">
-                                                <div class="img">
-                                                    <img src="/images/pc/thumb/dp_exhibition_pr03.jpg" alt="패딩 리버서블 FLEECE  점퍼">
-                                                </div>
-                                                <div class="txt">
-                                                    <p class="pr_tit">패딩 리버서블 FLEECE  점퍼</p>
-                                                    <p class="price"><span>25,410</span>원</p>
-                                                </div>
-                                            </a>
-                                        </li> -->
                                     </ul>
                                 </div>
                             </div>

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

@@ -55,6 +55,10 @@ const _PAGE_WISHLIST_DEL = _frontUrl + "/mypage/wish/list/delete";				// 위시
 //== 기획전 ==/
 const _PAGE_PLANNING_MAIN = _frontUrl + "/planning/main/form"; 					// 기획전 메인
 
+
+//== 이벤트 ==/
+const _PAGE_EVENT_MAIN = _frontUrl + "/planning/event/main/form"; 					// 이벤트 메인
+
 //== 고객센터 ==/
 const _PAGE_FAQ = _frontUrl + "/callcenter/faq/form";									// 고객센터 > FAQ
 const _PAGE_ONETOONE_QNA = _frontUrl + "/callcenter/onetoone/qna/form";					// 고객센터 > 1:1문의