Преглед на файлове

취소/반품/교환 모바일 개발중

jsh77b преди 5 години
родител
ревизия
a3bc7fb5bf

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

@@ -872,6 +872,12 @@ public class TsfMypageController extends TsfBaseController {
 		Order order = new Order();
 		order.setCustNo(custNo);
 		mav.addObject("orderCount", coreOrderService.getOrderStatCount(order));
+		
+		// 2021.04.21 모바일에서 사용하려고 추가
+		OrderChange orderChange = new OrderChange();
+		orderChange.setCustNo(custNo);
+		int totalCnt = orderChangeService.getPagingCreListCount(orderChange);
+		mav.addObject("totalCnt", totalCnt);
 
 		// 주문상세상태코드 설정
 		mav.addObject("chgStatList", rendererService.getCommonCodeList("G685", "Y", new String[] {"G685_10", "G685_11", "G685_19"}));
@@ -2134,5 +2140,42 @@ public class TsfMypageController extends TsfBaseController {
 
 		return result;
 	}
+	
+	/**
+	 * 마이페이지 취반교 목록 조회
+	 *
+	 * @param OrderChange
+	 * @return ModelAndView
+	 * @author jsh77b
+	 * @since 2021. 02. 18
+	 */
+	@PostMapping("/cre/listInfo")
+	@ResponseBody
+	public ModelAndView getCreListInfo(@RequestBody OrderChange orderChange) {
+		// 주문목록조회
+		ModelAndView mav = new ModelAndView();
+
+		// 페이징 처리 설정
+		TscPageRequest pageable = new TscPageRequest((orderChange.getPageNo() > 0 ? orderChange.getPageNo() - 1 : 0), orderChange.getPageSize(), orderChange.getPageUnit());
+		pageable.setTotalCount(orderChangeService.getPagingCreListCount(orderChange));
+		orderChange.setPageable(pageable);
+
+		// 페이징 처리 및 주문정보 조회
+		List<Integer> ordChgSqList = new ArrayList<>();
+
+		for (OrderChange tmpOrderChange : orderChangeService.getPagingCreList(orderChange)) {
+			ordChgSqList.add(tmpOrderChange.getOrdChgSq());
+		}
+
+		if (ordChgSqList.size() > 0) {
+			orderChange.setOrdChgSqArr(ordChgSqList.stream().mapToInt(Integer::intValue).toArray());
+		}
+
+		mav.addObject("creList", orderChangeService.getCreList(orderChange));
+		mav.addObject("creInfo", orderChange);
+		mav.setViewName(super.getDeviceViewName("mypage/MypageCreListInfo"));
+
+		return mav;
+	}
 
 }

+ 11 - 3
src/main/java/com/style24/front/biz/web/TsfOrderController.java

@@ -866,11 +866,18 @@ public class TsfOrderController extends TsfBaseController {
 		
 		// TODO 주문정보 알림톡전송
 		
+		// 2021.04.27 마일리지, 제휴할인정보
+		Order payOrder = orderService.getPaymentInfoForMypage(order);
+		int mileageDcAmt 	= payOrder.getNpayPntAmt();
+		int allianceDcAmt 	= payOrder.getPgCpnAmt();
+		int realOrdSumAmt 	= (int) resultMap.get("realOrdSumAmt");
+		realOrdSumAmt = realOrdSumAmt - mileageDcAmt - allianceDcAmt;
+		
 		// 4. 화면전송변수설정
 		mav.addObject("orderInfo"			, resultMap.get("orderInfo"));			// 주문기본정보
 		mav.addObject("ordSumAmt"			, resultMap.get("ordSumAmt"));			// 주문금액합계
 		mav.addObject("dcSumAmt"			, resultMap.get("dcSumAmt"));			// 할인금액합계
-		mav.addObject("realOrdSumAmt"		, resultMap.get("realOrdSumAmt"));		// 결제금액합계
+		mav.addObject("realOrdSumAmt"		, realOrdSumAmt);						// 결제금액합계
 		mav.addObject("listSumAmt"			, resultMap.get("listSumAmt"));			// 상품금액합계(정상가)
 		mav.addObject("goodsSumAmt"			, resultMap.get("goodsSumAmt"));		// 상품금액합계(판매가)
 		mav.addObject("delvFeeSumAmt"		, resultMap.get("delvFeeSumAmt"));		// 배송비합계
@@ -881,8 +888,9 @@ public class TsfOrderController extends TsfBaseController {
 		mav.addObject("pntDcSumAmt"			, resultMap.get("pntDcSumAmt"));		// 포인트사용합계
 		mav.addObject("gfcdUseSumAmt"		, resultMap.get("gfcdUseSumAmt"));		// 상품권사용합계
 		mav.addObject("savePntSumAmt"		, resultMap.get("savePntSumAmt"));		// 적립예정포인트합계
-		mav.addObject("mileageDcAmt"		, resultMap.get("mileageDcAmt"));		// 마일리지사용합계
-		mav.addObject("allianceDcAmt"		, resultMap.get("allianceDcAmt"));		// 제휴할인합계
+		mav.addObject("mileageDcAmt"		, mileageDcAmt);						// 마일리지사용합계
+		mav.addObject("allianceDcAmt"		, allianceDcAmt);						// 제휴할인합계
+		
 		mav.addObject("isLogin"				, TsfSession.isLogin());				// 로그인여부
 		mav.addObject("delvAddrSq"			, resultMap.get("delvAddrSq"));			// 배송지번호
 		mav.setViewName(super.getDeviceViewName("order/OrderComplete"));

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

@@ -484,7 +484,7 @@
 		<foreach collection="freegiftValArr" item="item" index="index"  open="(" close=")" separator=",">
 			#{item}
 		</foreach> 
-		    AND    FV.ITEM_QTY <![CDATA[>=]]> FV.LEFT_QTY
+		    AND    FV.ITEM_QTY <![CDATA[>]]> FV.LEFT_QTY
 		    UNION  ALL
 		    SELECT COUNT(1) AS CNT
 		    FROM   TB_FREEGIFT_VAL FV

+ 402 - 0
src/main/webapp/WEB-INF/views/mob/mypage/MypageCancelFormMob.html

@@ -0,0 +1,402 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorator="mob/common/layout/MypageLayoutMob">
+<!--
+ *******************************************************************************
+ * @source  : MypageCancelFormWeb.html
+ * @desc    : 마이페이지 > 취소신청 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2021 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.04.27   jsh77b     최초 작성
+ *******************************************************************************
+ -->
+<body>
+
+<th:block layout:fragment="content">
+	<div class="content myOrderView">
+		<div class="cont_body">
+			<!-- CONT-BODY -->
+			<div class="lnb">
+				<div class="lnb_tit">
+					<h2>마이페이지</h2>
+				</div>
+				<div class="lnb_list">
+					<ul id="mypageLnbList"></ul>
+				</div>
+			</div>
+			<div class="cont">
+				<form id="cancelForm">
+					<input type="hidden" name="accountNo" th:value="${oneData.accountNo}"/>
+					<input type="hidden" name="accountNm" th:value="${oneData.accountNm}"/>
+					<input type="hidden" name="bankCd" th:value="${oneData.bankCd}"/>
+					<div class="sec_head">
+						<h3 class="subH1">주문취소</h3>
+						<span class="order_number">주문번호&nbsp;:&nbsp;<em th:text="${oneData.ordNo}"></em></span>
+					</div>
+					<div class="sec_body">
+						<div class="part_goods">
+							<div class="goods_head">
+								<p th:unless="${oneData.giftPackYn == 'Y'}">주문일 <span th:text="${oneData.ordDt}"></span></p>
+								<p th:if="${oneData.giftPackYn == 'Y'}">선물일 <span th:text="${oneData.ordDt}"></span></p>
+							</div>
+							<div class="goods_cont">
+								<th:block th:if="${cancelList.cancelList}" th:each="cancel, status : ${cancelList.cancelList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
+								<!-- 주문상품 -->
+								<div class="goods_info">
+									<div class="order_desc">
+										<div class="goods_box">
+											<div class="gd_item">
+												<a href="javascript:void(0)" th:attr="goodsCd=${cancel.goodsCd}" onclick="fnGoToGoodsDetail(this)">
+													<span class="thumb">
+														<img th:src="${imageUrl + '/' + cancel.sysImgNm}" width="100%" alt="">
+													</span>
+													<p>
+														<span class="brand" th:text="${cancel.brandNm}"></span>
+														<span class="tag primary" th:if="${cancel.shotDelvYn == 'Y'}">총알배송</span>
+														<span class="tag" th:if="${cancel.shotDelvYn == 'N' and cancel.selfGoodsYn == 'Y'}">STYLE24 일반배송</span>
+														<span class="tag" th:if="${cancel.selfGoodsYn == 'N'}">업체직배송</span>
+													</p>
+													<p>
+														<span class="name" th:text="${cancel.goodsNm}"></span>
+													</p>
+												</a>
+											</div>
+											<div class="gd_opt">
+												<div class="option_wrap">
+													<span class="title sr-only">주문 옵션</span>
+													<span class="option" th:if="${cancel.goodsType == 'G056_S'}" th:each="option, status : ${cancel.colorNmArr}" th:text="|${cancel.itemNmArr[status.index]} / ${option} / ${cancel.optCd2Arr[status.index]}|"></span>
+													<span class="option" th:unless="${cancel.goodsType == 'G056_S'}" th:text="|${cancel.colorNm} / ${cancel.optCd2}|"></span>
+												</div>
+											</div>
+											<div class="gd_calc">
+												<p>
+													<span class="count"><em th:text="${cancel.ordQty - cancel.cnclRtnQty}"></em>개</span>
+												</p>
+												<p>
+													<span class="price_org" th:if="${(cancel.ordAmt - cancel.cnclRtnAmt - cancel.cpn1DcAmt) > (cancel.realOrdAmt + cancel.pntDcAmt + cancel.gfcdUseAmt)}"><em th:text="${#numbers.formatInteger(cancel.ordAmt - cancel.cnclRtnAmt - cancel.cpn1DcAmt, 1, 'COMMA')}"></em>원</span>
+													<span class="price_sale"><em th:text="${#numbers.formatInteger(cancel.realOrdAmt + cancel.pntDcAmt + cancel.gfcdUseAmt, 1, 'COMMA')}"></em>원</span>
+												</p>
+											</div>
+										</div>
+										<div class="button_box">
+											<div class="count_modify">
+												<span class="txt">수량</span>
+												<form class="form_wrap">
+													<div class="form_field">
+														<div class="select_custom select_count">
+															<div class="combo">
+																<input type="hidden" name="chgQty" value="0" th:attr="ordDtlNo=${cancel.ordDtlNo}, ordCanChgQty=${cancel.ordCanChgQty}"/>
+																<div class="select">선택</div>
+																<ul class="list">
+																	<li class="selected" qty="0" onclick="fnChangeCancelQty(this);">선택</li>
+																	<li th:if="${cancel.ordCanChgQty > 0}" th:each="num : ${#numbers.sequence(1,cancel.ordCanChgQty)}" th:attr="qty=${num}" th:text="${num}" onclick="fnChangeCancelQty(this);"></li>
+																</ul>
+															</div>
+														</div>
+													</div>
+												</form>
+											</div>
+										</div>
+									</div>
+									<div class="order_text">
+										<p>취소하실 수량을 선택하신 후 주문 취소를 하실 수 있습니다.</p>
+									</div>
+								</div>
+								<!-- //주문상품 -->
+								</th:block>
+							</div>
+						</div>
+						<h4 class="subH3">환불정보</h4>
+						<div class="tbl type6">
+							<table>
+								<colgroup>
+									<col width="50%">
+									<col width="50%">
+								</colgroup>
+								<tr>
+									<td>
+										<dl>
+											<div>
+												<dt>환불 예정 금액</dt>
+												<dd>
+													<div class="price">
+														<span class="return_total_price"><em id="returnAmt">0</em>원</span>
+													</div>
+												</dd>
+											</div>
+											<div class="include_item"> <!-- 할인항목 표기 class명 include_item -->
+												<dt>상품 취소 금액</dt>
+												<dd><em id="goodsCancelAmt">0</em>원</dd>
+											</div>
+											<div class="include_item">
+												<dt>배송비</dt>
+												<dd><em id="deliveryFee">0</em>원</dd>
+											</div>
+											<div class="include_item">
+												<dt>할인 금액 차감</dt>
+												<dd><em id="deductDcAmt">0</em>원</dd>
+											</div>
+										</dl>
+									</td>
+									<td>
+										<dl>
+											<div>
+												<dt>환불 수단</dt>
+												<dd th:if="${paymentInfo.pgGb == 'KCP'}" th:text="${paymentInfo.payMeansNm}"></dd>
+												<dd th:if="${paymentInfo.pgGb == 'NAVER'}" th:text="|네이버페이|"></dd>
+												<dd th:if="${paymentInfo.pgGb == 'KAKAO'}" th:text="|카카오페이|"></dd>
+												<dd th:if="${paymentInfo.pgGb == 'PAYCO'}" th:text="|PAYCO|"></dd>
+											</div>
+											<div>
+												<dt>결제 금액 환불</dt>
+												<dd>
+													<em id="refundPayAmt">0</em>원
+												</dd>
+											</div>
+											<div>
+												<dt>포인트 환불</dt>
+												<dd>
+													<em id="refundPoint">0</em>P
+												</dd>
+											</div>
+											<div>
+												<dt>상품권 환불</dt>
+												<dd>
+													<em id="refundGiftCard">0</em>원
+												</dd>
+											</div>
+										</dl>
+									</td>
+								</tr>
+							</table>
+						</div>
+						<div class="txt_info">
+							<ul>
+								<li>
+									카드사로 결제 취소 요청이 전달된 후 환불까지는 평일 기준 3 ~7일이 소요될 수 있습니다.
+								</li>
+							</ul>
+						</div>
+						<div class="info_footer_area" id="addDeliveryFee" style="display:none">
+							<p>
+								<span id="addPayCost">2,500원</span> 배송비 추가 결제가 필요합니다.
+								<input type="hidden" name="addPayCost"/>
+							</p>
+						</div>
+						<div class="btn_footer_area">
+							<button type="button" class="btn btn_default btn_md" onclick="cfnGoToPage(_PAGE_MYPAGE_ORDER_LIST);"><span>취소</span></button>
+							<button type="button" id="btn_refund_pop" class="btn btn_dark btn_md" onclick="fnCancel();"><span>주문 취소</span></button>
+						</div>
+					</div>
+				</form>
+			</div>
+			<!-- // CONT-BODY -->
+		</div>
+
+		<!-- 환불계좌 등록 팝업 -->
+		<div class="modal fade refund_pop" id="refundPop" tabindex="-1" role="dialog" aria-labelledby="refundLabel" aria-hidden="true">
+			<div class="modal-dialog" role="document">
+				<div class="modal-content"></div>
+			</div>
+			<a href="#close-modal" rel="modal:close" id="refundPop_close" class="close-modal">Close</a>
+			<a href="#close-modal" rel="modal:close" class="close-modal ">Close</a>
+		</div>
+		<!-- //환불계좌 등록 팝업 -->
+	</div>
+<script src="/ux/plugins/gaga/gaga.paging.js"></script>
+<script th:inline="javascript">
+	let cancelList = [[${cancelList}]];
+	let oneData = [[${oneData}]];
+	let paymentInfo = [[${paymentInfo}]];
+	let addPayCost = 0;
+
+	$(document).ready(function() {
+		// 마이페이지 LNB 설정
+		fnSetMypageLnbList(2);
+
+		// 마이페이지 location 설정
+		fnSetMypageLocation('취소/반품/환불내역', '_PAGE_MYPAGE_CRE_LIST', '취소 신청');
+
+		// 셀렉트박스 활성화
+		$(".myOrderView .part_goods .select_custom.select_count").each(function() {
+			new sCombo(this);
+		});
+	});
+
+	// 취소 처리
+	var fnCancel = function() {
+		// 취소수량 설정
+		//fnChangeCancelQty();
+
+		// 주문상세번호 및 취소 수량 설정
+		let ordDtlNoArr = [];
+		let cnclRtnReqQtyArr = [];
+		let chkQty = 0;
+		$.each($('#cancelForm input[name=chgQty]'), function(idx, item) {
+			let chgQty = $(item).val();
+			let ordDtlNo = $(item).attr('ordDtlNo');
+			
+			ordDtlNoArr.push(Number(ordDtlNo));
+			cnclRtnReqQtyArr.push(Number(chgQty));
+			chkQty += chgQty;
+		});
+
+		// 취소 수량 체크
+		if (chkQty == 0) {
+			mcxDialog.alert('취소하실 상품의 수량을 선택해주세요.');
+			return false;
+		}
+
+		// 환불계좌 체크
+		let accountNo = $('#cancelForm input[name=accountNo]').val();
+		let accountNm = $('#cancelForm input[name=accountNm]').val();
+		let bankCd = $('#cancelForm input[name=bankCd]').val();
+
+		if (paymentInfo.payMeans == 'G014_20' && paymentInfo.payStat == 'G016_30' && (gagajf.isNull(accountNo) || gagajf.isNull(accountNm) || gagajf.isNull(bankCd))) {
+			let data = {};
+			data.ordNo = oneData.ordNo;
+			data.accountNm = oneData.accountNm;
+
+			let jsonData = JSON.stringify(data);
+
+			$.ajax( {
+				type		: "POST",
+				url 		: '/mypage/refund/account/register/popup/form',
+				data		: jsonData,
+				dataType 	: 'html',
+				beforeSend : function(xhr, settings) {
+					xhr.setRequestHeader("AJAX"			, "true");
+					xhr.setRequestHeader('Accept'		, 'application/json');
+					xhr.setRequestHeader('Content-Type'	, 'application/json');
+					gagajf.showProgressbar(true);
+				},
+				success 	: function(result) {
+					$("#refundPop .modal-dialog .modal-content").html(result);
+					$("#refundPop").modal("show");
+				}
+			});
+			
+			return false;
+		}
+
+		// 취소요청 데이터 설정
+		let url = '/mypage/cancel';
+
+		// 취소 처리
+		let data = {};
+		data.ordNo = oneData.ordNo;
+		data.chgReason = 'G686_10';
+		data.chgReasonNm = '고객변심';
+		data.accountNo = accountNo;
+		data.accountNm = accountNm;
+		data.bankCd = bankCd;
+		data.isCustomer = 'Y';
+		data.reqGbn = 'cnclComplete';
+		data.pgTid = paymentInfo.pgTid;
+		data.payAmt = paymentInfo.payAmt;
+		data.ordDtlNoArr = ordDtlNoArr;
+		data.cnclRtnReqQtyArr = cnclRtnReqQtyArr;
+
+		let jsonData = JSON.stringify(data);
+		
+		// 취소 처리 가능 여부 조회
+		gagajf.ajaxJsonSubmit('/mypage/wms/cancel/available', jsonData, function(result) {
+			if (result.cancelYn == 'Y') {
+				// 취소 처리
+				gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
+					cfnGoToPage(_PAGE_MYPAGE_ORDER_LIST);
+				});
+			} else {
+				mcxDialog.alert('이미 배송처리 되어 취소 처리에 실패 하였습니다.');
+			}
+		});
+	}
+	
+	// 취소 수량 변경 이벤트 처리
+	var fnChangeCancelQty = function(param) {
+		let url = '/mypage/cancel/refund/amt/calculate';
+
+		if (param != null) {
+			$(param).parent().parent().find('input[name=chgQty]').val($(param).attr('qty'));
+		}
+
+		// 취소 수량 설정
+		let cnclRtnReqQtyArr = [];
+		let ordDtlNoArr = [];
+		let ordCanChgQtyArr = [];
+		$.each($('#cancelForm input[name=chgQty]'), function(idx, item) {
+			let chgQty = $(item).val();
+			let ordDtlNo = $(item).attr('ordDtlNo');
+			let ordCanChgQty = $(item).attr('ordCanChgQty');
+			
+			cnclRtnReqQtyArr.push(Number(chgQty));
+			ordDtlNoArr.push(Number(ordDtlNo));
+			ordCanChgQtyArr.push(Number(ordCanChgQty));
+		});
+
+		let data = {};
+		data.ordNo = oneData.ordNo;
+		data.ordDtlNoArr = ordDtlNoArr;
+		data.cnclRtnReqQtyArr = cnclRtnReqQtyArr;
+
+		let jsonData = JSON.stringify(data);
+
+		gagajf.ajaxJsonSubmit(url, jsonData, function (result) {
+			// 환불포인트, 환불상품권 금액 계산
+			let refundPoint = Number(result.spanPntDcAmt);
+			let refundGiftCard = Number(result.spanGfcdUseAmt);
+
+			let spanCnclRtnAmt = Number(result.spanCnclRtnAmt);
+			let sumDeliveryFee = Number(result.sumDeliveryFee);
+			let spanTotDeliveryFee = Number(result.spanTotDeliveryFee);
+			let spanCpnDcAmt = Number(result.spanCpnDcAmt);
+			let spanTmtbDcAmt = Number(result.spanTmtbDcAmt);
+			let spanPrePntDcAmt = Number(result.spanPrePntDcAmt);
+			let spanRefundAmt = Number(result.spanRefundAmt);
+
+			let goodsCancelAmt = spanCnclRtnAmt;										// 상품취소금액
+			let deliveryFee = sumDeliveryFee - spanTotDeliveryFee;						// 배송비
+			let deductDcAmt = 0 - spanCpnDcAmt - spanTmtbDcAmt - spanPrePntDcAmt;		// 할인금액 차감(쿠폰+다다익선+선포인트)
+			let refundPayAmt = spanRefundAmt;											// 결제금액 환불
+			let returnAmt = refundPayAmt + refundPoint + refundGiftCard;				// 환불예정금액
+
+			// 추가배송비 영역 설정
+			if (refundPayAmt < 0) {
+				refundPayAmt = spanRefundAmt;
+				$('#addDeliveryFee').css('display', '');
+				$('#addPayCost').text(spanTotDeliveryFee.addComma() + '원');
+				addPayCost = spanTotDeliveryFee;
+			} else {
+				addPayCost = 0;
+			}
+
+			// 금액 설정
+			$('#returnAmt').text(returnAmt.addComma());
+			$('#goodsCancelAmt').text(goodsCancelAmt.addComma());
+			$('#deliveryFee').text(deliveryFee.addComma());
+			$('#deductDcAmt').text(deductDcAmt.addComma());
+			$('#refundPayAmt').text(refundPayAmt.addComma());
+			$('#refundPoint').text(refundPoint.addComma());
+			$('#refundGiftCard').text(refundGiftCard.addComma());
+		});
+	}
+
+	// 환불계좌 등록 콜백 처리
+	var fnRegisterAccountCallback = function(result) {
+		// 환불계좌 정보 설정
+		$('#cancelForm input[name=accountNo]').val(result.accountNo);
+		$('#cancelForm input[name=accountNm]').val(result.accountNm);
+		$('#cancelForm input[name=bankCd]').val(result.bankCd);
+
+		// 취소처리
+		fnCancel();
+	}
+</script>
+
+</th:block>
+
+</body>
+</html>

