구독서비스 결제 화면 적용

This commit is contained in:
이대환
2026-02-26 11:07:19 +09:00
parent 0ca70094c9
commit 43508a858b
5 changed files with 280 additions and 145 deletions

View File

@@ -3821,50 +3821,6 @@ public class BOOrdrService{
return content; return content;
} }
/**
* 사용자 > 구독상품 > 구매/결제 > 구독서비스 결제 > 결제 예정금액
* @param param
* @return Map<String, Object>
*/
public Map<String, Object> selectSubsvcSetleExpectAmt(DataMap param) throws Exception {
Map<String, Object> content = new HashMap<>();
log.debug("selectSetleExpectAmt-param : {}", param);
LinkedHashMap setleExpectAmtMap = new LinkedHashMap() {{
put("goodsAmt", 0);
put("dlvyAmt", 0);
put("evtDscntAmt", 0);
put("goodsCouponDscntAmt", 0);
put("dlvyCouponDscntAmt", 0);
put("cartCouponDscntAmt", 0);
put("useMlgAmt", 0);
put("useCashMlgAmt", 0);
put("dscntAmt", 0);
put("setleAmt", 0);
put("accmlMlgAmt", 0);
}};
BigDecimal goodsAmt = new BigDecimal(0);
List<LinkedHashMap> goodsList = (List<LinkedHashMap>) param.get("goodsList");
log.debug("goodsList : {}", goodsList);
BOSubsvcVO subsvcVO = new BOSubsvcVO();
subsvcVO.setSubsvcInnb((String) param.get("subsvcInnb"));
subsvcVO.setSopmalCd((String) param.get("sopmalCd"));
DataMap subsvcDetail = subsvcService.selectBOSubsvcDetail(subsvcVO);
goodsAmt = (BigDecimal) subsvcDetail.get("subsvcCt");
// ############################################## 결제 예정 금액 적용 ##############################################
setleExpectAmtMap.put("goodsAmt", goodsAmt.intValue());
content.put("setleExpectAmt", setleExpectAmtMap);
content.put("goodsList", goodsList);
return content;
}
/** /**
* 사용자 > 상품 > 구매/결제 > 회원구매하기 > 구매 정보 등록 * 사용자 > 상품 > 구매/결제 > 회원구매하기 > 구매 정보 등록
* @param param * @param param
@@ -6186,6 +6142,119 @@ public class BOOrdrService{
사용자 > 상품 > 구매/결제 > 비회원구매하기 종료 사용자 > 상품 > 구매/결제 > 비회원구매하기 종료
#################################### */ #################################### */
/* ####################################
사용자 > 구독상품 > 구매/결제 > 구독서비스 결제 시작
#################################### */
/**
* 사용자 > 구독상품 > 구매/결제 > 구독서비스 결제 > 구독서비스 결제 화면 정보 조회
* @param ordrVO
* @return Map<String, Object>
*/
public Map<String, Object> selectSubsvcPurchs(BOOrdrVO ordrVO) {
Map<String, Object> content = new HashMap<>();
//구독서비스 조회
BOSubsvcVO subsvcVO = new BOSubsvcVO();
subsvcVO.setSopmalCd(ordrVO.getSopmalCd());
subsvcVO.setSubsvcInnb(ordrVO.getSubsvcInnb());
DataMap subsvcOne = subsvcService.selectBOSubsvcDetail(subsvcVO);
BOPurchsrVO purchsrVO = new BOPurchsrVO();
purchsrVO.setSopmalCd(ordrVO.getSopmalCd());
purchsrVO.setMbrDvCd(ordrVO.getMbrDvCd());
purchsrVO.setMbrInnb(String.valueOf(ordrVO.getMbrInnb()));
purchsrVO.setMbrId(ordrVO.getMbrId());
BOCashVO cashVO = new BOCashVO();
cashVO.setSopmalCd(ordrVO.getSopmalCd());
cashVO.setMbrDvCd(ordrVO.getMbrDvCd());
cashVO.setMbrInnb(String.valueOf(ordrVO.getMbrInnb()));
//구매자조회
DataMap purchsrMap = purchsService.selectPurchsr(purchsrVO);
if (!CollectionUtils.isEmpty(purchsrMap)) {
BOMlgVO mlgVo = new BOMlgVO();
mlgVo.setMbrDvCd((String) purchsrMap.get("mbrDvCd"));
mlgVo.setMbrInnb(purchsrMap.get("mbrInnb").toString());
// 마일리지 잔액 총액
BigDecimal blceSum = mlgService.selectBOMlgBlceSum(mlgVo);
// 충전형 마일리지 잔액 총액
BigDecimal cashBlceSum = mlgService.selectBOCashBlce(cashVO);
purchsrMap.put("sopmalCd", ordrVO.getSopmalCd());
purchsrMap.put("dftDlvylc", purchsService.selectDftDlvylc(purchsrVO));
purchsrMap.put("ableMlgAmt", blceSum.intValue());
purchsrMap.put("ableCashMlgAmt", cashBlceSum.intValue());
}
DataMap paramMap = new DataMap(){{
put("sopmalCd", ordrVO.getSopmalCd());
put("setlePltfomTyCd", ordrVO.getSetlePltfomTyCd()); // PC
}};
DataMap payInfo = purchsMapper.selectPayInfo(paramMap);
DataMap shopInfo = purchsMapper.selectOrdrShopInfo(ordrVO);
content.put("purchsr", purchsrMap);
content.put("mlgAccmlNtcList", purchsMapper.selectMlgAccmlNtcList(purchsrVO));
content.put("subsvcOne", subsvcOne);
content.put("payInfo", payInfo);
content.put("shopInfo", shopInfo);
return content;
}
/**
* 사용자 > 구독상품 > 구매/결제 > 구독서비스 결제 > 결제 예정금액
* @param param
* @return Map<String, Object>
*/
public Map<String, Object> selectSubsvcSetleExpectAmt(DataMap param) throws Exception {
Map<String, Object> content = new HashMap<>();
log.debug("selectSetleExpectAmt-param : {}", param);
LinkedHashMap setleExpectAmtMap = new LinkedHashMap() {{
put("goodsAmt", 0);
put("dlvyAmt", 0);
put("evtDscntAmt", 0);
put("goodsCouponDscntAmt", 0);
put("dlvyCouponDscntAmt", 0);
put("cartCouponDscntAmt", 0);
put("useMlgAmt", 0);
put("useCashMlgAmt", 0);
put("dscntAmt", 0);
put("setleAmt", 0);
put("accmlMlgAmt", 0);
}};
BigDecimal goodsAmt = new BigDecimal(0);
BigDecimal setleAmt = new BigDecimal(0);
LinkedHashMap subsvcOne = (LinkedHashMap) param.get("subsvcOne");
log.debug("subsvcOne : {}", subsvcOne);
goodsAmt = BigDecimal.valueOf((Integer) subsvcOne.get("selpric"));
setleAmt = BigDecimal.valueOf((Integer) subsvcOne.get("selpric"));
// ############################################## 결제 예정 금액 적용 ##############################################
setleExpectAmtMap.put("goodsAmt", goodsAmt.intValue());
setleExpectAmtMap.put("setleAmt", setleAmt.intValue());
content.put("setleExpectAmt", setleExpectAmtMap);
content.put("subsvcOne", param.get("subsvcOne"));
return content;
}
/* ####################################
사용자 > 구독상품 > 구매/결제 > 구독서비스 결제 종료
#################################### */
/* #################################### /* ####################################
사용자 > 상품 > 구매/결제 > 개인결제 시작 사용자 > 상품 > 구매/결제 > 개인결제 시작
#################################### */ #################################### */

