瀏覽代碼

마이페이지 상품권임시 커밋

sowon4187 5 年之前
父節點
當前提交
6b72a2e12a

+ 29 - 0
src/main/java/com/style24/front/biz/dao/TsfGiftcardDao.java

@@ -1,6 +1,9 @@
 package com.style24.front.biz.dao;
 
+import java.util.Collection;
+
 import com.style24.core.support.annotation.ShopDs;
+import com.style24.persistence.domain.GiftCard;
 
 /**
  * 상품권 Dao
@@ -11,4 +14,30 @@ import com.style24.core.support.annotation.ShopDs;
 @ShopDs
 public interface TsfGiftcardDao {
 
+	/**
+	 * 상품권정보 조회
+	 *
+	 * @param GiftCard
+	 * @author sowon
+	 * @since 2021. 3. 12
+	 */	
+	GiftCard getGiftcardInfo(GiftCard giftcard);
+	
+	/**
+	 * 상품권 사용 정보 조회
+	 *
+	 * @param GiftCard
+	 * @author sowon
+	 * @since 2021. 3. 12
+	 */	
+	Collection<GiftCard> getGiftcardUseList(GiftCard giftcard);
+	
+	/**
+	 * 상품권 보유 정보 조회
+	 *
+	 * @param GiftCard
+	 * @author sowon
+	 * @since 2021. 3. 12
+	 */	
+	Collection<GiftCard> getGiftcardOwnList(GiftCard giftcard);
 }

+ 50 - 0
src/main/java/com/style24/front/biz/service/TsfGiftcardService.java

@@ -1,9 +1,13 @@
 package com.style24.front.biz.service;
 
+import java.util.Collection;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.style24.front.biz.dao.TsfGiftcardDao;
+import com.style24.front.support.security.session.TsfSession;
+import com.style24.persistence.domain.GiftCard;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -19,5 +23,51 @@ public class TsfGiftcardService {
 
 	@Autowired
 	private TsfGiftcardDao giftcardDao;
+	
+	/**
+	 * 상품권정보 조회
+	 *
+	 * @param GiftCard
+	 * @author sowon
+	 * @since 2021. 3. 12
+	 */	
+	public GiftCard getGiftcardInfo(GiftCard giftcard) {
+		
+		// 고객번호 설정
+		int custNo = TsfSession.getInfo().getCustNo();
+		giftcard.setCustNo(custNo);
+		
+		return giftcardDao.getGiftcardInfo(giftcard);		
+	}
+	
+	/**
+	 * 상품권 사용 정보 조회
+	 *
+	 * @param GiftCard
+	 * @author sowon
+	 * @since 2021. 3. 12
+	 */	
+	public Collection<GiftCard> getGiftcardUseList(GiftCard giftcard){
+		// 고객번호 설정
+		int custNo = TsfSession.getInfo().getCustNo();
+		giftcard.setCustNo(custNo);
+		
+		return giftcardDao.getGiftcardUseList(giftcard);
+	}
+	
+	/**
+	 * 상품권 보유 조회
+	 *
+	 * @param GiftCard
+	 * @author sowon
+	 * @since 2021. 3. 12
+	 */	
+	public Collection<GiftCard> getGiftcardOwnList(GiftCard giftcard){
+		// 고객번호 설정
+		int custNo = TsfSession.getInfo().getCustNo();
+		giftcard.setCustNo(custNo);
+		
+		return giftcardDao.getGiftcardOwnList(giftcard);
+	}
 
 }

+ 48 - 0
src/main/java/com/style24/front/biz/web/TsfMypageController.java

@@ -35,6 +35,7 @@ import com.style24.front.support.security.session.TsfSession;
 import com.style24.persistence.TscPageRequest;
 import com.style24.persistence.domain.Coupon;
 import com.style24.persistence.domain.Customer;
+import com.style24.persistence.domain.GiftCard;
 import com.style24.persistence.domain.Order;
 import com.style24.persistence.domain.Point;
 import com.style24.persistence.domain.WishList;
