fix : 쇼핑몰 주문완료 화면 - 구독서비스 주문완료 분기 추가
This commit is contained in:
@@ -996,6 +996,14 @@ public interface BOOrdrMapper {
|
||||
public List<DataMap> selectMbrSubsvcOrdrList(BOOrdrDlvyVO ordrDlvyVO);
|
||||
|
||||
|
||||
/**
|
||||
* 사용자 > 주문완료 > 구독서비스 주문 목록 조회
|
||||
* @param ordrDlvyVO
|
||||
* @return List<DataMap>
|
||||
*/
|
||||
public List<DataMap> selectOrdrSubsvcDtllList(BOOrdrDlvyVO ordrDlvyVO);
|
||||
|
||||
|
||||
/**
|
||||
* 사용자 > 구독서비스 결제 > 구독서비스 주문 상품 목록 조회
|
||||
* @param subsvcVO
|
||||
|
||||
@@ -1981,7 +1981,13 @@ public class BOOrdrService{
|
||||
|
||||
DataMap ordrDtl = mapper.selectOrdrDtl(ordrVO);
|
||||
|
||||
List<DataMap> goodsList = mapper.selectOrdrGoodsDtllList(ordrVO);
|
||||
List<DataMap> goodsList = new ArrayList<>();
|
||||
if("Y".equals(ordrDlvyVO.getSubsvcAt())) {
|
||||
int subsvcInnb = ((BigInteger) ordrDtl.get("subsvcInnb")).intValue();
|
||||
goodsList = mapper.selectOrdrSubsvcDtllList(ordrDlvyVO);
|
||||
} else {
|
||||
goodsList = mapper.selectOrdrGoodsDtllList(ordrVO);
|
||||
}
|
||||
|
||||
List<DataMap> dscntList = selectOrdrGoodsDtllDscntList(ordrVO);
|
||||
|
||||
@@ -2025,7 +2031,7 @@ public class BOOrdrService{
|
||||
content.put("refundList", refundList);
|
||||
content.put("total", total);
|
||||
content.put("mlgAccmlNtcList", mlgAccmlNtcList);
|
||||
content.put("mlgAccmlAmt", goodsList.stream().mapToLong(obj -> (long) obj.get("mlgAmt")).sum());
|
||||
content.put("mlgAccmlAmt", goodsList.stream().mapToLong(obj -> ((Number) obj.get("mlgAmt")).longValue()).sum());
|
||||
content.put("totalDscntAmt", dscntList.stream().mapToLong(obj -> ((BigDecimal) obj.get("dscntAmt")).longValue()).sum());
|
||||
|
||||
return content;
|
||||
@@ -6024,6 +6030,7 @@ public class BOOrdrService{
|
||||
*/
|
||||
public Map<String, Object> selectOrdrCompt(BOOrdrVO ordrVO) {
|
||||
BOOrdrDlvyVO ordrDlvyVO = new BOOrdrDlvyVO();
|
||||
ordrVO.setSubsvcAt((String) mapper.selectOrdrDtl(ordrVO).get("subsvcAt"));
|
||||
|
||||
BeanUtils.copyProperties(ordrVO, ordrDlvyVO);
|
||||
|
||||
|
||||
@@ -36,6 +36,8 @@ public class BOOrdrDlvyVO extends AbstractVO {
|
||||
|
||||
private String sysDvCd; // 시스템 구분 코드
|
||||
|
||||
private String subsvcAt; // 구독서비스 여부
|
||||
|
||||
/** 현재 주문 상태 */
|
||||
private String currOrdrSttusCd;
|
||||
|
||||
|
||||
@@ -151,6 +151,9 @@ public class BOOrdrVO extends AbstractVO {
|
||||
/** 장바구니 고유번호 배열 */
|
||||
private String[] cartInnbs;
|
||||
|
||||
/** 구독서비스 주문여부 */
|
||||
private String subsvcAt;
|
||||
|
||||
/** 구독서비스 고유번호 */
|
||||
private String subsvcInnb;
|
||||
|
||||
|
||||
@@ -791,7 +791,10 @@ public class OrdrController {
|
||||
});
|
||||
|
||||
LinkedHashMap goodsOne = ((List<LinkedHashMap>) paramData.get("goodsList")).get(0);
|
||||
if(goodsOne.containsKey("subsvcInnb")) {
|
||||
Boolean subsvcAt = goodsOne.containsKey("subsvcInnb");
|
||||
if(subsvcAt) {
|
||||
model.addAttribute("subsvcInnb", goodsOne.get("subsvcInnb"));
|
||||
|
||||
BOSubsvcVO subsvcVO = new BOSubsvcVO();
|
||||
subsvcVO.setSopmalCd((String) goodsOne.get("sopmalCd"));
|
||||
subsvcVO.setSubsvcInnb(goodsOne.get("subsvcInnb").toString());
|
||||
@@ -1082,6 +1085,12 @@ public class OrdrController {
|
||||
log.debug("=================insertKcpSetle after ");
|
||||
|
||||
model.addAttribute("paramVO", payVO);
|
||||
if ("1".equals(content.get("status"))) { // 에러처리
|
||||
String subsvcInnb = request.getParameter("subsvc_innb");
|
||||
if(subsvcInnb != "") {
|
||||
model.addAttribute("subsvcInnb", subsvcInnb);
|
||||
}
|
||||
}
|
||||
|
||||
return "sopmal/ordr/OrdrRspnsKcpPayR";
|
||||
}
|
||||
|
||||
@@ -5594,6 +5594,51 @@
|
||||
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
|
||||
</select>
|
||||
|
||||
<!-- 사용자 > 주문완료 > 구독서비스 주문 목록 조회 -->
|
||||
<select id="selectOrdrSubsvcDtllList" parameterType="com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrDlvyVO" resultType="dataMap">
|
||||
<![CDATA[
|
||||
SELECT GO.SOPMAL_CD
|
||||
, GS.IMG AS GOODS_IMG_COURS
|
||||
, GS.SUBSVC_NM AS GOODS_NM
|
||||
, GS.SUBSVC_GNR_NM AS OPTN_NM
|
||||
, ITEM.INPUT_OPTN_TEXT
|
||||
, ITEM.CNT AS ORDR_QY
|
||||
, GS.SUBSVC_INNB AS GOODS_INNB
|
||||
, GO.RL_SETLE_AMT AS SLEPRIC
|
||||
, ITEM.DSCNT_AMT
|
||||
, ROUND((IFNULL(GO.RL_SETLE_AMT, 0) - IFNULL(ITEM.DSCNT_AMT, 0))) AS APPLY_DSCNT_AMT
|
||||
, ITEM.MLG_AMT
|
||||
FROM GC_ORDER GO
|
||||
INNER JOIN GC_SUBSVC GS ON GO.SUBSVC_INNB = GS.SUBSVC_INNB
|
||||
INNER JOIN (
|
||||
SELECT GOI.SOPMAL_CD
|
||||
, GOI.ORDR_INNB
|
||||
, MAX(GOI.GOODS_INNB) AS GOODS_INNB
|
||||
, MAX(GOIO.ORDR_DLVY_INNB) AS ORDR_DLVY_INNB
|
||||
, COUNT(DISTINCT GOI.ORDR_GOODS_INNB) AS CNT
|
||||
, SUM(GOIO.ORDR_QY) AS ORDR_QY
|
||||
, MAX(FN_GET_ORDER_INPUT_OPTN(GOI.SOPMAL_CD, GOI.ORDR_INNB, GOI.ORDR_GOODS_INNB, GOIO.ORDR_GOODS_OPTN_INNB)) AS INPUT_OPTN_TEXT
|
||||
, MAX(GOI.GOODS_IMG_COURS) AS GOODS_IMG_COURS
|
||||
, SUM(FN_GET_ORDER_GOODS_DSCNT_AMT_2(GOI.SOPMAL_CD, GOI.ORDR_GOODS_INNB, GOIO.ORDR_GOODS_OPTN_INNB)) AS DSCNT_AMT
|
||||
, SUM(FN_GET_ORDER_ACCML_MLG_AMT(GOI.SOPMAL_CD, GOI.ORDR_INNB, GOI.ORDR_GOODS_INNB, GOIO.ORDR_GOODS_OPTN_INNB)) AS MLG_AMT
|
||||
FROM GC_ORDER_ITEM GOI
|
||||
INNER JOIN GC_ORDER_ITEM_OPTION GOIO ON GOI.SOPMAL_CD = GOIO.SOPMAL_CD
|
||||
AND GOI.ORDR_GOODS_INNB = GOIO.ORDR_GOODS_INNB
|
||||
WHERE GOI.SOPMAL_CD = #{sopmalCd}
|
||||
AND GOI.ORDR_INNB = #{ordrInnb}
|
||||
AND GOI.GOODS_KND_CD = '01'
|
||||
) ITEM ON ITEM.SOPMAL_CD = GO.SOPMAL_CD
|
||||
AND ITEM.ORDR_INNB = GO.ORDR_INNB
|
||||
LEFT JOIN GC_ORDER_SETLE GOS ON GOS.SOPMAL_CD = GO.SOPMAL_CD
|
||||
AND GOS.ORDR_INNB = GO.ORDR_INNB
|
||||
WHERE GO.USE_AT = 'Y'
|
||||
AND GO.SUBSVC_AT = 'Y' /*구독서비스*/
|
||||
AND GO.SOPMAL_CD = #{sopmalCd}
|
||||
AND GO.ORDR_INNB = #{ordrInnb}
|
||||
ORDER BY GO.REGIST_DT desc
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 사용자 > 구독서비스 결제 > 구독서비스 주문 상품 목록 조회 -->
|
||||
<select id="selectSubsvcGoodsList" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO" resultType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO">
|
||||
WITH RECURSIVE seq AS (
|
||||
|
||||
@@ -58,7 +58,10 @@
|
||||
|
||||
/* 주문/배송 목록 화면 이동 버튼 선택 이벤트 */
|
||||
$('#btnOrdrList').on('click', function() {
|
||||
location.href = '<c:url value="/sopmal/mpage/ordr/selectMbrOrdrListInqire"/>';
|
||||
const subsvcAt = '${data.order.subsvcAt}';
|
||||
location.href = subsvcAt === 'Y'
|
||||
? '<c:url value="/sopmal/mpage/ordr/selectMbrSubsvcOrdrListInqireRForm"/>'
|
||||
: '<c:url value="/sopmal/mpage/ordr/selectMbrOrdrListInqire"/>';
|
||||
});
|
||||
}
|
||||
|
||||
@@ -94,6 +97,90 @@
|
||||
<h2 class="cartOrder__title">주문완료</h2>
|
||||
<div class="sub-right-content">
|
||||
<c:choose>
|
||||
<c:when test="${order.subsvcAt eq 'Y'}">
|
||||
<div class="sub-right-content__section">
|
||||
<div class="sub-right-content__section">
|
||||
<div class="cartOrder__list">
|
||||
<div class="table-wrapper">
|
||||
<table class="table vertical">
|
||||
<caption>주문상세내역</caption>
|
||||
<colgroup>
|
||||
<col style="width: auto;">
|
||||
<col style="width: 40px;">
|
||||
<col style="width: 10%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>상품명</th>
|
||||
<th>수량</th>
|
||||
<th>상품금액</th>
|
||||
<th>할인금액</th>
|
||||
<th>할인적용금액</th>
|
||||
<th>적립금</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:choose>
|
||||
<c:when test="${not empty data.goodsList}">
|
||||
<c:forEach var="goods" items="${data.goodsList}">
|
||||
<tr>
|
||||
<td>
|
||||
<div class="cartItem">
|
||||
<div class="cartItem__image">
|
||||
<img src="<c:out value="${cdnurl}${goods.goodsImgCours}"/>" onerror="this.src='/pc/images/image_placeholder.png'" alt="<c:out value="${goods.goodsNm}"/>">
|
||||
</div>
|
||||
<div class="cartItem__productInfo">
|
||||
<a href="javascript:void(0);" class="cartItem__productTitle"><c:out value="${goods.goodsNm}"/></a>
|
||||
<span class="cartItem__productOption"><span class="option-badge">옵션</span> <c:out value="${goods.optnNm}"/></span>
|
||||
<c:if test="${not empty goods.inputOptnText}">
|
||||
<span class="cartItem__productOption"><c:out value="${goods.inputOptnText}"/></span>
|
||||
</c:if>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<span><fmt:formatNumber value="${goods.ordrQy}" pattern="#,###"/></span>
|
||||
<input type="hidden" class="goodsInnb" name="goodsInnb" value ="${goods.goodsInnb}"/>
|
||||
</td>
|
||||
<td>
|
||||
<span class="cartItem__normalPrice">
|
||||
<span class=" comma"><fmt:formatNumber value="${goods.slepric}" pattern="#,###"/></span>
|
||||
<span class="priceUnit">${curUnit}</span>
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="cartItem__discountPrice">
|
||||
<span class="cartItem__discountMinus">(-)</span>
|
||||
<span class="comma"><fmt:formatNumber value="${goods.dscntAmt}" pattern="#,###"/></span>
|
||||
<span class="priceUnit">${curUnit}</span>
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="cartItem__afterPrice">
|
||||
<span class="comma"><fmt:formatNumber value="${goods.applyDscntAmt}" pattern="#,###"/></span>
|
||||
<span class="priceUnit">${curUnit}</span>
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="cartItem__mileage">
|
||||
<span class=" comma"><fmt:formatNumber value="${goods.mlgAmt}" pattern="#,###"/></span>
|
||||
<span class="priceUnit">${curUnit}</span>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<tr><td colspan="100%" ><spring:message code="common.nodata"/></td></tr>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</c:when>
|
||||
<c:when test="${'04' == order.ordrTyCd || '05' == order.ordrTyCd}">
|
||||
<div class="sub-right-content__section">
|
||||
<c:choose>
|
||||
@@ -335,44 +422,45 @@
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
<c:if test="${'04' != order.ordrTyCd && '05' != order.ordrTyCd}">
|
||||
<c:if test="${order.subsvcAt eq 'Y' || '04' != order.ordrTyCd && '05' != order.ordrTyCd}">
|
||||
<div class="sub-right-content__section">
|
||||
<h3 class="sub-right-content__innerTitle">배송지 정보</h3>
|
||||
<c:choose>
|
||||
<c:when test="${not empty data.shippingList}">
|
||||
<c:forEach var="shipping" items="${data.shippingList}" varStatus="status">
|
||||
<div class="table-wrapper orderDetail__table">
|
||||
<table class="table">
|
||||
<caption>배송지 정보</caption>
|
||||
<colgroup>
|
||||
<col style="width: 220px;">
|
||||
<col style="width: auto;">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>받는분</th>
|
||||
<td><c:out value="${shipping.recpntNm}"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>주소</th>
|
||||
<td>
|
||||
<c:out value="${not empty shipping.dlvylcZip ? '(' += shipping.dlvylcZip += ')' : ''}"/>
|
||||
<c:out value="${shipping.adres}"/>
|
||||
<c:out value="${shipping.dlvylcAdresDtl}"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>휴대폰번호</th>
|
||||
<td><c:out value="${shipping.recpntMbtlnb}"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>배송 시 요청사항</th>
|
||||
<td><c:out value="${shipping.dlvyMssageCn}"/></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<c:if test="${order.subsvcAt ne 'Y' || status.first}">
|
||||
<div class="table-wrapper orderDetail__table">
|
||||
<table class="table">
|
||||
<caption>배송지 정보</caption>
|
||||
<colgroup>
|
||||
<col style="width: 220px;">
|
||||
<col style="width: auto;">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>받는분</th>
|
||||
<td><c:out value="${shipping.recpntNm}"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>주소</th>
|
||||
<td>
|
||||
<c:out value="${not empty shipping.dlvylcZip ? '(' += shipping.dlvylcZip += ')' : ''}"/>
|
||||
<c:out value="${shipping.adres}"/>
|
||||
<c:out value="${shipping.dlvylcAdresDtl}"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>휴대폰번호</th>
|
||||
<td><c:out value="${shipping.recpntMbtlnb}"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>배송 시 요청사항</th>
|
||||
<td><c:out value="${shipping.dlvyMssageCn}"/></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</c:if>
|
||||
</c:forEach>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
|
||||
@@ -39,7 +39,10 @@
|
||||
|
||||
/* 주문/배송 목록 화면 이동 버튼 선택 이벤트 */
|
||||
$('#btnOrdrList').on('click', function() {
|
||||
location.href = '<c:url value="/sopmal/mpage/ordr/selectMbrOrdrListInqire"/>';
|
||||
const subsvcAt = '${data.order.subsvcAt}';
|
||||
location.href = subsvcAt === 'Y'
|
||||
? '<c:url value="/sopmal/mpage/ordr/selectMbrSubsvcOrdrListInqireRForm"/>'
|
||||
: '<c:url value="/sopmal/mpage/ordr/selectMbrOrdrListInqire"/>';
|
||||
});
|
||||
|
||||
/* 주문번호 복사 버튼 선택 이벤트 */
|
||||
@@ -152,7 +155,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<c:choose>
|
||||
<c:when test="${'04' != order.ordrTyCd && '05' != order.ordrTyCd}">
|
||||
<c:when test="${order.subsvcAt eq 'Y' || '04' != order.ordrTyCd && '05' != order.ordrTyCd}">
|
||||
<div class="sub-box">
|
||||
<div class="orderDetailProduct">
|
||||
<div class="orderDetailProduct__top" role="button" tabindex="0">
|
||||
@@ -164,38 +167,40 @@
|
||||
<c:choose>
|
||||
<c:when test="${not empty data.shippingList}">
|
||||
<c:forEach var="shipping" items="${data.shippingList}" varStatus="status">
|
||||
<div class="table-wrapper orderDetail__table">
|
||||
<table class="table">
|
||||
<colgroup>
|
||||
<col style="width: 40%">
|
||||
<col style="width: 60%">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>받는분</th>
|
||||
<td><c:out value="${shipping.recpntNm}"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>주소</th>
|
||||
<td>
|
||||
<span class="orderDetail__table__address">
|
||||
<c:out value="${not empty shipping.dlvylcZip ? '(' += shipping.dlvylcZip += ')' : ''}"/>
|
||||
<c:out value="${shipping.adres}"/>
|
||||
<c:out value="${shipping.dlvylcAdresDtl}"/>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>휴대폰번호</th>
|
||||
<td><c:out value="${shipping.recpntMbtlnb}"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>배송 시 요청사항</th>
|
||||
<td><c:out value="${shipping.dlvyMssageCn}"/></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<c:if test="${order.subsvcAt ne 'Y' || status.first}">
|
||||
<div class="table-wrapper orderDetail__table">
|
||||
<table class="table">
|
||||
<colgroup>
|
||||
<col style="width: 40%">
|
||||
<col style="width: 60%">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>받는분</th>
|
||||
<td><c:out value="${shipping.recpntNm}"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>주소</th>
|
||||
<td>
|
||||
<span class="orderDetail__table__address">
|
||||
<c:out value="${not empty shipping.dlvylcZip ? '(' += shipping.dlvylcZip += ')' : ''}"/>
|
||||
<c:out value="${shipping.adres}"/>
|
||||
<c:out value="${shipping.dlvylcAdresDtl}"/>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>휴대폰번호</th>
|
||||
<td><c:out value="${shipping.recpntMbtlnb}"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>배송 시 요청사항</th>
|
||||
<td><c:out value="${shipping.dlvyMssageCn}"/></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</c:if>
|
||||
</c:forEach>
|
||||
</c:when>
|
||||
</c:choose>
|
||||
|
||||
Reference in New Issue
Block a user