+ 438 - 0
src/main/webapp/WEB-INF/views/mob/mypage/MypageCreCancelDetailFormMob.html

@@ -0,0 +1,438 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorator="mob/common/layout/MypageLayoutMob">
+<!--
+ *******************************************************************************
+ * @source  : MypageCreCancelDetailFormWeb.html
+ * @desc    : 마이페이지 > 취소/반품/교환내역 > 취소상세 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2021 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.04.27   jsh77b     최초 작성
+ *******************************************************************************
+ -->
+<body>
+
+<th:block layout:fragment="content">
+<main role="" id="" class="container my">
+	<section class="content my_return">
+		<div class="inner wide bg_beige">
+			<div class="order_number">
+				<dl class="clear">
+					<dt>주문번호</dt>
+					<dd th:text="${oneData.ordNo}"></dd>
+				</dl>
+			</div>
+		</div>
+		<div class="inner">
+			<div class="part_goods">
+				<div class="goods_top">
+					<th:block th:if="${oneData.giftPackYn == 'Y'}">
+						<div class="goods_date">선물일<span class="date" th:text="${oneData.ordDt}"></span></div>
+					</th:block>
+					<th:block th:unless="${oneData.giftPackYn == 'Y'}">
+						<div class="goods_date">주문일<span class="date" th:text="${oneData.ordDt}"></span></div>
+					</th:block>
+				</div>
+				
+				<th:block th:if="${cancelDetailList.cancelDetailList}" th:each="returnDtl, status : ${cancelDetailList.cancelDetailList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
+					<div class="goods_section">
+						<div class="goods_status">
+							<p class="dlvr_staus" th:text="${returnDtl.chgStatNm}"></p>
+							<p class="dlvr_desc" th:text="|${returnDtl.chgDate} ${returnDtl.chgTime}|"></p>
+						</div>
+						
+						<div class="goods_detail">
+							<a href="">
+								<div class="thumb_box">
+									<img th:src="${imageUrl + '/' + returnDtl.sysImgNm}" width="100%" alt="">
+								</div>
+								<div class="info_box">
+									<div class="od_name">
+										<div class="brand">
+											<span th:text="${returnDtl.brandNm}"></span>
+											<div class="badge_wrap">
+												<em class="tag primary" th:if="${returnDtl.shotDelvYn == 'Y'}">총알배송</em>
+												<em class="tag" th:if="${returnDtl.shotDelvYn == 'N' and returnDtl.selfGoodsYn == 'Y'}">STYLE24 일반배송</em>
+												<em class="tag" th:if="${returnDtl.selfGoodsYn == 'N'}">업체직배송</span>
+											</div>
+										</div>
+										<div class="name" th:text="${returnDtl.goodsNm}"></div>
+									</div>
+									<div class="od_opt">
+										<div class="option">
+											<th:block th:if="${returnDtl.goodsType == 'G056_S'}">
+												<th:block th:each="option, status : ${returnDtl.colorNmArr}">
+													<em th:text="${option}"></em>
+													<em th:text="${returnDtl.optCd2Arr[status.index]}"></em>
+												</th:block>
+											</th:block>
+											<th:block th:unless="${returnDtl.goodsType == 'G056_S'}">
+												<em th:text="${returnDtl.colorNm}"></em>
+												<em th:text="${returnDtl.optCd2}"></em>
+											</th:block>
+										</div>
+									</div>
+									<div class="od_calc">
+										<p class="price">
+											<span class="count"><em th:text="${returnDtl.chgQty}"></em>개</span>
+										</p>
+									</div>
+								</div>
+							</a>
+						</div>
+						<div class="goods_btn_wrap btn_group_flex">
+							<div><button type="button" class="btn btn_default" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA_REG);"><span>1:1 문의</span></button></div>
+						</div>
+					</div>
+				</th:block>
+			</div>
+		</div>
+		
+		<div class="inner">
+			<div class="tbl_wrap">
+				<div class="tbl_tit"> 
+					<h3>상세 정보</h3>
+				</div>
+				<div class="tbl type1">
+					<table>
+						<colgroup>
+							<col width="107">
+							<col width="*">
+						</colgroup>   
+						<tr>
+							<th>취소 접수 일자</th>
+							<td><div><span th:text="${oneData.chgDt}"></span></div></td>
+						</tr>
+						<tr>
+							<th>취소 완료 일자</th>
+							<td><div><span th:text="${oneData.completeDt}"></span></div></td>
+						</tr>
+					</table>
+				</div>
+			</div>
+		</div>
+		<div class="inner">
+			<div class="tbl_wrap pay_wrap">
+				<div class="tbl_tit"> 
+					<h3>환불 정보</h3>
+					<strong class="pay"><span th:text="${#numbers.formatInteger(oneData.refundAmt + oneData.rfPntAmt + oneData.rfGfcdUseAmt, 1, 'COMMA')}"></span>원</strong>
+				</div>
+				<div class="tbl type1">
+					<table>
+						<colgroup>
+							<col width="227">
+							<col width="*">
+						</colgroup>   
+						<tr>
+							<td>
+								<dl class="refund_deduct">
+									<div>
+										<dt>상품 취소 금액</dt>
+										<dd>
+											<div>
+												<span th:text="${#numbers.formatInteger(oneData.rfCnclAmt, 1, 'COMMA')}"></span>원
+											</div>
+										</dd>
+									</div>
+									<div>
+										<dt>배송비</dt>
+										<dd>
+											<div>
+												<span th:text="${#numbers.formatInteger(oneData.rfDeliveryFee, 1, 'COMMA')}"></span>원
+											</div>
+										</dd>
+									</div>
+									<div>
+										<dt>할인 금액 차감</dt>
+										<dd>
+											<div>
+												<span th:text="${#numbers.formatInteger(-(oneData.rfCpn1Amt + oneData.rfTmtb1Amt + oneData.rfTmtb2Amt + oneData.rfGoodsCpnAmt + oneData.rfCartCpnAmt + oneData.rfPrePntAmt), 1, 'COMMA')}"></span>원
+											</div>
+										</dd>
+									</div>
+								</dl>
+								<dl class="refund_detail">
+									<div>
+										<dt>환불 수단</dt>
+										<dd>
+											<div>
+												<span th:if="${oneData.pgGb == 'KCP'}" th:text="${oneData.payMeansNm}"></span>
+												<span th:if="${oneData.pgGb == 'NAVER'}">네이버페이</span>
+												<span th:if="${oneData.pgGb == 'KAKAO'}">카카오페이</span>
+												<span th:if="${oneData.pgGb == 'PAYCO'}">PAYCO</span>
+											</div>
+										</dd>
+									</div>
+									<div>
+										<dt>결제금액 환불</dt>
+										<dd>
+											<div>
+												<span th:text="${#numbers.formatInteger(oneData.refundAmt, 1, 'COMMA')}"></span>원
+											</div>
+										</dd>
+									</div>
+									<div>
+										<dt>포인트 환불</dt>
+										<dd>
+											<div>
+												<span th:text="${#numbers.formatInteger(oneData.rfPntAmt, 1, 'COMMA')}"></span>P
+											</div>
+										</dd>
+									</div>
+									<div>
+										<dt>상품권 환불</dt>
+										<dd>
+											<div>
+												<span th:text="${#numbers.formatInteger(oneData.rfGfcdUseAmt, 1, 'COMMA')}"></span>원
+											</div>
+										</dd>
+									</div>
+								</dl>
+							</td>
+						</tr>
+					</table>
+					<th:block th:if="${refundYn == 'Y' and oneData.pgGb == 'KCP' and oneData.payMeans == 'G014_30'}">
+						<button type="button" id="btn_chit_cancle" class="btn btn_default" onclick="fnReceipt('cancel')">
+							<span>취소 전표 보기</span>
+						</button>
+					</th:block>
+				</div>
+			</div>
+			<p class="desc_txt">카드사로 결제 취소 요청이 전달된 후 환불까지는 평일 기준 3 ~7일이<br>소요될 수 있습니다.</p>
+			<div class="btn_group btn_group_flex">
+				<div><button class="btn btn_dark" onclick="cfnGoToPage(_PAGE_MYPAGE_CRE_LIST);"><span>확인</span></button></div>
+			</div>
+		</div>
+	</section>
+</main>
+<script th:inline="javascript">
+/*<![CDATA[*/
+let oneData = [[${oneData}]];
+var isLogin = [[${isLogin}]];
+
+$(document).ready(function() {
+
+});
+
+// 회수지 정보 설정
+var delvAddrSet = function(delvObj) {
+	let ordChgSq 		= oneData.ordChgSq;
+	let chgerNm 		= delvObj.recipNm;
+	let chgerPhnno 		= delvObj.recipPhnno;
+	let chgerZipcode 	= delvObj.recipZipcode;
+	let chgerBaseAddr 	= delvObj.recipBaseAddr;
+	let chgerDtlAddr 	= delvObj.recipDtlAddr;
+	let chgerRtnMemo 	= delvObj.delvMemo;
+	let chgerAddr 		= chgerBaseAddr + ' ' + chgerDtlAddr;
+
+	let data = {};
+	data.ordChgSq 		= ordChgSq;
+	data.chgerNm 		= chgerNm;
+	data.chgerPhnno 	= chgerPhnno;
+	data.chgerZipcode 	= chgerZipcode;
+	data.chgerBaseAddr 	= chgerBaseAddr;
+	data.chgerDtlAddr 	= chgerDtlAddr;
+	data.chgerRtnMemo 	= chgerRtnMemo;
+
+	let jsonData = JSON.stringify(data);
+
+	gagajf.ajaxJsonSubmit('/mypage/change/chger/addr', jsonData, function(result) {
+		if (result.status == '200') {
+			$('#chgerNm').text(chgerNm);
+			$('#chgerPhnno').text(chgerPhnno);
+			$('#chgerAddr').text(chgerAddr);
+			$('#chgerRtnMemo').text(chgerRtnMemo);
+		}
+	});
+}
+
+// 배송메모 설정
+var delvMemoSet = function(delvMemoObj) {
+	let ordChgSq = oneData.ordChgSq;
+	let delvMemo = delvMemoObj.delvMemo;
+
+	let data = {};
+	data.ordChgSq = ordChgSq;
+	data.chgerRtnMemo = delvMemo;
+	
+	let jsonData = JSON.stringify(data);
+	
+	gagajf.ajaxJsonSubmit('/mypage/change/chger/rtn/memo', jsonData, function(result) {
+		if (result.status == '200') {
+			$("#chgerRtnMemo").text(delvMemo);
+		}
+	});
+	
+}
+/*]]>*/
+</script>
+
+</th:block>
+					</div>
+				</th:block>
+			</div>
+		</div>
+		
+		<div class="inner">
+			<div class="tbl_wrap">
+				<div class="tbl_tit"> 
+					<h3>상세 정보</h3>
+				</div>
+				<div class="tbl type1">
+					<table>
+						<colgroup>
+							<col width="107">
+							<col width="*">
+						</colgroup>   
+						<tr>
+							<th>반품 접수 일자</th>
+							<td><div><span th:text="${oneData.chgDt}"></span></div></td>
+						</tr>
+						<tr>
+							<th>반품 완료 일자</th>
+							<td><div><span th:text="${oneData.completeDt}"></span></div></td>
+						</tr>
+					</table>
+				</div>
+			</div>
+		</div>
+		<div class="inner">
+			<div class="tbl_wrap">
+				<div class="tbl_tit"> 
+					<h3>반품 회수지 주소</h3>
+					<button type="button" id="btn_adrsChange_pop" class="btn_popup" th:if="${oneData.chgStat == 'G685_50' or oneData.chgStat == 'G685_51'}" onclick="fnChangeDeliveryAddr();">
+						<span>회수지 변경</span>
+					</button>
+				</div>
+				<div class="tbl">
+					<div class="ship_info">
+						<dl>
+							<div class="name">
+								<dt><span class="sr-only">배송지명</span></dt>
+								<dd id="chgerNm" th:text="${oneData.chgerNm}"></dd>
+							</div>
+							<div class="addr">
+								<dt><span class="sr-only">배송주소</span></dt>
+								<dd id="chgerAddr" th:text="|${oneData.chgerBaseAddr} ${oneData.chgerDtlAddr}|"></dd>
+							</div>
+							<div class="phone">
+								<dt><span class="sr-only">휴대폰 번호</span></dt>
+								<dd id="chgerPhnno" th:text="${oneData.chgerPhnno}"></dd>
+							</div>
+						</dl>
+					</div>
+				</div>
+			</div>
+		</div>
+		<div class="inner">
+			<div class="tbl_wrap pay_wrap">
+				<div class="tbl_tit"> 
+					<h3>환불 정보</h3>
+					<strong class="pay"><span th:text="${#numbers.formatInteger(oneData.refundAmt + oneData.rfPntAmt + oneData.rfGfcdUseAmt, 1, 'COMMA')}"></span>원</strong>
+				</div>
+				<div class="tbl type1">
+					<table>
+						<colgroup>
+							<col width="227">
+							<col width="*">
+						</colgroup>   
+						<tr>
+							<td>
+								<dl class="refund_deduct">
+									<div>
+										<dt>상품 취소 금액</dt>
+										<dd>
+											<div>
+												<span th:text="${#numbers.formatInteger(oneData.rfCnclAmt, 1, 'COMMA')}"></span>원
+											</div>
+										</dd>
+									</div>
+									<div>
+										<dt>배송비</dt>
+										<dd>
+											<div>
+												<span th:text="${#numbers.formatInteger(oneData.rfDeliveryFee, 1, 'COMMA')}"></span>원
+											</div>
+										</dd>
+									</div>
+									<div>
+										<dt>할인 금액 차감</dt>
+										<dd>
+											<div>
+												<span th:text="${#numbers.formatInteger(-(oneData.rfCpn1Amt + oneData.rfTmtb1Amt + oneData.rfTmtb2Amt + oneData.rfGoodsCpnAmt + oneData.rfCartCpnAmt + oneData.rfPrePntAmt), 1, 'COMMA')}"></span>원
+											</div>
+										</dd>
+									</div>
+								</dl>
+								<dl class="refund_detail">
+									<div>
+										<dt>환불 수단</dt>
+										<dd>
+											<div>
+												<span th:if="${oneData.pgGb == 'KCP'}" th:text="${oneData.payMeansNm}"></span>
+												<span th:if="${oneData.pgGb == 'NAVER'}">네이버페이</span>
+												<span th:if="${oneData.pgGb == 'KAKAO'}">카카오페이</span>
+												<span th:if="${oneData.pgGb == 'PAYCO'}">PAYCO</span>
+											</div>
+										</dd>
+									</div>
+									<div>
+										<dt>결제금액 환불</dt>
+										<dd>
+											<div>
+												<span th:text="${#numbers.formatInteger(oneData.refundAmt, 1, 'COMMA')}"></span>원
+											</div>
+										</dd>
+									</div>
+									<div>
+										<dt>포인트 환불</dt>
+										<dd>
+											<div>
+												<span th:text="${#numbers.formatInteger(oneData.rfPntAmt, 1, 'COMMA')}"></span>P
+											</div>
+										</dd>
+									</div>
+									<div>
+										<dt>상품권 환불</dt>
+										<dd>
+											<div>
+												<span th:text="${#numbers.formatInteger(oneData.rfGfcdUseAmt, 1, 'COMMA')}"></span>원
+											</div>
+										</dd>
+									</div>
+								</dl>
+							</td>
+						</tr>
+					</table>
+					<th:block th:if="${refundYn == 'Y' and oneData.pgGb == 'KCP' and oneData.payMeans == 'G014_30'}">
+						<button type="button" id="btn_chit_cancle" class="btn btn_default" onclick="fnReceipt('cancel')">
+							<span>취소 전표 보기</span>
+						</button>
+					</th:block>
+				</div>
+			</div>
+			<p class="desc_txt">카드사로 결제 취소 요청이 전달된 후 환불까지는 평일 기준 3 ~7일이<br>소요될 수 있습니다.</p>
+			<div class="btn_group btn_group_flex">
+				<div><button class="btn btn_dark" onclick="cfnGoToPage(_PAGE_MYPAGE_CRE_LIST);"><span>확인</span></button></div>
+			</div>
+		</div>
+	</section>
+</main>
+<script th:inline="javascript">
+/*<![CDATA[*/
+let oneData = [[${oneData}]];
+var isLogin = [[${isLogin}]];
+
+$(document).ready(function() {
+
+});
+/*]]>*/
+</script>
+
+</th:block>
+
+</body>
+</html>

+ 350 - 0
src/main/webapp/WEB-INF/views/mob/mypage/MypageCreExchangeDetailFormMob.html