@@ -629,4 +630,51 @@ public class TsfMypageController extends TsfBaseController {
 
 		return result;
 	}
+	
+	/**
+	 * 마이페이지 상품권화면
+	 *
+	 * @return
+	 * @author sowon	
+	 * @since 2021. 03. 12
+	 */
+	@GetMapping({"/gift/card/form"})
+	public ModelAndView mypageGiftcardForm(GiftCard giftcard) {
+		ModelAndView mav = new ModelAndView();
+		// 상품권 기본정보
+		mav.addObject("giftcardInfo", giftcardService.getGiftcardInfo(giftcard));
+		mav.setViewName(super.getDeviceViewName("mypage/MypageGiftcardForm"));
+
+		return mav;
+	}
+	
+	/**
+	 * 마이페이지 상품권 사용 리스트
+	 *
+	 * @return
+	 * @author sowon	
+	 * @since 2021. 03. 12
+	 */
+	@PostMapping("/gift/use/list")
+	@ResponseBody
+	public GagaMap getGiftcardUseList(@RequestBody GiftCard giftcard) {
+		GagaMap result = new GagaMap();
+		result.set("giftcardUseList",giftcardService.getGiftcardUseList(giftcard));
+		return result;
+	}
+	
+	/**
+	 * 마이페이지 상품권 보유 리스트
+	 *
+	 * @return
+	 * @author sowon	
+	 * @since 2021. 03. 12
+	 */
+	@PostMapping("/gift/own/list")
+	@ResponseBody
+	public GagaMap getGiftcardOwnList(@RequestBody GiftCard giftcard) {
+		GagaMap result = new GagaMap();
+		result.set("giftcardOwnList",giftcardService.getGiftcardOwnList(giftcard));
+		return result;
+	}
 }

+ 73 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfGiftcard.xml

@@ -2,6 +2,79 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.style24.front.biz.dao.TsfGiftcardDao">
 