View File

@@ -151,6 +151,9 @@ public class BOOrdrVO extends AbstractVO {
/** 장바구니 고유번호 배열 */ /** 장바구니 고유번호 배열 */
private String[] cartInnbs; private String[] cartInnbs;
/** 구독서비스 고유번호 */
private String subsvcInnb;
/** 주문배송 고유번호 */ /** 주문배송 고유번호 */
private String ordrDlvyInnb; private String ordrDlvyInnb;

View File

@@ -20,12 +20,13 @@ import com.wb.domainserver.domain.gcone.goods.goods.service.BOGoodsService;
import com.wb.domainserver.domain.gcone.goods.purchs.service.BOOrderService; import com.wb.domainserver.domain.gcone.goods.purchs.service.BOOrderService;
import com.wb.domainserver.domain.gcone.goods.purchs.service.BOPurchsService; import com.wb.domainserver.domain.gcone.goods.purchs.service.BOPurchsService;
import com.wb.domainserver.domain.gcone.goods.purchs.vo.*; import com.wb.domainserver.domain.gcone.goods.purchs.vo.*;
import com.wb.domainserver.domain.gcone.goods.subsvc.service.BOSubsvcService;
import com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO;
import com.wb.domainserver.domain.gcone.mbr.mbr.service.BOMbrService; import com.wb.domainserver.domain.gcone.mbr.mbr.service.BOMbrService;
import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrVO; import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrVO;
import com.wb.domainserver.domain.gcone.ordr.dlivy.service.BODlivyService; import com.wb.domainserver.domain.gcone.ordr.dlivy.service.BODlivyService;
import com.wb.domainserver.domain.gcone.ordr.npay.service.BONpayConfigService; import com.wb.domainserver.domain.gcone.ordr.npay.service.BONpayConfigService;
import com.wb.domainserver.domain.gcone.ordr.npay.vo.BONpayConfigVO; import com.wb.domainserver.domain.gcone.ordr.npay.vo.BONpayConfigVO;
import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrderCommonService;
import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrdrLogService; import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrdrLogService;
import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrdrService; import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrdrService;
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOCrmDlvylcVO; import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOCrmDlvylcVO;
@@ -36,14 +37,9 @@ import com.wb.domainserver.domain.gcone.promtn.coupon.service.BOCouponService;
import com.wb.domainserver.domain.gcone.setup.dlvygrp.service.BODlvygrpService; import com.wb.domainserver.domain.gcone.setup.dlvygrp.service.BODlvygrpService;
import com.wb.domainserver.domain.gcone.setup.nbkk.service.BONbkkService; import com.wb.domainserver.domain.gcone.setup.nbkk.service.BONbkkService;
import com.wb.domainserver.domain.gcone.setup.site.vo.BOSiteVO; import com.wb.domainserver.domain.gcone.setup.site.vo.BOSiteVO;
import com.wb.domainserver.domain.sample.vo.PrevewVO;
import com.wb.domainserver.domain.sopmal.goods.vo.GoodsVO;
import com.wb.domainserver.domain.sopmal.ordr.vo.OrdrVO; import com.wb.domainserver.domain.sopmal.ordr.vo.OrdrVO;
import com.wb.domainserver.domain.sopmal.ordr.vo.PayVO;
import com.wb.domainserver.domain.sopmal.ordr.vo.SpbkVO;
import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.exception.code.PurchsValidCode; import com.wb.domainserver.exception.code.PurchsValidCode;
import com.wb.domainserver.response.ApiResponse;
import com.wb.domainserver.response.WnbtResponse; import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtResponseBody; import com.wb.domainserver.response.WnbtResponseBody;
import com.wb.domainserver.response.WnbtWebClientResponseHandler; import com.wb.domainserver.response.WnbtWebClientResponseHandler;
@@ -51,9 +47,6 @@ import com.wb.domainserver.security.authentication.AnonymousUser;
import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authentication.MemberJwtContextHolder;
import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.CookieUtils;
import com.wb.domainserver.util.communicate.RESRC;
import com.wb.domainserver.util.communicate.ReplyFromResrc;
import com.wb.domainserver.util.communicate.SendToResrc; import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.cookie.CookieUtil; import com.wb.domainserver.util.cookie.CookieUtil;
import com.wb.domainserver.util.dataaccess.DataMap; import com.wb.domainserver.util.dataaccess.DataMap;
@@ -65,7 +58,6 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.logging.log4j.util.Base64Util; import org.apache.logging.log4j.util.Base64Util;
import org.json.simple.JSONObject; import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser; import org.json.simple.parser.JSONParser;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
@@ -74,7 +66,10 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import java.io.InputStream; import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
@@ -136,6 +131,8 @@ public class OrdrController {
private BOMaMtngService boMaMtngService; private BOMaMtngService boMaMtngService;
@Autowired @Autowired
private BOPurchsService boPurchsService; private BOPurchsService boPurchsService;
@Autowired
private BOSubsvcService subsvcService;
/* #################################### /* ####################################
사용자 > 상품 > 구매/결제 > 회원구매하기 시작 사용자 > 상품 > 구매/결제 > 회원구매하기 시작
@@ -399,6 +396,73 @@ public class OrdrController {
// ); // );
} }
/* ####################################
사용자 > 구독상품 > 구매/결제 > 회원구매하기 시작
#################################### */
/**
* 사용자 > 구독상품 > 구매/결제 > 구독서비스 결제 > 구독서비스 결제 화면 이동
* @return SubsvcPurchsC.jsp
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectSubsvcPurchsForm")
public String selectSubsvcSetleInqire(HttpServletRequest request, ModelMap model, BOOrdrVO ordrVO) throws Exception {
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
//결재 플랫폼 구분 코드
ordrVO.setSetlePltfomTyCd("PC".equals(request.getAttribute("env"))?"01":"02");
//약관정보 세팅
BOStplatVO stplatVO = new BOStplatVO();
stplatVO.setPageIndex(1);
stplatVO.setPageUnit(paginationProperties.getPageUnit());
stplatVO.setNmbrPurchsAt("Y");
stplatVO.setSrchSopmalCd(user.getSopmalCd());
DataMap stplat = selectBOStplatListInqire(stplatVO);
//주문 상품정보 세팅
if ("01".equals(user.getSysDvCd())) {
ordrVO.setSopmalCd(user.getSopmalCd());
}
ordrVO.setMbrInnb(user.getUserInnb());
ordrVO.setMbrId(user.getMbrId());
ordrVO.setMbrDvCd(user.getMbrDvCd());
Map<String, Object> content = service.selectSubsvcPurchs(ordrVO);
model.addAttribute("data", content);
model.addAttribute("paramVO", new ObjectMapper().writeValueAsString(ordrVO));
model.addAttribute("deviceType", Util.getDeviceType(request));
model.addAttribute("stplat", stplat);
return Util.getDeviceType(request) + "/ordr/SubsvcPurchsC";
}
/**
* 사용자 > 구독상품 > 구매/결제 > 구독서비스 결제 > 구독서비스 조회
* @param param
* @return ResponseEntity<WnbtResponse>
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectOrderSubsvcOne", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> selectOrderSubsvcOne(@RequestBody HashMap<String, Object> param) {
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
BOSubsvcVO subsvcVO = new BOSubsvcVO();
if ("01".equals(user.getSysDvCd())) {
subsvcVO.setSopmalCd(user.getSopmalCd());
}
subsvcVO.setSubsvcInnb(String.valueOf(param.get("subsvcInnb")));
DataMap content = subsvcService.selectBOSubsvcDetail(subsvcVO);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
);
}
/** /**
* 사용자 > 구독상품 > 구매/결제 > 구독서비스 결제 > 결제 예정금액 조회 * 사용자 > 구독상품 > 구매/결제 > 구독서비스 결제 > 결제 예정금액 조회
* @param param * @param param

View File

@@ -77,6 +77,9 @@
}); });
} }
/******************************************************
* 숫자 자릿점 포메팅
* ****************************************************/
const fn_format_number = function(number) { const fn_format_number = function(number) {
return Number(number).toLocaleString(); return Number(number).toLocaleString();
} }
@@ -176,7 +179,7 @@
<main> <main>
<div class="sub-wrapper"> <div class="sub-wrapper">
<div class="sub-content"> <div class="sub-content">
<form> <form method="post" action="/sopmal/ordr/selectSubsvcPurchsForm">
<h2 class="subList__title">구독 서비스</h2> <h2 class="subList__title">구독 서비스</h2>
<div class="ck-content" style="border: 1px solid #e9ecef; background-color: #f8f9fB;"> <div class="ck-content" style="border: 1px solid #e9ecef; background-color: #f8f9fB;">
<c:out value="${ resultMap.sopmalInfo[0].subsvcGuidanceWords }" escapeXml="false"/> <c:out value="${ resultMap.sopmalInfo[0].subsvcGuidanceWords }" escapeXml="false"/>

View File

@@ -8,7 +8,7 @@
<spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/> <spring:eval expression="@environment.getProperty('currency-unit.default')" var="curUnit"/>
<%-- <%--
Class Name : MbrSubscribeC.jsp Class Name : SubsvcPurchsC.jsp
Description : 회원 구독상품 구매하기 Description : 회원 구독상품 구매하기
Modification Information Modification Information
@@ -84,7 +84,7 @@
'mbrDvCd':mbrDvCd, 'mbrDvCd':mbrDvCd,
'mbrId':mbrId, 'mbrId':mbrId,
'sopmalCd':sopmalCd, 'sopmalCd':sopmalCd,
'goodsList':JSON.parse('${data.goodsListByJson}') 'subsvcInnb':${data.subsvcOne.subsvcInnb}
}; };
fn_get_goods_list(param, null); fn_get_goods_list(param, null);
@@ -1950,7 +1950,7 @@
$.ajax({ $.ajax({
type: 'post', type: 'post',
contentType: 'application/json', contentType: 'application/json',
url: '<c:url value="/sopmal/ordr/selectOrderGoodsList"/>', url: '<c:url value="/sopmal/ordr/selectOrderSubsvcOne"/>',
data: JSON.stringify(param), data: JSON.stringify(param),
// data: JSON.stringify(requestData), // data: JSON.stringify(requestData),
dataType: 'json', dataType: 'json',
@@ -1969,9 +1969,9 @@
return false; return false;
} }
localStorage.setItem('goodsList', JSON.stringify(result.goodsList)); localStorage.setItem('subsvcOne', JSON.stringify(result));
fn_set_goods_list(result.goodsList); fn_set_goods_list(result);
fn_set_prsnt_list(result.prsnt); fn_set_prsnt_list(result.prsnt);
@@ -1993,75 +1993,71 @@
let tr = ''; let tr = '';
if (!fn_is_empty(data)) { if (!fn_is_empty(data)) {
for (let i = 0; i < data.length; i++) { tr += '<tr class="ordrGoods" data-product-id="' + fn_nvl(data.subsvcInnb, '') + '">';
const goods = data[i];
tr += '<tr class="ordrGoods" data-product-id="' + fn_nvl(goods.goodsOptnInnb, '') + '">';
tr += ' <td>'; tr += ' <td>';
tr += ' <div class="cartItem">'; tr += ' <div class="cartItem">';
tr += ' <div class="cartItem__image">'; tr += ' <div class="cartItem__image">';
tr += ' <a href="/sopmal/goods/selectGoodsDtl?sopmalCd=' + sopmalCd + '&goodsInnb=' + goods.goodsInnb + '">'; tr += ' <a href="/sopmal/main/selectSubscribeForm?subsvcInnb=' + data.subsvcInnb + '">';
tr += ' <img src="' + cdnurl + goods.goodsImgCours + '" onerror="this.src=\'<c:url value="/pc/images/image_placeholder.png"/>\'" alt="' + goods.goodsNm + '">'; tr += ' <img src="' + cdnurl + data.img + '" onerror="this.src=\'<c:url value="/pc/images/image_placeholder.png"/>\'" alt="' + data.subsvcConcatNm + '">';
tr += ' </a>'; tr += ' </a>';
tr += ' </div>'; tr += ' </div>';
tr += ' <div class="cartItem__productInfo">'; tr += ' <div class="cartItem__productInfo">';
tr += ' <a href="javascript:void(0);" class="cartItem__productTitle">' + goods.goodsNm + '</a>'; tr += ' <a href="javascript:void(0);" class="cartItem__productTitle">' + data.subsvcNm + '</a>';
tr += ' <span class="cartItem__productOption"><span class="option-badge">옵션</span> ' + goods.optn + '</span>'; tr += ' <span class="cartItem__productOption"><span class="option-badge">옵션</span> ' + data.subsvcGnrNm + '</span>';
if (!fn_is_empty(goods.inputOptnText)) { // if (!fn_is_empty(goods.inputOptnText)) {
tr += ' <span class="cartItem__productOption">' + goods.inputOptnText + '</span>'; // tr += ' <span class="cartItem__productOption">' + goods.inputOptnText + '</span>';
} // }
tr += ' </div>'; tr += ' </div>';
tr += ' </div>' tr += ' </div>'
tr += ' <input type="hidden" class="dplctLmttCoupon" value="' + fn_nvl(goods.dplctLmttCoupon, '') + '"/>'; // tr += ' <input type="hidden" class="dplctLmttCoupon" value="' + fn_nvl(goods.dplctLmttCoupon, '') + '"/>';
tr += ' <input type="hidden" class="dplctLmttEvtnm" value="' + fn_nvl(goods.dplctLmttEvtnm, '') + '"/>'; // tr += ' <input type="hidden" class="dplctLmttEvtnm" value="' + fn_nvl(goods.dplctLmttEvtnm, '') + '"/>';
tr += ' <input type="hidden" class="goodsInnb" value="' + fn_nvl(goods.goodsInnb, '') + '"/>'; // tr += ' <input type="hidden" class="goodsInnb" value="' + fn_nvl(goods.goodsInnb, '') + '"/>';
tr += ' <input type="hidden" class="goodsOptnInnb productGoodsOptnInnb" value="' + fn_nvl(goods.goodsOptnInnb, '') + '"/>'; // tr += ' <input type="hidden" class="goodsOptnInnb productGoodsOptnInnb" value="' + fn_nvl(goods.goodsOptnInnb, '') + '"/>';
tr += ' <input type="hidden" class="inputOptn" value="' + fn_nvl(goods.inputOptn, '') + '"/>'; // tr += ' <input type="hidden" class="inputOptn" value="' + fn_nvl(goods.inputOptn, '') + '"/>';
tr += ' <input type="hidden" class="inputOptnText" value="' + fn_nvl(goods.inputOptnText, '') + '"/>'; // tr += ' <input type="hidden" class="inputOptnText" value="' + fn_nvl(goods.inputOptnText, '') + '"/>';
tr += ' <input type="hidden" class="qy productQtyInput" value="' + fn_nvl(goods.qy, '') + '"/>'; // tr += ' <input type="hidden" class="qy productQtyInput" value="' + fn_nvl(goods.qy, '') + '"/>';
tr += ' <input type="hidden" class="usedCoupons" value="' + fn_nvl(goods.usedCoupons, '') + '"/>'; // tr += ' <input type="hidden" class="usedCoupons" value="' + fn_nvl(goods.usedCoupons, '') + '"/>';
tr += ' <input type="hidden" class="product-dlvyGroupInnb" value="' + fn_nvl(goods.dlvyGroupInnb, '') + '"/>'; // tr += ' <input type="hidden" class="product-dlvyGroupInnb" value="' + fn_nvl(goods.dlvyGroupInnb, '') + '"/>';
tr += ' <input type="hidden" class="product-slepric" value="' + fn_nvl(goods.slepric, '') + '"/>'; // tr += ' <input type="hidden" class="product-slepric" value="' + fn_nvl(goods.slepric, '') + '"/>';
tr += ' <input type="hidden" class="product-dscntAmt" value="' + fn_nvl(goods.dscntAmt, '') + '"/>'; // tr += ' <input type="hidden" class="product-dscntAmt" value="' + fn_nvl(goods.dscntAmt, '') + '"/>';
tr += ' <input type="hidden" class="product-mbrInnb" value="' + fn_nvl(goods.mbrInnb, '') + '"/>'; // tr += ' <input type="hidden" class="product-mbrInnb" value="' + fn_nvl(goods.mbrInnb, '') + '"/>';
tr += ' </td>'; tr += ' </td>';
tr += ' <td class="qyTd">'; tr += ' <td class="qyTd">';
tr += ' <span>' + goods.qy + '</span>'; tr += ' <span>' + 1 + '</span>';
tr += ' </td>'; tr += ' </td>';
tr += ' <td>'; tr += ' <td>';
tr += ' <span class="cartItem__discountPrice"><span class="cartItem__discountMinus">(-)</span><span class="comma product-dscntAmt-text">' + (goods.dscntAmt).toLocaleString() + '</span><span class="priceUnit">' + curUnit + '</span></span>'; tr += ' <span class="cartItem__discountPrice"><span class="cartItem__discountMinus">(-)</span><span class="comma product-dscntAmt-text">' + 0 + '</span><span class="priceUnit">' + curUnit + '</span></span>';
tr += ' </td>'; tr += ' </td>';
tr += ' <td>'; tr += ' <td>';
tr += ' <span class="cartItem__beforePrice"><span class="comma product-subCnsmrpric">' + (goods.subCnsmrpric).toLocaleString() + '</span>' + curUnit + '</span>'; tr += ' <span class="cartItem__beforePrice"><span class="comma product-subCnsmrpric">' + (data.cnsmrpric).toLocaleString() + '</span>' + curUnit + '</span>';
tr += ' <span class="cartItem__afterPrice"><span class="comma product-dscntApplyAmt">' + (goods.dscntApplyAmt).toLocaleString() + '</span><span class="priceUnit">' + curUnit + '</span></span>'; tr += ' <span class="cartItem__afterPrice"><span class="comma product-dscntApplyAmt">' + (data.selpric).toLocaleString() + '</span><span class="priceUnit">' + curUnit + '</span></span>';
tr += ' </td>'; tr += ' </td>';
tr += '</tr>'; tr += '</tr>';
if (!fn_is_empty(goods.goodsCouponList)) { // if (!fn_is_empty(goods.goodsCouponList)) {
tr += '<tr>'; // tr += '<tr>';
tr += ' <td>'; // tr += ' <td>';
tr += ' <div class="cartItem__footer">'; // tr += ' <div class="cartItem__footer">';
tr += ' <div class="select-box">'; // tr += ' <div class="select-box">';
tr += ' <select class="useCoupons lg" title="상품쿠폰">'; // tr += ' <select class="useCoupons lg" title="상품쿠폰">';
tr += ' <option value="0" selected>선택</option>'; // tr += ' <option value="0" selected>선택</option>';
//
for (let j = 0; j < goods.goodsCouponList.length; j++) { // for (let j = 0; j < goods.goodsCouponList.length; j++) {
const coupon = goods.goodsCouponList[j]; // const coupon = goods.goodsCouponList[j];
//
tr += ' <option value="' + coupon.dwldCouponInnb + '" coupon-innb="' + coupon.couponInnb + '" dplct-dscnt-at="' + coupon.dplctDscntAt + '" otr-coupon-smtm_use-at="' + coupon.otrCouponSmtmUseAt + '" ' + ('Y' == coupon.isUse ? 'selected' : '') + '/>'; // tr += ' <option value="' + coupon.dwldCouponInnb + '" coupon-innb="' + coupon.couponInnb + '" dplct-dscnt-at="' + coupon.dplctDscntAt + '" otr-coupon-smtm_use-at="' + coupon.otrCouponSmtmUseAt + '" ' + ('Y' == coupon.isUse ? 'selected' : '') + '/>';
tr += ' ' + ('Y' === coupon.otrCouponSmtmUseAt ? '' : '') + coupon.coupNm; // tr += ' ' + ('Y' === coupon.otrCouponSmtmUseAt ? '' : '') + coupon.coupNm;
tr += ' </option>'; // tr += ' </option>';
} // }
//
tr += ' </select>'; // tr += ' </select>';
tr += ' </div>'; // tr += ' </div>';
tr += ' </div>'; // tr += ' </div>';
tr += ' </td>'; // tr += ' </td>';
tr += '</tr>'; // tr += '</tr>';
} // }
}
} else { } else {
tr += '<tr><td colSpan="100%"><spring:message code="common.nodata"/></td></tr>'; tr += '<tr><td colSpan="100%"><spring:message code="common.nodata"/></td></tr>';
} }
@@ -2460,7 +2456,7 @@
setle['sopmalCd'] = $('#sopmalCd').val(); setle['sopmalCd'] = $('#sopmalCd').val();
setle['dlvylc'] = JSON.parse(localStorage.getItem('dlvylc')); setle['dlvylc'] = JSON.parse(localStorage.getItem('dlvylc'));
setle['goodsList'] = JSON.parse(localStorage.getItem('goodsList')); setle['subsvcOne'] = JSON.parse(localStorage.getItem('subsvcOne'));
setle['enuri'] = JSON.parse(localStorage.getItem('enuri')); setle['enuri'] = JSON.parse(localStorage.getItem('enuri'));
setle['dlvylcZip'] = localStorage.getItem('dlvylcZip'); setle['dlvylcZip'] = localStorage.getItem('dlvylcZip');
setle['dlvylcAreaCd'] = localStorage.getItem('dlvylcAreaCd'); setle['dlvylcAreaCd'] = localStorage.getItem('dlvylcAreaCd');
@@ -2471,7 +2467,7 @@
$.ajax({ $.ajax({
type: 'post', type: 'post',
contentType: 'application/json', contentType: 'application/json',
url: '<c:url value="/sopmal/ordr/selectSetleExpectAmt"/>', url: '<c:url value="/sopmal/ordr/selectSubsvcSetleExpectAmt"/>',
data: JSON.stringify(setle), data: JSON.stringify(setle),
dataType: 'json', dataType: 'json',
async : false, async : false,
@@ -3708,7 +3704,7 @@
</div> </div>
</div> </div>
<div id="prsnt" class="orderInfo__section"> <%--<div id="prsnt" class="orderInfo__section">
<h3 class="orderInfo__sectionTitle">사은품</h3> <h3 class="orderInfo__sectionTitle">사은품</h3>
<div class="cartOrder__list"> <div class="cartOrder__list">
<div class="table-wrapper"> <div class="table-wrapper">
@@ -3731,7 +3727,7 @@
</table> </table>
</div> </div>
</div> </div>
</div> </div>--%>
<div class="orderInfo__section multiDeliveryAddress multiOrdr"> <div class="orderInfo__section multiDeliveryAddress multiOrdr">
<h3 class="orderInfo__sectionTitle">배송지 정보 1</h3> <h3 class="orderInfo__sectionTitle">배송지 정보 1</h3>