fix : 마이페이지 구독서비스 주문/배송 목록조회 화면

This commit is contained in:
jazz
2026-01-22 14:58:33 +09:00
parent 542ec44a3c
commit a1a107cfe1
10 changed files with 2360 additions and 2 deletions

View File

@@ -972,6 +972,14 @@ public interface BOOrdrMapper {
* @return * @return
*/ */
public String commonOrderSttusCdCheckCurrent(DataMap vo); public String commonOrderSttusCdCheckCurrent(DataMap vo);
/**
* 사용자 > 마이페이지 > 구독서비스 주문/배송 목록 조회
* @param ordrDlvyVO
* @return List<DataMap>
*/
public List<DataMap> selectMbrSubsvcOrdrList(BOOrdrDlvyVO ordrDlvyVO);
} }

View File

@@ -1810,6 +1810,25 @@ public class BOOrdrService{
return resultList; return resultList;
} }
/**
* 사용자 > 마이페이지 > MY쇼핑 > 구독서비스 주문/배송조회 > 구독서비스 주문/배송 목록 조회
* @param ordrDlvyVO
* @return List<DataMap>
*/
public List<DataMap> selectMbrSubsvcOrdrListInqireAjax(BOOrdrDlvyVO ordrDlvyVO) {
List<DataMap> resultList = null;
resultList = mapper.selectMbrSubsvcOrdrList(ordrDlvyVO);
if(resultList == null || resultList.size() == 0){
ordrDlvyVO.getPaginationInfo().setTotalRecordCount(0);
}else{
ordrDlvyVO.getPaginationInfo().setTotalRecordCount(Integer.parseInt((String)resultList.get(0).get("totCnt")));
}
return resultList;
}
/** /**
* 사용자 > 마이페이지 > MY쇼핑 > 주문/배송조회 > 주문 취소 상태 수정 * 사용자 > 마이페이지 > MY쇼핑 > 주문/배송조회 > 주문 취소 상태 수정
* @param ordrDlvyVO * @param ordrDlvyVO

View File

@@ -155,6 +155,54 @@ public class MyOrdrController {
} }
/**
* 마이 페이지 > MY쇼핑 > 구독서비스 주문/배송 > 구독서비스 목록 조회 화면 이동
* @return SubsvcOrdrDlvyListR.jsp
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectMbrSubsvcOrdrListInqire")
public String selectMbrSubsvcOrdrListInqire(HttpServletRequest request, ModelMap model, MyOrdrDlvyVO ordrDlvyVO, BOMbrVO vo) throws Exception {
model.addAttribute("paramVO", new ObjectMapper().writeValueAsString(ordrDlvyVO));
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
Map<String, Object> content = selectBOMpageInfoInqire(vo);
model.addAttribute("mpageResultMap", content);
return Util.getDeviceType(request) + "/mpage/ordr/SubsvcOrdrDlvyListR";
}
/**
* 마이 페이지 > MY쇼핑 > 구독서비스 주문/배송 > 구독서비스 주문/배송 목록 조회
* @param ordrDlvyVO
* @return ResponseEntity<WnbtResponse>
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectMbrSubsvcOrdrListInqireAjax")
public String selectMbrSubsvcOrdrListInqireAjax(ModelMap model, BOOrdrDlvyVO ordrDlvyVO) {
Map<String, Object> content = selectBOMbrSubsvcOrdrListInqireAjax(ordrDlvyVO);
model.addAttribute("data", content);
return "sopmal/mpage/ordr/SubsvcOrdrDlvyListRList";
}
/**
* 마이 페이지 > MY쇼핑 > 구독서비스 주문/배송조회 > 구독서비스 주문/배송 목록 조회 (스크롤)
* @param ordrDlvyVO
* @return ResponseEntity<WnbtResponse>
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectMbrSubsvcOrdrListInqireScrollAjax", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> selectMbrSubsvcOrdrListInqireScrollAjax(ModelMap model, BOOrdrDlvyVO ordrDlvyVO) {
Map<String, Object> content = selectBOMbrSubsvcOrdrListInqireAjax(ordrDlvyVO);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
);
}
/** /**
* 마이 페이지 > MY쇼핑 > 주문/배송조회 > 주문/배송 목록 조회 * 마이 페이지 > MY쇼핑 > 주문/배송조회 > 주문/배송 목록 조회
* @param ordrDlvyVO * @param ordrDlvyVO
@@ -1466,6 +1514,39 @@ public class MyOrdrController {
return content; return content;
} }
/**
* 사용자 > 마이페이지 > 구독서비스 주문/배송 조회
*/
public Map<String, Object> selectBOMbrSubsvcOrdrListInqireAjax(BOOrdrDlvyVO ordrDlvyVO) {
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if ("01".equals(user.getSysDvCd())) {
ordrDlvyVO.setSopmalCd(user.getSopmalCd());
}
ordrDlvyVO.setMbrInnb(BigInteger.valueOf(user.getUserInnb()));
ordrDlvyVO.setMbrDvCd(user.getMbrDvCd());
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(ordrDlvyVO.getPageIndex());
paginationInfo.setRecordCountPerPage(ordrDlvyVO.getPageUnit());
paginationInfo.setPageSize(paginationProperties.getPageSize());
ordrDlvyVO.setPaginationInfo(paginationInfo);
ordrDlvyVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
ordrDlvyVO.setLastIndex(paginationInfo.getLastRecordIndex());
ordrDlvyVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
ordrDlvyVO.setMbrInnb(BigInteger.valueOf(MemberJwtContextHolder.getMemberInfo().getUserInnb()));
List<DataMap> resultList = boOrdrService.selectMbrSubsvcOrdrListInqireAjax(ordrDlvyVO);
Map<String, Object> content = new HashMap<>();
content.put("resultList", resultList);
content.put("paginationInfo", ordrDlvyVO.getPaginationInfo());
return content;
}
/** /**
* bo로직 관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문상세 조회 > 결제취소/환불신청 정보 조회 * bo로직 관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문상세 조회 > 결제취소/환불신청 정보 조회
*/ */

View File

