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

Merge branch 'sowon' into develop

sowon4187 5 лет назад
Родитель
Сommit
7a7b3025b9

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

@@ -302,5 +302,16 @@ public interface TsfPlanningDao {
 	 */
 	CustDeliveryAddr getCustAddrShotConfirm(String recipZipcode);
 	
+	/**
+	 * 출석체크 달력
+	 *
+	 * @param Plan
+	 * @return plan
+	 * @author sowon
+	 * @date 2021. 4. 6
+	 */
+	Collection<Plan> getAttendMonth(Plan plan);
+	
+	
 	
 }

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

@@ -456,6 +456,18 @@ public class TsfPlanningService {
 		return planningDao.getCustAddrShotConfirm(recipZipcode);
 	}
 	
+	/**
+	 * 출석체크 달력 출력
+	 *
+	 * @param Plan
+	 * @return Plan
+	 * @author sowon
+	 * @date 2021. 4. 6
+	 */
+	public Collection<Plan> getAttendMonth(Plan plan) {
+		return planningDao.getAttendMonth(plan);
+	}
+	
 
 
 }

+ 19 - 13
src/main/java/com/style24/front/biz/web/TsfPlanningController.java

@@ -184,19 +184,6 @@ public class TsfPlanningController extends TsfBaseController {
 		plan.setTmplType("G082_52");
 		mav.addObject("goods4Info", planningService.getPlanGoodsDisplayList(plan));
 
-		if (planGb.equals("P")) {
-			// 다른기획전 보기 
-			mav.addObject("planList", planningService.getPlanningList(plan));
-			mav.addObject("listSize", planningService.getPlanningList(plan).size());
-		}
-		else{
-			// 다른이벤트 보기
-			mav.addObject("planList", planningService.getPlanEventList(plan));
-			mav.addObject("listSize", planningService.getPlanEventList(plan).size());
-		}
-		
-		
-//
 //		mav.addObject("couponList", planningService.getPlusCouponList(plan));
 //
 //		// 코너 목록
@@ -213,6 +200,25 @@ public class TsfPlanningController extends TsfBaseController {
 		mav.addObject("viewPage", "G037_40");
 		mav.addObject("popupPlanSq", plan.getPlanSq());
 		
+		if (planGb.equals("P")) {
+			// 다른기획전 보기 
+			mav.addObject("planList", planningService.getPlanningList(plan));
+			mav.addObject("listSize", planningService.getPlanningList(plan).size());
+		}
+		else if(planGb.equals("E")){
+			// 다른이벤트 보기
+			mav.addObject("planList", planningService.getPlanEventList(plan));
+			mav.addObject("listSize", planningService.getPlanEventList(plan).size());
+		}else if(planGb.equals("C")) {
+			// 출석체크 
+			mav.addObject("planList", planningService.getPlanEventList(plan));
+			mav.addObject("listSize", planningService.getPlanEventList(plan).size());
+			mav.addObject("month", planningService.getAttendMonth(planInfo));
+			mav.setViewName(super.getDeviceViewName("planning/PlanningEventAttendForm"));
+			return mav;
+		}
+		
+		
 		mav.setViewName(super.getDeviceViewName("planning/PlanningDetailForm"));
 		return mav;
 	}

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

@@ -244,6 +244,17 @@ public class Plan extends TscBaseDomain {
 	private String brandKnm;
 
 	private String sysImgNm;			// 상품 이미지
+	
+	private String sun;
+	private String mon;
+	private String tue;
+	private String wed;
+	private String thu;
+	private String fri;
+	private String sat;
+	
+	
+	
 	// Pagination
 	private TscPageRequest pageable;
 	private int pageNo = 1;

+ 37 - 1
src/main/java/com/style24/persistence/mybatis/shop/TsfPlanning.xml

@@ -388,7 +388,7 @@
 		               END                                  AS NEW_YN   /*신규여부(등록일기준3일)*/
 		             , TIMESTAMPDIFF(DAY,NOW(),P.DISP_EDDT) AS END_DAYS /*종료임박일수*/
 		        FROM   TB_PLAN P
-		        WHERE  P.PLAN_GB = 'E' /*이벤트*/
+		        WHERE  P.PLAN_GB IN ('E','C') /*이벤트,출석체크*/
 		        AND    P.SITE_CD = #{siteCd}
 		        <if test="frontGb != null and frontGb != ''">
 		        AND    P.FRONT_GB LIKE CONCAT('%',#{frontGb},'%')
@@ -1100,4 +1100,40 @@
 		WHERE 1=1 
 		AND ZIP_NO = #{recipZipcode}
 	</select>
+	
+	<!-- 달력 출력 -->
+	<select id="getAttendMonth" resultType="Plan" parameterType="Plan">
+		SELECT
+		      MIN(CASE WHEN WEEKDAY = '1' THEN DAY END ) AS 'sun'
+		      ,MIN(CASE WHEN WEEKDAY = '2' THEN DAY END )AS 'mon'
+		      ,MIN(CASE WHEN WEEKDAY = '3' THEN DAY END )AS 'tue'
+		      ,MIN(CASE WHEN WEEKDAY = '4' THEN DAY END )AS 'wed'
+		      ,MIN(CASE WHEN WEEKDAY = '5' THEN DAY END )AS 'thu'
+		      ,MIN(CASE WHEN WEEKDAY = '6' THEN DAY END )AS 'fri'
+		      ,MIN(CASE WHEN WEEKDAY = '7' THEN DAY END )AS 'sat'
+		FROM (
+		SELECT 
+				 CASE WHEN DAYOFWEEK(CDATE) = 1 THEN  WEEKOFYEAR(CDATE) +1 ELSE WEEKOFYEAR(CDATE) END AS WEEK
+				,DAYOFWEEK(CDATE) AS WEEKDAY
+				,DAYOFMONTH(CDATE) AS DAY
+		FROM (
+		        SELECT D1+D2 AS CDATE
+		        FROM (
+		               SELECT STR_TO_DATE(#{dispStdt},'%Y-%m-%d')D1
+		             )D1
+		             ,(
+		               SELECT 0 D2 UNION 
+		               SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION
+		               SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION
+		               SELECT 8 UNION SELECT 9 UNION SELECT 10 UNION SELECT 11 UNION
+		               SELECT 12 UNION SELECT 13 UNION SELECT 14 UNION SELECT 15 UNION
+		               SELECT 16 UNION SELECT 17 UNION SELECT 18 UNION SELECT 19 UNION
+		               SELECT 20 UNION SELECT 21 UNION SELECT 22 UNION SELECT 23 UNION
+		               SELECT 24 UNION SELECT 25 UNION SELECT 26 UNION SELECT 27 UNION
+		               SELECT 28 UNION SELECT 29 UNION SELECT 30 UNION SELECT 31
+		             )AS D2) AS TEMP
+		       WHERE TEMP.CDATE <![CDATA[<=]]> LAST_DAY(TEMP.CDATE)
+		)AS TEMP2
+		GROUP BY WEEK
+	</select>
 </mapper>

+ 314 - 0
src/main/webapp/WEB-INF/views/web/planning/PlanningEventAttendFormWeb.html

@@ -0,0 +1,314 @@
+<!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  : PlanningEventAttendFormWeb.html
+ * @desc    : 이벤트 출석체크 Page
+ *============================================================================
+ * Pastelmall
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.4.6     sowon     최초 작성
+ *******************************************************************************
+ -->
+<body>
+<th:block layout:fragment="content">
+<script src="https://developers.kakao.com/sdk/js/kakao.min.js"></script>
+<!--  container -->
+	<div id="container" class="container dp">
+		<div class="breadcrumb">
+			<ul>
+				<li class="bread_home"><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_MAIN);">홈</a></li>
+				<li class="bread_2depth"><a href="javascript:void(0);" onclick="cfnGoToPage(_PAGE_EVENT_MAIN);">이벤트/혜택</a></li>
+				<li class="bread_2depth" th:text="${planInfo.planNm}"></li>
+			</ul>
+		</div>
+		<div class="wrap">
+			<div class="content wide dp_detail_visual">
+				<div class="cont_head">
+					<div>
+						<h3 th:text="${planInfo.planNm}"></h3>
+						<div class="period">
+							<span th:text="${planInfo.dispStdt}"></span> ~ <span th:text="${planInfo.dispEddt}"></span>
+						</div>
+						<div class="shareSet">
+								<button class="btn_share" data-name="openShare">공유하기</button>
+								<div class="shareWrap">
+									<div id="layerShare" class="setShare open">
+										<span>
+											<button type="button" class="kk"
+												th:attr="onclick=|cfnSendToKakao('${stylelUrl+'/planning/detail/form?planSq='+planInfo.planSq}', '${planInfo.planNm}', '${planView+ '/'+planInfo.mainImg}');|">
+												<span>카카오톡</span>
+											</button>
+											<button type="button" class="fb"
+												th:attr="onclick=|sendSns('facebook', '${stylelUrl+'/planning/detail/form?planSq='+planInfo.planSq}', '${planInfo.planNm}', '', '');|">
+												<span>페이스북</span>
+											</button>
+											<button type="button" class="tw"
+												th:attr="onclick=|sendSns('twitter', '${stylelUrl+'/planning/detail/form?planSq='+planInfo.planSq}', '${planInfo.planNm+ '#style24몰'}', '', '');|">
+												<span>트위터</span>
+											</button>
+											<button type="button" class="url btn_copy">
+												<span>URL</span>
+											</button>
+										</span>
+									</div>
+								</div>
+					</div>
+				</div>
+				<div class="cont_body">
+                    <!-- 프로모션 출석체크 -->
+					<div class="stamp_event">
+						<div class="event_calander">
+							<div class="check_title">
+								<p>출석할수록 늘어나는 혜택!</p>
+								<div class="title"><strong>1월</strong> 출석체크</div>
+							</div>
+							<div class="check_info">
+								<span class="today">오늘</span>
+								<span class="complete">출석완료</span>
+							</div>
+							<div class="tbl_wrap">
+								<div class="my_attend_day">
+									<p>나의 출석 일수는?</p>
+									<span class="day">
+										<span>11</span>일
+									</span>
+								</div>
+								<div class="tbl">
+									<table>
+										<colgroup>
+											<col width="14.28%">
+											<col width="14.28%">
+											<col width="14.28%">
+											<col width="14.28%">
+											<col width="14.28%">
+											<col width="14.28%">
+											<col width="14.28%">
+										</colgroup>
+										<thead>
+											<tr>
+												<th>SUN</th>
+												<th>MON</th>
+												<th>TUE</th>
+												<th>WED</th>
+												<th>THU</th>
+												<th>FRI</th>
+												<th>SAT</th>
+											</tr>
+										</thead>
+										<tbody id="monthTbody">
+										   <!--  <th:block th:each="a, month : ${month}" id="month">
+											<tr>
+												<td>
+													<div class="date" th:text="${a.sun}"></div>
+												</td>	
+												<td>
+													<div class="date" th:text="${a.mon}"></div>
+												</td>	
+												<td>
+													<div class="date" th:text="${a.tue}"></div>
+												</td>	
+												<td>
+													<div class="date" th:text="${a.wed}"></div>
+												</td>	
+												<td>
+													<div class="date" th:text="${a.thu}"></div>
+												</td>	
+												<td>
+													<div class="date" th:text="${a.fri}"></div>
+												</td>	
+												<td>
+													<div class="date" th:text="${a.sat}"></div> unused
+												</td>											
+											</tr> 
+											</th:block> -->
+										</tbody>
+									</table>
+								</div>
+							</div>
+							<button type="button" class="btn btn_primary"><span>출석 체크</span></button>
+						</div>
+                        <div class="event_benefit">
+                            <p class="title">출석 일수에 따라 달라지는 혜택</p>
+                            <div class="benefit_con">
+                                <img src="/images/pc/benefit_txt.jpg" alt="출석 일수에 따라 달라지는 혜택">
+                            </div>
+                        </div>                        
+					</div>                   
+                    <!-- //프로모션 출석체크-->
+				</div>
+			</div>
+			<div class="content dp_announce">
+				<div class="cont_head">
+					<div>
+						<h4>유의사항</h4>
+					</div>
+				</div>
+				<div class="cont_body">
+					<div class="announce_txt">
+						<div class="note_txt">
+							<img src="/images/pc/ico_content_find.png" alt="유의사항">
+							<p>유의사항</p>
+						</div>
+						<div class="announce_list">
+							<ul>
+								<li>본 이벤트는 ID당 1회만 참여 가능합니다.</li>
+								<li>설문조사 참여 시 포인트를 지급해드립니다. (이벤트 종료 후, 일괄 지급)</li>
+								<li>지급된 포인트는 [ 마이페이지 > 나의 지갑 ] 메뉴에서 확인할 수 있습니다.</li>
+							</ul>
+						</div>
+					</div> 
+				</div>
+			</div>
+            <!-- 다른 기획전,이벤트 보기 -->
+            <div class="content other_promotion_slide">
+                <div class="cont_head">
+                    <div>
+                        <h4>다른 이벤트 보기</h4>
+                        <a href="">전체보기</a>
+                    </div>
+                </div>
+                <div class="cont_body">
+                    <div class="swiper-container">
+                        <div class="swiper-wrapper">
+                            <div class="swiper-slide">                   
+                                <a href="">
+                                    <div class="thumb">
+                                        <img src="/images/pc/thumb/ev_list_img06.jpg" alt="스타일24만의 스타일로, tbj 하이 스타일링">
+                                    </div>
+                                    <div class="txt">
+                                        <span class="brand">BUCKAROO</span>
+                                        <p class="tit">스타일24만의 스타일로, TBJ 하이 스타일링</p>
+                                    </div>
+                                </a>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="swiper-button-prev"></div>
+                    <div class="swiper-button-next"></div>
+                </div>
+            </div>
+            <!-- //다른 기획전,이벤트 보기 -->
+		</div>
+	</div>
+</div>
+<script th:inline="javascript">
+let today = new Date();   
+let date = today.getDate();
+let month = [[${month}]];
+
+var appendHtml = function () {
+	$.each(month, function(idx, item)  { 
+		html = '';
+		html += '<tr>';
+		
+		if (item.sun!=null && item.sun!='') {
+			html += '	<td>';
+			html += '		<div class="date">'+item.sun+'</div>';
+			html += '	</td>	';
+		}else{
+			html += '	<td>';
+			html += '		<div class="date"></div>';
+			html += '	</td>	';
+		}
+		if (item.mon!=null && item.mon!='') {
+			html += '	<td>';
+			html += '		<div class="date">'+item.mon+'</div>';
+			html += '	</td>	';
+		}else{
+			html += '	<td>';
+			html += '		<div class="date"></div>';
+			html += '	</td>	';
+		}
+		if (item.tue!=null && item.tue!='') {
+			html += '	<td>';
+			html += '		<div class="date">'+item.tue+'</div>';
+			html += '	</td>	';
+		}else{
+			html += '	<td>';
+			html += '		<div class="date"></div>';
+			html += '	</td>	';
+		}
+		if (item.wed!=null && item.wed!='') {
+			html += '	<td>';
+			html += '		<div class="date">'+item.wed+'</div>';
+			html += '	</td>	';
+		}else{
+			html += '	<td>';
+			html += '		<div class="date"></div>';
+			html += '	</td>	';
+		}
+		if (item.thu!=null && item.thu!='') {
+			html += '	<td>';
+			html += '		<div class="date">'+item.thu+'</div>';
+			html += '	</td>	';
+		}else{
+			html += '	<td>';
+			html += '		<div class="date"></div>';
+			html += '	</td>	';
+		}
+		if (item.fri!=null && item.fri!='') {
+			html += '	<td>';
+			html += '		<div class="date">'+item.fri+'</div>';
+			html += '	</td>	';
+		}else{
+			html += '	<td>';
+			html += '		<div class="date"></div>';
+			html += '	</td>	';
+		}
+		if (item.sat!=null && item.sat!='') {
+			html += '	<td>';
+			html += '		<div class="date">'+item.sat+'</div>';
+			html += '	</td>	';
+		}else{
+			html += '	<td>';
+			html += '		<div class="date"></div>';
+			html += '	</td>	';
+		}
+		
+		html += '</tr>'
+		$("#monthTbody").append(html);
+	})    
+} 
+$(document).ready(function() {
+	 
+	appendHtml();
+	
+	//공유 버튼 토글 
+	$("button[data-name=openShare]").on("click", function(){
+		$(this).toggleClass("on").next(".shareWrap").toggleClass("on");
+		return false;
+	});
+	//영역밖 클릭으로 공유토글 닫기
+	$("body").on('click', function(e) { 
+		if(!$(".shareWrap.on").parent().has(e.target).length) {
+			$("button[data-name=openShare]").removeClass("on");
+			$(".shareWrap").removeClass("on");
+		};
+	});
+	
+	$('.btn_copy').bind('click', function() {
+		copyToClipboard();
+	});
+	
+	/* SLIDE - 다른 기획전,이벤트 보기 */
+	var other_slide_slide = new Swiper ('.other_promotion_slide .swiper-container', {
+		slidesPerView: 5,
+		spaceBetween: 20,
+		navigation: {
+			nextEl: '.other_promotion_slide .swiper-button-next',
+			prevEl: '.other_promotion_slide .swiper-button-prev',
+		},
+	});    
+	
+})
+</script>
+</th:block>
+
+</body>
+</html>