@@ -0,0 +1,350 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorator="mob/common/layout/MypageLayoutMob">
+<!--
+ *******************************************************************************
+ * @source  : MypageCreExchangeDetailFormWeb.html
+ * @desc    : 마이페이지 > 취소/반품/교환내역 > 교환상세 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2021 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.04.13   card007     최초 작성
+ *******************************************************************************
+ -->
+<body>
+
+<th:block layout:fragment="content">
+	<div class="content myOrderView"> <!-- 페이지특정 클래스 = myOrderView -->
+		<div class="cont_body">
+			<!-- CONT-BODY -->
+			<div class="lnb">
+				<div class="lnb_tit">
+					<h2>마이페이지</h2>
+				</div>
+				<div class="lnb_list">
+					<ul id="mypageLnbList"></ul>
+				</div>
+			</div>
+			<div class="cont">
+				<div class="sec_head">
+					<h3 class="subH1">교환상세</h3>
+					<span class="order_number">주문번호&nbsp;:&nbsp;<em th:text="${oneData.ordNo}"></em></span>
+				</div>
+				<div class="sec_body">
+					<div class="part_goods">
+						<div class="goods_head">
+							<p th:unless="${oneData.giftPackYn == 'Y'}">주문일 <span th:text="${oneData.ordDt}"></span></p>
+							<p th:if="${oneData.giftPackYn == 'Y'}">선물일 <span th:text="${oneData.ordDt}"></span></p>
+							<a href="javascript:void(0)" th:attr="ordNo=${oneData.ordNo}" onclick="fnGoToOrderDetail(this);">상세보기</a>
+						</div>
+						<div class="goods_cont">
+							<!-- 주문상품 -->
+							<th:block th:if="${exchangeDetailList.exchangeDetailList}" th:each="exchangeDtl, status : ${exchangeDetailList.exchangeDetailList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
+								<div class="goods_info">
+									<div class="order_desc">
+										<div class="goods_box">
+											<div class="gd_item">
+												<a href="javascript:void(0)" th:attr="goodsCd=${exchangeDtl.goodsCd}" onclick="fnGoToGoodsDetail(this)">
+													<span class="thumb">
+														<img th:src="${imageUrl + '/' + exchangeDtl.sysImgNm}" width="100%" alt="">
+													</span>
+													<p>
+														<span class="brand" th:text="${exchangeDtl.brandNm}"></span>
+														<span class="tag primary" th:if="${exchangeDtl.shotDelvYn == 'Y'}">총알배송</span>
+														<span class="tag" th:if="${exchangeDtl.shotDelvYn == 'N' and exchangeDtl.selfGoodsYn == 'Y'}">STYLE24 일반배송</span>
+														<span class="tag" th:if="${exchangeDtl.selfGoodsYn == 'N'}">업체직배송</span>
+													</p>
+													<p>
+														<span class="name" th:text="${exchangeDtl.goodsNm}"></span>
+													</p>
+												</a>
+											</div>
+											<div class="gd_opt">
+												<div class="option_wrap">
+													<span class="title sr-only">주문 옵션</span>
+													<span class="option" th:if="${exchangeDtl.goodsType == 'G056_S'}" th:each="option, status : ${exchangeDtl.colorNmArr}" th:text="|${exchangeDtl.itemNmArr[status.index]} / ${option} / ${exchangeDtl.optCd2Arr[status.index]}|"></span>
+													<span class="option" th:unless="${exchangeDtl.goodsType == 'G056_S'}" th:text="|${exchangeDtl.colorNm} / ${exchangeDtl.optCd2}|"></span>
+												</div>
+											</div>
+											<div class="gd_calc">
+												<p>
+													<span class="count"><em th:text="${exchangeDtl.chgQty}"></em>개</span>
+												</p>
+												<p>
+													<span class="price_org" th:if="${exchangeDtl.priceOrg > exchangeDtl.priceSale}"><em th:text="${#numbers.formatInteger(exchangeDtl.priceOrg, 1, 'COMMA')}"></em>원</span>
+													<span class="price_sale"><em th:text="${#numbers.formatInteger(exchangeDtl.priceSale, 1, 'COMMA')}"></em>원</span>
+												</p>
+											</div>
+											<div class="gd_opt">
+												<div class="option_wrap">
+													<span class="title">교환 옵션</span>
+													<span class="option" th:if="${exchangeDtl.goodsType == 'G056_S'}" th:each="option, status : ${exchangeDtl.chgColorNmArr}" th:text="|${exchangeDtl.chgItemNmArr[status.index]} / ${option} / ${exchangeDtl.chgOptCd2Arr[status.index]}|"></span>
+													<span class="option" th:unless="${exchangeDtl.goodsType == 'G056_S'}" th:text="|${exchangeDtl.chgColorNm} / ${exchangeDtl.chgOptCd2}|"></span>
+												</div>
+											</div>
+										</div>
+										<div class="status_box">
+											<p>
+												<th:block th:text="${exchangeDtl.chgStatNm}"></th:block>
+												<span class="date" th:text="${exchangeDtl.chgDate}"></span>
+												<span class="time" th:text="${exchangeDtl.chgTime}"></span>
+											</p>
+										</div>
+										<div class="button_box">
+											<p th:if="${exchangeDtl.chgStat == 'G685_20' or exchangeDtl.chgStat == 'G685_21'}"><button type="button" class="btn btn_default btn_sm" th:attr="ordChgSq=${exchangeDtl.ordChgSq}" onclick="fnCreCancel(this);"><span>신청취소</span></button></p>
+											<p th:if="${exchangeDtl.chgStat == 'G685_32' or exchangeDtl.chgStat == 'G685_21'}"><button type="button" class="btn btn_default btn_sm" th:attr="ordNo=${exchangeDtl.ordNo}, ordChgSq=${exchangeDtl.ordChgSq}" onclick="fnCrePayAddCost(this);"><span>결제하기</span></button></p>
+											<p><button type="button" class="btn btn_default btn_sm" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA_REG);"><span>1:1 문의</span></button></p>
+										</div>
+									</div>
+									<!-- 교환결제대기 -->
+									<div class="order_text" th:if="${exchangeDtl.chgStat == 'G685_21' or (exchangeDtl.chgGb == 'G680_40' and exchangeDtl.chgStat == 'G685_32')}"><p th:text="|${exchangeDtl.addPayCost}|원 결제 후 교환 가능합니다."></p></div>
+									<!-- 교환접수 -->
+									<div class="order_text" th:if="${exchangeDtl.chgStat == 'G685_20'}"><p>교환 신청이 접수 되었습니다. 신속하게 처리하여 드리겠습니다.</p></div>
+									<!-- 회수요청 -->
+									<div class="order_text" th:if="${exchangeDtl.chgStat == 'G685_30'}"><p>고객님이 요청하신 회수지로 상품을 회수 중에 있습니다.</p></div>
+									<!-- 교환상품검수중 -->
+									<div class="order_text" th:if="${exchangeDtl.chgStat == 'G685_31' and exchangeDtl.chgGb == 'G680_40'}"><p>고객님이 교환하신 상품을 검수 중에 있습니다.</p></div>
+									<!-- 교환완료 -->
+									<div class="order_text" th:if="${exchangeDtl.chgStat == 'G685_40' and (exchangeDtl.chgOrdDtlStat == 'G013_60' or exchangeDtl.chgOrdDtlStat == 'G013_70')}"><p>반품이 완료되었습니다.</p></div>
+									<!-- 교환철회 -->
+									<div class="order_text" th:if="${exchangeDtl.chgStat == 'G685_49'}"><p>요청하신 교환을 취소하였습니다.</p></div>
+								</div>
+							</th:block>
+							<!-- //주문상품 -->
+						</div>
+					</div>
+					<h4 class="subH3">상세 정보</h4>
+					<div class="tbl type1">
+						<table>
+							<colgroup>
+								<col width="210">
+								<col width="*">
+							</colgroup>
+							<tbody>
+								<tr>
+									<th>교환접수 일자</th>
+									<td th:text="${oneData.chgDt}"></td>
+								</tr>
+								<tr>
+									<th>교환완료 일자</th>
+									<td th:text="${oneData.completeDt}"></td>
+								</tr>
+							</tbody>
+						</table>
+					</div>
+					<h4 class="subH3">교환 상품 배송지</h4>
+					<div class="tbl type1">
+						<table>
+							<colgroup>
+								<col width="210">
+								<col width="*">
+							</colgroup>
+							<tbody>
+								<tr>
+									<th>
+										배송지 정보
+									</th>
+									<td>
+										<div class="block_line">
+											<ul>
+												<li>
+													<span id="recipNm" th:text="${oneData.recipNm}"></span>
+												</li>
+												<li>
+													<span id="recipPhnno" th:text="${oneData.recipPhnno}"></span>
+												</li>
+												<li>
+													<span>서울시 영등포구 은행로 11, 8층 (여의도동, 일신빌딩)</span>
+													<button type="button" class="btn btn_default btn_sm" th:if="${oneData.chgOrdDtlStat == 'G013_20' or oneData.chgOrdDtlStat == 'G013_25' or oneData.chgOrdDtlStat == 'G013_30' or oneData.chgOrdDtlStat == 'G013_35' or oneData.chgOrdDtlStat == 'G013_40'}" onclick="fnChangeAddr('recip');"><span>배송지 변경</span></button>
+												</li>
+												<li>
+													배송요청 사항&nbsp;:&nbsp;<span>직접 받고 부재 시 문 앞</span>
+													<button type="button" class="btn_underline" th:if="${oneData.chgOrdDtlStat == 'G013_20' or oneData.chgOrdDtlStat == 'G013_25' or oneData.chgOrdDtlStat == 'G013_30' or oneData.chgOrdDtlStat == 'G013_35' or oneData.chgOrdDtlStat == 'G013_40'}" onclick="fnChangeMemo('recip')"><span>변경하기</span></button>
+												</li>
+											</ul>
+										</div>
+									</td>
+								</tr>
+							</tbody>
+						</table>
+					</div>
+					<th:block th:if="${oneData.wdGb == 'W'}">
+						<h4 class="subH3">상품 회수지</h4>
+						<div class="tbl type1">
+							<table>
+								<colgroup>
+									<col width="210">
+									<col width="*">
+								</colgroup>
+								<tbody>
+									<tr>
+										<th>회수 진행 여부</th>
+										<td>회수요청</td>
+									</tr>
+									<tr>
+										<th>회수지 정보</th>
+										<td>
+											<div class="block_line">
+												<ul>
+													<li>
+														<span id="chgerNm" th:text="${oneData.chgerNm}"></span>
+													</li>
+													<li>
+														<span id="chgerPhnno" th:text="${oneData.chgerPhnno}"></span>
+													</li>
+													<li>
+														<span id="chgerAddr" th:text="|${oneData.chgerBaseAddr} ${oneData.chgerDtlAddr}|"></span>
+														<button type="button" class="btn btn_default btn_sm" th:if="${oneData.chgStat == 'G685_20' or oneData.chgStat == 'G685_21'}" onclick="fnChangeAddr('chger');"><span>회수지 변경</span></button>
+													</li>
+													<li>
+														배송요청 사항&nbsp;:&nbsp;<span id="delvMemo" th:text="${oneData.delvMemo}"></span>
+														<button type="button" class="btn_underline" th:if="${oneData.chgStat == 'G685_20' or oneData.chgStat == 'G685_21'}" onclick="fnChangeMemo('chger');"><span>변경하기</span></button>
+													</li>
+												</ul>
+											</div>
+										</td>
+									</tr>
+									<tr th:if="${not #strings.isEmpty(oneData.wdInvoiceNo) and not #strings.isEmpty(oneData.shipCompNm)}">
+										<th>회수 정보</th>
+										<td>
+											<th:block th:text="|${oneData.shipCompNm} / ${oneData.wdInvoiceNo}|"></th:block>
+											<button type="button" class="btn btn_default btn_sm" onclick="fnGoToWithdrawDelivery()"><span>회수조회</span></button>
+										</td>
+									</tr>
+								</tbody>
+							</table>
+						</div>
+					</th:block>
+					<div class="btn_footer_area">
+						<button type="button" class="btn btn_dark btn_md" onclick="cfnGoToPage(_PAGE_MYPAGE_CRE_LIST);"><span>확인</span></button>
+					</div>
+				</div>
+			</div>
+			<!-- // CONT-BODY -->
+		</div>
+	</div>
+<script src="/ux/plugins/gaga/gaga.paging.js"></script>
+<script th:inline="javascript">
+	/*<![CDATA[*/
+	let addrGb = '';
+	let memoGb = '';
+
+	$(document).ready(function() {
+		// 마이페이지 LNB 설정
+		fnSetMypageLnbList(2);
+		
+		// 마이페이지 location 설정
+		fnSetMypageLocation('취소/반품/환불내역', '_PAGE_MYPAGE_CRE_LIST', '반품 상세');
+	});
+	
+	// 배송메모 및 반품메모 변경 처리
+	var fnChangeMemo = function(param) {
+		memoGb = param;
+		fnChangeDeliveryMemo();
+	}
+	
+	// 배송지 및 교환지 변경 처리
+	var fnChangeAddr = function(param) {
+		addrGb = param;
+		fnChangeDeliveryAddr();
+	}
+	
+	// 배송지 및 회수지 정보 설정
+	var delvAddrSet = function(delvObj) {
+		let url = '';
+		let ordChgSq = oneData.ordChgSq;
+		let delvAddrSq = oneData.delvAddrSq;
+		let recipNm = delvObj.recipNm;
+		let recipPhnno = delvObj.recipPhnno;
+		let recipZipcode = delvObj.recipZipcode;
+		let recipBaseAddr = delvObj.recipBaseAddr;
+		let recipDtlAddr = delvObj.recipDtlAddr;
+		let delvMemo = delvObj.delvMemo;
+		let recipAddr = recipBaseAddr + ' ' + recipDtlAddr;
+
+		let data = {};
+
+		if (addrGb == 'chger') {
+			url = '/mypage/change/chger/addr';
+			data.ordChgSq = ordChgSq;
+			data.chgerNm = recipNm;
+			data.chgerPhnno = recipPhnno;
+			data.chgerZipcode = recipZipcode;
+			data.chgerBaseAddr = recipBaseAddr;
+			data.chgerDtlAddr = recipDtlAddr;
+			data.chgerRtnMemo = delvMemo;
+		} else {
+			url = '/mypage/change/delvery/addr';
+			data.delvAddrSq = delvAddrSq;
+			data.recipNm = recipNm;
+			data.recipPhnno = recipPhnno;
+			data.recipZipcode = recipZipcode;
+			data.recipBaseAddr = recipBaseAddr;
+			data.recipDtlAddr = recipDtlAddr;
+			data.delvMemo = delvMemo;
+		}
+
+		let jsonData = JSON.stringify(data);
+
+		gagajf.ajaxJsonSubmit(url, jsonData, function (result) {
+			if (result.status == '200') {
+				if (addrGb == 'chger') {
+					$('#chgerNm').text(recipNm);
+					$('#chgerPhnno').text(recipPhnno);
+					$('#chgerAddr').text(recipAddr);
+					$('#chgerRtnMemo').text(delvMemo);
+				} else {
+					$('#recipNm').text(recipNm);
+					$('#recipPhnno').text(recipPhnno);
+					$('#recipAddr').text(recipAddr);
+					$('#delvMemo').text(delvMemo);
+				}
+			}
+		});
+	}
+	
+	// 배송메모 설정
+	var delvMemoSet = function(delvMemoObj) {
+		let url = '';
+		let ordChgSq = oneData.ordChgSq;
+		let delvAddrSq = oneData.delvAddrSq;
+		let delvMemo = delvMemoObj.delvMemo;
+		
+		let data = {};
+		
+		if (memoGb == 'chger') {
+			url = '/mypage/change/chger/rtn/memo';
+			data.ordChgSq = ordChgSq;
+			data.chgerRtnMemo = delvMemo;
+		} else {
+			url = 'change/delvery/memo';
+			data.delvAddrSq = delvAddrSq;
+			data.delvMemo = delvMemo;
+		}
+		
+		let jsonData = JSON.stringify(data);
+		
+		gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
+			if (result.status == '200') {
+				if (memoGb == 'chger') {
+					$("#chgerRtnMemo").text(delvMemo);
+				} else {
+					$("#delvMemo").text(delvMemo);
+				}
+			}
+		});
+	}
+
+	var fnGoToWithdrawDelivery = function(param) {
+		// TODO
+		// 회수조회 페이지 이동
+	}
+/*]]>*/
+</script>
+
+</th:block>
+
+</body>
+</html>

+ 282 - 294
src/main/webapp/WEB-INF/views/mob/mypage/MypageCreListFormMob.html

@@ -15,11 +15,41 @@
  -->
 <body>
 <th:block layout:fragment="content">
+
+<!-- 취소/반품/교환목록조회 -->
+<form id="searchForm" name="searchForm" th:action="@{'/mypage/cre/list'}" th:method="post">
+	<input type="hidden" name="pageNo" 		value=1 />
+	<input type="hidden" name="pageSize" 	value=5 />
+	<input type="hidden" name="pageUnit" 	value=10 />
+	<input type="hidden" name="chgStat" 	value="" />
+	<input type="hidden" name="stDate" 		value="" />
+	<input type="hidden" name="edDate" 		value="" />
+	<input type="hidden" name="custNo" 		th:value ="${custNo}"/>
+</form>
+<!-- 교환상세 -->
+<form id="exchangeForm" name="exchangeForm" action="#" th:action="@{'/mypage/cre/exchange/detail/form'}" th:method="post">
+	<input type="hidden" name="ordChgSq"/>
+	<input type="hidden" name="ordNo"/>
+</form>
+<!-- //교환상세 -->
+<!-- 반품상세 -->
+<form id="returnForm" name="returnForm" action="#" th:action="@{'/mypage/cre/return/detail/form'}" th:method="post">
+	<input type="hidden" name="ordChgSq"/>
+	<input type="hidden" name="ordNo"/>
+</form>
+<!-- //반품상세 -->
+<!-- 취소상세 -->
+<form id="cancelForm" name="cancelForm" th:action="@{'/mypage/cre/cancel/detail/form'}" th:method="post">
+	<input type="hidden" name="ordChgSq"/>
+	<input type="hidden" name="ordNo"/>
+</form>
+<!-- //취소상세 -->
+
 <main role="" id="" class="container my">
 	<section class="content my_return"> <!-- 210409_수정 : class my_return 변경 -->
 		<div class="inner">
 			<div class="order_sort">
-				<a href="javascript:void(0);" class="od_date_btn">최근 1개월</a>
+				<a href="javascript:void(0);" class="od_date_btn">최근 3개월</a>
 				<a href="javascript:void(0);" class="od_status_btn">전체</a>
 			</div>
 		</div>
@@ -38,327 +68,285 @@
 	</section>
 </main>
 
-<script src="/ux/plugins/gaga/gaga.paging.js"></script>
+<!-- 기간 선택 팝업 -->
+<div id="odDatePop" class="popup_box odDatePop">
+	<div class="lap">
+		<div class="popup_close">카테고리닫기</div>
+		<div class="popup_head sr-only">
+			<h2 class="">기간 선택 팝업</h2>
+		</div>
+		<div class="popup_con">
+			<div class="button_list clear">
+				<button type="button" onclick="fnSetSearchPeriod(1);" period="1"><span>최근 1개월</span></button>
+				<button type="button" onclick="fnSetSearchPeriod(3);" period="3"><span>최근 3개월</span></button>
+				<button type="button" onclick="fnSetSearchPeriod(6);" period="6"><span>최근 6개월</span></button>
+				<button type="button" onclick="fnSetSearchPeriod(9);" period="9"><span>최근 9개월</span></button>
+				<button type="button" onclick="fnSetSearchPeriod(12);" period="12"><span>최근 12개월</span></button>
+			</div>
+		</div>
+	</div>
+</div>
+<!-- //기간 선택 팝업 -->
+
+<!-- 주문상태 선택 팝업 -->
+<div id="odStatusPop" class="popup_box odStatusPop">
+	<div class="lap">
+		<div class="popup_close">카테고리닫기</div>
+		<div class="popup_head sr-only">
+			<h2 class="">주문상태 선택 팝업</h2>
+		</div>
+		<div class="popup_con">
+			<div class="button_list clear">
+				<button type="button" class="ordDtlStat on"><span>전체</span></button>
+				<th:block th:each="oneData, status : ${chgStatList}">
+					<button type="button" class="ordDtlStat" th:code="${oneData.cd}">
+						<span th:text="${oneData.cdNm}"></span>
+					</button>
+				</th:block>
+			</div>
+		</div>
+	</div>
+</div>		
+<!-- //주문상태 선택 팝업 -->
+
 <script th:inline="javascript">
-	/*<![CDATA[*/
-	let totalCount = 0;
-	let pageSize = 0;
+//AJAX 로드를 위한 변수 설정
+let custNo 		= [[${custNo}]];
+let totalCnt 	= [[${totalCnt}]];
 