@@ -3939,6 +3939,7 @@
AND GOR.SOPMAL_CD = #{sopmalCd} AND GOR.SOPMAL_CD = #{sopmalCd}
AND GOR.MBR_DV_CD = #{mbrDvCd} AND GOR.MBR_DV_CD = #{mbrDvCd}
AND GOR.MBR_INNB = #{mbrInnb} AND GOR.MBR_INNB = #{mbrInnb}
AND GOR.SUBSVC_INNB IS NULL /*구독서비스 제외*/
) )
GROUP BY FOI.ORDR_INNB GROUP BY FOI.ORDR_INNB
) ITEM ON ITEM.SOPMAL_CD = FO.SOPMAL_CD ) ITEM ON ITEM.SOPMAL_CD = FO.SOPMAL_CD
@@ -3946,6 +3947,7 @@
LEFT JOIN GC_ORDER_SETLE FOS ON FOS.SOPMAL_CD = FO.SOPMAL_CD LEFT JOIN GC_ORDER_SETLE FOS ON FOS.SOPMAL_CD = FO.SOPMAL_CD
AND FOS.ORDR_INNB = FO.ORDR_INNB AND FOS.ORDR_INNB = FO.ORDR_INNB
WHERE FO.USE_AT = 'Y' WHERE FO.USE_AT = 'Y'
AND FO.SUBSVC_INNB IS NULL /*구독서비스 제외*/
AND ( ( FO.ORDR_STTUS_CD BETWEEN '15' AND '75' ) OR FO.ORDR_STTUS_CD = '95' ) AND ( ( FO.ORDR_STTUS_CD BETWEEN '15' AND '75' ) OR FO.ORDR_STTUS_CD = '95' )
AND FO.SOPMAL_CD = #{sopmalCd} AND FO.SOPMAL_CD = #{sopmalCd}
AND FO.MBR_DV_CD = #{mbrDvCd} AND FO.MBR_DV_CD = #{mbrDvCd}
@@ -5247,6 +5249,163 @@
]]> ]]>
</select> </select>
<!-- 사용자 > 마이페이지 > 구독서비스 주문/배송 목록 조회 -->
<select id="selectMbrSubsvcOrdrList" parameterType="com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrDlvyVO" resultType="dataMap">
<![CDATA[
SELECT *
FROM (
SELECT CAST(@ROWNUM:=@ROWNUM + 1 AS UNSIGNED) AS RNUM
, TB.*
FROM (
SELECT COUNT(*) OVER() TOT_CNT
, FO.SOPMAL_CD
, CAST(FO.ORDR_INNB AS CHAR) AS ORDR_INNB
, FO.ORDR_RCEPT_DT
, DATE_FORMAT(FO.ORDR_RCEPT_DT, '%Y.%m.%d') AS ORDR_DT
, GS.IMG AS GOODS_IMAGE_URL
, CONCAT(GS.SUBSVC_NM, '[', GS.SUBSVC_GNR_NM, ']') AS GOODS_NM
, FN_GET_ORDER_GOODS_OPTN_NAME(FO.SOPMAL_CD, FO.ORDR_INNB, 0) AS OPTN_NM
, GS.SUBSVC_INNB AS GOODS_INNB
, ITEM.ORDR_DLVY_INNB
, FO.RL_SETLE_AMT AS SETLE_AMT
, FO.ORDR_STTUS_CD
, CASE
WHEN FO.ORDR_STTUS_CD = '95' THEN '주문취소'
ELSE FN_GET_COMMCODE_NAME('ORDR_STTUS', FO.ORDR_STTUS_CD)
END AS ORDR_STTUS_NM
, (
SELECT
FN_GET_COMMCODE_NAME('GIFT_STTUS', SH.GIFT_STTUS_CD) AS GIFT_STTUS_CD
FROM GC_ORDER_SHIPPING SH
WHERE 1 =1
AND SH.SOPMAL_CD = FO.SOPMAL_CD
AND SH.ORDR_INNB = FO.ORDR_INNB
LIMIT 1
) AS GIFT_STTUS_CD_NM
, (
SELECT
SH.GIFT_STTUS_CD
FROM GC_ORDER_SHIPPING SH
WHERE 1 =1
AND SH.SOPMAL_CD = FO.SOPMAL_CD
AND SH.ORDR_INNB = FO.ORDR_INNB
LIMIT 1
) AS GIFT_STTUS_CD
, FO.ORDR_TY_CD
, FO.SKN_ENVRN_CD
, FN_GET_COMMCODE_NAME('ORDR_TY', FO.ORDR_TY_CD) AS ORDR_TY_CD_NM
, FO.MBR_INNB
, FO.MBR_DV_CD
, CASE
WHEN EXISTS (
SELECT 1
FROM GC_ORDER_ITEM_OPTION FOIO
INNER JOIN GC_ORDER_ITEM FOI
ON FOIO.SOPMAL_CD = FOI.SOPMAL_CD
AND FOIO.ORDR_GOODS_INNB = FOI.ORDR_GOODS_INNB
INNER JOIN GC_GOODS FG
ON FOI.GOODS_INNB = FG.GOODS_INNB
AND FOI.SOPMAL_CD = FG.SOPMAL_CD
AND FG.GOODS_KND_CD = '01'
LEFT JOIN LATERAL ( SELECT FBG.ORDR_GOODS_OPTN_INNB
, FBG.SOPMAL_CD
, SUM(CASE WHEN FB.BBS_ID = 'goods_review' THEN 1 ELSE 0 END) RVW_CNT
, SUM(CASE WHEN FB.BBS_ID = 'goods_review_month' THEN 1 ELSE 0 END) MT_RVW_CNT
FROM GC_BOARDDATA_GOODS FBG
INNER JOIN GC_BOARDDATA FB
ON FBG.BBSCTT_INNB = FB.BBSCTT_INNB
AND FBG.SOPMAL_CD = FB.SOPMAL_CD
AND FB.BBS_ID IN ('goods_review','goods_review_month')
WHERE FOIO.ORDR_GOODS_OPTN_INNB = FBG.ORDR_GOODS_OPTN_INNB
GROUP BY FBG.ORDR_GOODS_OPTN_INNB, FBG.SOPMAL_CD
)RVW
ON FOIO.ORDR_GOODS_OPTN_INNB = RVW.ORDR_GOODS_OPTN_INNB
AND FOIO.SOPMAL_CD = RVW.SOPMAL_CD
WHERE 1 = 1
AND FOIO.SOPMAL_CD = FO.SOPMAL_CD
AND FOI.ORDR_INNB = FO.ORDR_INNB
AND FOIO.PURCHS_DCSN_QY > 0
AND FOIO.OPTN_TY <> '04'
AND ((FG.RVW_WRITNG_POSBL_AT = 'Y' AND (CASE WHEN IFNULL(FOIO.PURCHS_DCSN_QY,0) < IFNULL(FOIO.ORDR_QY,0) - IFNULL(STEP85,0) THEN IFNULL(FOIO.PURCHS_DCSN_QY,0)
ELSE IFNULL(FOIO.ORDR_QY,0) - IFNULL(STEP85,0) END) > IFNULL(RVW.RVW_CNT,0) )
OR (FG.MT_RVW_WRITNG_POSBL_AT = 'Y' AND IFNULL(MT_RVW_CNT,0) < 1))
AND FOIO.PURCHS_DCSN_DT > DATE_SUB(SYSDATE(),INTERVAL 6 MONTH)
) THEN 'Y'
ELSE 'N'
END AS REVIEW_AT
, CASE
WHEN EXISTS (
SELECT
1
FROM GC_ORDER_ITEM_OPTION OIOP
INNER JOIN GC_ORDER_SHIPPING SH ON OIOP.SOPMAL_CD = SH.SOPMAL_CD
AND OIOP.ORDR_DLVY_INNB = SH.ORDR_DLVY_INNB
WHERE 1 = 1
AND OIOP.PURCHS_DCSN_AT = 'N'
AND FO.SOPMAL_CD = SH.SOPMAL_CD
AND FO.ORDR_INNB = SH.ORDR_INNB
AND OIOP.ORDR_STTUS_CD BETWEEN '50' AND '75'
) THEN 'Y'
ELSE 'N'
END AS PURCHS_DCSN_AT
,FOS.SETLE_TY_CD
FROM GC_ORDER FO
INNER JOIN GC_SUBSVC GS ON FO.SUBSVC_INNB = GS.SUBSVC_INNB
INNER JOIN (
SELECT FOI.SOPMAL_CD
, FOI.ORDR_INNB
, MAX(FOI.GOODS_INNB) AS GOODS_INNB
, MAX(FOIO.ORDR_DLVY_INNB) AS ORDR_DLVY_INNB
, COUNT(DISTINCT FOI.ORDR_GOODS_INNB) AS CNT
, SUM(FOIO.ORDR_QY) AS ORDR_QY
, MAX(FN_GET_ORDER_INPUT_OPTN(FOI.SOPMAL_CD, FOI.ORDR_INNB, FOI.ORDR_GOODS_INNB, FOIO.ORDR_GOODS_OPTN_INNB)) AS INPUT_OPTN_TEXT
, MAX(FOI.GOODS_IMG_COURS) AS GOODS_IMG_COURS
FROM GC_ORDER_ITEM FOI
INNER JOIN GC_ORDER_ITEM_OPTION FOIO ON FOI.SOPMAL_CD = FOIO.SOPMAL_CD
AND FOI.ORDR_GOODS_INNB = FOIO.ORDR_GOODS_INNB
WHERE FOI.SOPMAL_CD = #{sopmalCd}
AND FOI.GOODS_KND_CD = '01'
AND (FOI.SOPMAL_CD, FOI.ORDR_INNB) IN (
SELECT GOR.SOPMAL_CD
, GOR.ORDR_INNB
FROM GC_ORDER GOR
WHERE GOR.USE_AT = 'Y'
AND GOR.SOPMAL_CD = #{sopmalCd}
AND GOR.MBR_DV_CD = #{mbrDvCd}
AND GOR.MBR_INNB = #{mbrInnb}
AND GOR.SUBSVC_INNB IS NOT NULL /*구독서비스*/
)
GROUP BY FOI.ORDR_INNB
) ITEM ON ITEM.SOPMAL_CD = FO.SOPMAL_CD
AND ITEM.ORDR_INNB = FO.ORDR_INNB
LEFT JOIN GC_ORDER_SETLE FOS ON FOS.SOPMAL_CD = FO.SOPMAL_CD
AND FOS.ORDR_INNB = FO.ORDR_INNB
WHERE FO.USE_AT = 'Y'
AND FO.SUBSVC_INNB IS NOT NULL /*구독서비스*/
AND ( ( FO.ORDR_STTUS_CD BETWEEN '15' AND '75' ) OR FO.ORDR_STTUS_CD = '95' )
AND FO.SOPMAL_CD = #{sopmalCd}
AND FO.MBR_DV_CD = #{mbrDvCd}
AND FO.MBR_INNB = #{mbrInnb}
ORDER BY FO.REGIST_DT DESC
) TB
WHERE (@rownum:=0) = 0
]]>
<include refid="mbrOrdrSubsvcListWhere"/>
) PV
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</select>
<sql id="mbrOrdrSubsvcListWhere">
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchwrd)">
AND (
TB.ORDR_INNB LIKE CONCAT('%', #{srchwrd}, '%') OR
TB.GOODS_NM LIKE CONCAT('%', #{srchwrd}, '%')
)
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(bgnDt) and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(endDt)">
AND TB.ORDR_RCEPT_DT BETWEEN DATE(#{bgnDt}) AND DATE(#{endDt}) + 1
</if>
</sql>
</mapper> </mapper>

View File

@@ -79,6 +79,7 @@
</p> </p>
</div> </div>
</a> </a>
<%--
<a href="/sopmal/mpage/ordr/selectMbrOrdrListInqire" class="member-rank-summary__summary-item"> <a href="/sopmal/mpage/ordr/selectMbrOrdrListInqire" class="member-rank-summary__summary-item">
<img src="/pc/images/icon_member-rank-delivery.png" alt=""> <img src="/pc/images/icon_member-rank-delivery.png" alt="">
<div class="member-rank-summary__summary-description"> <div class="member-rank-summary__summary-description">
@@ -89,6 +90,7 @@
</p> </p>
</div> </div>
</a> </a>
--%>
</div> </div>
<c:if test="${sopmallInfo.shopInfo.cashAt eq 'N'}"> <%--충전형마일리지 사용야부에 따라 화면 위치 다름--%> <c:if test="${sopmallInfo.shopInfo.cashAt eq 'N'}"> <%--충전형마일리지 사용야부에 따라 화면 위치 다름--%>
<div class="member-rank-summary__summary-info"> <div class="member-rank-summary__summary-info">

View File

@@ -899,7 +899,7 @@
<jsp:include page="/WEB-INF/views/comm/mpage/MypageRight.jsp"/> <jsp:include page="/WEB-INF/views/comm/mpage/MypageRight.jsp"/>
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/> <spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
<spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/> <spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/>
<%--
<div class="sub-right-content__section"> <div class="sub-right-content__section">
<h3 class="sub-right-content__innerTitle">주문/배송 조회 <span <h3 class="sub-right-content__innerTitle">주문/배송 조회 <span
class="sub-right-content__innerTitle__sub">(최근 1개월)</span></h3> class="sub-right-content__innerTitle__sub">(최근 1개월)</span></h3>
@@ -921,7 +921,7 @@
</div> </div>
<a class="sub-right-content__more" href="/sopmal/mpage/ordr/selectMbrOrdrListInqire">전체보기</a> <a class="sub-right-content__more" href="/sopmal/mpage/ordr/selectMbrOrdrListInqire">전체보기</a>
</div> </div>
--%>
<div class="sub-right-content__section"> <div class="sub-right-content__section">
<h3 class="sub-right-content__innerTitle">최근 주문</h3> <h3 class="sub-right-content__innerTitle">최근 주문</h3>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,122 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/>
<c:choose>
<c:when test="${not empty data.resultList}">
<c:forEach var="order" items="${data.resultList}">
<div class="orderList__item">
<div class="orderList__item__inner">
<a href="<c:url value="/sopmal/goods/selectGoodsDtl?sopmalCd=${order.sopmalCd}&goodsInnb=${order.goodsInnb}"/>" class="orderList__image">
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
<img src="<c:out value="${ cdnurl }${order.goodsImageUrl}"/>" onerror="this.src='/pc/images/image_placeholder.png'" alt="<c:out value="${order.goodsNm}"/>">
</a>
<div class="orderList__description">
<div class="orderList__description__first">
<div class="orderList__item__top">
<a href="javascript:void(0);" onclick="fn_go_ordr_dtl('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>');" class="orderList__orderNum"><c:out value="${order.ordrInnb}"/></a>
<span class="orderList__dot">·</span>
<span class="orderList__date"><c:out value="${order.ordrDt}"/> <span class="orderList__dot">·</span> ${order.ordrTyCdNm}</span>
</div>
<a href="javascript:void(0);" onclick="fn_go_ordr_dtl('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>');" class="orderList__productTitle"><c:out value="${order.goodsNm}"/></a>
<%--<span class="orderList__option"><c:out value="${order.optnNm}"/></span>--%>
<span class="cartItem__productOption"><span class="option-badge">옵션</span> <c:out value="${order.optnNm}"/></span>
<c:if test="${not empty order.inputOptnText}">
<span class="orderList__option"><c:out value="${order.inputOptnText}"/></span>
</c:if>
</div>
<div class="orderList__description__second">
<span class="orderList__price"><span class="comma"><fmt:formatNumber value="${order.setleAmt}" pattern="#,###"/></span>${curUnit}</span>
</div>
<div class="orderList__description__third">
<c:if test = "${!(order.ordrSttusCd > 84 && order.ordrSttusCd < 100)}">
<span class="orderList__mileage"><span class="comma">예상적립 <fmt:formatNumber value="${order.mlgAmt}" pattern="#,###"/></span>점</span>
</c:if>
</div>
<div class="orderList__description__fourth">
<c:choose>
<c:when test="${order.ordrSttusCd > 14 && order.ordrSttusCd < 36}">
<span class="orderList__status"><c:out value="${order.ordrSttusNm}"/></span>
</c:when>
<c:when test="${order.ordrSttusCd > 39 && order.ordrSttusCd < 71}">
<span class="orderList__status delivery"><c:out value="${order.ordrSttusNm}"/></span>
</c:when>
<c:when test="${order.ordrSttusCd == 75}">
<span class="orderList__status complete"><c:out value="${order.ordrSttusNm}"/></span>
</c:when>
</c:choose>
<c:if test="${ order.ordrTyCd == '04'}">
<br/>
<c:choose>
<c:when test="${order.giftSttusCd == '01' }">
<span class="orderList__status">(<c:out value="${order.giftSttusCdNm}"/>)</span>
</c:when>
<c:when test="${order.giftSttusCd == '02' }">
<span class="orderList__status delivery">(<c:out value="${order.giftSttusCdNm}"/>)</span>
</c:when>
<c:when test="${order.giftSttusCd == '03' }">
<span class="orderList__status cancel">(<c:out value="${order.giftSttusCdNm}"/>)</span>
</c:when>
<c:when test="${order.giftSttusCd == '04' }">
<span class="orderList__status cancel">(<c:out value="${order.giftSttusCdNm}"/>)</span>
</c:when>
</c:choose>
</c:if>
</div>
<%-- <div class="orderList__btnControls">--%>
<%-- <c:choose>--%>
<%-- <c:when test="${order.ordrSttusCd == 15}">--%>
<%-- <a href="javascript:void(0);" onclick="fn_post_cancl_ordr('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>', '<c:out value="${order.ordrSttusCd}"/>');" class="btn-ordr-sttus btn gray sm full">주문취소</a>--%>
<%-- <c:if test="${ order.ordrTyCd != '05' }">--%>
<%-- <a href="javascript:void(0);" onclick="fn_dlvylc_manage_pop('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>', '<c:out value="${order.ordrDlvyInnb}"/>', '<c:out value="${order.mbrInnb}"/>', '<c:out value="${order.mbrDvCd}"/>');" class="btn-ordr-sttus btn outline sm full">배송지 변경</a>--%>
<%-- </c:if>--%>
<%-- </c:when>--%>
<%-- <c:when test="${order.ordrSttusCd > 24 && order.ordrSttusCd < 34}">--%>
<%-- <a href="javascript:void(0);" onclick="fn_call_setle_cancl_pop('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>', '', '<c:out value="${order.ordrRceptDt}"/>', '<c:out value="${order.ordrSttusCd}"/>');" class="btn-ordr-sttus btn gray sm full">결제취소</a>--%>
<%-- <c:if test="${ order.ordrTyCd != '05' }">--%>
<%-- <a href="javascript:void(0);" onclick="fn_dlvylc_manage_pop('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>', '<c:out value="${order.ordrDlvyInnb}"/>', '<c:out value="${order.mbrInnb}"/>', '<c:out value="${order.mbrDvCd}"/>');" class="btn-ordr-sttus btn outline sm full">배송지 변경</a>--%>
<%-- </c:if>--%>
<%-- </c:when>--%>
<%-- <c:when test="${order.ordrSttusCd > 34 && order.ordrSttusCd < 55}">--%>
<%-- <a href="javascript:void(0);" onclick="fn_call_dlvy_sweettracker_pop('<c:out value="${order.ordrInnb}"/>');" class="btn outline sm full">배송조회</a>--%>
<%-- <a href="javascript:void(0);" onclick="fn_call_setle_cancl_pop('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>', '', '<c:out value="${order.ordrRceptDt}"/>', '<c:out value="${order.ordrSttusCd}"/>');" class="btn-ordr-sttus btn gray sm full">결제취소</a>--%>
<%-- </c:when>--%>
<%-- <c:when test="${order.ordrSttusCd > 54 && order.ordrSttusCd < 76 && order.sknEnvrnCd ne 'POS'}">--%>
<%-- <a href="javascript:void(0);" onclick="fn_call_dlvy_sweettracker_pop('<c:out value="${order.ordrInnb}"/>');" class="btn outline sm full">배송조회</a>--%>
<%-- <c:if test="${ order.purchsDcsnAt eq 'Y' }">--%>
<%--&lt;%&ndash; <a href="javascript:void(0);" onclick="fn_call_refund_pop('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>','<c:out value="${order.ordrRceptDt}"/>', '<c:out value="${order.setleTyCd}"/>', '<c:out value="${order.ordrSttusCd}"/>');" class="btn-ordr-sttus btn gray sm full">반품신청</a>&ndash;%&gt;--%>
<%-- <a href="javascript:void(0);" onclick="fn_pop_m2mqna_regist('<c:out value="${order.ordrInnb}"/>');" class="btn-ordr-sttus btn gray sm full">반품신청</a>--%>
<%-- </c:if>--%>
<%-- <c:if test="${ order.reviewAt eq 'Y' }">--%>
<%-- <a href="<c:url value="/sopmal/mpage/act/selectMyRvwInqireForm"/>" class="btn-ordr-sttus btn theme sm full">리뷰작성</a>--%>
<%-- </c:if>--%>
<%-- <c:if test="${ order.purchsDcsnAt eq 'Y' }">--%>
<%-- <a href="javascript:void(0);" onclick="fn_post_purchs_dcsn_by_ordr('<c:out value="${order.sopmalCd}"/>', '<c:out value="${order.ordrInnb}"/>');" class="btn-ordr-sttus btn theme sm full">구매확정</a>--%>
<%-- </c:if>--%>
<%-- </c:when>--%>
<%-- <c:when test="${order.ordrSttusCd > 84 && order.ordrSttusCd < 100}">--%>
<%-- <a class="btn full orderList__status cancel" style="background-color:transparent;"><c:out value="${order.ordrSttusNm}"/></a>--%>
<%-- </c:when>--%>
<%-- </c:choose>--%>
<%-- </div>--%>
</div>
</div>
</div>
</c:forEach>
</c:when>
<c:otherwise>
<div class="orderList__no-result">
<img src="<c:url value="/pc/images/icon__no-result.png"/>" alt="">
<p class="orderList__no-result-text">주문내역이 없습니다.</p>
</div>
</c:otherwise>
</c:choose>
<div class="pagination__container" style="margin-top: 20px">
<ui:pagination paginationInfo="${data.paginationInfo}" type="image" jsFunction="fn_get_ordr_dlvy_list"/>
</div>

View File

@@ -156,6 +156,7 @@
</div> </div>
</div> </div>
</div> </div>
<%--
<div class="sub-box"> <div class="sub-box">
<h3 class="myPageMain__innerTitle">주문/배송 조회</h3> <h3 class="myPageMain__innerTitle">주문/배송 조회</h3>
<div class="orderProgress"> <div class="orderProgress">
@@ -179,6 +180,7 @@
<a class="myPageMain__more" <a class="myPageMain__more"
href="/sopmal/mpage/ordr/selectMbrOrdrListInqire">전체보기</a> href="/sopmal/mpage/ordr/selectMbrOrdrListInqire">전체보기</a>
</div> </div>
--%>
<c:if test="${!empty sopmallInfo}"> <c:if test="${!empty sopmallInfo}">
<c:forEach var="topMenuList" items="${sopmallInfo.menuList}" varStatus="status"> <c:forEach var="topMenuList" items="${sopmallInfo.menuList}" varStatus="status">
<c:if test="${topMenuList.ctgryDvCd eq '05'}"> <c:if test="${topMenuList.ctgryDvCd eq '05'}">

View File

@@ -0,0 +1,877 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://www.winbit.kr/ctl/ui"%>
<%@ taglib prefix="f" uri="/WEB-INF/tlds/f.tld"%>
<spring:eval expression="@environment.getProperty('sopmalfo.common.fileupload.cdnurl')" var="cdnurl"/>
<spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/>
<!DOCTYPE html>
<html lang="ko">
<head>
<%-- 공통 include --%>
<jsp:include page="/WEB-INF/views/comm/mobile/Include.jsp"/>
<script src="<c:url value='/js/dlvylc/dlvylc.js'/>"></script>
<script>
$(document).ready(function() {
fn_set_param();
fn_init();
fn_event();
fn_dlvy_event();
});
/* ********************************************************
* 초기 설정
**********************************************************/
const fn_init = function() {
$('.header').find('h1.header__title').text('구독서비스 주문/배송');
fn_get_ordr_dlvy_list(1);
}
/* ********************************************************
* 이벤트 설정
**********************************************************/
const fn_event = function() {
/* 필터 버튼 선택 이벤트 */
$('#btnFilter').on('click', function () {
const modalId = $(this).attr('data-micromodal-trigger');
MicroModal.show(modalId, {
onShow: function (modal) {
// 이미 존재하지 않는 경우에만 Hash 추가
if (window.location.hash !== '#' + modalId) {
window.history.replaceState({ modal: 'open' }, '', '#' + modalId);
}
},
});
});
/* 검색조건 > 날짜 구간 버튼 클릭 이벤트 */
$('.dateRange-btn').on('click', function () {
const date = $(this).attr('id');
$(this).closest('div').find('#dateRange').val(date);
if ('allDays' === date) {
$('#bgnDt, #endDt').val('');
return false;
}
fn_set_date('bgnDt', 'endDt', 'endDt', date);
});
/* 검색 버튼 선택 이벤트 */
$('#btnSearch').on('click', function () {
fn_get_ordr_dlvy_list(1);
$(this).closest('.microModal').find('.microModal__close').trigger('click');
});
/* 이전내역 더보기 버튼 선택 이벤트 */
$('#btnNextPage').on('click', function () {
let index = $('#pageIndex').val();
if (!fn_is_empty(index)) {
index = parseInt(index) + 1;
}
fn_get_ordr_dlvy_list(index);
});
}
/* ********************************************************
* function
**********************************************************/
/* 주문/배송 목록 조회 */
const fn_get_ordr_dlvy_list = function (index) {
const loading = fn_set_load_more();
if (!fn_is_empty(index)) {
$('#pageIndex').val(index);
}
let data = $('#condForm').serialize();
$.ajax({
type:'post',
url:'<c:url value="/sopmal/mpage/ordr/selectMbrSubsvcOrdrListInqireScrollAjax"/>',
data:data,
success:function (data) {
if (data.resBody != null) {
const result = JSON.parse(data.resBody.result);
fn_set_ordr_dlvy_list(result, index);
}
loading.remove();
},
error:function (request) {
let message = JSON.parse(JSON.parse(request.responseText).resBody.message);
alert(message.errorMsg);
loading.remove();
}
});
}
/* 주문/배송 목록 세팅 */
const fn_set_ordr_dlvy_list = function (data, index) {
let rowCnt = 0;
let div = '';
const ordrDlvyList = data.resultList;
const cdnurl = '${cdnurl}';
if (!fn_is_empty(ordrDlvyList)) {
rowCnt = data.paginationInfo.totalRecordCount;
for (let i=0; i < ordrDlvyList.length; i++) {
let row = ordrDlvyList[i];
div += '<div class="sub-box">';
div += ' <div class="orderListItem">';
div += ' <div class="orderListItem__top">';
div += ' <span class="orderListItem__top__date"><span class="misc">'+ row.ordrDt +'(' + row.ordrInnb +') ';
div += ' <span className="orderList__dot">·</span> ' + row.ordrTyCdNm;
div += ' </span></span>';
div += ' <a href="javascript:void(0);" onclick="fn_go_ordr_dtl(\'' + row.sopmalCd + '\', \'' + row.ordrInnb + '\');" class="orderListItem__top__more">상세보기</a>';
div += ' </div>';
div += ' <div class="orderListItem__body">';
div += ' <div class="orderListItem__image">';
div += ' <a href="/sopmal/goods/selectGoodsDtl?sopmalCd=' + row.sopmalCd + '&goodsInnb=' + row.goodsInnb + '">';
div += ' <img src="' + cdnurl + row.goodsImageUrl + '" onerror="this.src=\'/pc/images/image_placeholder.png\'" alt="' + row.goodsNm + '">';
div += ' </a>';
div += ' </div>';
div += ' <div class="orderListItem__right">';
div += ' <div class="orderListItem__info">';
div += ' <p class="orderListItem__info__status">' + row.ordrSttusNm;
if (!fn_is_empty(row.giftSttusCd)) {
div += ' (' + row.giftSttusCdNm + ')';
}
div += ' </p>';
div += ' <a href="javascript:void(0);" onclick="fn_go_ordr_dtl(\'' + row.sopmalCd + '\', \'' + row.ordrInnb + '\');" class="orderListItem__info__name">' + row.goodsNm + '</a>';
if (row.optnNm != null) {
div += ' <p class="orderListItem__info__option">' + row.optnNm + '</p>';
}
div += ' <p class="orderListItem__info__quantity">' + row.orderCnt + '개<span class="orderListItem__info__dot">·</span><span class="comma">' + (row.setleAmt).toLocaleString() + '</span>' + '${curUnit}';
div += ' </p>';
div += ' </div>';
div += ' </div>';
div += ' </div>';
<%-- div += ' <div class="orderListItem__btnControls">';--%>
<%-- const ordrSttusCd = parseInt(row.ordrSttusCd);--%>
<%-- const ordrTyCd = parseInt(row.ordrTyCd);--%>
<%-- if (15 === ordrSttusCd) {--%>
<%-- div += '<a href="javascript:void(0);" onclick="fn_post_cancl_ordr_confirm(\'' + row.sopmalCd + '\', \'' + row.ordrInnb + '\', \'' + ordrSttusCd + '\');" class="btn-ordr-sttus btn gray">주문취소</a>';--%>
<%-- if ('05' != ordrTyCd) {--%>
<%-- div += '<a href="javascript:void(0);" onclick="fn_dlvylc_manage_pop(\'' + row.sopmalCd + '\', \'' + row.ordrInnb + '\', \'' + row.ordrDlvyInnb + '\');" class="btn-ordr-sttus btn outline">배송지 변경</a>';--%>
<%-- }--%>
<%-- }--%>
<%-- if (ordrSttusCd > 24 && ordrSttusCd < 34) {--%>
<%-- div += '<a href="javascript:void(0);" onclick="fn_call_setle_cancl_pop(\'' + row.sopmalCd + '\', \'' + row.ordrInnb + '\', \'' + row.ordrDlvyInnb + '\', \'' + row.ordrRceptDt + '\');" class="btn-ordr-sttus btn gray">결제취소</a>';--%>
<%-- if ('05' != ordrTyCd) {--%>
<%-- div += '<a href="javascript:void(0);" onclick="fn_dlvylc_manage_pop(\'' + row.sopmalCd + '\', \'' + row.ordrInnb + '\', \'' + row.ordrDlvyInnb + '\');" class="btn-ordr-sttus btn outline">배송지 변경</a>';--%>
<%-- }--%>
<%-- }--%>
<%-- if (ordrSttusCd > 34 && ordrSttusCd < 55) {--%>
<%-- div += '<a href="javascript:void(0);" onclick="fn_call_dlvy_sweettracker_pop(\'' + row.ordrInnb + '\');" class="btn outline">배송조회</a>';--%>
<%-- div += '<a href="javascript:void(0);" onclick="fn_call_setle_cancl_pop(\'' + row.sopmalCd + '\', \'' + row.ordrInnb + '\', \'' + row.ordrDlvyInnb + '\', \'' + row.ordrRceptDt + '\', \'' + row.ordrSttusCd + '\');" class="btn-ordr-sttus btn gray">결제취소</a>';--%>
<%-- }--%>
<%-- if (ordrSttusCd > 54 && ordrSttusCd < 76 && row.sknEnvrnCd != 'POS') {--%>
<%-- div += '<a href="javascript:void(0);" onclick="fn_call_dlvy_sweettracker_pop(\'' + row.ordrInnb + '\');" class="btn outline">배송조회</a>';--%>
<%-- if ('Y' === row.purchsDcsnAt) {--%>
<%--&lt;%&ndash; div += '<a href="javascript:void(0);" onclick="fn_call_refund_pop(\'' + row.sopmalCd + '\', \'' + row.ordrInnb + '\', \'' + row.ordrRceptDt + '\', \'' + row.setleTyCd + '\', \'' + row.ordrSttusCd + '\');" class="btn-ordr-sttus btn gray">반품신청</a>'; &ndash;%&gt;--%>
<%-- div += '<a href="javascript:void(0);" onclick="fn_pop_m2mqna_regist(\'' + row.ordrInnb + '\');" class="btn-ordr-sttus btn gray">반품신청</a>';--%>
<%-- div += '<a href="javascript:void(0);" onclick="fn_post_purchs_dcsn_by_ordr_confirm(\'' + row.sopmalCd + '\', \'' + row.ordrInnb + '\');" class="btn-ordr-sttus btn theme">구매확정</a>';--%>
<%-- } else {--%>
<%-- &lt;%&ndash;div += '<a href="javascript:void(0);" class="btn-ordr-sttus btn gray">구매확정</a>';&ndash;%&gt;--%>
<%-- }--%>
<%-- if (row.reviewAt === 'Y') {--%>
<%-- div += '<a href="javascript:void(0);" onclick="fn_go_my_rvw(\'' + row.sopmalCd + '\');" class="btn-ordr-sttus btn outline">리뷰작성</a>';--%>
<%-- }--%>
<%-- }--%>
<%-- div += ' </div>';--%>
div += ' </div>';
div += '</div>';
}
if (1 === index) {
$('#ordrDlvyList').empty();
}
$('#ordrDlvyList').append(div);
$('.fullBtnSection').show();
} else {
const rowCnt = $('#ordrDlvyList').find('.sub-box').length;
if (0 !== rowCnt) {
fn_call_alert_modal('<spring:message code="common.nodata"/>');
return false;
}
div += '<div class="sub-box">';
div += ' <div class="noResult">';
div += ' <div class="noResult__image">';
div += ' <img src="<c:url value="/pc/images/icon__no-result.png"/>" alt="상품 이미지"/>';
div += ' </div>';
div += ' <p class="noResult__text">주문내역이 없습니다.</p>';
div += ' </div>';
div += '</div>';
$('#ordrDlvyList').empty().append(div);
$('.fullBtnSection').hide();
}
$('#rowCnt').text(rowCnt);
}
/* 주문 무효 상태 수정 확인창 */
const fn_post_cancl_ordr_confirm = function (sopmalCd, ordrInnb, currOrdrSttusCd) {
const modalId = 'confirmModal';
MicroModal.show(modalId, {
onShow: function (modal) {
$(modal).find('.microModal__title').text('주문을 취소하시겠습니까?')
// 이미 존재하지 않는 경우에만 Hash 추가
if (window.location.hash !== '#' + modalId) {
window.history.replaceState({ modal: 'open' }, '', '#' + modalId);
}
// 기존 이벤트 제거 (중복 방지)
$(modal).find('#btnConsfirm').off('click');
$(modal).find('#btnConsfirm').on('click', function () {
$(modal).find('#btnCancel').trigger('click');
fn_post_cancl_ordr(sopmalCd, ordrInnb, currOrdrSttusCd);
});
}
});
}
/* 주문 무효 상태 수정 */
const fn_post_cancl_ordr = function (sopmalCd, ordrInnb, currOrdrSttusCd) {
$.ajax({
type:'post',
url:'<c:url value="/sopmal/mpage/ordr/updateCanclOrdr"/>',
data:{
'sopmalCd': sopmalCd,
'ordrInnb': ordrInnb,
'currOrdrSttusCd':currOrdrSttusCd
},
success:function (data) {
if (data.resBody != null) {
fn_call_alert_modal('주문이 취소되었습니다.');
fn_get_ordr_dlvy_list(1);
}
},
error:function (request, status, error) {
let message = JSON.parse(JSON.parse(request.responseText).resBody.message);
alert(message.errorMsg);
}
});
}
/* 구매확정 수정 확인창 */
const fn_post_purchs_dcsn_by_ordr_confirm = function (sopmalCd, ordrInnb) {
const modalId = 'confirmModal';
MicroModal.show(modalId, {
onShow: function (modal) {
$(modal).find('.microModal__title').text('구매확정 하시겠습니까?')
// 이미 존재하지 않는 경우에만 Hash 추가
if (window.location.hash !== '#' + modalId) {
window.history.replaceState({ modal: 'open' }, '', '#' + modalId);
}
// 기존 이벤트 제거 (중복 방지)
$(modal).find('#btnConsfirm').off('click');
$(modal).find('#btnConsfirm').on('click', function () {
$(modal).find('#btnCancel').trigger('click');
fn_post_purchs_dcsn_by_ordr(sopmalCd, ordrInnb);
});
}
});
}
/* 구매확정 수정 */
const fn_post_purchs_dcsn_by_ordr = function (sopmalCd, ordrInnb) {
$.ajax({
type:'post',
url:'<c:url value="/sopmal/mpage/ordr/updatePurchsDcsnByOrdr"/>',
data:{
'sopmalCd':sopmalCd,
'ordrInnb':ordrInnb
},
success:function (data) {
let sucessText = '<spring:message code="success.common.save"/>';
if (data.resBody != null) {
sucessText = JSON.parse(data.resBody.result).message;
}
alert(sucessText);
fn_get_ordr_dlvy_list(1);
},
error:function (request, status, error) {
let message = JSON.parse(JSON.parse(request.responseText).resBody.message);
alert(message.errorMsg);
}
});
}
/* 결제취소 팝업 화면 호출 */
const fn_call_setle_cancl_pop = function (sopmalCd, ordrInnb, ordrDlvyInnb, setleDt, ordrSttusCd) {
const setleDate = new Date(setleDt);
const stdDate = new Date('2025-02-12 00:00:00');
if (setleDate < stdDate && (sopmalCd == 'BD' || sopmalCd == 'DL' || sopmalCd == 'LF')) {
alert("고객센터로 문의해주세요.");
return;
}
if (ordrSttusCd === '35') { // 상품준비중일 경우 CS에서 판단 후 환불 처리
alert("'상품준비' 상태에서는 취소할 수 없습니다. \n고객센터로 문의해주세요.");
return;
}
const form = $('#condForm');
$(form).append($('<input/>', {type: 'hidden', name: 'sopmalCd', id: 'sopmalCd', value: sopmalCd}));
$(form).append($('<input/>', {type: 'hidden', name: 'ordrInnb', id: 'ordrInnb', value: ordrInnb}));
$(form).attr('method', 'post');
$(form).attr('action', '<c:url value="/sopmal/mpage/ordr/selectSetleCanclPopupForm"/>');
$(form).submit();
/*
$.ajax({
type:'post',
url:'<c:url value="/sopmal/mpage/ordr/selectSetleCanclPopupForm"/>',
data:{
'sopmalCd': sopmalCd,
'ordrInnb': ordrInnb,
'ordrDlvyInnb': ordrDlvyInnb
},
success:function (html) {
$('#refund-pop').remove();
$('#refundPopupDiv').html(html);
const popup = $('#refund-pop');
$(popup).find('.orderRefundPop .select-box select').niceSelect();
$(popup).find('#refundAcntnb').on("input", function () {
this.value = this.value.replace(/[^0-9]/g, "");
});
$(popup).modal();
}
});
*/
}
/* 반품/환불 신청 팝업 화면 호출 */
const fn_call_refund_pop = function (sopmalCd, ordrInnb, setleDt, setleTy, ordrSttusCd) {
const setleDate = new Date(setleDt);
const stdDate = new Date('2025-02-12 00:00:00');
if (setleDate < stdDate && (sopmalCd == 'BD' || sopmalCd == 'DL' || sopmalCd == 'LF')) {
alert("고객센터로 문의해주세요.");
return;
}
if ((setleTy === '05' || setleTy === '06') && ordrSttusCd !== '75') { // 에스크로 결제건은 배송완료가 된 후 반품신청이 가능.
alert("에스크로 결제건은 배송완료 후 반품신청이 가능합니다. \n고객센터로 문의해주세요.");
return;
}
const form = $('#condForm');
$(form).append($('<input/>', {type: 'hidden', name: 'sopmalCd', id: 'sopmalCd', value: sopmalCd}));
$(form).append($('<input/>', {type: 'hidden', name: 'ordrInnb', id: 'ordrInnb', value: ordrInnb}));
$(form).attr('method', 'post');
$(form).attr('action', '<c:url value="/sopmal/mpage/ordr/selectRetrunRegistPopupForm"/>');
$(form).submit();
/*
$.ajax({
type:'post',
url:'<c:url value="/sopmal/mpage/ordr/selectSetleCanclPopupForm"/>',
data:{
'sopmalCd': sopmalCd,
'ordrInnb': ordrInnb,
'ordrDlvyInnb': ordrDlvyInnb
},
success:function (html) {
$('#refund-pop').remove();
$('#refundPopupDiv').html(html);
const popup = $('#refund-pop');
$(popup).find('.orderRefundPop .select-box select').niceSelect();
$(popup).find('#refundAcntnb').on("input", function () {
this.value = this.value.replace(/[^0-9]/g, "");
});
$(popup).modal();
}
});
*/
}
/* 배송조회 팝업 화면 호출 */
const fn_call_dlvy_sweettracker_pop = function (ordrInnb) {
$.ajax({
type: 'post',
url: '/sopmal/mpage/ordr/selectDlvyInqire',
data: {
ordrInnb : ordrInnb
},
success: function (data) {
$('#deliveryInfoPop').remove();
$('#modalDiv').html(data);
openModal('deliveryInfoPop');
}
});
/*
$.ajax({
type:'post',
url:'<c:url value="/sopmal/mpage/ordr/selectDlvyInqire"/>',
data:{
ordrInnb:ordrInnb
},
success:function (data) {
$('#modalDiv').html(data);
$('#delivery-check-pop').remove().modal();
}
});
*/
}
/* 나의 리뷰 화면 이동 */
const fn_go_my_rvw = function (sopmalCd) {
let form = $('<form></form>');
form.attr('name', 'newForm');
form.attr('method', 'post');
form.attr('action', '<c:url value="/sopmal/mpage/act/selectMyRvwInqireForm"/>');
$(form).append($('<input/>', {type: 'hidden', name: 'sopmalCd', id: 'sopmalCd', value: sopmalCd}));
form.appendTo('body');
form.submit();
}
/* 주문상세 이동 */
const fn_go_ordr_dtl = function (sopmalCd, ordrInnb) {
const form = $('#condForm');
$(form).append($('<input/>', {type: 'hidden', name: 'ordrInnb', id: 'ordrInnb', value: ordrInnb}));
$(form).attr('method', 'get');
$(form).attr('action', '<c:url value="/sopmal/mpage/ordr/selectMbrOrdrDtlInqire"/>');
$(form).submit();
}
/* 검색조건 세팅 */
const fn_set_param = function () {
const params = ${paramVO};
const keys = Object.keys(params);
for (let i = 0; i < keys.length; i++) {
let key = keys[i];
let data = params[key];
if ('bgnDt' === key || 'endDt' === key) {
if (!fn_is_empty(data)) {
for (let i = 0; i < data.length; i++) {
$('#' + key).val(data);
}
}
}
if ('dateRange' === key) {
$('#' + data).trigger('click');
}
if ('srchwrd' === key) {
$('#' + key).val(data);
}
}
}
/* 알림 창 */
const fn_call_alert_modal = function (message) {
const modalId = 'alertModal';
MicroModal.show(modalId, {
onShow: function (modal) {
$(modal).find('.microModal__title').text(message)
// 이미 존재하지 않는 경우에만 Hash 추가
if (window.location.hash !== '#' + modalId) {
window.history.replaceState({modal: 'open'}, '', '#' + modalId);
}
}
});
}
/* 로딩 */
const fn_set_load_more = function () {
let loadingImg = document.createElement('img'); // 로딩 중임을 알리는 이미지 생성
loadingImg.src = '/mobile/images/loading.svg'; // 로딩 중임을 알리는 이미지 설정
loadingImg.classList.add('loadingImg'); // 클래스 추가
document.body.appendChild(loadingImg); // 리스트에 추가
return loadingImg;
}
/*배송지 팝업 이벤트*/
const fn_dlvy_event = () => {
//삭제확인
$(document).on("click","#delCfrmBtn", function () {
let adbkInnb = $(this).attr("adbk-innb");
//let mbrInnb = $("#mbrInnb").val();
//let mbrDvCd = $("#mbrDvCd").val();
$.ajax({
type: 'post',
url: '/sopmal/mpage/mbr/deleteDlvylcDel',
data: {
adbkInnb: adbkInnb
},
success: function (data) {
closeModal("confirm_del_alert");
openModal("success_del_alert");
}
});
});
/*삭제성공*/
$(document).on("click","#delSuccessBtn", function () {
closeModal("success_del_alert");
closeModal("address-management");
fn_move_dlvylc_manage_full(1, 'fn_set_dlvylc');
});
$(document).on('click','.headerTab__item', function () {
var idx = $(this).index();
$('.headerTab__item').removeClass('active');
$(this).addClass('active');
$('.tabContent').hide();
$('.tabContent').eq(idx).show();
});
$(document).on("click","#regFormBtn", function () {
// 배송지 관리 탭
$('.headerTab__item').removeClass('active');
$('.headerTab__item').eq(1).addClass('active');
$('.tabContent').hide();
$('.tabContent').eq(1).show();
document.getElementById("regForm").scrollIntoView();
});
//등록성공
$(document).on("click","#successClose", function () {
closeModal('successModal');
fn_move_dlvylc_manage_full(1, 'fn_set_dlvylc');
});
/*수정 모달 삭제 시 관리 팝업으로 이동*/
$(document).on("click", '#dlvylcUpdtClose',function () {
closeModal('dlvylcUpdtForm');
fn_move_dlvylc_manage_full(1, 'fn_set_dlvylc');
});
/*수정성공*/
$(document).on("click","#successUpdtClose", function () {
closeModal('dlvylcUpdtFormPop');
fn_move_dlvylc_manage_full(1, 'fn_set_dlvylc');
});
$(document).on("click", "#selectAdres", function () {
const dlvylc = JSON.parse(localStorage.getItem('dlvylc'));
let checkCnt = 0;
$(".adbkInnb").each(function (index) {
if ($(this).is(":checked")) {
checkCnt += 1;
}
});
if (checkCnt <= 0) {
alert("배송지를 선택해 주세요.");
return false;
}
openConfirmModal(function (onSuccess) {
fn_set_dlvylc_2(onSuccess, dlvylc);//수정 함수
}, 'confirm_updt_alert'
, '#updtCfrmBtn'
, 'success_updt_alert'
, '#updtSuccessBtn'
, fn_set_dlvylc_3);
});
}
/* 배송지 수정 팝업 화면 호출 */
const fn_dlvylc_manage_pop = function (sopmalCd, ordrInnb, ordrDlvyInnb) {
localStorage.removeItem('dlvylc');
fn_move_dlvylc_manage_full(1, 'fn_set_dlvylc');
const dlvylc = {
'sopmalCd': sopmalCd,
'ordrInnb': ordrInnb,
'ordrDlvyInnb': ordrDlvyInnb
};
localStorage.setItem('dlvylc', JSON.stringify(dlvylc));
}
/* 배송지정보 > 배송지 정보 세팅 */
const fn_set_dlvylc = function (data) {
const dlvylc = JSON.parse(localStorage.getItem('dlvylc'));
dlvylc['recpntNm'] = data.recpntNm;
dlvylc['recpntMbtlnb'] = data.mbtlnb;
dlvylc['dlvylcZip'] = data.postcode;
dlvylc['dlvylcAdresDvCd'] = data.addressType;
dlvylc['dlvylcLnbAdres'] = data.jibunAddress;
dlvylc['dlvylcRnmAdres'] = data.roadAddress;
dlvylc['dlvylcAdresDtl'] = data.dtlAdres;
localStorage.setItem('dlvylc', JSON.stringify(dlvylc));
}
/*배송지 수정*/
const fn_set_dlvylc_2 = (onSuccess,dlvylc) => {
$.ajax({
type: 'post',
contentType: 'application/json',
url: '<c:url value="/sopmal/mpage/ordr/updateDlvylc"/>',
data: JSON.stringify(dlvylc),
dataType: 'json',
success:function (data) {
onSuccess();
},
error: function (request, status, error) {
let message = JSON.parse(JSON.parse(request.responseText).resBody.message);
alert(message.errorMsg);
}
});
}
/*배송지 수정 성공시 리로드*/
const fn_set_dlvylc_3 = () => {
location.reload();
}
/********************************************************************
* 1:1 문의 등록폼 호출 (C)
********************************************************************/
const fn_pop_m2mqna_regist = (ordrInnb) => {
$.ajax({
type: "post",
data: {
authDv: "REGIST",
reqUrl: "modal",
bbsId: "mbrqna",
ordrInnb: ordrInnb,
reqDv: "m2m"
},
url: "/sopmal/csc/selectBbscttAuth",
success: function (data) {
$("#modalDiv").html(data);
MicroModal.init();
closeModal("authPop");
openModal2("authPop");
}
});
}
</script>
</head>
<body>
<div class="screen-wrap">
<!-- 헤더 영역 -->
<header class="header header--sub">
<jsp:include page="/WEB-INF/views/comm/mobile/Header.jsp"/>
</header>
<!-- 하단 탭바 -->
<jsp:include page="/WEB-INF/views/comm/mobile/TabBar.jsp"/>
<!-- 메인 컨텐츠 -->
<div class="content-wrap">
<main class="main">
<div class="sub-page">
<div class="orderList">
<div class="listTop">
<span class="listTop__data">총 <em id="rowCnt">0</em>건</span>
<button type="button" id="btnFilter" class="listTop__filterBtn" data-micromodal-trigger="searchInfoPop">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
<g clip-path="url(#clip0_516_33716)">
<path d="M0.625 3.52566H10.1408C10.4276 4.83109 11.5934 5.81113 12.9837 5.81113C14.374 5.81113 15.5398 4.83113 15.8266 3.52566H19.375C19.7202 3.52566 20 3.24582 20 2.90066C20 2.55551 19.7202 2.27566 19.375 2.27566H15.8263C15.5389 0.970898 14.3716 -0.00976562 12.9837 -0.00976562C11.5951 -0.00976562 10.4283 0.970742 10.1411 2.27566H0.625C0.279844 2.27566 0 2.55551 0 2.90066C0 3.24582 0.279844 3.52566 0.625 3.52566ZM11.3233 2.9023C11.3233 2.90008 11.3234 2.89781 11.3234 2.89559C11.3261 1.98281 12.0709 1.24027 12.9837 1.24027C13.8952 1.24027 14.6401 1.9818 14.644 2.89414L14.6441 2.90332C14.6427 3.81766 13.8984 4.56117 12.9837 4.56117C12.0694 4.56117 11.3254 3.8184 11.3233 2.90461L11.3233 2.9023ZM19.375 16.4741H15.8263C15.5389 15.1694 14.3716 14.1887 12.9837 14.1887C11.5951 14.1887 10.4283 15.1693 10.1411 16.4741H0.625C0.279844 16.4741 0 16.7539 0 17.0991C0 17.4443 0.279844 17.7241 0.625 17.7241H10.1408C10.4276 19.0296 11.5934 20.0096 12.9837 20.0096C14.374 20.0096 15.5398 19.0296 15.8266 17.7241H19.375C19.7202 17.7241 20 17.4443 20 17.0991C20 16.7539 19.7202 16.4741 19.375 16.4741ZM12.9837 18.7596C12.0694 18.7596 11.3254 18.0168 11.3233 17.103L11.3233 17.1008C11.3233 17.0985 11.3234 17.0963 11.3234 17.0941C11.3261 16.1813 12.0709 15.4387 12.9837 15.4387C13.8952 15.4387 14.6401 16.1802 14.644 17.0925L14.6441 17.1017C14.6428 18.0162 13.8985 18.7596 12.9837 18.7596ZM19.375 9.37492H9.85918C9.57238 8.06949 8.4066 7.08949 7.01629 7.08949C5.62598 7.08949 4.4602 8.06949 4.1734 9.37492H0.625C0.279844 9.37492 0 9.65477 0 9.99992C0 10.3451 0.279844 10.6249 0.625 10.6249H4.17371C4.46109 11.9296 5.62844 12.9104 7.01629 12.9104C8.40488 12.9104 9.57172 11.9298 9.85895 10.6249H19.375C19.7202 10.6249 20 10.3451 20 9.99992C20 9.65477 19.7202 9.37492 19.375 9.37492ZM8.67668 9.99828C8.67668 10.0005 8.67664 10.0028 8.67664 10.005C8.67391 10.9178 7.9291 11.6603 7.01629 11.6603C6.10477 11.6603 5.35992 10.9188 5.35598 10.0065L5.35586 9.99734C5.35723 9.08289 6.10156 8.33949 7.01629 8.33949C7.93059 8.33949 8.67465 9.08223 8.67672 9.99605L8.67668 9.99828Z" fill="black" />
</g>
<defs>
<clipPath id="clip0_516_33716">
<rect width="20" height="20" fill="white"></rect>
</clipPath>
</defs>
</svg>
<span class="visually-hidden">검색 필터</span>
</button>
</div>
<div style="margin-bottom: 10px;" id="ordrDlvyList"></div>
<div class="fullBtnSection">
<button type="button" id="btnNextPage" class="btn md outline full">
<span class="fullBtnSection__more">이전내역 더보기</span>
</button>
</div>
</div>
</div>
<!-- Top 버튼 -->
<div class="quick-menu__to-top">
<button><i class="icon icon_quick-to-top"></i>
<span class="visually-hidden">위로 가기</span>
</button>
</div>
</main>
</div>
</div>
<!-- 검색 필터 -->
<div class="microModal microBottomSheet" id="searchInfoPop" aria-hidden="true">
<div class="microModal__overlay" tabindex="-1">
<div class="microModal__container" role="dialog" aria-modal="true">
<div class="microModal__body">
<div class="microModal__top">
<button type="button" class="microModal__close" aria-label="창 닫기" data-micromodal-close></button>
</div>
<form id="condForm">
<input type="hidden" name="pageIndex" id="pageIndex" value="1">
<input type="hidden" name="pageUnit" id="pageUnit" value="2">
<div class="microModal__content">
<div class="dateSearch">
<div class="dateRange-btnContainer">
<input type="hidden" name="dateRange" id="dateRange" value="allDays">
<button type="button" class="dateRange-btn" id="7D">일주일</button>
<button type="button" class="dateRange-btn" id="1M">1개월</button>
<button type="button" class="dateRange-btn" id="3M">3개월</button>
<button type="button" class="dateRange-btn selected" id="allDays">전체</button>
</div>
<div class="datepicker-container">
<input type="text" name="bgnDt" id="bgnDt" class="datepicker" title="시작 날짜 선택" autocomplete="off">
<span class="tilde">~</span>
<input type="text" name="endDt" id="endDt" class="datepicker" title="종료 날짜 선택" autocomplete="off">
</div>
<%--
<div class="nativeSelect">
<select class="full" title="해당 셀렉트에 대한 설명">
<option value="" selected disabled>전체</option>
<option value="">1</option>
<option value="">2</option>
<option value="">3</option>
</select>
</div>
--%>
<div class="input">
<input type="text" name="srchwrd" id="srchwrd" class="input-text full" title="검색어 입력" placeholder="주문번호, 상품명 검색">
</div>
<button type="button" id="btnSearch" class="btn full lg theme">조회</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<%-- 마이크로 모달 DIV 시작--%>
<div id="modalDiv"></div>
<div id="dlvyDiv"></div>
<div class="microModal microAlert" id="alertModal" aria-hidden="true">
<div class="microModal__overlay" tabindex="-1">
<div class="microModal__container" role="dialog" aria-modal="true">
<div class="microModal__body">
<div class="microModal__top">
<h2 class="microModal__title"></h2>
</div>
</div>
<div class="microModal__btnContainer">
<button class="microModal__btn" data-micromodal-close>
<spring:message code="button.ok"/>
</button>
</div>
</div>
</div>
</div>
<div class="microModal microAlert" id="confirmModal" aria-hidden="true">
<div class="microModal__overlay" tabindex="-1">
<div class="microModal__container" role="dialog" aria-modal="true">
<div class="microModal__body">
<div class="microModal__top">
<h2 class="microModal__title"></h2>
</div>
</div>
<div class="microModal__btnContainer">
<button type="button" id="btnCancel" class="microModal__btn" data-micromodal-close="" aria-label="창 닫기"><spring:message code="button.cancel"/></button>
<button type="button" id="btnConsfirm" class="microModal__btn microModal__btn-primary"><spring:message code="button.ok"/></button>
</div>
</div>
</div>
</div>
<%-- 마이크로 모달 DIV 종료--%>
</body>
</html>