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

마이페이지 교환 화면 임시 커밋

card007 5 лет назад
Родитель
Сommit
791838f68d

+ 28 - 1
src/main/java/com/style24/front/biz/web/TsfMypageController.java

@@ -739,6 +739,33 @@ public class TsfMypageController extends TsfBaseController {
 		return cartService.getAddCartInfoForMypage(cart);
 	}
 
+	/**
+	 * 환불계좌 등록 팝업
+	 * 
+	 * @param OrderChange
+	 * @return ModelAndView
+	 * @author card007
+	 * @since 2021. 04. 05
+	 */
+	@ResponseBody
+	@RequestMapping(value = "/refund/account/register/popup/form")
+	public ModelAndView registerRefundAccountPopupForm(@RequestBody OrderChange orderChange) {
+		ModelAndView mav = new ModelAndView();
+
+		// 계좌인증용 은행코드 조회
+		mav.addObject("bankList", rendererService.getAvailCommonCodeList("G942"));
+
+		// 계좌주명 설정
+		mav.addObject("accountNm", orderChange.getAccountNm());
+		
+		// 주문번호 설정
+		mav.addObject("ordNo", orderChange.getOrdNo());
+
+		mav.setViewName(super.getDeviceViewName("popup/RefundAccountAddPopupForm"));
+
+		return mav;
+	}
+
 	/**
 	 * 마이페이지 STYLE24 포인트화면
 	 *
@@ -1391,7 +1418,7 @@ public class TsfMypageController extends TsfBaseController {
 
 		GagaMap result = coreCustomerService.checkAccount(custAccount);
 		
-		if("0000".equals(result.get("recCd"))) {
+		if("0000".equals(result.get("resCd"))) {
 			result.set("status", GagaResponseStatus.SUCCESS.getCode());
 			result.set("isValid", true);
 		} else {

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

@@ -101,7 +101,7 @@
 		             , OD.ORD_QTY - OD.CNCL_RTN_QTY - IF(OCD.ORD_REQ_CHG_QTY IS NULL, 0, OCD.ORD_REQ_CHG_QTY * ODI.ITEM_QTY) AS ORD_CAN_CHG_QTY
 		             , CA.BANK_CD
 		             , CA.ACCOUNT_NO
-		             , CA.ACCOUNT_NM
+		             , IFNULL(CA.ACCOUNT_NM, O.ORD_NM)                                  AS ACCOUNT_NM
 		          FROM TB_ORDER O
 		         INNER JOIN TB_ORDER_DETAIL OD
 		            ON O.ORD_NO = OD.ORD_NO
@@ -235,7 +235,7 @@
 		             , OD.ORD_QTY - OD.CNCL_RTN_QTY - IF(OCD.ORD_REQ_CHG_QTY IS NULL, 0, OCD.ORD_REQ_CHG_QTY * ODI.ITEM_QTY) AS ORD_CAN_CHG_QTY
 		             , CA.BANK_CD
 		             , CA.ACCOUNT_NO
-		             , CA.ACCOUNT_NM
+		             , IFNULL(CA.ACCOUNT_NM, O.ORD_NM)                                  AS ACCOUNT_NM
 		          FROM TB_ORDER O
 		         INNER JOIN TB_ORDER_DETAIL OD
 		            ON O.ORD_NO = OD.ORD_NO

+ 308 - 255
src/main/webapp/WEB-INF/views/web/mypage/MypageReturnFormWeb.html

@@ -32,298 +32,317 @@
 				</div>
 			</div>
 			<div class="cont">
-				<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="${returnList.returnList}" th:each="return, status : ${returnList.returnList}" 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=${return.goodsCd}" onclick="fnGoToGoodsDetail(this)">
-												<span class="thumb">
-													<img th:src="${imageUrl + '/' + return.sysImgNm}" width="100%" alt="">
-												</span>
+				<form id="returnForm">
+					<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="${returnList.returnList}" th:each="return, status : ${returnList.returnList}" 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=${return.goodsCd}" onclick="fnGoToGoodsDetail(this)">
+													<span class="thumb">
+														<img th:src="${imageUrl + '/' + return.sysImgNm}" width="100%" alt="">
+													</span>
+													<p>
+														<span class="brand" th:text="${return.brandNm}"></span>
+														<span class="tag primary" th:if="${return.shotDelvYn == 'Y'}">총알배송</span>
+														<span class="tag" th:if="${return.shotDelvYn == 'N' and return.selfGoodsYn == 'Y'}">STYLE24 일반배송</span>
+														<span class="tag" th:if="${return.selfGoodsYn == 'N'}">업체직배송</span>
+													</p>
+													<p>
+														<span class="name" th:text="${return.goodsNm}"></span>
+													</p>
+												</a>
+											</div>
+											<div class="gd_opt">
+												<div class="option_wrap">
+													<span class="title sr-only">주문 옵션</span>
+													<span class="option" th:if="${return.goodsType == 'G056_S'}" th:each="option, status : ${return.colorNmArr}" th:text="|${return.itemNmArr[status.index]} / ${option} / ${return.optCd2Arr[status.index]}|"></span>
+													<span class="option" th:unless="${return.goodsType == 'G056_S'}" th:text="|${return.colorNm} / ${return.optCd2}|"></span>
+												</div>
+											</div>
+											<div class="gd_calc">
 												<p>
-													<span class="brand" th:text="${return.brandNm}"></span>
-													<span class="tag primary" th:if="${return.shotDelvYn == 'Y'}">총알배송</span>
-													<span class="tag" th:if="${return.shotDelvYn == 'N' and return.selfGoodsYn == 'Y'}">STYLE24 일반배송</span>
-													<span class="tag" th:if="${return.selfGoodsYn == 'N'}">업체직배송</span>
+													<span class="count"><em th:text="${return.ordQty - return.cnclRtnQty}"></em>개</span>
 												</p>
 												<p>
-													<span class="name" th:text="${return.goodsNm}"></span>
+													<span class="price_org" th:if="${(return.ordAmt - return.cnclRtnAmt - return.cpn1DcAmt) > (return.realOrdAmt + return.pntDcAmt + return.gfcdUseAmt)}"><em th:text="${#numbers.formatInteger(return.ordAmt - return.cnclRtnAmt - return.cpn1DcAmt, 1, 'COMMA')}"></em>원</span>
+													<span class="price_sale"><em th:text="${#numbers.formatInteger(return.realOrdAmt + return.pntDcAmt + return.gfcdUseAmt, 1, 'COMMA')}"></em>원</span>
 												</p>
-											</a>
-										</div>
-										<div class="gd_opt">
-											<div class="option_wrap">
-												<span class="title sr-only">주문 옵션</span>
-												<span class="option" th:if="${return.goodsType == 'G056_S'}" th:each="option, status : ${return.colorNmArr}" th:text="|${return.itemNmArr[status.index]} / ${option} / ${return.optCd2Arr[status.index]}|"></span>
-												<span class="option" th:unless="${return.goodsType == 'G056_S'}" th:text="|${return.colorNm} / ${return.optCd2}|"></span>
 											</div>
 										</div>
-										<div class="gd_calc">
-											<p>
-												<span class="count"><em th:text="${return.ordQty - return.cnclRtnQty}"></em>개</span>
-											</p>
-											<p>
-												<span class="price_org" th:if="${(return.ordAmt - return.cnclRtnAmt - return.cpn1DcAmt) > (return.realOrdAmt + return.pntDcAmt + return.gfcdUseAmt)}"><em th:text="${#numbers.formatInteger(return.ordAmt - return.cnclRtnAmt - return.cpn1DcAmt, 1, 'COMMA')}"></em>원</span>
-												<span class="price_sale"><em th:text="${#numbers.formatInteger(return.realOrdAmt + return.pntDcAmt + return.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=${return.ordDtlNo}, ordCanChgQty=${return.ordCanChgQty}"/>
-															<div class="select">선택</div>
-															<ul class="list">
-																<!-- 선택처리 class="selected" / 선택불가 aria-disabled="true" 추가  -->
-																<li class="selected" qty="0" onclick="fnChangeReturnQty(this);">선택</li>
-																<li th:if="${return.ordCanChgQty > 0}" th:each="num : ${#numbers.sequence(1,return.ordCanChgQty)}" th:attr="qty=${num}" th:text="${num}" onclick="fnChangeReturnQty(this);"></li>
-															</ul>
+										<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=${return.ordDtlNo}, ordCanChgQty=${return.ordCanChgQty}"/>
+																<div class="select">선택</div>
+																<ul class="list">
+																	<!-- 선택처리 class="selected" / 선택불가 aria-disabled="true" 추가  -->
+																	<li class="selected" qty="0" onclick="fnChangeReturnQty(this);">선택</li>
+																	<li th:if="${return.ordCanChgQty > 0}" th:each="num : ${#numbers.sequence(1,return.ordCanChgQty)}" th:attr="qty=${num}" th:text="${num}" onclick="fnChangeReturnQty(this);"></li>
+																</ul>
+															</div>
 														</div>
 													</div>
-												</div>
-											</form>
+												</form>
+											</div>
 										</div>
 									</div>
+									<div class="order_text">
+										<p>반품하실 상품의 수량을 선택하신 후 반품 신청을 하실 수 있습니다.</p>
+									</div>
 								</div>
-								<div class="order_text">
-									<p>반품하실 상품의 수량을 선택하신 후 반품 신청을 하실 수 있습니다.</p>
-								</div>
+								<!-- //주문상품 -->
+								</th:block>
 							</div>
-							<!-- //주문상품 -->
-							</th:block>
 						</div>
-					</div>
-					<h4 class="subH3">반품 사유</h4>
-					<div class="tbl type1">
-						<table>
-							<tbody>
-								<tr>
-									<td>
-										<div class="form_field">
-											<div class="select_custom select_reason">
-												<div class="combo">
-													<input type="hidden" name="chgReason"/>
-													<div class="select">반품 사유를 선택하세요.</div>
-													<ul class="list">
-														<!-- 선택처리 class="selected" / 선택불가 aria-disabled="true" 추가  -->
-														<li class="selected">반품 사유를 선택하세요.</li>
-														<li th:if="${returnReason}" th:each="oneData, status : ${returnReason}" th:attr="chgReason=${oneData.cd}" th:text="${oneData.cdNm}" onclick="fnChangeReturnReason(this);"></li>
-													</ul>
+						<h4 class="subH3">반품 사유</h4>
+						<div class="tbl type1">
+							<table>
+								<tbody>
+									<tr>
+										<td>
+											<div class="form_field">
+												<div class="select_custom select_reason">
+													<div class="combo">
+														<input type="hidden" name="chgReason"/>
+														<div class="select">반품 사유를 선택하세요.</div>
+														<ul class="list">
+															<!-- 선택처리 class="selected" / 선택불가 aria-disabled="true" 추가  -->
+															<li class="selected">반품 사유를 선택하세요.</li>
+															<li th:if="${returnReason}" th:each="oneData, status : ${returnReason}" th:attr="chgReason=${oneData.cd}" th:text="${oneData.cdNm}" onclick="fnChangeReturnReason(this);"></li>
+														</ul>
+													</div>
 												</div>
 											</div>
-										</div>
-									</td>
-								</tr>
-								<tr>
-									<td>
-										<div class="form_field">
-											<div class="input_wrap">
-												<textarea class="doc_reason" name="chgMemo" id="chgMemo" cols="30" rows="10" placeholder="자세한 사유를 입력해주세요."  onkeyup="cfnGetTextLength(this, 200, $('#return_cnt'));" style="resize: none;"></textarea>
-												<p class="txt_cnt"><span id="return_cnt" class="c_primary">0</span>/200</p>
-											</div>
-										</div>
-									</td>
-								</tr>
-							</tbody>
-						</table>
-					</div>
-					<h4 class="subH3">반품 방식 선택</h4>
-					<div class="tbl type1">
-						<table>
-							<tbody>
-								<tr>
-									<td>
-										<div class="retrieve_method">
+										</td>
+									</tr>
+									<tr>
+										<td>
 											<div class="form_field">
-												<div>
-													<input type="radio" name="wdGb" id="withdraw" value="W" checked>
-													<label for="withdraw"><span>방문회수<em>택배사에서 고객에게 방문하여 회수</em></span></label>
-												</div>
-												<div>
-													<input type="radio" name="wdGb" id="direct" value="D">
-													<label for="direct"><span>직접배송<em>고객이 반품지로 직접 반송</em></span></label>
+												<div class="input_wrap">
+													<textarea class="doc_reason" name="chgMemo" id="chgMemo" cols="30" rows="10" placeholder="자세한 사유를 입력해주세요."  onkeyup="cfnGetTextLength(this, 200, $('#return_cnt'));" style="resize: none;"></textarea>
+													<p class="txt_cnt"><span id="return_cnt" class="c_primary">0</span>/200</p>
 												</div>
 											</div>
-										</div>
-									</td>
-								</tr>
-							</tbody>
-						</table>
-					</div>
-					<div class="retrieve_box visit" style="display:block;" id="chgerLocation">
-						<h4 class="subH3">반품 회수지 주소 <span class="tit_info">택배사에서 반품 상품을 직접 회수할 장소 선택</span></h4>
+										</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 id="chgerNm" th:text="${deliveryAddrInfo.recipNm}"></td>
-										<input type="hidden" name="chgerNm" th:value="${deliveryAddrInfo.recipNm}">
-									</tr>
-									<tr>
-										<th>연락처</th>
-										<td id="chgerPhnno" th:text="${deliveryAddrInfo.recipPhnno}"></td>
-										<input type="hidden" name="chgerPhnno" th:value="${deliveryAddrInfo.recipPhnno}">
-									</tr>
-									<tr>
-										<th>주소</th>
-										<td id="chgerAddr">
-											<th:block th:text="|${deliveryAddrInfo.recipBaseAddr} ${deliveryAddrInfo.recipDtlAddr}|"></th:block>
-											<button type="button" class="btn btn_default btn_sm" onclick="fnChangeDeliveryAddr('chger');"><span>회수지 변경</span></button>
+										<td>
+											<div class="retrieve_method">
+												<div class="form_field">
+													<div>
+														<input type="radio" name="wdGb" id="withdraw" value="W" checked>
+														<label for="withdraw"><span>방문회수<em>택배사에서 고객에게 방문하여 회수</em></span></label>
+													</div>
+													<div>
+														<input type="radio" name="wdGb" id="direct" value="D">
+														<label for="direct"><span>직접배송<em>고객이 반품지로 직접 반송</em></span></label>
+													</div>
+												</div>
+											</div>
 										</td>
-										<input type="hidden" name="chgerZipcode" th:value="${deliveryAddrInfo.chgerZipcode}">
-										<input type="hidden" name="chgerBaseAddr" th:value="${deliveryAddrInfo.recipBaseAddr}">
-										<input type="hidden" name="chgerDtlAddr" th:value="${deliveryAddrInfo.recipDtlAddr}">
-										<input type="hidden" name="chgerRtnMemo" th:value="${deliveryAddrInfo.chgerRtnMemo}">
 									</tr>
 								</tbody>
 							</table>
 						</div>
-					</div>
-					<div class="retrieve_box direct" style="display:none;" id="returnLocation">
-						<h4 class="subH3">반송 정보</h4>
-						<div class="tbl type1">
+						<div class="retrieve_box visit" style="display:block;" id="chgerLocation">
+							<h4 class="subH3">반품 회수지 주소 <span class="tit_info">택배사에서 반품 상품을 직접 회수할 장소 선택</span></h4>
+							<div class="tbl type1">
+								<table>
+									<colgroup>
+										<col width="210">
+										<col width="*">
+									</colgroup>
+									<tbody>
+										<tr>
+											<th>성명</th>
+											<td id="chgerNm" th:text="${deliveryAddrInfo.recipNm}"></td>
+											<input type="hidden" name="chgerNm" th:value="${deliveryAddrInfo.recipNm}">
+										</tr>
+										<tr>
+											<th>연락처</th>
+											<td id="chgerPhnno" th:text="${deliveryAddrInfo.recipPhnno}"></td>
+											<input type="hidden" name="chgerPhnno" th:value="${deliveryAddrInfo.recipPhnno}">
+										</tr>
+										<tr>
+											<th>주소</th>
+											<td id="chgerAddr">
+												<th:block th:text="|${deliveryAddrInfo.recipBaseAddr} ${deliveryAddrInfo.recipDtlAddr}|"></th:block>
+												<button type="button" class="btn btn_default btn_sm" onclick="fnChangeDeliveryAddr('chger');"><span>회수지 변경</span></button>
+											</td>
+											<input type="hidden" name="chgerZipcode" th:value="${deliveryAddrInfo.chgerZipcode}">
+											<input type="hidden" name="chgerBaseAddr" th:value="${deliveryAddrInfo.recipBaseAddr}">
+											<input type="hidden" name="chgerDtlAddr" th:value="${deliveryAddrInfo.recipDtlAddr}">
+											<input type="hidden" name="chgerRtnMemo" th:value="${deliveryAddrInfo.chgerRtnMemo}">
+										</tr>
+									</tbody>
+								</table>
+							</div>
+						</div>
+						<div class="retrieve_box direct" style="display:none;" id="returnLocation">
+							<h4 class="subH3">반송 정보</h4>
+							<div class="tbl type1">
+								<table>
+									<colgroup>
+										<col width="210">
+										<col width="*">
+									</colgroup>
+									<tbody>
+										<tr>
+											<th>
+												반송주소
+											</th>
+											<td th:text="|${deliveryAddrInfo.rtnLocBaseAddr} ${deliveryAddrInfo.rtnLocDtlAddr}|"></td>
+										</tr>
+										<tr>
+											<th>
+												반송 송장번호
+											</th>
+											<td>
+												<form class="form_wrap">
+													<div class="form_field">
+														<div class="input_wrap">
+															<input type="text" class="form_control" name="wdInvoiceNo" placeholder="송장번호를 입력해주세요.">
+														</div>
+													</div>
+												</form>
+											</td>
+										</tr>
+									</tbody>
+								</table>
+							</div>
+						</div>
+						<h4 class="subH3">환불정보</h4>
+						<div class="tbl type6">
 							<table>
 								<colgroup>
-									<col width="210">
-									<col width="*">
+									<col width="50%">
+									<col width="50%">
 								</colgroup>
 								<tbody>
 									<tr>
-										<th>
-											반송주소
-										</th>
-										<td th:text="|${deliveryAddrInfo.rtnLocBaseAddr} ${deliveryAddrInfo.rtnLocDtlAddr}|"></td>
-									</tr>
-									<tr>
-										<th>
-											반송 송장번호
-										</th>
 										<td>
-											<form class="form_wrap">
-												<div class="form_field">
-													<div class="input_wrap">
-														<input type="text" class="form_control" name="wdInvoiceNo" placeholder="송장번호를 입력해주세요.">
-													</div>
+											<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>
-											</form>
+											</dl>
+										</td>
+										<td>
+											<dl>
+												<div>
+													<dt>환불 수단</dt>
+													<dd th:if="${paymentInfo.pgGb == 'KCP'}" th:text="${paymentInfo.payMeansNm}"></dd>
+													<dd th:if="${paymentInfo.pgGb == 'NAVER'}">네이버페이</dd>
+													<dd th:if="${paymentInfo.pgGb == 'KAKAO'}">카카오페이</dd>
+													<dd th:if="${paymentInfo.pgGb == 'PAYCO'}">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>
 								</tbody>
 							</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_CRS_LIST)"><span>취소</span></button>
+							<button type="button" id="btn_refund_pop" class="btn btn_dark btn_md" onclick="fnReturn()"><span>반품 신청</span></button>
+						</div>
 					</div>
-					<h4 class="subH3">환불정보</h4>
-					<div class="tbl type6">
-						<table>
-							<colgroup>
-								<col width="50%">
-								<col width="50%">
-							</colgroup>
-							<tbody>
-								<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'}">네이버페이</dd>
-												<dd th:if="${paymentInfo.pgGb == 'KAKAO'}">카카오페이</dd>
-												<dd th:if="${paymentInfo.pgGb == 'PAYCO'}">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>
-							</tbody>
-						</table>
-					</div>
-					<div class="txt_info">
-						<ul>
-							<li>
-								카드사로 결제 취소 요청이 전달된 후 환불까지는 평일 기준 3 ~7일이 소요될 수 있습니다.
-							</li>
-						</ul>
-					</div>
+				</form>
+			</div>
+			<!-- // CONT-BODY -->
+		</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_CRS_LIST)"><span>취소</span></button>
-						<button type="button" id="btn_refund_pop" class="btn btn_dark btn_md" onclick="fnReturn()"><span>반품 신청</span></button>
-					</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 class="modal fade adrsModify_pop" id="adrsAddPop" tabindex="-1" role="dialog" aria-labelledby="adrsAddLabel" aria-hidden="true">
+			<div class="modal-dialog" role="document">
+				<div class="modal-content">
+					<!-- 배송지추가 팝업 내용 -->
 				</div>
 			</div>
-			<!-- // CONT-BODY -->
+			<a href="#close-modal" rel="modal:close" id="adrsAddPop_close" class="close-modal">Close</a>
 		</div>
 	</div>
 <script src="/ux/plugins/gaga/gaga.paging.js"></script>
@@ -334,7 +353,7 @@
 	let paymentInfo = [[${paymentInfo}]];
 	let usedGiftCardInfo = [[${usedGiftCardInfo}]];
 	let usedPointInfo = [[${usedPointInfo}]];
-	var isCustomer = true;
+	let isCustomer = true;
 	let jsonObj = {};
 	let addPayCost = 0;
 
@@ -397,14 +416,37 @@
 		}
 
 		// 환불계좌 체크
-		let accountNo = $('input[name=accountNo]').val();
-		let accountNm = $('input[name=accountNm]').val();
-		let bankCd = $('input[name=bankCd]').val();
+		let accountNo = $('#returnForm input[name=accountNo]').val();
+		let accountNm = $('#returnForm input[name=accountNm]').val();
+		let bankCd = $('#returnForm input[name=bankCd]').val();
 
-		if (paymentInfo.payMeans == 'G014_20' && paymentInfo.payStat == 'G016_00' && (gagajf.isNull(accountNo) || gagajf.isNull(accountNm) || gagajf.isNull(bankCd))) {
+		//if (paymentInfo.payMeans == 'G014_20' && paymentInfo.payStat == 'G016_00' && (gagajf.isNull(accountNo) || gagajf.isNull(accountNm) || gagajf.isNull(bankCd))) {
+		if ((gagajf.isNull(accountNo) || gagajf.isNull(accountNm) || gagajf.isNull(bankCd))) {
 			// TODO
 			// 환불계좌 등록 팝업
-			
+			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;
 		}
 
@@ -625,6 +667,17 @@
 		$('#chgerPhnno').text(chgerPhnno);
 		$('#chgerAddr').html(chgerAddr);
 	}
+
+	// 환불계좌 등록 콜백 처리
+	var fnRegisterAccountCallback = function(result) {
+		// 환불계좌 정보 설정
+		$('#returnForm input[name=accountNo]').val(result.accountNo);
+		$('#returnForm input[name=accountNm]').val(result.accountNm);
+		$('#returnForm input[name=bankCd]').val(result.bankCd);
+
+		// 반품처리
+		fnReturn();
+	}
 </script>
 
 </th:block>

+ 138 - 0
src/main/webapp/WEB-INF/views/web/popup/RefundAccountAddPopupFormWeb.html

@@ -0,0 +1,138 @@
+<!-- 환불계좌 등록 팝업 -->
+<div class="modal-header">
+	<h5 class="modal-title" id="refundLabel">환불계좌등록</h5>
+</div>
+<div class="modal-body">
+	<div class="pop_cont">
+		<form class="form_wrap" id="refundAccountForm">
+			<table>
+				<colgroup>
+					<col width="90">
+					<col width="380">
+				</colgroup>
+				<tbody>
+					<tr>
+						<th>
+							<span>예금주</span>
+						</th>
+						<td>
+							<div class="form_field">
+								<div class="input_wrap">
+									<input type="text" class="form_control" name="accountNm" th:value="${accountNm}" disabled="">
+								</div>
+							</div>
+							<div class="txt_info">
+								<ul>
+									<li>
+										회원명 본인이 예금주인 통장으로만 환불이 가능합니다.
+									</li>
+								</ul>
+							</div>
+						</td>
+					</tr>
+					<tr>
+						<th>
+							<span>은행명</span>
+						</th>
+						<td>
+							<div class="form_field">
+								<div class="select_custom select_bank">
+									<div class="combo">
+										<div class="select">은행명</div>
+										<ul class="list">
+											<li id="bankCd_" class="selected">
+												<div text="선택"></div>
+												<input type="hidden" name="bankCd" value=""/>
+											</li>
+											<th:block th:if="${bankList}" th:each="oneData, status : ${bankList}">
+												<li th:id="|bankCd_${oneData.cd}|">
+													<div th:text="${oneData.cdNm}"></div>
+													<input type="hidden" name="bankCd" th:value="${oneData.cd}"/>
+												</li>
+											</th:block>
+										</ul>
+									</div>
+								</div>
+							</div>
+						</td>
+					</tr>
+					<tr>
+						<th>
+							<span>계좌번호</span>
+						</th>
+						<td>
+							<div class="form_field">
+								<div class="input_wrap">
+									<input type="text" class="form_control" name="accountNo" value="" placeholder="계좌번호를 입력해주세요.">
+									<button type="button" id="confirmAccount" class="btn btn_dark btn_sm"><span>계좌인증</span></button>
+								</div>
+							</div>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+		</form>
+	</div>
+</div>
+<div class="modal-footer">
+	<button type="button" id="registerAccount" class="btn btn_dark"><span>계좌등록 후 환불신청</span></button>
+</div>
+
+<script th:inline="javascript">
+	let ordNo = [[${ordNo}]];
+	let isConfirm;
+
+	$(document).ready( function() {
+		var bank_selector = new sCombo('.select_custom.select_bank');
+	});
+
+	// 계좌인증 버튼 클릭 이벤트
+	$('#confirmAccount').click(function() {
+		let url = '/mypage/account/check';
+		let accountNm = $('#refundAccountForm input[name=accountNm]').val();
+		let accountNo = $('#refundAccountForm input[name=accountNo]').val();
+		let bankCd = $('#refundAccountForm input[name=bankCd]').val();
+
+		let data = {};
+		data.accountNm = accountNm;
+		data.accountNo = accountNo;
+		data.bankCd = bankCd;
+		data.ordNo = ordNo;
+
+		let jsonData = JSON.stringify(data);
+
+		gagajf.ajaxJsonSubmit(url, jsonData, function(result) {
+			console.log(result);
+			isConfirm = result.status == '0000';
+			if (result.status == '0000') {
+				isConfirm = true;
+				mcxDialog.alert('성공적으로 계좌인증이 되었습니다.')
+			} else {
+				isConfirm = false;
+				mcxDialog.alert(result.message);
+			}
+		});
+	});
+
+	// 계좌등록 후 환불신청 버튼 클릭 이벤트
+	$('#registerAccount').click(function() {
+		if (isConfirm) {
+			let accountNm = $('#refundAccountForm input[name=accountNm]').val();
+			let accountNo = $('#refundAccountForm input[name=accountNo]').val();
+			let bankCd = $('#refundAccountForm input[name=bankCd]').val();
+
+			let data = {};
+			data.accountNm = accountNm;
+			data.accountNo = accountNo;
+			data.bankCd = bankCd;
+
+			// 부모창으로 정보 전달
+			fnRegisterAccountCallback(data);
+
+			// 팝업 닫기
+			$(".close-modal").trigger("click");
+		} else {
+			mcxDialog.alert('계좌인증을 해주세요.');
+		}
+	});
+</script>