-	$(document).ready(function() {
+/*<![CDATA[*/
+$(document).ready(function() {
+	jsonObj = {
+		"pageNo" 			: 0
+		, "pageSize" 		: 5
+		, "pageUnit" 		: 10
+		, "chgStat" 		: ""
+		, "stDate" 			: ""
+		, "edDate" 			: ""
+		, "custNo"			: custNo
+	}
+	
+	// AJAX 변수 설정
+	jsonData = JSON.stringify(jsonObj);
+	
+	// 전체페이지 구하기
+	totalPage 	= parseInt(totalCnt / 10);
+	remainList 	= totalCnt % 10; 
+	
+	// 나머지가 있으면 전체 페이지 + 1
+	if (remainList > 0) {
+		totalPage = totalPage + 1;
+	}
+	
+	fnSetSearchPeriod(3);
+	
+	var win = $(window);
+	 
+	// Each time the user scrolls
+	win.scroll(function() {
+		// End of the document reached?
+		if ($(document).height() - win.height() == win.scrollTop()) {
+			if (scrollTemp) {
+				var tempPage 	= parseInt($("#searchForm input[name=pageNo]").val());
+				tempPage 		= tempPage + 1;
+				
+				if (totalPage > tempPage) {
+					scrollTemp = false;
+					fnGetInfiniteScrollDataList(tempPage);
+				}
+			}
+		}
+	});
+	
+	// 주문상세상태코드 셀렉트박스 변경 이벤트
+	$('#odStatusPop .popup_con .button_list .ordDtlStat').on('click', function() {
+		$('#searchForm input[name=chgStat]').val($(this).attr('code'));
+		jsonObj.chgStat = $(this).attr('code');
 		
-		// 마이페이지 location 설정
-		fnSetMypageLocation('취소/반품/교환내역');
+		// 상태값 명칭
+		var ordDtlStatNm = $(this).find("span").text();
+		$(".container .my_return .od_status_btn").text(ordDtlStatNm);
 		
-		// datepicker 설정
-		$('.period_datepicker').datepicker();
-
-		// 셀렉트박스 활성화
-		$('.select_custom.demand_status').each(function(index) {
-			new sCombo($(this));
-		});
-
-		// 주문 검색 기간 설정
-		$('#rdi-month2').click();
-
-		// Initialize a pagination
-		gagaPaging.init('searchForm', fnSearchCallback, 'paging', 5, 10);
+		// 리헷
+		$("#listBox").html("");
 		
-		// Load data
-		gagaPaging.load(1);
+		// 초기화설정
+		fnGetInfiniteScrollDataList(0);
 	});
-	
-	// 검색기간 버튼 클릭 이벤트 처리
-	var fnSetSearchPeriod = function(period) {
-		let date = new Date();
-		let edDate = date.getFullYear() + '-' + ('0' + (date.getMonth() + 1)).slice(-2) + '-' + ('0' + (date.getDate())).slice(-2);
-		date.setMonth(date.getMonth() - period);
-		let stDate = date.getFullYear() + '-' + ('0' + (date.getMonth() + 1)).slice(-2) + '-' + ('0' + (date.getDate())).slice(-2);
+});
 
-		$('#edDate').val(edDate);
-		$('#searchForm input[name=edDate]').val(edDate);
-		$('#stDate').val(stDate);
-		$('#searchForm input[name=stDate]').val(stDate);
-	}
+//취소,반품,교환목록조회
+var fnGetInfiniteScrollDataList = function(pageNo) {
 
-	// 주문 목록 조회
-	var fnSearchCreList = function() {
-		gagaPaging.load(1);
+	// 페이지번호가 없으면 1페이지 설정
+	if (pageNo == null) {
+		pageNo = 1;
 	}
+	
+	// 페이지설정
+	$("#searchForm input[name=pageNo]").val(pageNo);
+	
+	jsonObj.pageNo = pageNo;
+	jsonObj.stDate = $("#searchForm input[name=stDate]").val();
+	jsonObj.edDate = $("#searchForm input[name=edDate]").val();
+	
+	$.ajax( {
+		type		: "POST",
+		url 		: '/mypage/cre/listInfo',
+		data		: JSON.stringify(jsonObj),
+		dataType 	: 'html',
+		beforeSend : function(xhr, settings) {
+			xhr.setRequestHeader("AJAX"			, "true");
+			xhr.setRequestHeader('Accept'		, 'application/json');
+			xhr.setRequestHeader('Content-Type'	, 'application/json');
+			gagajf.showProgressbar(true);
+		},
+		success 	: function(result) {
+			if (result != null) {
+				$("#listBox").css("display", "block");
+				$("#listBox").append(result);
+				
+				scrollTemp = true;
+				
+			}
+		}
+	});
+}
+
+//검색기간 버튼 클릭 이벤트 처리
+var fnSetSearchPeriod = function(period) {
+	let date 		= new Date();
+	let edDate 		= date.getFullYear() + '-' + ('0' + (date.getMonth() + 1)).slice(-2) + '-' + ('0' + (date.getDate() + 1)).slice(-2);
+	date.setMonth(date.getMonth() - period);
+	let stDate 		= date.getFullYear() + '-' + ('0' + (date.getMonth() + 1)).slice(-2) + '-' + ('0' + (date.getDate() + 1)).slice(-2);
 
-	// 주문 목록 조회 콜백
-	var fnSearchCallback = function(result) {
-		$('#creList').html(fnCreateCreList(result));
+	$('#searchForm input[name=edDate]').val(edDate);
+	$('#searchForm input[name=stDate]').val(stDate);
+	
+	// 리헷
+	$("#listBox").html("");
+	
+	// 초기화설정
+	fnGetInfiniteScrollDataList(0);
+	
+	$("#odDatePop .popup_con button").removeClass("on");
+	
+	// 기간설정
+	$("#odDatePop .popup_con button").each(function() {
+		var tempPeriod = $(this).attr("period");
+		if (tempPeriod == period) {
+			$(this).addClass("on");
+			
+			// 텍스트설정
+			var periodStr = $(this).find("span").text();
+			$(".container .my_return .od_date_btn").text(periodStr);
+		}
+	});
+}
 
-		// Create pagination
-		gagaPaging.createPagination(result.creInfo.pageable);
+// 취반교 상세 페이지 이동
+var fnGoToCreDetail = function(param) {
+	let ordChgSq = $(param).attr('ordChgSq');
+	let chgGb = $(param).attr('chgGb');
+	let ordNo = $(param).attr('ordNo');
+	
+	if (chgGb == 'G680_20') {
+		$('#cancelForm input[name=ordChgSq]').val(ordChgSq);
+		$('#cancelForm input[name=ordNo]').val(ordNo);
+		document.cancelForm.submit();
+	} else if (chgGb == 'G680_30') {
+		$('#returnForm input[name=ordChgSq]').val(ordChgSq);
+		$('#returnForm input[name=ordNo]').val(ordNo);
+		document.returnForm.submit();
+	} else if (chgGb == 'G680_40') {
+		$('#exchangeForm input[name=ordChgSq]').val(ordChgSq);
+		$('#exchangeForm input[name=ordNo]').val(ordNo);
+		document.exchangeForm.submit();
 	}
+}
 
-	// 검색기간 설정 체크
-	var fnCheckPeriod = function(param) {
-		let stDate = $('#stDate').val();
-		let edDate = $('#edDate').val();
+// 취반교 배송조회 버튼 클릭 이벤트
+var fnGoToDeliveryTrack = function(param) {
+	let ordDtlNo = $(param).attr('ordDtlNo');
+	// TODO
+	// 최반교 배송조회 페이지 이동 처리
+}
+/*]]>*/
+</script>
 
-		let sdt = new Date(stDate);
-		let edt = new Date(edDate);
-		let dateDiff = Math.ceil((edt.getTime() - sdt.getTime()) / (1000 * 3600 * 24));
+<script>
+	$(document).ready(function(){
+		$(document).on('click','.popup_box .button_list button',function(){
+			$('.popup_box .button_list button').removeClass('on');
+			$(this).addClass('on');
+		})
+	});
 
-		if (dateDiff > 366) {
-			let id = $(param).attr('id');
-			mcxDialog.alert('조회기간은 최대 1년을 넘을 수 없습니다.');
-			if (id == 'stDate') {
-				sdt.setFullYear(sdt.getFullYear() + 1);
-				let chgEdDate = sdt.getFullYear() + '-' + ('0' + (sdt.getMonth() + 1)).slice(-2) + '-' + ('0' + (sdt.getDate())).slice(-2);
+	//기간 선택 팝업
+	$(document).on("click", ".order_sort .od_date_btn", function(){
+		$('#odDatePop').show().addClass("active");
+		$("body").css({"overflow":"hidden"});
+	});
 
-				$('#edDate').val(chgEdDate);
-				$('#searchForm input[name=edDate]').val(chgEdDate);
-			} else {
-				edt.setFullYear(edt.getFullYear() - 1);
-				let chgStDate = edt.getFullYear() + '-' + ('0' + (edt.getMonth() + 1)).slice(-2) + '-' + ('0' + (edt.getDate())).slice(-2);
+	//주문상태 선택 팝업
+	$(document).on("click", ".order_sort .od_status_btn", function(){
+		$('#odStatusPop').show().addClass("active");
+		$("body").css({"overflow":"hidden"});
+	});
 
-				$('#stDate').val(chgStDate);
-				$('#searchForm input[name=stDate]').val(chgStDate);
-			}
-		}
-	}
+	//팝업_닫기
+	$('.popup_close').on("click",function(){
+		$('.popup_box').hide().removeClass('active');
+		$("body").css({"overflow":"visible"});
+	});
 
-	// 상태값 별 수량 업데이트 처리
-	var fnReloadStatusCount = function() {
-		let url = '/mypage/status/count';
-		
-		let data = {};
-		data.custNo = customerInfo.custNo;
-		
-		let jsonData = JSON.stringify(data);
-		
-		gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
-			$('#orderReceiptCount').text(result.orderCount.orderReceiptCount);
-			$('#paymentCompleteCount').text(result.orderCount.paymentCompleteCount);
-			$('#goodsPrepareCount').text(result.orderCount.goodsPrepareCount);
-			$('#shipPrepareCount').text(result.orderCount.shipPrepareCount);
-			$('#shippingCount').text(result.orderCount.shippingCount);
-			$('#shipCompleteCount').text(result.orderCount.shipCompleteCount);
-			$('#orderCreCount').text(result.orderCount.cancelCount + result.orderCount.returnCount + result.orderCount.exchangeCount);
+	/* 210409_추가 : alert 모음 */
+	$(document).on("click", "#btn_purchase_confirm", function(){
+		mcxDialog.confirm("구매확정 후에는 반품/교환이 불가합니다. 구매확정하시겠습니까?", {
+			cancelBtnText: "취소",
+			sureBtnText: "확인",  // Confirmation button text
+			sureBtnClick: function() {  // Confirm button click callback
+				alert("9,999P가 적립되었습니다.");
+			}
 		});
-	}
+	});
 
-	// 주문상세상태코드 셀렉트박스 변경 이벤트
-	$('.select_custom.demand_status').find('li').on('click', function() {
-		$('#searchForm input[name=chgStat]').val($(this).attr('code'));
+	$(document).on("click", "#btn_sms_alert", function(){
+		mcxDialog.alert("SMS로 선물내역을 다시 전송하였습니다.", { 
+				//alert("선물하기 SMS를 조금 전 다시 발송하였습니다. 잠시 후 다시 시도해주세요."); : SMS 발송한지 10분이 지나지 않았을 경우
+			sureBtnText: "닫기",  
+		});
 	});
+	/* //210409_추가 : alert 모음 */
+	
+	// 등급쿠폰 다운 클릭 이벤트
+	var fnDownloadCoupon = function() {
+		let url = '/mypage/coupon/download/all';
 
-	// 주문내역 리스트 처리
-	var fnCreateCreList = function(param) {
-		let tag = '';
-		let imageUrl = [[${@environment.getProperty('upload.goods.view')}]];
+		let data = {};
+		data.custNo = customerInfo.custNo;
 
-		if (param.creList != null && param.creList.length > 0) {
-			$.each(param.creList, function (idx, creList) {
-				tag += '						<div class="part_goods">\n';
-				tag += '							<div class="goods_head">\n';
-				if (creList.giftPackYn == 'Y') {
-					tag += '								<p>선물일 <span>' + creList.ordDt + '</span></p>\n';
-				} else {
-					tag += '								<p>주문일 <span>' + creList.ordDt + '</span></p>\n';
-				}
-				tag += '								<a href="javascript:void(0)" ordChgSq="' + creList.ordChgSq + '" chgGb="' + creList.oneData.chgGb + '" ordNo ="' + creList.oneData.ordNo + '" onclick="fnGoToCreDetail(this)">상세보기</a>\n';
-				tag += '							</div>\n';
-				tag += '							<div class="goods_cont">\n';
-				$.each(creList.creList, function (index, cre) {
-					tag += '								<!-- 주문상품1 -->\n';
-					tag += '								<div class="goods_info">\n';
-					tag += '									<div class="order_desc">\n';
-					tag += '										<div class="goods_box">\n';
-					tag += '											<div class="gd_item">\n';
-					tag += '												<a href="javascript:void(0)" goodsCd="' + cre.goodsCd + '" onclick="fnGoToGoodsDetail(this)">\n';
-					tag += '													<span class="thumb">\n';
-					tag += '														<img src="' + imageUrl + '/' + cre.sysImgNm + '" width="100%" alt="">\n';
-					tag += '													</span>\n';
-					tag += '													<p>\n';
-					tag += '														<span class="brand">' + cre.brandNm + '</span>\n';
-					// 배송 아이콘 처리
-					if (cre.shotDelvYn == 'Y') {
-						tag += '														<span class="tag primary">총알배송</span>\n';
-					} else if (cre.selfGoodsYn == 'Y') {
-						tag += '														<span class="tag">STYLE24 일반배송</span>\n';
-					} else {
-						tag += '														<span class="tag">업체직배송</span>\n';
-					}
-					tag += '													</p>\n';
-					tag += '													<p>\n';
-					tag += '														<span class="name">' + cre.goodsNm + '</span>\n';
-					tag += '													</p>\n';
-					tag += '												</a>\n';
-					tag += '											</div>\n';
-					tag += '											<div class="gd_opt">\n';
-					tag += '												<div class="option_wrap">\n';
-					tag += '													<span class="title sr-only">주문 옵션</span>\n';
-					// 세트아이템 옵션 처리
-					if (cre.goodsType == 'G056_S') {
-						$.each(cre.colorNmArr, function (index2, option) {
-							tag += '													<span class="option">' + cre.itemNmArr[index2] + ' / ' + option + ' / ' + cre.optCd2Arr[index2] + '</span>\n';
-						});
-					} else {
-						tag += '													<span class="option">' + cre.colorNm + ' / ' + cre.optCd2 + '</span>\n';
-					}
-					tag += '												</div>\n';
-					tag += '											</div>\n';
-					tag += '											<div class="gd_calc">\n';
-					tag += '												<p>\n';
-					tag += '													<span class="count"><em>' + cre.chgQty + '</em>개</span>\n';
-					tag += '												</p>\n';
-					tag += '											</div>\n';
-					tag += '											<div class="gd_opt">\n';
-					tag += '												<div class="option_wrap">\n';
-					// 교환옵션
-					if (cre.chgGb == 'G680_40') {
-						$.each(creList.exchangeOptionList, function(index, exchange) {
-							if (cre.chgOrdDtlNo == exchange.ordDtlNo) {
-								if (cre.goodsType == 'G056_S') {
-									tag += '													<span class="title">교환 옵션</span>';
-									$.each(exchange.colorNmArr, function (index2, option) {
-										tag += '													<span class="option">' + exchange.itemNmArr[index2] + ' / ' + option + ' / ' + exchange.optCd2Arr[index2] + '</span>\n';
-									});
-								} else {
-									tag += '													<span class="option">' + exchange.colorNm + ' / ' + exchange.optCd2 + '</span>\n';
-								}
-							}
-						});
-					}
-					tag += '												</div>\n';
-					tag += '											</div>\n';
-					tag += '										</div>\n';
-					tag += '										<div class="status_box">\n';
-					tag += '											<p>\n';
-					tag += '												' + cre.chgStatNm + '\n';
-					tag += '												<span class="date">' + cre.chgDate + '</span>\n';
-					tag += '												<span class="time">' + cre.chgTime + '</span>\n';
-					tag += '											</p>\n';
-					tag += '										</div>\n';
-					tag += '										<div class="button_box">\n';
-					if (cre.chgStat == 'G685_20' || cre.chgStat == 'G685_21' || cre.chgStat == 'G685_50' || cre.chgStat == 'G685_51') {
-						tag += '											<p><button type="button" class="btn btn_default btn_sm" ordNo="' + cre.ordNo + '" ordChgSq="' + cre.ordChgSq + '" cancelGb="' + cre.chgGb + '" onclick="fnCreCancel(this);"><span>신청취소</span></button></p>\n';
-					}
-					if (cre.chgStat == 'G685_21' || cre.chgStat == 'G685_51' || cre.chgStat == 'G685_32') {
-						tag += '											<p><button type="button" class="btn btn_default btn_sm" ordNo="' + cre.ordNo + '" ordChgSq="' + cre.ordChgSq + '" onclick="fnCrePayAddCost(this);"><span>결제하기</span></button></p>\n';
-					}
-					if (cre.chgStat == 'G685_40') {
-						tag += '											<p><button type="button" class="btn btn_default btn_sm" ordDtlNo="' + cre.ordDtlNo + '" onclick="fnGoToDeliveryTrack(this);"><span>배송조회</span></button></p>\n';
-					}
-					tag += '											<p><button type="button" class="btn btn_default btn_sm" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA_REG);"><span>1:1 문의</span></button></p>\n';
-					tag += '										</div>\n';
-					tag += '									</div>\n';
-					//if (cre.chgStat == 'G685_10') {
-					//	tag += '									<div class="order_text"><p>' + cre.addPayCost + '원 결제 후 취소 가능합니다.</p></div>\n';
-					//}
-					// cre.chgGb == 'G680_30' : 반품
-					// cre.chgGb == 'G680_40' : 교환
-					// 교환접수
-					if (cre.chgStat == 'G685_20') {
-						tag += '									<div class="order_text"><p>교환 신청이 접수 되었습니다. 신속하게 처리하여 드리겠습니다.</p></div>\n';
-					}
-					// 교환대기
-					if (cre.chgStat == 'G685_21') {
-						tag += '									<div class="order_text"><p>' + cre.addPayCost.addComma() + '원 결제 후 교환 가능합니다.</p></div>\n';
-					}
-					// 회수요청
-					if (cre.chgStat == 'G685_30') {
-						tag += '									<div class="order_text"><p>고객님이 요청하신 회수지로 상품을 회수 중에 있습니다.</p></div>\n';
-					}
-					// 상품 검수중(교환)
-					if (cre.chgStat == 'G685_31' && cre.chgGb == 'G680_40') {
-						tag += '									<div class="order_text"><p>고객님이 교환하신 상품을 검수 중에 있습니다.</p></div>\n';
-					}
-					// 결제대기(교환)
-					if (cre.chgStat == 'G685_32' && cre.chgGb == 'G680_40') {
-						tag += '									<div class="order_text"><p>' + cre.addPayCost.addComma() + '원 결제 후 교환 가능합니다.</p></div>\n';
-					}
-					// 교환완료
-					if (cre.chgStat == 'G685_40') {
-						$.each(creList.exchangeOptionList, function(index, exchange) {
-							if (cre.chgOrdDtlNo == exchange.ordDtlNo && (exchange.ordDtlStat == 'G013_60' || exchange.ordDtlStat == 'G013_70')) {
-								tag += '									<div class="order_text"><p>교환이 완료되었습니다.</p></div>\n';
-							}
-						});
-					}
-					// 교환철회
-					if (cre.chgStat == 'G685_49') {
-						tag += '									<div class="order_text"><p>요청하신 교환을 취소하였습니다.</p></div>\n';
-					}
-					// 반품접수
-					if (cre.chgStat == 'G685_50') {
-						tag += '									<div class="order_text"><p>반품 신청이 접수 되었습니다. 신속하게 처리하여 드리겠습니다.</p></div>\n';
-					}
-					// 반품대기
-					if (cre.chgStat == 'G685_51') {
-						tag += '									<div class="order_text"><p>' + cre.addPayCost.addComma() + '원 결제 후 반품 가능합니다.</p></div>\n';
-					}
-					// 상품 검수중(반품)
-					if (cre.chgStat == 'G685_31' && cre.chgGb == 'G680_40') {
-						tag += '									<div class="order_text"><p>고객님이 반품하신 상품을 검수 중에 있습니다.</p></div>\n';
-					}
-					// 결제대기(반품)
-					if (cre.chgStat == 'G685_32' && cre.chgGb == 'G680_40') {
-						tag += '									<div class="order_text"><p>' + cre.addPayCost.addComma() + '원 결제 후 반품 가능합니다.</p></div>\n';
-					}
-					// 환불진행중
-					if (cre.chgStat == 'G685_33') {
-						tag += '									<div class="order_text"><p>' + cre.refundAmt.addComma() + '원 환불을 진행하고 있습니다.(영업일 최대 3일 내 환불 예정)</p></div>\n';
-					}
-					// 반품완료
-					if (cre.chgStat == 'G685_60') {
-						tag += '									<div class="order_text"><p>반품이 완료되었습니다.</p></div>\n';
-					}
-					// 반품철회
-					if (cre.chgStat == 'G685_69') {
-						tag += '									<div class="order_text"><p>요청하신 반품을 취소하였습니다.</p></div>\n';
-					}
-					tag += '								</div>\n';
-				});
-				tag += '							</div>\n';
-				tag += '						</div>\n';
-			});
-		} else {
-			// 데이터 없음 표시
-			tag += '						<div class="nodata">';
-			tag += '							<div class="txt_box">';
-			tag += '								<p>';
-			tag += '									취소/반품/교환내역이 없습니다.<br>';
-			tag += '								</p>';
-			tag += '							</div>';
-			tag += '						</div>';
-		}
+		let jsonData = JSON.stringify(data);
 
-		return tag;
+		gagajf.ajaxJsonSubmit(url, jsonData, function() {
+			fnReloadCouponCount();
+		});
 	}
 	
-	// 취반교 상세 페이지 이동
-	var fnGoToCreDetail = function(param) {
-		let ordChgSq = $(param).attr('ordChgSq');
-		let chgGb = $(param).attr('chgGb');
-		let ordNo = $(param).attr('ordNo');
+	// 보유쿠폰 수량 업데이트 처리
+	var fnReloadCouponCount = function() {
+		let url = '/mypage/coupon/count';
 		
-		if (chgGb == 'G680_20') {
-			$('#cancelForm input[name=ordChgSq]').val(ordChgSq);
-			$('#cancelForm input[name=ordNo]').val(ordNo);
-			document.cancelForm.submit();
-		} else if (chgGb == 'G680_30') {
-			$('#returnForm input[name=ordChgSq]').val(ordChgSq);
-			$('#returnForm input[name=ordNo]').val(ordNo);
-			document.returnForm.submit();
-		} else if (chgGb == 'G680_40') {
-			$('#exchangeForm input[name=ordChgSq]').val(ordChgSq);
-			$('#exchangeForm input[name=ordNo]').val(ordNo);
-			document.exchangeForm.submit();
-		}
-	}
-	
-	// 취반교 배송조회 버튼 클릭 이벤트
-	var fnGoToDeliveryTrack = function(param) {
-		let ordDtlNo = $(param).attr('ordDtlNo');
-		// TODO
-		// 최반교 배송조회 페이지 이동 처리
+		let data = {};
+		data.custNo = customerInfo.custNo;
+		
+		let jsonData = JSON.stringify(data);
+		
+		gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
+			$('#couponCnt').text(result.couponCnt);
+			$('#expiredSoonCouponCnt').text(result.expiredSoonCouponCnt);
+		});
 	}
-/*]]>*/
 </script>
 
 </th:block>

+ 176 - 133
src/main/webapp/WEB-INF/views/mob/mypage/MypageCreListInfoMob.html

@@ -1,211 +1,254 @@
 <div class="inner">
 	<div class="part_goods">
-		<!-- 취소,반품,교환 목록 -->
-		<th:block th:each="creList , i : ${creList}">
-			<div class="goods_top">
-				<!-- 선물주문여부체크 -->
-				<th:block th:if="${creList.giftPackYn} == 'Y'">
-					<div class="goods_date">선물일<span class="date" th:text="${creList.ordDt}"></span></div>
-				</th:block>'
-				<th:block th:unless="${creList.giftPackYn} == 'Y'">
-					<div class="goods_date">주문일<span class="date" th:text="${creList.ordDt}"></span></div>
-				</th:block>
-				<!-- //선물주문여부체크 -->
-				<a href="javascript:void(0);" th:ordChgSq="${creList.ordChgSq}" th:chgGb="${creList.oneData.chgGb}" th:ordNo="${creList.oneData.ordNo}" onclick="fnGoToCreDetail(this);" class="detail_btn">상세보기</a>
-			</div>
-			
-			<th:block th:each="cre , i , ${creList.creList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
-				<div class="goods_section">
-					<div class="goods_status">
-						<p class="dlvr_staus" th:text="${cre.chgStatNm}"></p>
-						<!--  
-						<p class="dlvr_staus">회수 요청</p>
-						<p class="dlvr_staus">상품 검수 중</p>
-						<p class="dlvr_staus">교환 상품 발송</p> 
-						<p class="dlvr_staus">환불 진행 중</p>
-						<p class="dlvr_staus">완료</p>
-						<p class="dlvr_staus">접수 취소</p>
-						<p class="dlvr_staus">결제 대기</p>
-						-->
-						<p class="dlvr_desc"><th:block th:text="|${cre.chgDate} ${cre.chgTime}|"></p>
-					</div>
-					<div class="goods_detail">
-						<a href="javascript:void(0);">
-							<div class="thumb_box">
-								<img th:src="${imageUrl + '/' + cre.sysImgNm}" src="/" width="100%" alt="">
-							</div>
-							<div class="info_box">
-								<div class="od_name">
-									<div class="brand">
-										<span th:text="${cre.brandNm}"></span>
-										<div class="badge_wrap">
-											<th:block th:if="${cre.shotDelvYn} == 'Y'">
-												<em class="order_badge">STYLE24 일반배송</em>
-											</th:block>
-											<th:block th:if="${cre.selfGoodsYn} == 'Y' and ${cre.shotDelvYn} == 'N'">
-												<em class="order_badge order_bullet_badge">총알배송</em>
-											</th:block>
-											<th:block th:if="${cre.selfGoodsYn} == 'N' and ${cre.shotDelvYn} == 'N'">
-												<em class="order_badge order_bullet_badge">업체직배송</em>
-											</th:block>
+		<!-- 취소,반품,교환목록 있을때 -->
+		<th:block th:if="${#lists.size(creList) > 0}">
+			<!-- 취소,반품,교환목록 -->
+			<th:block th:each="creList , i : ${creList}">
+				<div class="goods_top">
+					<!-- 선물주문여부체크 -->
+					<th:block th:if="${creList.giftPackYn} == 'Y'">
+						<div class="goods_date">선물일<span class="date" th:text="${creList.ordDt}"></span></div>
+					</th:block>'
+					<th:block th:unless="${creList.giftPackYn} == 'Y'">
+						<div class="goods_date">주문일<span class="date" th:text="${creList.ordDt}"></span></div>
+					</th:block>
+					<!-- //선물주문여부체크 -->
+					<a href="javascript:void(0);" th:ordChgSq="${creList.ordChgSq}" th:chgGb="${creList.oneData.chgGb}" th:ordNo="${creList.oneData.ordNo}" onclick="fnGoToCreDetail(this);" class="detail_btn">상세보기</a>
+				</div>
+				
+				<th:block th:each="cre , i : ${creList.creList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
+					<div class="goods_section">
+						<div class="goods_status">
+							<p class="dlvr_staus" th:text="${cre.chgStatNm}"></p>
+							<p class="dlvr_desc"><th:block th:text="|${cre.chgDate} ${cre.chgTime}|"></p>
+						</div>
+						<div class="goods_detail">
+							<a href="javascript:void(0);">
+								<div class="thumb_box">
+									<img th:src="${imageUrl + '/' + cre.sysImgNm}" src="/" width="100%" alt="">
+								</div>
+								<div class="info_box">
+									<div class="od_name">
+										<div class="brand">
+											<span th:text="${cre.brandNm}"></span>
+											<div class="badge_wrap">
+												<th:block th:if="${cre.shotDelvYn} == 'Y'">
+													<em class="order_badge">STYLE24 일반배송</em>
+												</th:block>
+												<th:block th:if="${cre.selfGoodsYn} == 'Y' and ${cre.shotDelvYn} == 'N'">
+													<em class="order_badge order_bullet_badge">총알배송</em>
+												</th:block>
+												<th:block th:if="${cre.selfGoodsYn} == 'N' and ${cre.shotDelvYn} == 'N'">
+													<em class="order_badge order_bullet_badge">업체직배송</em>
+												</th:block>
+											</div>
 										</div>
+										<div class="name" th:text="${cre.goodsNm}"></div>
 									</div>
-									<div class="name" th:text="${cre.goodsNm}"></div>
-								</div>
-								<div class="od_opt">
-									<!-- 세트상품일때 -->
-									<th:block th:if="${cre.goodsType} == 'G056_S'">
-										<th:block th:each="option , index2 , ${cre.colorNmArr}">
+									<div class="od_opt">
+										<!-- 세트상품일때 -->
+										<th:block th:if="${cre.goodsType} == 'G056_S'">
+											<th:block th:each="option , index2 , ${cre.colorNmArr}">
+												<div class="option">
+													<em th:text="${option]}"></em>
+													<em th:text="${cre.optCd2Arr[index2]}"></em>
+												</div>
+											</th:block>
+										</th:block>
+										<!-- //세트상품일때 -->
+										<!-- 단품상품일때 -->
+										<th:block th:unless="${cre.goodsType} == 'G056_S'">
 											<div class="option">
-												<em th:text="${option]}"></em>
-												<em th:text="${cre.optCd2Arr[index2]}"></em>
+												<em th:text="${cre.colorNm}"></em>
+												<em th:text="${cre.optCd2}"></em>
 											</div>
 										</th:block>
-									</th:block>
-									<!-- //세트상품일때 -->
-									<!-- 단품상품일때 -->
-									<th:block th:unless="${cre.goodsType} == 'G056_S'">
-										<div class="option">
-											<em th:text="${cre.colorNm}"></em>
-											<em th:text="${cre.optCd2}"></em>
-										</div>
-									</th:block>
-									<!-- //단품상품일때 -->
-								</div>
-								
-								<!-- 교환일때 -->
-								<th:block th:if="${cre.chgGb} == 'G680_40'">
-									<div class="od_exchange_opt">
-										<span>교환옵션</span>
-										<th:block th:each="exchange , index, ${creList.exchangeOptionList}">
-											<th:block th:if="${cre.chgOrdDtlNo} == ${exchange.ordDtlNo}">
-												<!-- 세트상품일때 -->
-												<th:block th:if="${cre.goodsType} == 'G056_S'">
-													<th:block th:each-="option, index2, ${exchange.colorNmArr}">
+										<!-- //단품상품일때 -->
+									</div>
+									
+									<!-- 교환일때 -->
+									<th:block th:if="${cre.chgGb} == 'G680_40'">
+										<div class="od_exchange_opt">
+											<span>교환옵션</span>
+											<th:block th:each="exchange , index, ${creList.exchangeOptionList}">
+												<th:block th:if="${cre.chgOrdDtlNo} == ${exchange.ordDtlNo}">
+													<!-- 세트상품일때 -->
+													<th:block th:if="${cre.goodsType} == 'G056_S'">
+														<th:block th:each-="option, index2, ${exchange.colorNmArr}">
+															<div class="option">
+																<em th:text="${exchange.itemNmArr[index2]}"></em>
+																<em th:text="${exchange.optCd2Arr[index2]}"></em>
+															</div>
+														</th:block>
+													</th:block>
+													<!-- //세트상품일때 -->
+													<!-- 일반상품일때 -->
+													<th:block th:unless="${cre.goodsType} == 'G056_S'">
 														<div class="option">
-															<em th:text="${exchange.itemNmArr[index2]}"></em>
-															<em th:text="${exchange.optCd2Arr[index2]}"></em>
+															<em th:text="${exchange.colorNm}"></em>
+															<em th:text="${exchange.optCd2}"></em>
 														</div>
 													</th:block>
+													<!-- //일반상품일때 -->
 												</th:block>
-												<!-- //세트상품일때 -->
-												<!-- 일반상품일때 -->
-												<th:block th:unless="${cre.goodsType} == 'G056_S'">
-													<div class="option">
-														<em th:text="${exchange.colorNm}"></em>
-														<em th:text="${exchange.optCd2}"></em>
-													</div>
-												</th:block>
-												<!-- //일반상품일때 -->
 											</th:block>
-										</th:block>
+										</div>
+									</th:block>
+									<!-- //교환일때 -->
+									
+									<div class="od_calc">
+										<p class="price">
+											<span class="count"><em th:text="${cre.chgQty}"></em>개</span>
+										</p>
 									</div>
-								</th:block>
-								<!-- //교환일때 -->
-								
-								<div class="od_calc">
-									<p class="price">
-										<span class="count"><em th:text="${cre.chgQty}"></em>개</span>
-									</p>
 								</div>
-							</div>
-						</a>
-					</div>
-					
-					<!-- 취소,반품,교환 상태별 버튼기능정의 -->
-					<div class="goods_btn_wrap btn_group_flex">
-						<!-- 교환접수 -->
-						<th:block th:if="${cre.chgStat} == 'G685_20'">
-							<div><button type="button" id="btn_return_cancle" class="btn btn_default"><span>신청 취소</span></button></div>
-							<div><button type="button" class="btn btn_default"><span>1:1 문의</span></button></div>
-						</th:block>
-						<!-- //교환접수 -->
-						<!-- 회수요청 -->
-						<th:block th:if="${cre.chgStat} == 'G685_30'">
-							<div><button type="button" class="btn btn_default"><span>1:1 문의</span></button></div>
-						</th:block>
-						<!-- 회수요청 -->
+							</a>
+						</div>
+						<!-- 취소,반품,교환 상태별 버튼기능정의 -->
+						<div class="goods_btn_wrap btn_group_flex">
+							<!-- 신청취소 -->
+							<th:block th:if="${cre.chgStat} == 'G685_20' or ${cre.chgStat} == 'G685_21' or ${cre.chgStat} == 'G685_50' or ${cre.chgStat} == 'G685_51'">
+								<div>
+									<button type="button" class="btn btn_default" th:ordNo="${cre.ordNo}" th:ordChgSq="${cre.ordChgSq}" th:cancelGb="${cre.chgGb}" onclick="fnCreCancel(this);">
+										<span>신청취소</span>
+									</button>
+								</div>
+							</th:block>
+							<!-- //신청취소 -->
+							<!-- 결제하기 -->
+							<th:block th:if="${cre.chgStat} == 'G685_21' or ${cre.chgStat} == 'G685_51' or ${cre.chgStat} == 'G685_32'">
+								<div>
+									<button type="button" class="btn btn_default" th:ordNo="${cre.ordNo}" th:ordChgSq="${cre.ordChgSq}" onclick="fnCrePayAddCost(this);">
+										<span>결재하기</span>
+									</button>
+								</div>
+							</th:block>
+							<!-- //결제하기 -->
+							<!-- 배송조회 -->
+							<th:block th:if="${cre.chgStat} == 'G685_40'">
+								<div>
+									<button type="button" class="btn btn_default" th:ordDtlNo="${cre.ordDtlNo}" onclick="fnGoToDeliveryTrack(this);">
+										<span>배송조회</span>
+									</button>
+								</div>
+							</th:block>
+							<!-- //배송조회 -->
+							<div><button type="button" class="btn btn_default" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA_REG);"><span>1:1 문의</span></button></div>
+						</div>
+						<!-- //취소,반품,교환 상태별 버튼기능정의 -->
 						
-					</div>
-					<!-- //취소,반품,교환 상태별 버튼기능정의 -->
-					
-					<!-- 취소,반품,교환 상태별 문구정의 -->
-					<div class="goods_txt">
+						<!-- 취소,반품,교환 상태별 문구정의 -->
 						<!-- 교환접수 -->
 						<th:block th:if="${cre.chgStat} == 'G685_20'">
-							<p class="cf_txt cf_desc">교환 신청이 접수 되었습니다.<br>신속하게 처리하여 드리겠습니다.</p>
+							<div class="goods_txt">
+								<p class="cf_txt cf_desc">교환 신청이 접수 되었습니다.<br>신속하게 처리하여 드리겠습니다.</p>
+							</div>
 						</th:block>
 						<!-- //교환접수 -->
 						<!-- 회수요청 -->
 						<th:block th:if="${cre.chgStat} == 'G685_30'">
-							<p class="cf_txt cf_desc">교환 신청이 접수 되었습니다.<br>신속하게 처리하여 드리겠습니다.</p>
+							<div class="goods_txt">
+								<p class="cf_txt cf_desc">고객님이 요청하신 회수지로 상품을 회수 중에 있습니다.</p></p>
+							</div>
 						</th:block>
 						<!-- //회수요청 -->
 						<!-- 상품검수중(교환) -->
 						<th:block th:if="${cre.chgStat} == 'G685_31' and ${cre.chgGb} == 'G680_40'">
-							<p class="cf_txt cf_desc">교환 신청이 접수 되었습니다.<br>신속하게 처리하여 드리겠습니다.</p>
+							<div class="goods_txt">
+								<p class="cf_txt cf_desc">고객님이 교환하신 상품을 검수 중에 있습니다.</p>
+							</div>
 						</th:block>
 						<!-- //상품검수중(교환) -->
 						<!-- 결제대기(교환) -->
 						<th:block th:if="${cre.chgStat} == 'G685_32' and ${cre.chgGb} == 'G680_40'">
-							<p class="cf_txt cf_desc">교환 신청이 접수 되었습니다.<br>신속하게 처리하여 드리겠습니다.</p>
+							<div class="goods_txt">
+								<p class="cf_txt cf_desc" th:text="|${#numbers.formatInteger(cre.addPayCost, 1, 'COMMA')} 원 결제 후 교환 가능합니다.|"></p>
+							</div>
 						</th:block>
 						<!-- //결제대기(교환) -->
 						<!-- 교환완료 -->
 						<th:block th:if="${cre.chgStat} == 'G680_40'">
 							<th:block th:each="exchange, index , ${creList.exchangeOptionList}">
 								<th:block th:if="${cre.chgOrdDtlNo} == ${exchange.ordDtlNo} and (${exchange.ordDtlStat} == 'G013_60' or ${exchange.ordDtlStat} == 'G013_70')">
-									<p class="cf_txt cf_desc">교환 신청이 접수 되었습니다.<br>신속하게 처리하여 드리겠습니다.</p>
+									<div class="goods_txt">
+										<p class="cf_txt cf_desc">교환이 완료되었습니다.</p>
+									</div>
 								</th:block>
 							</th:block>
 						</th:block>
 						<!-- //교환완료 -->
 						<!-- 교환철회 -->
 						<th:block th:if="${cre.chgStat} == 'G685_49'">
-							<p class="cf_txt cf_desc">교환 신청이 접수 되었습니다.<br>신속하게 처리하여 드리겠습니다.</p>
+							<div class="goods_txt">
+								<p class="cf_txt cf_desc">요청하신 교환을 취소하였습니다.</p>
+							</div>
 						</th:block>
 						<!-- //교환철회 -->
 						
 						<!-- 반품접수 -->
 						<th:block th:if="${cre.chgStat} == 'G685_50'">
-							<p class="cf_txt cf_desc">교환 신청이 접수 되었습니다.<br>신속하게 처리하여 드리겠습니다.</p>
+							<div class="goods_txt">
+								<p class="cf_txt cf_desc">반품 신청이 접수 되었습니다.<br>신속하게 처리하여 드리겠습니다.</p>
+							</div>
 						</th:block>
 						<!-- //반품접수 -->
 						<!-- 반품대기 -->
 						<th:block th:if="${cre.chgStat} == 'G685_51'">
-							<p class="cf_txt cf_desc">교환 신청이 접수 되었습니다.<br>신속하게 처리하여 드리겠습니다.</p>
+							<div class="goods_txt">
+								<p class="cf_txt cf_desc" th:text="|${#numbers.formatInteger(cre.addPayCost, 1, 'COMMA')} 원 결제 후 반품 가능합니다.|"></p>
+							</div>
 						</th:block>
 						<!-- //반품대기 -->
 						<!-- 상품검수중(반품) -->
 						<th:block th:if="${cre.chgStat} == 'G685_31' AND ${cre.chgGb} == 'G680_30'">
-							<p class="cf_txt cf_desc">교환 신청이 접수 되었습니다.<br>신속하게 처리하여 드리겠습니다.</p>
+							<div class="goods_txt">
+								<p class="cf_txt cf_desc">고객님이 반품하신 상품을 검수 중에 있습니다.</p>
+							</div>
 						</th:block>
 						<!-- //상품검수중(반품) -->	
 						<!-- 결제대기(반품) -->
 						<th:block th:if="${cre.chgStat} == 'G685_32' AND ${cre.chgGb} == 'G680_30'">
-							<p class="cf_txt cf_desc">교환 신청이 접수 되었습니다.<br>신속하게 처리하여 드리겠습니다.</p>
+							<div class="goods_txt">
+								<p class="cf_txt cf_desc" th:text="|${#numbers.formatInteger(cre.addPayCost, 1, 'COMMA')} 원 결제 후 반품 가능합니다.|"></p>
+							</div>
 						</th:block>
 						<!-- //결제대기(반품) -->
 						<!-- 환불진행중 -->
 						<th:block th:if="${cre.chgStat} == 'G685_33'">
-							<p class="cf_txt cf_desc">교환 신청이 접수 되었습니다.<br>신속하게 처리하여 드리겠습니다.</p>
+							<div class="goods_txt">
+								<p class="cf_txt cf_desc" th:text="|${#numbers.formatInteger(cre.addPayCost, 1, 'COMMA')} 원 환불을 진행하고 있습니다.(영업일 최대 3일 내 환불 예정)|"></p>
+							</div>
 						</th:block>
 						<!-- //환불진행중 -->
 						<!-- 반품완료 -->
 						<th:block th:if="${cre.chgStat} == 'G685_60'">
-							<p class="cf_txt cf_desc">교환 신청이 접수 되었습니다.<br>신속하게 처리하여 드리겠습니다.</p>
+							<div class="goods_txt">
+								<p class="cf_txt cf_desc">반품이 완료되었습니다.</p>
+							</div>
 						</th:block>
 						<!-- //반품완료 -->
 						<!-- 반품철회 -->
 						<th:block th:if="${cre.chgStat} == 'G685_69'">
-							<p class="cf_txt cf_desc">교환 신청이 접수 되었습니다.<br>신속하게 처리하여 드리겠습니다.</p>
+							<div class="goods_txt">
+								<p class="cf_txt cf_desc">요청하신 반품을 취소하였습니다.</p>
+							</div>
 						</th:block>
 						<!-- //반품철회 -->
+						<!-- //취소,반품,교환 상태별 문구정의 -->
 					</div>
-					<!-- //취소,반품,교환 상태별 문구정의 -->
-				</div>
+				</th:block>
 			</th:block>
 		</th:block>
+		<!-- //취소,반품,교환목록 있을때 -->
+		<!-- 취소,반품,교환목록 없을때 -->
+		<th:block th:if="${#lists.size(creList) < 1}">
+			<div class="nodata">
+				<div class="txt_box">
+					<p>취소/반품/교환내역이 없습니다.<br/></p>
+				</div>
+			</div>
+		</th:block>
+		<!-- //취소,반품,교환목록 없을때 -->
 	</div>
 </div>
 

+ 330 - 0
src/main/webapp/WEB-INF/views/mob/mypage/MypageCreReturnDetailFormMob.html

@@ -0,0 +1,330 @@
+<!DOCTYPE html>
+<html lang="ko" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorator="mob/common/layout/MypageLayoutMob">
+<!--
+ *******************************************************************************
+ * @source  : MypageCreReturnDetailFormMob.html
+ * @desc    : 마이페이지 > 취소/반품/교환내역 > 반품상세 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2021 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.04.27   jsh77b     최초 작성
+ *******************************************************************************
+ -->
+<body>
+<th:block layout:fragment="content">
+<main role="" id="" class="container my">
+	<section class="content my_return">
+		<div class="inner wide bg_beige">
+			<div class="order_number">
+				<dl class="clear">
+					<dt>주문번호</dt>
+					<dd th:text="${oneData.ordNo}"></dd>
+				</dl>
+			</div>
+		</div>
+		<div class="inner">
+			<div class="part_goods">
+				<div class="goods_top">
+					<th:block th:if="${oneData.giftPackYn == 'Y'}">
+						<div class="goods_date">선물일<span class="date" th:text="${oneData.ordDt}"></span></div>
+					</th:block>
+					<th:block th:unless="${oneData.giftPackYn == 'Y'}">
+						<div class="goods_date">주문일<span class="date" th:text="${oneData.ordDt}"></span></div>
+					</th:block>
+				</div>
+				
+				<th:block th:if="${returnDetailList.returnDetailList}" th:each="returnDtl, status : ${returnDetailList.returnDetailList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
+					<div class="goods_section">
+						<div class="goods_status">
+							<p class="dlvr_staus" th:text="${returnDtl.chgStatNm}"></p>
+							<p class="dlvr_desc" th:text="|${returnDtl.chgDate} ${returnDtl.chgTime}|"></p>
+						</div>
+						
+						<div class="goods_detail">
+							<a href="">
+								<div class="thumb_box">
+									<img th:src="${imageUrl + '/' + returnDtl.sysImgNm}" width="100%" alt="">
+								</div>
+								<div class="info_box">
+									<div class="od_name">
+										<div class="brand">
+											<span th:text="${returnDtl.brandNm}"></span>
+											<div class="badge_wrap">
+												<em class="tag primary" th:if="${returnDtl.shotDelvYn == 'Y'}">총알배송</em>
+												<em class="tag" th:if="${returnDtl.shotDelvYn == 'N' and returnDtl.selfGoodsYn == 'Y'}">STYLE24 일반배송</em>
+												<em class="tag" th:if="${returnDtl.selfGoodsYn == 'N'}">업체직배송</span>
+											</div>
+										</div>
+										<div class="name" th:text="${returnDtl.goodsNm}"></div>
+									</div>
+									<div class="od_opt">
+										<div class="option">
+											<th:block th:if="${returnDtl.goodsType == 'G056_S'}">
+												<th:block th:each="option, status : ${returnDtl.colorNmArr}">
+													<em th:text="${option}"></em>
+													<em th:text="${returnDtl.optCd2Arr[status.index]}"></em>
+												</th:block>
+											</th:block>
+											<th:block th:unless="${returnDtl.goodsType == 'G056_S'}">
+												<em th:text="${returnDtl.colorNm}"></em>
+												<em th:text="${returnDtl.optCd2}"></em>
+											</th:block>
+										</div>
+									</div>
+									<div class="od_calc">
+										<p class="price">
+											<span class="count"><em th:text="${returnDtl.chgQty}"></em>개</span>
+										</p>
+									</div>
+								</div>
+							</a>
+						</div>
+						<div class="goods_btn_wrap btn_group_flex">
+							<div th:if="${returnDtl.chgStat == 'G685_50' or returnDtl.chgStat == 'G685_51'}"><button type="button" class="btn btn_default" th:attr="ordNo=${returnDtl.ordNo}, ordChgSq=${returnDtl.ordChgSq}, cancelGb=${returnDtl.chgGb}" onclick="fnCreCancel(this);"><span>신청 취소</span></button></div>
+							<div th:if="${returnDtl.chgStat == 'G685_32' or returnDtl.chgStat == 'G685_51'}"><button type="button" class="btn btn_default" th:attr="ordNo=${returnDtl.ordNo}, ordChgSq=${returnDtl.ordChgSq}" onclick="fnCrePayAddCost(this);"><span>결재하기</span></button></div>
+							<div><button type="button" class="btn btn_default" onclick="cfnGoToPage(_PAGE_ONETOONE_QNA_REG);"><span>1:1 문의</span></button></div>
+						</div>
+						<div class="goods_txt">
+							<p class="cf_txt cf_desc" th:if="${returnDtl.chgStat == 'G685_51' or (returnDtl.chgGb == 'G680_30' and returnDtl.chgStat == 'G685_32')}" th:text="|${returnDtl.addPayCost}원 결제 후 반품 가능합니다.|"></p>
+							<p class="cf_txt cf_desc" th:if="${returnDtl.chgStat == 'G685_50'}">반품 신청이 접수 되었습니다.<br> 신속하게 처리하여 드리겠습니다.</p>
+							<p class="cf_txt cf_desc" th:if="${returnDtl.chgStat == 'G685_30'}">고객님이 요청하신 회수지로 상품을 회수 중에 있습니다.</p>
+							<p class="cf_txt cf_desc" th:if="${returnDtl.chgStat == 'G685_31' and returnDtl.chgGb == 'G680_30'}">고객님이 반품하신 상품을 검수 중에 있습니다.</p>
+							<p class="cf_txt cf_desc" th:if="${returnDtl.chgStat == 'G685_33'}">환불을 진행하고 있습니다(영업일 최대 3일 내 환불 예정)</p>
+							<p class="cf_txt cf_desc" th:if="${returnDtl.chgStat == 'G685_60'}">반품이 완료되었습니다.</p>
+							<p class="cf_txt cf_desc" th:if="${returnDtl.chgStat == 'G685_69'}">요청하신 반품을 취소하였습니다.</p>
+						</div>
+					</div>
+				</th:block>
+			</div>
+		</div>
+		
+		<div class="inner">
+			<div class="tbl_wrap">
+				<div class="tbl_tit"> 
+					<h3>상세 정보</h3>
+				</div>
+				<div class="tbl type1">
+					<table>
+						<colgroup>
+							<col width="107">
+							<col width="*">
+						</colgroup>   
+						<tr>
+							<th>반품 접수 일자</th>
+							<td><div><span th:text="${oneData.chgDt}"></span></div></td>
+						</tr>
+						<tr>
+							<th>반품 완료 일자</th>
+							<td><div><span th:text="${oneData.completeDt}"></span></div></td>
+						</tr>
+					</table>
+				</div>
+			</div>
+		</div>
+		<div class="inner">
+			<div class="tbl_wrap">
+				<div class="tbl_tit"> 
+					<h3>반품 회수지 주소</h3>
+					<button type="button" id="btn_adrsChange_pop" class="btn_popup" th:if="${oneData.chgStat == 'G685_50' or oneData.chgStat == 'G685_51'}" onclick="fnChangeDeliveryAddr();">
+						<span>회수지 변경</span>
+					</button>
+				</div>
+				<div class="tbl">
+					<div class="ship_info">
+						<dl>
+							<div class="name">
+								<dt><span class="sr-only">배송지명</span></dt>
+								<dd id="chgerNm" th:text="${oneData.chgerNm}"></dd>
+							</div>
+							<div class="addr">
+								<dt><span class="sr-only">배송주소</span></dt>
+								<dd id="chgerAddr" th:text="|${oneData.chgerBaseAddr} ${oneData.chgerDtlAddr}|"></dd>
+							</div>
+							<div class="phone">
+								<dt><span class="sr-only">휴대폰 번호</span></dt>
+								<dd id="chgerPhnno" th:text="${oneData.chgerPhnno}"></dd>
+							</div>
+						</dl>
+					</div>
+				</div>
+			</div>
+		</div>
+		<th:block th:if="${not #strings.isEmpty(oneData.wdInvoiceNo) and not #strings.isEmpty(oneData.shipCompNm)}">
+			<div class="inner">
+				<div class="tbl_wrap">
+					<div class="tbl_tit"> 
+						<h3>회수 정보</h3>
+						<button type="button" class="btn_popup" onclick="fnGoToWithdrawDelivery()"><span>회수 조회</span></button>
+					</div>
+					<div class="tbl tbl_row">
+						<dl>
+							<dt class="sr-only">택배회사/송장번호</dt>
+							<dd><span th:text="|${oneData.shipCompNm} / ${oneData.wdInvoiceNo}|"></span> / <span th:text="${oneData.wdInvoiceNo}"></span></dd>
+						</dl>
+					</div>
+				</div>
+			</div>
+		</th:block>
+		<div class="inner">
+			<div class="tbl_wrap pay_wrap">
+				<div class="tbl_tit"> 
+					<h3>환불 정보</h3>
+					<strong class="pay"><span th:text="${#numbers.formatInteger(oneData.refundAmt + oneData.rfPntAmt + oneData.rfGfcdUseAmt, 1, 'COMMA')}"></span>원</strong>
+				</div>
+				<div class="tbl type1">
+					<table>
+						<colgroup>
+							<col width="227">
+							<col width="*">
+						</colgroup>   
+						<tr>
+							<td>
+								<dl class="refund_deduct">
+									<div>
+										<dt>상품 취소 금액</dt>
+										<dd>
+											<div>
+												<span th:text="${#numbers.formatInteger(oneData.rfCnclAmt, 1, 'COMMA')}"></span>원
+											</div>
+										</dd>
+									</div>
+									<div>
+										<dt>배송비</dt>
+										<dd>
+											<div>
+												<span th:text="${#numbers.formatInteger(oneData.rfDeliveryFee, 1, 'COMMA')}"></span>원
+											</div>
+										</dd>
+									</div>
+									<div>
+										<dt>할인 금액 차감</dt>
+										<dd>
+											<div>
+												<span th:text="${#numbers.formatInteger(-(oneData.rfCpn1Amt + oneData.rfTmtb1Amt + oneData.rfTmtb2Amt + oneData.rfGoodsCpnAmt + oneData.rfCartCpnAmt + oneData.rfPrePntAmt), 1, 'COMMA')}"></span>원
+											</div>
+										</dd>
+									</div>
+								</dl>
+								<dl class="refund_detail">
+									<div>
+										<dt>환불 수단</dt>
+										<dd>
+											<div>
+												<span th:if="${oneData.pgGb == 'KCP'}" th:text="${oneData.payMeansNm}"></span>
+												<span th:if="${oneData.pgGb == 'NAVER'}">네이버페이</span>
+												<span th:if="${oneData.pgGb == 'KAKAO'}">카카오페이</span>
+												<span th:if="${oneData.pgGb == 'PAYCO'}">PAYCO</span>
+											</div>
+										</dd>
+									</div>
+									<div>
+										<dt>결제금액 환불</dt>
+										<dd>
+											<div>
+												<span th:text="${#numbers.formatInteger(oneData.refundAmt, 1, 'COMMA')}"></span>원
+											</div>
+										</dd>
+									</div>
+									<div>
+										<dt>포인트 환불</dt>
+										<dd>
+											<div>
+												<span th:text="${#numbers.formatInteger(oneData.rfPntAmt, 1, 'COMMA')}"></span>P
+											</div>
+										</dd>
+									</div>
+									<div>
+										<dt>상품권 환불</dt>
+										<dd>
+											<div>
+												<span th:text="${#numbers.formatInteger(oneData.rfGfcdUseAmt, 1, 'COMMA')}"></span>원
+											</div>
+										</dd>
+									</div>
+								</dl>
+							</td>
+						</tr>
+					</table>
+					<th:block th:if="${refundYn == 'Y' and oneData.pgGb == 'KCP' and oneData.payMeans == 'G014_30'}">
+						<button type="button" id="btn_chit_cancle" class="btn btn_default" onclick="fnReceipt('cancel')">
+							<span>취소 전표 보기</span>
+						</button>
+					</th:block>
+				</div>
+			</div>
+			<p class="desc_txt">카드사로 결제 취소 요청이 전달된 후 환불까지는 평일 기준 3 ~7일이<br>소요될 수 있습니다.</p>
+			<div class="btn_group btn_group_flex">
+				<div><button class="btn btn_dark" onclick="cfnGoToPage(_PAGE_MYPAGE_CRE_LIST);"><span>확인</span></button></div>
+			</div>
+		</div>
+	</section>
+</main>
+<script th:inline="javascript">
+/*<![CDATA[*/
+let oneData = [[${oneData}]];
+var isLogin = [[${isLogin}]];
+
+$(document).ready(function() {
+
+});
+
+// 회수지 정보 설정
+var delvAddrSet = function(delvObj) {
+	let ordChgSq 		= oneData.ordChgSq;
+	let chgerNm 		= delvObj.recipNm;
+	let chgerPhnno 		= delvObj.recipPhnno;
+	let chgerZipcode 	= delvObj.recipZipcode;
+	let chgerBaseAddr 	= delvObj.recipBaseAddr;
+	let chgerDtlAddr 	= delvObj.recipDtlAddr;
+	let chgerRtnMemo 	= delvObj.delvMemo;
+	let chgerAddr 		= chgerBaseAddr + ' ' + chgerDtlAddr;
+
+	let data = {};
+	data.ordChgSq 		= ordChgSq;
+	data.chgerNm 		= chgerNm;
+	data.chgerPhnno 	= chgerPhnno;
+	data.chgerZipcode 	= chgerZipcode;
+	data.chgerBaseAddr 	= chgerBaseAddr;
+	data.chgerDtlAddr 	= chgerDtlAddr;
+	data.chgerRtnMemo 	= chgerRtnMemo;
+
+	let jsonData = JSON.stringify(data);
+
+	gagajf.ajaxJsonSubmit('/mypage/change/chger/addr', jsonData, function(result) {
+		if (result.status == '200') {
+			$('#chgerNm').text(chgerNm);
+			$('#chgerPhnno').text(chgerPhnno);
+			$('#chgerAddr').text(chgerAddr);
+			$('#chgerRtnMemo').text(chgerRtnMemo);
+		}
+	});
+}
+
+// 배송메모 설정
+var delvMemoSet = function(delvMemoObj) {
+	let ordChgSq = oneData.ordChgSq;
+	let delvMemo = delvMemoObj.delvMemo;
+
+	let data = {};
+	data.ordChgSq = ordChgSq;
+	data.chgerRtnMemo = delvMemo;
+	
+	let jsonData = JSON.stringify(data);
+	
+	gagajf.ajaxJsonSubmit('/mypage/change/chger/rtn/memo', jsonData, function(result) {
+		if (result.status == '200') {
+			$("#chgerRtnMemo").text(delvMemo);
+		}
+	});
+	
+}
+/*]]>*/
+</script>
+
+</th:block>
+
+</body>
+</html>

+ 2 - 2
src/main/webapp/WEB-INF/views/mob/mypage/MypageOrderDetailFormMob.html

@@ -370,7 +370,7 @@
 													<li>
 														<span class="gift_name" th:text="${freeGift.goodsNm}"></span> 
 														<th:block th:if="${freeGift.usePoint} > 0">
-															<span class="deduct_p" th:text="|(-${freeGift.usePoint.addComma()}P)|"></span>
+															<span class="deduct_p" th:text="|(-${#numbers.formatInteger(freeGift.usePoint, 1, 'COMMA')}P)|"></span>
 														</th:block>
 													</li>
 												</th:block>
@@ -649,7 +649,7 @@
 									<th:block th:if="${orderAmtInfo.savePntAmt} > 0">
 										<div>
 											<dt>적립예정 포인트</dt>
-											<dd><div><span th:text="|${#numbers.formatInteger(orderAmtInfo.savePntAmt, 1, 'COMMA')}P|">3000</span>P</div></dd>
+											<dd><div><span th:text="|${#numbers.formatInteger(orderAmtInfo.savePntAmt, 1, 'COMMA')}|"></span>P</div></dd>
 										</div>
 									</th:block>
 									<div>

+ 3 - 2
src/main/webapp/WEB-INF/views/mob/mypage/MypageOrderListFormMob.html

@@ -276,6 +276,9 @@ $(document).ready(function() {
 		var ordDtlStatNm = $(this).find("span").text();
 		$(".container .my_order .od_status_btn").text(ordDtlStatNm);
 		
+		// 리헷
+		$("#listBox").html("");
+		
 		// 초기화설정
 		fnGetInfiniteScrollDataList(0);
 	});
@@ -390,7 +393,6 @@ $(function() { gagaInfiniteScroll.getHistory(); });
 */
 </script>
 
-<!-- 210408_스크립트 추가 -->
 <script>
 	$(document).ready(function(){
 		$(document).on('click','.popup_box .button_list button',function(){
@@ -465,7 +467,6 @@ $(function() { gagaInfiniteScroll.getHistory(); });
 		});
 	}
 </script>
-<!-- //210408_스크립트 추가 -->
 </th:block>
 </body>
 </html>

+ 320 - 318
src/main/webapp/WEB-INF/views/mob/mypage/MypageOrderListInfoMob.html

@@ -1,373 +1,375 @@
 <div class="inner">
 	<div class="part_goods">
-		
-		<th:block th:each="order , i : ${orderList}">
-			<div class="goods_top">
-				<th:block th:if="${order.giftPackYn} == 'Y'">
-					<div class="goods_date">선물일<span class="date" th:text="${order.ordDt}"></span></div>
-				</th:block>
-				<th:block th:if="${order.giftPackYn} == 'N'">
-					<div class="goods_date">주문일<span class="date" th:text="${order.ordDt}"></span></div>
-				</th:block>
-				<a href="javascript:void(0);" class="detail_btn" th:ordno="${order.ordNo}" onclick="fnGoToOrderDetail(this)">상세보기</a>
-			</div>
-			
-			<th:block th:each="ordDtl , j : ${order.ordDtlList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
-				<!-- 주문 접수 -->
-				<div class="goods_section">
-					<div class="goods_status">
-						<!-- 선물배송일때 -->
-						<th:block th:if="${ordDtl.giftPackYn} == 'Y'">
-							<div class="goods_txt">
-								<!-- 배송지등록전 -->
-								<th:block th:if="${ordDtl.recipBaseAddr == ''} and ${ordDtl.giftLimitDay} >= 0">
-									<p class="dlvr_staus">주소 입력 대기 중</p>
-								</th:block>
-								<!-- //배송지등록전 -->
-								
-								<!-- 배송지등록완료, 결제전취소, 결제후취소 아닐경우 -->
-								<th:block th:if="${ordDtl.ordDtlStat} == 'G013_50' or ${ordDtl.ordDtlStat} == 'G013_55' or ${ordDtl.ordDtlStat} == 'G013_60' or ${ordDtl.ordDtlStat} == 'G013_70'">
-									<th:block th:if="${ordDtl.recipBaseAddr != ''} and ${ordDtl.ordDtlStat} != 'G013_98' and ${ordDtl.ordDtlStat} != 'G013_99'">
-										<p class="dlvr_staus">선물 완료</p>
+		<!-- 주문목록이 있을때 -->
+		<th:block th:if="${#lists.size(orderList) > 0}">
+			<th:block th:each="order , i : ${orderList}">
+				<div class="goods_top">
+					<th:block th:if="${order.giftPackYn} == 'Y'">
+						<div class="goods_date">선물일<span class="date" th:text="${order.ordDt}"></span></div>
+					</th:block>
+					<th:block th:if="${order.giftPackYn} == 'N'">
+						<div class="goods_date">주문일<span class="date" th:text="${order.ordDt}"></span></div>
+					</th:block>
+					<a href="javascript:void(0);" class="detail_btn" th:ordno="${order.ordNo}" onclick="fnGoToOrderDetail(this)">상세보기</a>
+				</div>
+				
+				<th:block th:each="ordDtl , j : ${order.ordDtlList}" th:with="imageUrl=${@environment.getProperty('upload.goods.view')}">
+					<!-- 주문 접수 -->
+					<div class="goods_section">
+						<div class="goods_status">
+							<!-- 선물배송일때 -->
+							<th:block th:if="${ordDtl.giftPackYn} == 'Y'">
+								<div class="goods_txt">
+									<!-- 배송지등록전 -->
+									<th:block th:if="${ordDtl.recipBaseAddr == ''} and ${ordDtl.giftLimitDay} >= 0">
+										<p class="dlvr_staus">주소 입력 대기 중</p>
 									</th:block>
-								</th:block>
-								<!-- //배송지등록완료, 결제전취소, 결제후취소 아닐경우 -->
-								
-								<!-- 선물 취소 -->
-								<th:block th:if="${ordDtl.ordDtlStat} == 'G013_98' and ${ordDtl.ordDtlStat} == 'G013_99'">
-									<p class="dlvr_staus">선물 취소</p>
-								</th:block>
-								<!-- //선물 취소 -->
-							</div>
-						</th:block>
-						<!-- //선물배송일때 -->
-						
-						<!-- 일반배송일때 -->
-						<th:block th:if="${ordDtl.giftPackYn} == 'N'">
-							<p class="dlvr_staus" th:text="${ordDtl.ordDtlStatNm}"></p>
-						</th:block>
-						<!-- //일반배송일때 -->
-					</div>
-					<div class="goods_detail">
-						<a href="">
-							<div class="thumb_box">
-								<img th:src="${imageUrl + '/' + ordDtl.sysImgNm}" src="/" width="100%" alt="">
-							</div>
-							<div class="info_box">
-								<div class="od_name">
-									<div class="brand">
-										<span th:text="${ordDtl.brandNm}"></span>
-										<div class="badge_wrap">
-											<th:block th:if="${ordDtl.shotDelvYn} == 'Y'">
-												<em class="order_badge order_bullet_badge">총알배송</em>
-											</th:block>
-											<th:block th:if="${ordDtl.selfGoodsYn} == 'Y'">
-												<em class="order_badge">STYLE24 일반배송</em>
-											</th:block>
-											<th:block th:if="${ordDtl.shotDelvYn} != 'Y' and ${ordDtl.selfGoodsYn} != 'Y'">
-												<em class="order_badge">업체직배송</em>
-											</th:block>
+									<!-- //배송지등록전 -->
+									
+									<!-- 배송지등록완료, 결제전취소, 결제후취소 아닐경우 -->
+									<th:block th:if="${ordDtl.ordDtlStat} == 'G013_50' or ${ordDtl.ordDtlStat} == 'G013_55' or ${ordDtl.ordDtlStat} == 'G013_60' or ${ordDtl.ordDtlStat} == 'G013_70'">
+										<th:block th:if="${ordDtl.recipBaseAddr != ''} and ${ordDtl.ordDtlStat} != 'G013_98' and ${ordDtl.ordDtlStat} != 'G013_99'">
+											<p class="dlvr_staus">선물 완료</p>
+										</th:block>
+									</th:block>
+									<!-- //배송지등록완료, 결제전취소, 결제후취소 아닐경우 -->
+									
+									<!-- 선물 취소 -->
+									<th:block th:if="${ordDtl.ordDtlStat} == 'G013_98' and ${ordDtl.ordDtlStat} == 'G013_99'">
+										<p class="dlvr_staus">선물 취소</p>
+									</th:block>
+									<!-- //선물 취소 -->
+								</div>
+							</th:block>
+							<!-- //선물배송일때 -->
+							
+							<!-- 일반배송일때 -->
+							<th:block th:if="${ordDtl.giftPackYn} == 'N'">
+								<p class="dlvr_staus" th:text="${ordDtl.ordDtlStatNm}"></p>
+							</th:block>
+							<!-- //일반배송일때 -->
+						</div>
+						<div class="goods_detail">
+							<a href="">
+								<div class="thumb_box">
+									<img th:src="${imageUrl + '/' + ordDtl.sysImgNm}" src="/" width="100%" alt="">
+								</div>
+								<div class="info_box">
+									<div class="od_name">
+										<div class="brand">
+											<span th:text="${ordDtl.brandNm}"></span>
+											<div class="badge_wrap">
+												<th:block th:if="${ordDtl.shotDelvYn} == 'Y'">
+													<em class="order_badge order_bullet_badge">총알배송</em>
+												</th:block>
+												<th:block th:if="${ordDtl.selfGoodsYn} == 'Y'">
+													<em class="order_badge">STYLE24 일반배송</em>
+												</th:block>
+												<th:block th:if="${ordDtl.shotDelvYn} != 'Y' and ${ordDtl.selfGoodsYn} != 'Y'">
+													<em class="order_badge">업체직배송</em>
+												</th:block>
+											</div>
 										</div>
+										<div class="name" th:text="${ordDtl.goodsNm}"></div>
 									</div>
-									<div class="name" th:text="${ordDtl.goodsNm}"></div>
-								</div>
-								<div class="od_opt">
-									<div class="option" th:each="colorNm, index : ${ordDtl.colorNmArr}">
-										<em th:text="${colorNm}"></em>
-										<em th:text="${ordDtl.optCd2Arr[index.index]}"></em>
+									<div class="od_opt">
+										<div class="option" th:each="colorNm, index : ${ordDtl.colorNmArr}">
+											<em th:text="${colorNm}"></em>
+											<em th:text="${ordDtl.optCd2Arr[index.index]}"></em>
+										</div>
 									</div>
-								</div>
-								<div class="od_calc">
-									<!-- 판매금액과 할인금액이 같으면 표시 안함 -->
-									<th:block th:if="(${ordDtl.ordAmt} - ${ordDtl.cnclRtnAmt} - ${ordDtl.cpn1DcAmt}) > ${ordDtl.realOrdAmt} + ${ordDtl.pntDcAmt} + ${ordDtl.gfcdUseAmt}">
-										<p class="sale_price">
-											<del>
-												<em th:text="${#numbers.formatInteger(ordDtl.ordAmt - ordDtl.cnclRtnAmt - ordDtl.cpn1DcAmt, 1, 'COMMA')}"></em>원
-											</del>
+									<div class="od_calc">
+										<!-- 판매금액과 할인금액이 같으면 표시 안함 -->
+										<th:block th:if="(${ordDtl.ordAmt} - ${ordDtl.cnclRtnAmt} - ${ordDtl.cpn1DcAmt}) > ${ordDtl.realOrdAmt} + ${ordDtl.pntDcAmt} + ${ordDtl.gfcdUseAmt}">
+											<p class="sale_price">
+												<del>
+													<em th:text="${#numbers.formatInteger(ordDtl.ordAmt - ordDtl.cnclRtnAmt - ordDtl.cpn1DcAmt, 1, 'COMMA')}"></em>원
+												</del>
+											</p>
+										</th:block>
+										<p class="price">
+											<span class="selling_price">
+												<em th:text="${#numbers.formatInteger(ordDtl.realOrdAmt + ordDtl.pntDcAmt + ordDtl.gfcdUseAmt, 1, 'COMMA')}"></em>원
+											</span>
+											<span class="count">
+												<em th:text="${ordDtl.ordQty} - ${ordDtl.cnclRtnQty}"></em>개
+											</span>
 										</p>
-									</th:block>
-									<p class="price">
-										<span class="selling_price">
-											<em th:text="${#numbers.formatInteger(ordDtl.realOrdAmt + ordDtl.pntDcAmt + ordDtl.gfcdUseAmt, 1, 'COMMA')}"></em>원
-										</span>
-										<span class="count">
-											<em th:text="${ordDtl.ordQty} - ${ordDtl.cnclRtnQty}"></em>개
-										</span>
-									</p>
+									</div>
 								</div>
-							</div>
-						</a>
-					</div>
-					
-					<!-- 버튼기능정리 -->
-					<!-- 일반배송 -->
-					<th:block th:unless="${ordDtl.giftPackYn} == 'Y'">
-						<!-- 입금대기, 결제완료, 상품준비중, 출고처지정 (주문취소) -->
-						<th:block th:if="${ordDtl.ordDtlStat} == 'G013_10' or ${ordDtl.ordDtlStat} == 'G013_20' or ${ordDtl.ordDtlStat} == 'G013_30' or ${ordDtl.ordDtlStat} == 'G013_35'">
-							<div class="goods_btn_wrap btn_group_flex">
-								<div><button type="button" class="btn btn_default btn_cncl_complete"><span>주문 취소</span></button></div>
-							</div>
-						</th:block>
-						<!-- //입금대기, 결제완료, 상품준비중, 출고처지정 (주문취소) -->
-						
-						<!-- 배송준비중-->
-						<th:block th:if="${ordDtl.ordDtlStat} == 'G013_40'">
-						</th:block>
-						<!-- //배송준비중-->
+							</a>
+						</div>
 						
-						<!-- 배송중 (교환가능, 반품가능) -->
-						<th:block th:if="${ordDtl.ordDtlStat} == 'G013_50' or ${ordDtl.ordDtlStat} == 'G013_55'">
-							<!-- 교환가능, 반품가능 -->
-							<th:block th:if="${ordDtl.changeableYn} == 'Y' or ${ordDtl.returnableYn} == 'Y'">
+						<!-- 버튼기능정리 -->
+						<!-- 일반배송 -->
+						<th:block th:unless="${ordDtl.giftPackYn} == 'Y'">
+							<!-- 입금대기, 결제완료, 상품준비중, 출고처지정 (주문취소) -->
+							<th:block th:if="${ordDtl.ordDtlStat} == 'G013_10' or ${ordDtl.ordDtlStat} == 'G013_20' or ${ordDtl.ordDtlStat} == 'G013_30' or ${ordDtl.ordDtlStat} == 'G013_35'">
 								<div class="goods_btn_wrap btn_group_flex">
-									<th:block th:if="${ordDtl.changeableYn} == 'Y'">
-										<div><button type="button" class="btn btn_default btn_exch_req"><span>교환 신청</span></button></div>
-									</th:block>
-									<th:block th:if="${ordDtl.returnableYn} == 'Y'">
-										<div><button type="button" class="btn btn_default btn_rtn_req"><span>반품 신청</span></button></div>
-									</th:block>
+									<div><button type="button" class="btn btn_default btn_cncl_complete"><span>주문 취소</span></button></div>
 								</div>
 							</th:block>
-							<!-- //교환가능, 반품가능 -->
+							<!-- //입금대기, 결제완료, 상품준비중, 출고처지정 (주문취소) -->
 							
-							<!-- 리뷰사용가능, 리뷰등록전일때 -->
-							<div class="goods_btn_wrap btn_group_flex">
-								<div><button type="button" class="btn btn_default btn_delv_sch"><span>배송 조회</span></button></div>
-								<!-- 리뷰사용가능, 리뷰등록전일때 -->
-								<th:block th:if="${ordDtl.reviewableYn} == 'Y' and ${ordDtl.reviewSq} == null">
-									<div><button type="button" class="btn btn_primary btn_review_write"><span>리뷰 쓰기</span></button></div>
-								</th:block>
-								<!-- //리뷰사용가능, 리뷰등록전일때 -->
-							</div>
-							<!-- //리뷰사용가능, 리뷰등록전일때 -->
-						</th:block>
-						<!-- //배송중 (교환가능, 반품가능) -->
+							<!-- 배송준비중-->
+							<th:block th:if="${ordDtl.ordDtlStat} == 'G013_40'">
+							</th:block>
+							<!-- //배송준비중-->
 							
-						<!-- 배송완료 (교환가능, 반품가능) -->
-						<th:block th:if="${ordDtl.ordDtlStat} == 'G013_60'">
-							<div class="goods_btn_wrap btn_group_flex">
+							<!-- 배송중 (교환가능, 반품가능) -->
+							<th:block th:if="${ordDtl.ordDtlStat} == 'G013_50' or ${ordDtl.ordDtlStat} == 'G013_55'">
 								<!-- 교환가능, 반품가능 -->
-								<th:block th:if="${ordDtl.changeableYn} == 'Y'">
-									<div><button type="button" class="btn btn_default btn_exch_req"><span>교환 신청</span></button></div>
-								</th:block>
-								<th:block th:if="${ordDtl.returnableYn} == 'Y'">
-									<div><button type="button" class="btn btn_default btn_rtn_req"><span>반품 신청</span></button></div>
+								<th:block th:if="${ordDtl.changeableYn} == 'Y' or ${ordDtl.returnableYn} == 'Y'">
+									<div class="goods_btn_wrap btn_group_flex">
+										<th:block th:if="${ordDtl.changeableYn} == 'Y'">
+											<div><button type="button" class="btn btn_default btn_exch_req"><span>교환 신청</span></button></div>
+										</th:block>
+										<th:block th:if="${ordDtl.returnableYn} == 'Y'">
+											<div><button type="button" class="btn btn_default btn_rtn_req"><span>반품 신청</span></button></div>
+										</th:block>
+									</div>
 								</th:block>
 								<!-- //교환가능, 반품가능 -->
 								
-								<div><button type="button" id="btn_purchase_confirm btn_ord_confirm" class="btn btn_primary"><span>구매 확정</span></button></div>
-							</div>
-							<div class="goods_btn_wrap btn_group_flex">
-								<!-- 교환불가, 반품불가 -->
-								<th:block th:if="${ordDtl.changeableYn} == 'N' or ${ordDtl.returnableYn} == 'N'">
-									<div><button type="button" class="btn btn_default btn_qna_write"><span>1:1 문의</span></button></div>
-								</th:block>
-								<!-- //교환불가, 반품불가 -->
-								
 								<!-- 리뷰사용가능, 리뷰등록전일때 -->
-								<th:block th:if="${ordDtl.reviewableYn} == 'Y' and ${ordDtl.reviewSq} == null">
-									<div><button type="button" class="btn btn_primary btn_review_write"><span>리뷰 쓰기</span></button></div>
-								</th:block>
-								<!-- //리뷰사용가능, 리뷰등록전일때 -->
-							</div>
-						</th:block>
-						<!-- //배송완료 (교환가능, 반품가능) -->
-						
-						<!-- 구매확정 -->
-						<th:block th:if="${ordDtl.ordDtlStat} == 'G013_70'">
-							<div class="goods_btn_wrap btn_group_flex">
-								<div><button type="button" class="btn btn_primary btn_cart_save"><span>쇼핑백 담기</span></button></div>
-								<div><button type="button" class="btn btn_default btn_qna_write"><span>1:1 문의</span></button></div>
-								
-								<!-- 리뷰사용가능, 리뷰등록전일때 -->
-								<th:block th:if="${ordDtl.reviewableYn} == 'Y' and ${ordDtl.reviewSq} == null">
-									<div><button type="button" class="btn btn_primary btn_review_write"><span>리뷰 쓰기</span></button></div>
-								</th:block>
+								<div class="goods_btn_wrap btn_group_flex">
+									<div><button type="button" class="btn btn_default btn_delv_sch"><span>배송 조회</span></button></div>
+									<!-- 리뷰사용가능, 리뷰등록전일때 -->
+									<th:block th:if="${ordDtl.reviewableYn} == 'Y' and ${ordDtl.reviewSq} == null">
+										<div><button type="button" class="btn btn_primary btn_review_write"><span>리뷰 쓰기</span></button></div>
+									</th:block>
+									<!-- //리뷰사용가능, 리뷰등록전일때 -->
+								</div>
 								<!-- //리뷰사용가능, 리뷰등록전일때 -->
-							</div>
-						</th:block>
-						<!-- //구매확정 -->
-					</th:block>
-					
-					<!--  선물배송 -->
-					<th:block th:if="${ordDtl.giftPackYn} == 'Y'">
-						<!-- 선물배송, 배송미입력 -->
-						<div class="goods_btn_wrap btn_group_flex">
-							<!-- 배송지등록전 -->
-							<th:block th:if="${ordDtl.recipBaseAddr == ''} and ${ordDtl.giftLimitDay} >= 0">
-								<div><button type="button" class="btn btn_primary btn_sms_send"><span>SMS 재발송</span></button></div>
 							</th:block>
-							<!-- //배송지등록전 -->
-							
-							<!-- 배송지등록후(입금대기, 결제완료, 상품준비중, 출고처지정, 배송준비중) -->
-							<th:block th:if="${ordDtl.ordDtlStat} == 'G013_10' or ${ordDtl.ordDtlStat} == 'G013_20' or ${ordDtl.ordDtlStat} == 'G013_30' or ${ordDtl.ordDtlStat} == 'G013_35'">
-								<div><button type="button" class="btn btn_default btn_cncl_complete"><span>주문 취소</span></button></div>
+							<!-- //배송중 (교환가능, 반품가능) -->
+								
+							<!-- 배송완료 (교환가능, 반품가능) -->
+							<th:block th:if="${ordDtl.ordDtlStat} == 'G013_60'">
+								<div class="goods_btn_wrap btn_group_flex">
+									<!-- 교환가능, 반품가능 -->
+									<th:block th:if="${ordDtl.changeableYn} == 'Y'">
+										<div><button type="button" class="btn btn_default btn_exch_req"><span>교환 신청</span></button></div>
+									</th:block>
+									<th:block th:if="${ordDtl.returnableYn} == 'Y'">
+										<div><button type="button" class="btn btn_default btn_rtn_req"><span>반품 신청</span></button></div>
+									</th:block>
+									<!-- //교환가능, 반품가능 -->
+									
+									<div><button type="button" id="btn_purchase_confirm btn_ord_confirm" class="btn btn_primary"><span>구매 확정</span></button></div>
+								</div>
+								<div class="goods_btn_wrap btn_group_flex">
+									<!-- 교환불가, 반품불가 -->
+									<th:block th:if="${ordDtl.changeableYn} == 'N' or ${ordDtl.returnableYn} == 'N'">
+										<div><button type="button" class="btn btn_default btn_qna_write"><span>1:1 문의</span></button></div>
+									</th:block>
+									<!-- //교환불가, 반품불가 -->
+									
+									<!-- 리뷰사용가능, 리뷰등록전일때 -->
+									<th:block th:if="${ordDtl.reviewableYn} == 'Y' and ${ordDtl.reviewSq} == null">
+										<div><button type="button" class="btn btn_primary btn_review_write"><span>리뷰 쓰기</span></button></div>
+									</th:block>
+									<!-- //리뷰사용가능, 리뷰등록전일때 -->
+								</div>
 							</th:block>
-							<!-- //배송지등록후(입금대기, 결제완료, 상품준비중, 출고처지정, 배송준비중) -->
+							<!-- //배송완료 (교환가능, 반품가능) -->
 							
-							<!-- 배송지등록완료, 결제전취소, 결제후취소 아닐경우 -->
-							<th:block th:if="${ordDtl.ordDtlStat} == 'G013_50' or ${ordDtl.ordDtlStat} == 'G013_55' or ${ordDtl.ordDtlStat} == 'G013_60' or ${ordDtl.ordDtlStat} == 'G013_70'">
-								<th:block th:if="${ordDtl.recipBaseAddr != ''} and ${ordDtl.ordDtlStat} != 'G013_98' and ${ordDtl.ordDtlStat} != 'G013_99'">
+							<!-- 구매확정 -->
+							<th:block th:if="${ordDtl.ordDtlStat} == 'G013_70'">
+								<div class="goods_btn_wrap btn_group_flex">
 									<div><button type="button" class="btn btn_primary btn_cart_save"><span>쇼핑백 담기</span></button></div>
+									<div><button type="button" class="btn btn_default btn_qna_write"><span>1:1 문의</span></button></div>
+									
 									<!-- 리뷰사용가능, 리뷰등록전일때 -->
-									<th:block th:if="${ordDtl.reviewableYn} == 'Y' and ${ordDtl.reviewSq} == null and ${ordDtl.ordDtlStat} == 'G013_70'">
+									<th:block th:if="${ordDtl.reviewableYn} == 'Y' and ${ordDtl.reviewSq} == null">
 										<div><button type="button" class="btn btn_primary btn_review_write"><span>리뷰 쓰기</span></button></div>
 									</th:block>
 									<!-- //리뷰사용가능, 리뷰등록전일때 -->
-								</th:block>
+								</div>
 							</th:block>
-							<!-- //배송지등록완료, 결제전취소, 결제후취소 아닐경우 -->
-						</div>
-					</th:block>
-					<!-- //선물배송 -->
-					<!-- //버튼기능정리 -->
-					
-					<!-- 상태문구정리 -->
-					<!-- 일반배송일때 -->
-					<th:block th:if="${ordDtl.giftPackYn} == 'N'">
-						<div class="goods_alert">
-							<!-- 배송중, 배송완료 상태 교환, 반품 가능 상태 체크 -->
-							<th:block th:if="${ordDtl.ordDtlStat} == 'G013_50' or ${ordDtl.ordDtlStat} == 'G013_55' or ${ordDtl.ordDtlStat} == 'G013_60'">
-								<!-- 교환불가능, 반품불가능 -->
-								<th:block th:if="${ordDtl.changeableYn} == 'N' and ${ordDtl.returnableYn} == 'N'">
-									<p class="cf_txt cf_desc">해당 상품은 교환/반품이 불가능한 상품입니다.<br>문의사항은 1:1 문의를 이용해 주세요.</p>
-								</th:block>
-								<!-- //교환불가능, 반품불가능 -->
-								
-								<!-- 교환불가능 -->
-								<th:block th:if="${ordDtl.changeableYn} == 'N'">
-									<p class="cf_txt cf_desc">해당 상품은 교환이 불가능한 상품입니다.<br>문의사항은 1:1 문의를 이용해 주세요.</p>
+							<!-- //구매확정 -->
+						</th:block>
+						
+						<!--  선물배송 -->
+						<th:block th:if="${ordDtl.giftPackYn} == 'Y'">
+							<!-- 선물배송, 배송미입력 -->
+							<div class="goods_btn_wrap btn_group_flex">
+								<!-- 배송지등록전 -->
+								<th:block th:if="${ordDtl.recipBaseAddr == ''} and ${ordDtl.giftLimitDay} >= 0">
+									<div><button type="button" class="btn btn_primary btn_sms_send"><span>SMS 재발송</span></button></div>
 								</th:block>
-								<!-- //교환불가능 -->
+								<!-- //배송지등록전 -->
 								
-								<!-- 반품불가능 -->
-								<th:block th:if="${ordDtl.returnableYn} == 'N'">
-									<p class="cf_txt cf_desc">해당 상품은 교환이 불가능한 상품입니다.<br>문의사항은 1:1 문의를 이용해 주세요.</p>
+								<!-- 배송지등록후(입금대기, 결제완료, 상품준비중, 출고처지정, 배송준비중) -->
+								<th:block th:if="${ordDtl.ordDtlStat} == 'G013_10' or ${ordDtl.ordDtlStat} == 'G013_20' or ${ordDtl.ordDtlStat} == 'G013_30' or ${ordDtl.ordDtlStat} == 'G013_35'">
+									<div><button type="button" class="btn btn_default btn_cncl_complete"><span>주문 취소</span></button></div>
 								</th:block>
-								<!-- //반품불가능 -->
+								<!-- //배송지등록후(입금대기, 결제완료, 상품준비중, 출고처지정, 배송준비중) -->
 								
-							</th:block>
-							<!-- //배송중, 배송완료 상태 -->
-						</div>
-						
-						<!-- 주문접수 -->
-						<th:block th:if="${ordDtl.ordDtlStat} == 'G013_10'">
-							<div class="goods_txt">
-								<p class="cf_txt cf_desc">주문 완료 / 결제를 기다리고 있습니다.</p>
-								<th:block th:if="${ordDtl.delvResDt} != null">
-									<p class="cf_txt cf_desc" th:text="|예약판매 상품으로 ${ordDtl.delvResDt} 출고 예정입니다.|"></p>
+								<!-- 배송지등록완료, 결제전취소, 결제후취소 아닐경우 -->
+								<th:block th:if="${ordDtl.ordDtlStat} == 'G013_50' or ${ordDtl.ordDtlStat} == 'G013_55' or ${ordDtl.ordDtlStat} == 'G013_60' or ${ordDtl.ordDtlStat} == 'G013_70'">
+									<th:block th:if="${ordDtl.recipBaseAddr != ''} and ${ordDtl.ordDtlStat} != 'G013_98' and ${ordDtl.ordDtlStat} != 'G013_99'">
+										<div><button type="button" class="btn btn_primary btn_cart_save"><span>쇼핑백 담기</span></button></div>
+										<!-- 리뷰사용가능, 리뷰등록전일때 -->
+										<th:block th:if="${ordDtl.reviewableYn} == 'Y' and ${ordDtl.reviewSq} == null and ${ordDtl.ordDtlStat} == 'G013_70'">
+											<div><button type="button" class="btn btn_primary btn_review_write"><span>리뷰 쓰기</span></button></div>
+										</th:block>
+										<!-- //리뷰사용가능, 리뷰등록전일때 -->
+									</th:block>
 								</th:block>
+								<!-- //배송지등록완료, 결제전취소, 결제후취소 아닐경우 -->
 							</div>
 						</th:block>
-						<!-- //주문접수 -->
+						<!-- //선물배송 -->
+						<!-- //버튼기능정리 -->
 						
-						<!-- 결제완료, 예약배송상품 -->
-						<th:block th:if="${ordDtl.ordDtlStat} == 'G013_10'">
-							<th:block th:if="${ordDtl.delvResDt} != null">
+						<!-- 상태문구정리 -->
+						<!-- 일반배송일때 -->
+						<th:block th:if="${ordDtl.giftPackYn} == 'N'">
+							<div class="goods_alert">
+								<!-- 배송중, 배송완료 상태 교환, 반품 가능 상태 체크 -->
+								<th:block th:if="${ordDtl.ordDtlStat} == 'G013_50' or ${ordDtl.ordDtlStat} == 'G013_55' or ${ordDtl.ordDtlStat} == 'G013_60'">
+									<!-- 교환불가능, 반품불가능 -->
+									<th:block th:if="${ordDtl.changeableYn} == 'N' and ${ordDtl.returnableYn} == 'N'">
+										<p class="cf_txt cf_desc">해당 상품은 교환/반품이 불가능한 상품입니다.<br>문의사항은 1:1 문의를 이용해 주세요.</p>
+									</th:block>
+									<!-- //교환불가능, 반품불가능 -->
+									
+									<!-- 교환불가능 -->
+									<th:block th:if="${ordDtl.changeableYn} == 'N'">
+										<p class="cf_txt cf_desc">해당 상품은 교환이 불가능한 상품입니다.<br>문의사항은 1:1 문의를 이용해 주세요.</p>
+									</th:block>
+									<!-- //교환불가능 -->
+									
+									<!-- 반품불가능 -->
+									<th:block th:if="${ordDtl.returnableYn} == 'N'">
+										<p class="cf_txt cf_desc">해당 상품은 교환이 불가능한 상품입니다.<br>문의사항은 1:1 문의를 이용해 주세요.</p>
+									</th:block>
+									<!-- //반품불가능 -->
+									
+								</th:block>
+								<!-- //배송중, 배송완료 상태 -->
+							</div>
+							
+							<!-- 주문접수 -->
+							<th:block th:if="${ordDtl.ordDtlStat} == 'G013_10'">
 								<div class="goods_txt">
-									<p class="cf_txt cf_desc" th:text="|예약판매 상품으로 ${ordDtl.delvResDt} 출고 예정입니다.|"></p>
+									<p class="cf_txt cf_desc">주문 완료 / 결제를 기다리고 있습니다.</p>
+									<th:block th:if="${ordDtl.delvResDt} != null">
+										<p class="cf_txt cf_desc" th:text="|예약판매 상품으로 ${ordDtl.delvResDt} 출고 예정입니다.|"></p>
+									</th:block>
 								</div>
 							</th:block>
-						</th:block>
-						<!-- //결제완료, 예약배송상품 -->
-						
-						<!-- 상품준비중 -->
-						<th:block th:if="${ordDtl.ordDtlStat} == 'G013_30'">
-							<div class="goods_txt">
-								<p class="cf_txt cf_desc">배송할 상품을 준비 중입니다.</p>
-								<th:block th:if="${ordDtl.delvResDt} != null">
-									<p class="cf_txt cf_desc" th:text="|예약판매 상품으로 ${ordDtl.delvResDt} 출고 예정입니다.|"></p>
-								</th:block>
-							</div>
-						</th:block>
-						<!-- //상품준비중 -->
-						
-						<!-- 배송준비중 -->
-						<th:block th:if="${ordDtl.ordDtlStat} == 'G013_40'">
-							<div class="goods_txt">
-								<p class="cf_txt cf_desc">상품 준비가 완료되어 곧 배송될 예정입니다.</p>
-								<th:block th:if="${ordDtl.delvResDt} != null">
-									<p class="cf_txt cf_desc" th:text="|예약판매 상품으로 ${ordDtl.delvResDt} 출고 예정입니다.|"></p>
-								</th:block>
-							</div>
-						</th:block>
-						<!-- //배송준비중 -->
-						
-						<!-- 배송완료 -->
-						<th:block th:if="${ordDtl.ordDtlStat} == 'G013_60'">
-							<div class="goods_txt">
-								<p class="cf_txt cf_desc">15일 후 자동으로 구매확정됩니다.</p>
-							</div>
-						</th:block>
-						<!-- //배송완료 -->
-						
-						<!-- 구매확정 -->
-						<th:block th:if="${ordDtl.ordDtlStat} == 'G013_70'">
-							<!-- 리뷰사용가능, 리뷰등록전일때 -->
-							<th:block th:if="${ordDtl.reviewableYn} == 'Y' and ${ordDtl.reviewSq} == null">
+							<!-- //주문접수 -->
+							
+							<!-- 상품준비중 -->
+							<th:block th:if="${ordDtl.ordDtlStat} == 'G013_30'">
 								<div class="goods_txt">
-									<p class="cf_txt cf_desc">리뷰를 작성하면 다른 구매자에게 도움이 될 수 있습니다</p>
+									<p class="cf_txt cf_desc">배송할 상품을 준비 중입니다.</p>
+									<th:block th:if="${ordDtl.delvResDt} != null">
+										<p class="cf_txt cf_desc" th:text="|예약판매 상품으로 ${ordDtl.delvResDt} 출고 예정입니다.|"></p>
+									</th:block>
 								</div>
 							</th:block>
-							<!-- //리뷰사용가능, 리뷰등록전일때 -->
-						</th:block>
-						<!-- //구매확정 -->
-					</th:block>
-					<!-- //일반배송일때 -->
-					
-					<!-- 선물배송일때 -->
-					<th:block th:if="${ordDtl.giftPackYn} == 'Y'">
-						<div class="goods_txt">
-							<!-- 배송지등록전 -->
-							<th:block th:if="${ordDtl.recipBaseAddr == ''} and ${ordDtl.giftLimitDay} >= 0">
-								<p class="cf_txt cf_desc"><span th:text="|‘${ordDtl.recipNm}’|"></span>님 주소를 입력하기 전입니다.</p>
-								<p class="period">입력기한 <span th:text="${ordDtl.giftLimitDt}"></span></p>
+							<!-- //상품준비중 -->
+							
+							<!-- 배송준비중 -->
+							<th:block th:if="${ordDtl.ordDtlStat} == 'G013_40'">
+								<div class="goods_txt">
+									<p class="cf_txt cf_desc">상품 준비가 완료되어 곧 배송될 예정입니다.</p>
+									<th:block th:if="${ordDtl.delvResDt} != null">
+										<p class="cf_txt cf_desc" th:text="|예약판매 상품으로 ${ordDtl.delvResDt} 출고 예정입니다.|"></p>
+									</th:block>
+								</div>
 							</th:block>
-							<!-- //배송지등록전 -->
+							<!-- //배송준비중 -->
 							
-							<!-- 배송지등록완료, 결제전취소, 결제후취소 아닐경우 -->
-							<th:block th:if="${ordDtl.ordDtlStat} == 'G013_50' or ${ordDtl.ordDtlStat} == 'G013_55' or ${ordDtl.ordDtlStat} == 'G013_60' or ${ordDtl.ordDtlStat} == 'G013_70'">
-								<th:block th:if="${ordDtl.recipBaseAddr != ''} and ${ordDtl.ordDtlStat} != 'G013_98' and ${ordDtl.ordDtlStat} != 'G013_99'">
-									<p class="cf_txt cf_desc"><span th:text="|‘${ordDtl.recipNm}’|"></span>님께 선물이 발송되었습니다.</p>
-								</th:block>
+							<!-- 배송완료 -->
+							<th:block th:if="${ordDtl.ordDtlStat} == 'G013_60'">
+								<div class="goods_txt">
+									<p class="cf_txt cf_desc">15일 후 자동으로 구매확정됩니다.</p>
+								</div>
 							</th:block>
-							<!-- //배송지등록완료, 결제전취소, 결제후취소 아닐경우 -->
+							<!-- //배송완료 -->
 							
-							<!-- 선물 취소 -->
-							<th:block th:if="${ordDtl.ordDtlStat} == 'G013_98' and ${ordDtl.ordDtlStat} == 'G013_99'">
-								<p class="cf_txt cf_desc">주소 입력 기한이 경과되어 선물이 취소 되었습니다.</p>
+							<!-- 구매확정 -->
+							<th:block th:if="${ordDtl.ordDtlStat} == 'G013_70'">
+								<!-- 리뷰사용가능, 리뷰등록전일때 -->
+								<th:block th:if="${ordDtl.reviewableYn} == 'Y' and ${ordDtl.reviewSq} == null">
+									<div class="goods_txt">
+										<p class="cf_txt cf_desc">리뷰를 작성하면 다른 구매자에게 도움이 될 수 있습니다</p>
+									</div>
+								</th:block>
+								<!-- //리뷰사용가능, 리뷰등록전일때 -->
 							</th:block>
-							<!-- //선물 취소 -->
-						</div>
-					</th:block>
-					<!-- //선물배송일때 -->
-					<!-- //상태문구정리 -->
-					
-					<!-- 사은품 영역 -->
-					<th:block th:if="${order.freeGiftList != null and #lists.size(order.freeGiftList) > 0}">
-						<div class="goods_gift">
-							<div class="gift_wrap">
-								<div class="title">사은품</div>
-								<div class="li_gift">
-									<ul>
-										<th:block th:each="freeGift , j : ${order.freeGiftList}">
-											<li>
-												<span class="gift_name" th:text="${freeGift.goodsNm}"></span> 
-												<th:block th:if="${freeGift.usePoint} > 0">
-													<span class="deduct_p" th:text="|(-${freeGift.usePoint.addComma()}P)|"></span>
-												</th:block>
-											</li>
-										</th:block>
-									</ul>
+							<!-- //구매확정 -->
+						</th:block>
+						<!-- //일반배송일때 -->
+						
+						<!-- 선물배송일때 -->
+						<th:block th:if="${ordDtl.giftPackYn} == 'Y'">
+							<div class="goods_txt">
+								<!-- 배송지등록전 -->
+								<th:block th:if="${ordDtl.recipBaseAddr == ''} and ${ordDtl.giftLimitDay} >= 0">
+									<p class="cf_txt cf_desc"><span th:text="|‘${ordDtl.recipNm}’|"></span>님 주소를 입력하기 전입니다.</p>
+									<p class="period">입력기한 <span th:text="${ordDtl.giftLimitDt}"></span></p>
+								</th:block>
+								<!-- //배송지등록전 -->
+								
+								<!-- 배송지등록완료, 결제전취소, 결제후취소 아닐경우 -->
+								<th:block th:if="${ordDtl.ordDtlStat} == 'G013_50' or ${ordDtl.ordDtlStat} == 'G013_55' or ${ordDtl.ordDtlStat} == 'G013_60' or ${ordDtl.ordDtlStat} == 'G013_70'">
+									<th:block th:if="${ordDtl.recipBaseAddr != ''} and ${ordDtl.ordDtlStat} != 'G013_98' and ${ordDtl.ordDtlStat} != 'G013_99'">
+										<p class="cf_txt cf_desc"><span th:text="|‘${ordDtl.recipNm}’|"></span>님께 선물이 발송되었습니다.</p>
+									</th:block>
+								</th:block>
+								<!-- //배송지등록완료, 결제전취소, 결제후취소 아닐경우 -->
+								
+								<!-- 선물 취소 -->
+								<th:block th:if="${ordDtl.ordDtlStat} == 'G013_98' and ${ordDtl.ordDtlStat} == 'G013_99'">
+									<p class="cf_txt cf_desc">주소 입력 기한이 경과되어 선물이 취소 되었습니다.</p>
+								</th:block>
+								<!-- //선물 취소 -->
+							</div>
+						</th:block>
+						<!-- //선물배송일때 -->
+						<!-- //상태문구정리 -->
+						
+						<!-- 사은품 영역 -->
+						<th:block th:if="${order.freeGiftList != null and #lists.size(order.freeGiftList) > 0}">
+							<div class="goods_gift">
+								<div class="gift_wrap">
+									<div class="title">사은품</div>
+									<div class="li_gift">
+										<ul>
+											<th:block th:each="freeGift , j : ${order.freeGiftList}">
+												<li>
+													<span class="gift_name" th:text="${freeGift.goodsNm}"></span> 
+													<th:block th:if="${freeGift.usePoint} > 0">
+														<span class="deduct_p" th:text="|(-${#numbers.formatInteger(freeGift.usePoint, 1, 'COMMA')}P)|"></span>
+													</th:block>
+												</li>
+											</th:block>
+										</ul>
+									</div>
 								</div>
 							</div>
-						</div>
-					</th:block>
-					<!-- //사은품 영역 -->
-				</div>
-				<!-- //주문 접수 -->
+						</th:block>
+						<!-- //사은품 영역 -->
+					</div>
+					<!-- //주문 접수 -->
+				</th:block>
 			</th:block>
 		</th:block>
+		<!-- //주문목록이 있을때 -->
+		<!-- 주문목록이 없을때 -->
+		<th:block th:if="${#lists.size(orderList) < 1}">
+			<div class="nodata">
+				<div class="txt_box">
+					<p>주문내역이 없습니다.<br/></p>
+				</div>
+			</div>
+		</th:block>
+		<!-- //주문목록이 없을때 -->
 	</div>
 </div>
 

+ 0 - 21
src/main/webapp/WEB-INF/views/mob/order/OrderDcAmtInfoMob.html

@@ -156,27 +156,6 @@
 								</div>
 							</th:block>
 							<!-- //선포인트금액 0보다 클때 적용 -->
-							<!-- 선포인트금액 1보다 작을때 적용 -->
-							<th:block th:if="${prePntDcAmt} < 1">
-								<div>
-									<dt>선 포인트 사용</dt>
-									<dd>
-										<div class="form_field">
-											<input type="hidden" name="rmPrePntAmt" th:value="${prePntDcAmt}"/>
-											<div>
-												<input type="radio" name="rdi-beforpoint" id="rdi-beforpoint11" value="N"> 
-												<label for="rdi-beforpoint1"><span>사용 안함</span></label>
-											</div>
-											<div>
-												<input type="radio" name="rdi-beforpoint" id="rdi-beforpoint12" value="Y" checked>
-												<label for="rdi-beforpoint2"><span>사용함</span></label> 
-												<span class="useable_point">(<em th:text="|${#numbers.formatInteger(prePntDcAmt, 1, 'COMMA')}P|"></em>&nbsp;사용 가능)</span>
-											</div>
-										</div>
-									</dd>
-								</div>
-							</th:block>
-							<!-- //선포인트금액 1보다 작을때 적용 -->
 							
 							<!-- 포인트금액 0보다 클때 적용 -->
 							<th:block th:if="${rmPntAmt} > 0">

+ 3 - 3
src/main/webapp/WEB-INF/views/mob/order/OrderFormMob.html

@@ -94,7 +94,7 @@
 			<th style="display:none">optCd2</th>
 			<th style="display:none">itemQtyr</th>
 			<th>orgCurrPrice</th>
-			<th>cpn1DcSq</th>
+			<th>cpn1CpnSq</th>
 			<th>cpn1DcAmt</th>
 			<th>optAddPrice</th>
 			<th>goodsQty</th>
@@ -1068,7 +1068,7 @@ var paymentInfoSet = function() {
 							,"currPrice"		: $(this).parent().find(".orgCurrPrice").text()
 							,"optAddPrice"		: $(this).parent().find(".optAddPrice").text()
 							,"ordAmt"			: $(this).parent().find(".ordAmt").text()
-							,"cpn1DcSq"			: $(this).parent().find(".cpn1DcSq").text()
+							,"cpn1CpnSq"		: $(this).parent().find(".cpn1CpnSq").text()
 							,"cpn1DcAmt"		: $(this).parent().find(".cpn1DcAmt").text()
 							,"goodsQty"			: $(this).parent().find(".goodsQty").text()
 							,"tmtb1Sq"			: $(this).parent().find(".tmtb1Sq").text()
@@ -1427,7 +1427,7 @@ var dcAmtInfoSet = function() {
 					}
 					
 					// 결제금액을 초과 할 수 없습니다.
-					if (pntDcamt > realOrdAmt) {
+					if (pntDcAmt > realOrdAmt) {
 						mcxDialog.alert("포인트를 입력하신 후 다시 시도해주세요.");
 						// 포인트리셋기능
 						pntDcAmtReset();

+ 0 - 21
src/main/webapp/WEB-INF/views/web/order/OrderDcAmtInfoWeb.html

@@ -161,27 +161,6 @@
 					</div>
 				</th:block>
 				<!-- //선포인트금액 0보다 클때 적용 -->
-				<!-- 선포인트금액 1보다 작을때 적용 -->
-				<th:block th:if="${prePntDcAmt} < 1">
-					<div>
-						<dt>선 포인트 사용</dt>
-						<dd>
-							<div class="form_field">
-								<input type="hidden" name="rmPrePntAmt" th:value="${prePntDcAmt}"/>
-								<div>
-									<input type="radio" name="rdi-beforpoint" id="rdi-beforpoint11" value="N"> 
-									<label for="rdi-beforpoint1"><span>사용 안함</span></label>
-								</div>
-								<div>
-									<input type="radio" name="rdi-beforpoint" id="rdi-beforpoint12" value="Y" checked> 
-									<label for="rdi-beforpoint2"><span>사용함</span></label> 
-									<span class="useable_point">(<em th:text="|${#numbers.formatInteger(prePntDcAmt, 1, 'COMMA')}원|"></em>&nbsp;사용 가능)</span>
-								</div>
-							</div>
-						</dd>
-					</div>
-				</th:block>
-				<!-- //선포인트금액 1보다 작을때 적용 -->
 
 				<!-- 포인트금액 0보다 클때 적용 -->
 				<th:block th:if="${rmPntAmt} > 0">

+ 3 - 3
src/main/webapp/WEB-INF/views/web/order/OrderFormWeb.html

@@ -94,7 +94,7 @@
 			<th style="display:none">optCd2</th>
 			<th style="display:none">itemQtyr</th>
 			<th>orgCurrPrice</th>
-			<th>cpn1DcSq</th>
+			<th>cpn1CpnSq</th>
 			<th>cpn1DcAmt</th>
 			<th>optAddPrice</th>
 			<th>goodsQty</th>
@@ -1041,7 +1041,7 @@ var paymentInfoSet = function() {
 							,"currPrice"		: $(this).parent().find(".orgCurrPrice").text()
 							,"optAddPrice"		: $(this).parent().find(".optAddPrice").text()
 							,"ordAmt"			: $(this).parent().find(".ordAmt").text()
-							,"cpn1DcSq"			: $(this).parent().find(".cpn1DcSq").text()
+							,"cpn1CpnSq"		: $(this).parent().find(".cpn1CpnSq").text()
 							,"cpn1DcAmt"		: $(this).parent().find(".cpn1DcAmt").text()
 							,"goodsQty"			: $(this).parent().find(".goodsQty").text()
 							,"tmtb1Sq"			: $(this).parent().find(".tmtb1Sq").text()
@@ -1337,7 +1337,7 @@ var dcAmtInfoSet = function() {
 					}
 					
 					// 결제금액을 초과 할 수 없습니다.
-					if (pntDcamt > realOrdAmt) {
+					if (pntDcAmt > realOrdAmt) {
 						mcxDialog.alert("포인트를 입력하신 후 다시 시도해주세요.");
 						// 포인트리셋기능
 						pntDcAmtReset();