+	<!-- 상품권 기본정보  -->
+	<select id="getGiftcardInfo" parameterType="GiftCard" resultType="GiftCard">
+		<!-- TsfGiftcard.getGiftcardInfo -->
+		SELECT SUM(CG.RM_GFCD_AMT) AS USE_GIFT    				/*사용가능한 보유 금액*/
+		      ,(SELECT COUNT(*) 
+		        FROM TB_CUST_GIFTCARD CG2 
+		        WHERE NOW() BETWEEN CG2.USE_ST_DATE AND CG2.USE_EXP_DATE
+		          AND CUST_NO = #{custNo}) AS TOTAL_COUNT 		/*총 상품권 수*/
+		      ,(SELECT COUNT(*)
+				FROM TB_CUST_GIFTCARD CG3
+				WHERE NOW() BETWEEN CG3.USE_ST_DATE AND CG3.USE_EXP_DATE
+				  AND  NOW() BETWEEN DATE_ADD(CG3.USE_EXP_DATE, INTERVAL -1 MONTH) AND USE_EXP_DATE
+				  AND CUST_NO = #{custNo}) AS EXPIRE_COUNT  	/*한달 이내 소멸*/
+		FROM TB_CUST_GIFTCARD CG 
+		WHERE 1=1  
+			AND CUST_NO = #{custNo}
+			AND NOW() BETWEEN CG.USE_ST_DATE AND CG.USE_EXP_DATE
+	</select>
+	
+	<select id="getGiftcardUseList" parameterType="GiftCard" resultType="GiftCard">
+		<!-- TsfGiftcard.getGiftcardUseList -->
+		SELECT A.* 
+		      ,(CASE A.OCCUR_GB WHEN 'G074_11'THEN '+' 
+		                        WHEN 'G074_12'THEN '-'
+		                        WHEN 'G074_13'THEN '+'
+		                        WHEN 'G074_14'THEN '-'
+		                        WHEN 'G074_15'THEN '-'
+		                        WHEN 'G074_16'THEN '-'
+		                        WHEN 'G074_17'THEN '+'
+		                        WHEN 'G074_18'THEN '+'
+		                        WHEN 'G074_19'THEN '-'
+		       END) AS BALANCE
+		      ,(CASE A.OCCUR_GB WHEN 'G074_11'THEN '상품권 등록'        
+                         WHEN 'G074_12'THEN '상품권 사용'       
+                         WHEN 'G074_13'THEN '상품권 사용취소'     
+                         WHEN 'G074_14'THEN '상품권 유효기간만료'   
+                         WHEN 'G074_15'THEN '상품권 파기'       
+                         WHEN 'G074_16'THEN '상품권 현금전환'     
+                         WHEN 'G074_17'THEN '결품으로 인한 기간 연장'
+                         WHEN 'G074_18'THEN '오환불로 인한 금액추가' 
+                         WHEN 'G074_19'THEN '오환불로 인한 금액차감' 
+               END) AS BALANCE_NAME
+		      ,B.GOODS_CD 
+		      ,D.GOODS_NM 
+		FROM TB_CUST_GIFTCARD_HST A LEFT JOIN TB_ORDER_DETAIL B ON A.ORD_DTL_NO = B.ORD_DTL_NO AND A.ORD_NO = B.ORD_NO
+									LEFT JOIN TB_CUST_GIFTCARD C ON A.CUST_GFCD_SQ =C.CUST_GFCD_SQ 
+									LEFT JOIN TB_GOODS D ON B.GOODS_CD = D.GOODS_CD 
+		WHERE 1=1
+		 AND A.CUST_NO = #{custNo}
+		ORDER BY A.REG_DT DESC
+	</select>
+	
+	<select id="getGiftcardOwnList" parameterType="GiftCard" resultType="GiftCard">
+		<!-- TsfGiftcard.getGiftcardOwnList -->
+		 SELECT  CUST_GFCD_SQ
+				 , CUST_NO
+				 , GFCD_NO
+				 , GFCD_NM
+				 , CHG_GFCD_AMT
+				 , US_GFCD_AMT
+				 , RM_GFCD_AMT
+				 , DATE_FORMAT(USE_ST_DATE,'%Y-%m-%d') AS USE_ST_DATE
+		         , DATE_FORMAT(USE_EXP_DATE,'%Y-%m-%d') AS USE_EXP_DATE
+				 , REG_NO
+				 , REG_DT
+				 , UPD_NO
+				 , UPD_DT
+		 FROM TB_CUST_GIFTCARD CG 
+		 WHERE 1=1 
+		  AND CUST_NO = #{custNo}
+	</select>
+	
+	
 	<!-- 페이징을 위한 select절 상단 -->
 	<sql id="selectForPagingHeader">
 		SELECT *

+ 238 - 0
src/main/webapp/WEB-INF/views/web/mypage/MypageGiftcardFormWeb.html

@@ -0,0 +1,238 @@
+<!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/MypageLayoutWeb">
+<!--
+ *******************************************************************************
+ * @source  : MypagePointForm.html
+ * @desc    : 마이페이지 > STYLE24포인트 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2021 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.02.25   csh9191     최초 작성
+ *******************************************************************************
+ -->
+<body>
+
+<th:block layout:fragment="content">
+<!--  container -->
+	<div class="my_cont">
+		<div class="sec_head">
+			<h3>STYLE24 상품권</h3>
+		</div>
+		<div class="sec_body">
+			<div class="save_area mypage_coupon">
+				<p>사용 가능한 보유 금액<strong th:text="${#numbers.formatInteger(giftcardInfo.useGift,0,'COMMA')}"></strong>원</p>
+				<ul>
+					<li>보유 상품권 <span th:text="${#numbers.formatInteger(giftcardInfo.totalCount,0,'COMMA')} + '장'"></span></li>
+					<li>한달 이내 소멸 예정 <span th:text="${#numbers.formatInteger(giftcardInfo.expireCount,0,'COMMA')} + '장'"></span></li>
+				</ul>
+			</div>
+			<div class="gift_search">
+				<div class="gift_sea_wrap clear">
+					<label for="gift_input">상품권 등록</label>
+					<input type="text" id="gift_input" placeholder="상품권 번호를 입력해주세요.">
+					<button type="button" class="btn btn_dark">등록</button>
+				</div>
+			</div>
+			<div class="com_info_txt">
+				<p class="tit">상품권 등록 안내</p>
+				<ul>
+					<li>상품권은 상품 구매시 현금과 동일하게 사용됩니다.</li>
+					<li>상품권은 등록한 해당 몰에서만 사용이 가능합니다.</li>
+					<li>사용 후 남은 잔액은 상품권 잔액으로 환불되며,유효기간 내에 사용 가능합니다.</li>
+					<li>유효기간이 지난 상품권의 잔액은 자동 소멸됩니다.</li>
+					<li>상품권은 현금성 결제 수단에 포함되어 주문시 포인트 적립이 가능합니다.</li>
+					<li>상품권으로 결제한 금액은 마이페이지>주문상세페이지에서 현금영수증을 발급 받으실 수 있습니다.</li>
+				</ul>
+			</div>
+			<div class="my_tab coupon_tab">
+				<ul>
+					<li><a href="javascript:void(0);" id="SearchUseGiftcard">사용내역</a></li>
+					<li><a href="javascript:void(0);" id="SearchOwnGiftcard">보유 상품권</a></li>
+				</ul>
+				<div class="form_field">
+					<select id="searchDt" onchange="fnChangeDate(this)">
+						
+					</select> 
+				</div>
+			</div>
+			<div id="giftcardList">
+			</div>
+		</div>
+	</div>
+<!-- // CONT-BODY -->					
+<script th:inline="javascript">
+//동적으로 날짜 년도 append
+function appendYear(){
+ 
+    var date = new Date();
+    var year = date.getFullYear();
+    var month = date.getMonth()+1;
+  
+    for(var i=year; i<=year; i++){
+       	for (var j= 1; j <=month; j++) {
+       		$("#searchDt").prepend("<option value='"+year+"-"+j+"'>"+i+"년"+ j +"월 </option>");
+		}
+    }
+	$("#searchDt").find("option:eq(0)").prop("selected", true); // 현재년도 선택
+}
+ 
+appendYear($("#searchDt"));
+
+// 사용내역 조회
+$("#SearchUseGiftcard").click(function(){
+	// class제거 추가
+	$("#SearchOwnGiftcard").removeClass("on");
+	$("#SearchUseGiftcard").addClass("on");
+	$("#giftcardList").attr("class","order_list");
+	
+	let data = {};
+	
+	var jsonData = JSON.stringify(data);
+	
+	$.ajax(
+			{
+				type 	 : "POST",
+				data	 : jsonData,
+				url 	 : '/mypage/gift/use/list',
+				contentType: 'application/json',
+					dataType : 'json',
+				success  : function(result){
+					useGiftcard(result);
+				}
+			}
+	)
+});
+
+function useGiftcard(result) {
+	
+	let giftcardUseList = result.giftcardUseList;
+	
+	let tmtbHtml = "";
+	
+	tmtbHtml += '<section class="order_row mt30">';
+	tmtbHtml += '<div class="tbl track_tbl type2">';
+	tmtbHtml += '<table>';
+	tmtbHtml += '<colgroup>';
+	tmtbHtml += '<col width="750px">';
+	tmtbHtml += '<col width="150px">';
+	tmtbHtml += '<col width="*">';
+	tmtbHtml += '</colgroup>';
+	tmtbHtml += '<thead>';
+	tmtbHtml += '<tr>';
+	tmtbHtml +=	'<th>내용</th>';
+	tmtbHtml += '<th>증감/차감</th>';
+	tmtbHtml += '<th>일자</th>';
+	tmtbHtml += '</tr>';
+	tmtbHtml += '</thead>';
+	tmtbHtml += '<tbody>';
+	
+	
+	for(let i=0; i<giftcardUseList.length; i++){
+		let useGiftcard = giftcardUseList[i];
+		tmtbHtml +='<tr>';
+		if(useGiftcard.goodsNm != null){
+			tmtbHtml +='<td class="t_l pl40">'+ useGiftcard.goodsNm + '</td>';	
+		}else{
+			tmtbHtml +='<td class="t_l pl40">'+ useGiftcard.balanceName + '</td>';	
+		}
+		tmtbHtml += '<td class="c_primary">'+ useGiftcard.balance + ' ' + useGiftcard.gfcdAmt.addComma() + '</td>';
+		tmtbHtml += '<td>'+ useGiftcard.regDt + '</td>';
+		tmtbHtml += '</tr>';
+	}
+	
+	tmtbHtml += '</tbody>';
+	tmtbHtml += '</table>';
+	tmtbHtml += '</div>';
+	tmtbHtml += '</section>';
+	
+	$("#giftcardList").html(tmtbHtml);
+}
+
+// 보유상품권 조회
+$("#SearchOwnGiftcard").click(function(){
+	$("#SearchUseGiftcard").removeClass("on");
+	$("#SearchOwnGiftcard").addClass("on");
+	$("#giftcardList").attr("class","gift_list");
+	
+	let data = {};
+	
+	var jsonData = JSON.stringify(data);
+	
+	$.ajax(
+			{
+				type 	 : "POST",
+				data	 : jsonData,
+				url 	 : '/mypage/gift/own/list',
+				contentType: 'application/json',
+					dataType : 'json',
+				success  : function(result){
+					ownGiftcard(result);
+				}
+			}
+	)
+});
+
+function ownGiftcard(result) {
+	
+	let giftcardOwnList = result.giftcardOwnList;
+	
+	let tmtbHtml2 = "";
+	
+
+	tmtbHtml2 += '<ul class="clear">';
+
+	for(let i=0; i<giftcardOwnList.length; i++){
+		let ownGiftcard = giftcardOwnList[i];
+
+		if(ownGiftcard.rmGfcdAmt > 0){
+			tmtbHtml2 += '<li>';
+		}else{
+			tmtbHtml2 += '<li class="off">';
+		}	
+		tmtbHtml2 += '<div class="gift_shape">';
+		tmtbHtml2 += '<strong>' + ownGiftcard.gfcdNm + '</strong>';
+		tmtbHtml2 += '<div class="gift_price01">' +ownGiftcard.chgGfcdAmt.addComma() + ' 원권' +'</div>';
+		tmtbHtml2 += '<div class="gift_price02">';
+		tmtbHtml2 += '<span class="pr_t">잔액</span><span class="pr_num">'+ownGiftcard.rmGfcdAmt.addComma()+'</span>원'
+		tmtbHtml2 += '<div>';
+		tmtbHtml2 += '<div class="gift_price03">' +ownGiftcard.gfcdNo + '</div>';
+		tmtbHtml2 += '</div>';
+		tmtbHtml2 += '<div class="gift_date">';
+		tmtbHtml2 += '~ <span>' +ownGiftcard.useExpDate + '</span>';
+		tmtbHtml2 += '</div>';
+		tmtbHtml2 += '</li>';
+	}
+	
+	tmtbHtml2 += '</ul>';		
+		
+	$("#giftcardList").html(tmtbHtml2);
+
+}
+
+function fnChangeDate(obj) {
+	console.log(obj);
+}
+
+$(document).ready(function() {
+
+	// 마이페이지 LNB 설정
+	fnSetMypageLnbList(6);
+	
+	// 마이페이지 location 설정
+	fnSetMypageLocation('상품권', '_PAGE_MYPAGE_GIFTCARD');
+	
+	// 전체내역 표시
+	$("#SearchUseGiftcard").trigger('click');
+
+});
+</script>
+</th:block>
+
+</body>
+</html>

+ 0 - 1
src/main/webapp/WEB-INF/views/web/social/SocialMainFormWeb.html

@@ -82,7 +82,6 @@
 
 <script th:inline="javascript">
 var socialInfo = [[${socialInfo}]];
-console.log(socialInfo);
 
 $(function(){
        /* 핫딜 countDown */