구독서비스 결제 적용

This commit is contained in:
이대환
2026-03-19 10:09:51 +09:00
parent 3e77f9bf31
commit bcc7371b7a
15 changed files with 501 additions and 235 deletions

View File

@@ -419,8 +419,15 @@ public class BOMaMtngService {
//상품별 총 구매갯수 합계
Map<String, Integer> qySums = goodsList.stream()
.collect(Collectors.groupingBy(
goods -> {
// goodsInnb기준 키로 묶음
goods -> goods.get("goodsInnb").toString(),
Object key = goods.get("goodsInnb");
if(key == null) {
// subsvcInnb기준 키로 묶음
key = goods.get("subsvcInnb");
}
return key.toString();
},
// qy 값을 합산
Collectors.summingInt(goods -> Integer.parseInt(goods.getOrDefault("qy", "0").toString()))
));

View File

@@ -79,6 +79,10 @@ public class BOOrderService {
LinkedHashMap setle = (LinkedHashMap) param.get("setle"); // 결제정보
List<LinkedHashMap> prsntList = (List<LinkedHashMap>) param.get("prsnt"); // 사은품 정보
if(param.containsKey("subsvcInnb")) {
setle.put("subsvcInnb", param.get("subsvcInnb"));
}
log.debug("구매자정보 => {} ", new Gson().toJson(purchsr));
log.debug("상품정보 => {} ", new Gson().toJson(goodsList));
log.debug("배송정보 => {} ", new Gson().toJson(shipping));
@@ -498,7 +502,7 @@ public class BOOrderService {
}
List<LinkedHashMap> itempPrsntList = new ArrayList<>();
if(!prsntList.isEmpty()){
if(prsntList != null && !prsntList.isEmpty()){
itempPrsntList.add(prsntList.get(i));
for (LinkedHashMap<String, Object> itemPrsntMap : itempPrsntList) {
if((goodsQy-j) > 1){
@@ -545,7 +549,7 @@ public class BOOrderService {
}
List<LinkedHashMap> itempPrsntList = new ArrayList<>();
if(!prsntList.isEmpty()){
if(prsntList != null && !prsntList.isEmpty()){
itempPrsntList.add(prsntList.get(i));
for (LinkedHashMap<String, Object> itemPrsntMap : itempPrsntList) {
itemPrsntMap.put("qy", qy.intValue());
@@ -981,7 +985,7 @@ public class BOOrderService {
inputOptnVO.setOptnVal4(optns[3]);
}
itemOptnVO.setOrdrGoodsOptnInnb(orderNoService.generateOrderItemOptnNo());
inputOptnVO.setOrdrGoodsOptnInnb(orderNoService.generateOrderItemOptnNo());
mapper.insertOrdrGoodsOption(inputOptnVO); // 주문 상품 입력 옵션 정보 등록
}
}
@@ -1445,7 +1449,7 @@ public class BOOrderService {
setleVO.setPgCmpnyNm("");
}
if (StringUtils.hasText((String) purchsr.get("mbrId"))) { // GC머니는 회원만 적용
if (StringUtils.hasText((String) purchsr.get("mbrId")) && orderVO.getSubsvcInnb() == null) { // GC머니는 회원만 적용
// GC 머니 사용했을 경우 여부, 금액 세팅 ( 결제유형과는 무관 )
Object useCashMlgAmt = enuri.get("useCashMlgAmt"); // 사용 GC 머니
if (useCashMlgAmt != null) {
@@ -2019,6 +2023,11 @@ public class BOOrderService {
orderVO.setMngrId((String) setle.get("mngrId")); // 관리자ID
orderVO.setMngrNm((String) setle.get("mngrNm")); // 관리자명
}
if (setle.containsKey("subsvcInnb")) { // 구독서비스 고유번호
int subsvcInnb = (Integer) setle.get("subsvcInnb");
orderVO.setSubsvcInnb(subsvcInnb);
}
} else {
orderVO.setOrdrSttusCd("0");
orderVO.setUseAt("Y");

View File

@@ -145,4 +145,6 @@ public class BOOrderVO extends AbstractVO {
private String secretKey;
private String currOrdrSttusCd;
private Integer subsvcInnb;
}

View File

@@ -99,4 +99,56 @@ private static final long serialVersionUID = 1L;
private String sortDv;
/** 배열 구독서비스고유번호 */
private List<String> arrSubsvcInnb;
/** 결제정보 */
/** 회원고유번호 */
private Integer mbrInnb;
/** 회원구분코드 */
private String mbrDvCd;
/** 결제상품정보 */
/** 판매상품 고유번호 */
private Integer goodsInnb;
/** 상품옵션 고유번호 */
private Integer goodsOptnInnb;
/** 개수 */
private Integer qy;
/** 입력옵션 텍스트 */
private String inputOptn;
/** 입력옵션 텍스트 */
private String inputOptnText;
/** 배송그룹고유번호 */
private Integer dlvyGroupInnb;
/** 상품상태코드 */
private String goodsSttusCd;
/** 상품상태명 */
private String goodsSttusNm;
/** 상품명 */
private String goodsNm;
/** 상품옵션 타입 */
private String optnTy;
/** 옵션관계번호 */
private String optnRelateNb;
/** 복수할인여부 */
private String compnbDscntAt;
/** 구간할인여부 */
private String sctnDscntAt;
/** 옵션필수여부 */
private String optnEssntlAt;
/** 소비자가 합계 (형식적용) */
private String subCnsmrpricByFormat;
/** 소비자가 합계 */
private Integer subCnsmrpric;
/** 소비자가 (형식적용) */
private String cnsmrpricByFormat;
/** 판매가 합계 (형식적용) */
private String subSlepricByFormat;
/** 판매가 합계 (형식적용) */
private Integer subSlepric;
/** 판매가 합계 (형식적용) */
private String slepricByFormat;
/** 상품이미지경로 */
private String goodsImgCours;
}

View File

@@ -9,6 +9,7 @@ import com.wb.domainserver.domain.gcone.goods.purchs.vo.BOGoodsVO;
import com.wb.domainserver.domain.gcone.goods.purchs.vo.BOOrderItemOptnVO;
import com.wb.domainserver.domain.gcone.goods.purchs.vo.BOOrderSetleVO;
import com.wb.domainserver.domain.gcone.goods.purchs.vo.BOOrderVO;
import com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO;
import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrAppnVO;
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.*;
@@ -994,6 +995,14 @@ public interface BOOrdrMapper {
*/
public List<DataMap> selectMbrSubsvcOrdrList(BOOrdrDlvyVO ordrDlvyVO);
/**
* 사용자 > 구독서비스 결제 > 구독서비스 주문 상품 목록 조회
* @param subsvcVO
* @return List<BOSubsvcVO>
*/
public List<BOSubsvcVO> selectSubsvcGoodsList(BOSubsvcVO subsvcVO);
/**
* 최종 한화금액이 결제금액보다 많은지 체크하여 환불금액(원화) update
* @param refundVO

View File

@@ -1,5 +1,6 @@
package com.wb.domainserver.domain.gcone.ordr.ordr.service;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.nimbusds.jose.shaded.gson.Gson;
import com.wb.domainserver.common.prop.PropertyService;
@@ -2896,7 +2897,7 @@ public class BOOrdrService{
content.put("purchsr", purchsrMap);
content.put("mlgAccmlNtcList", purchsMapper.selectMlgAccmlNtcList(purchsrVO));
content.put("goodsList", goodsList);
content.put("goodsListByJson", new Gson().toJson(goodsList));
content.put("goodsListByJson", new Gson().toJson(goodsList));//subslepric
content.put("payInfo", payInfo);
content.put("shopInfo", shopInfo);
@@ -6187,6 +6188,10 @@ public class BOOrdrService{
subsvcVO.setSopmalCd(ordrVO.getSopmalCd());
subsvcVO.setSubsvcInnb(ordrVO.getSubsvcInnb());
//결제정보 추가
subsvcVO.setMbrInnb(ordrVO.getMbrInnb());
subsvcVO.setMbrDvCd(ordrVO.getMbrDvCd());
DataMap subsvcOne = subsvcService.selectBOSubsvcDetail(subsvcVO);
BOPurchsrVO purchsrVO = new BOPurchsrVO();
@@ -6246,7 +6251,7 @@ public class BOOrdrService{
*/
public Map<String, Object> selectSubsvcSetleExpectAmt(DataMap param) throws Exception {
Map<String, Object> content = new HashMap<>();
log.debug("selectSetleExpectAmt-param : {}", param);
log.debug("selectSubsvcSetleExpectAmt-param : {}", param);
LinkedHashMap setleExpectAmtMap = new LinkedHashMap() {{
put("goodsAmt", 0);
@@ -6259,27 +6264,54 @@ public class BOOrdrService{
put("useCashMlgAmt", 0);
put("dscntAmt", 0);
put("setleAmt", 0);
put("setleAmtKr", 0);
put("accmlMlgAmt", 0);
}};
BigDecimal goodsAmt = new BigDecimal(0);
BigDecimal setleAmt = new BigDecimal(0);
BigDecimal setleAmtKr = new BigDecimal(0);
LinkedHashMap subsvcOne = (LinkedHashMap) param.get("subsvcOne");
BigDecimal buyRate = mapper.selectBuyRate(param);
List<LinkedHashMap> subsvcList = (List<LinkedHashMap>) param.get("goodsList");
LinkedHashMap subsvcOne = subsvcList.get(0);
log.debug("subsvcOne : {}", subsvcOne);
goodsAmt = BigDecimal.valueOf((Integer) subsvcOne.get("selpric"));
setleAmt = BigDecimal.valueOf((Integer) subsvcOne.get("selpric"));
log.debug("결제 예정 금액 : {}", setleAmt);
// 환율계산
setleAmtKr = setleAmt.multiply(buyRate);
setleAmtKr = setleAmtKr.setScale(0,RoundingMode.HALF_UP);
log.debug("결제 예정 금액 (환율 적용) : {}", setleAmtKr);
// ############################################## 결제 예정 금액 적용 ##############################################
setleExpectAmtMap.put("goodsAmt", goodsAmt.intValue());
setleExpectAmtMap.put("setleAmt", setleAmt.intValue());
setleExpectAmtMap.put("setleAmtKr", setleAmtKr.intValue());
content.put("setleExpectAmt", setleExpectAmtMap);
content.put("subsvcOne", param.get("subsvcOne"));
content.put("goodsList", param.get("goodsList"));
return content;
}
/**
* 사용자 > 상품 > 장바구니 > 장바구니 조회 > 장바구니 상품 목록 조회
* @param subsvcVO
* @return Map<String, Object>
*/
public List<LinkedHashMap<String, Object>> selectSubsvcGoodsList(BOSubsvcVO subsvcVO) {
List<BOSubsvcVO> subsvcGoodsList = mapper.selectSubsvcGoodsList(subsvcVO);
ObjectMapper objectMapper = new ObjectMapper();
List<LinkedHashMap<String, Object>> goodsLinkedHashMapList =
new ObjectMapper().convertValue(subsvcGoodsList, new TypeReference<List<LinkedHashMap<String, Object>>>() {});
return goodsLinkedHashMapList;
}
/* ####################################
사용자 > 구독상품 > 구매/결제 > 구독서비스 결제 종료
#################################### */

View File

@@ -444,7 +444,7 @@ public class OrdrController {
* @return ResponseEntity<WnbtResponse>
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectOrderSubsvcOne", produces = MediaType.APPLICATION_JSON_VALUE)
@RequestMapping(value="/selectOrderSubsvcList", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> selectOrderSubsvcOne(@RequestBody HashMap<String, Object> param) {
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
BOSubsvcVO subsvcVO = new BOSubsvcVO();
@@ -452,9 +452,11 @@ public class OrdrController {
if ("01".equals(user.getSysDvCd())) {
subsvcVO.setSopmalCd(user.getSopmalCd());
}
subsvcVO.setMbrInnb((Integer) param.get("mbrInnb"));
subsvcVO.setSubsvcInnb(String.valueOf(param.get("subsvcInnb")));
DataMap content = subsvcService.selectBOSubsvcDetail(subsvcVO);
List<DataMap> content = new ArrayList<>();
content.add(subsvcService.selectBOSubsvcDetail(subsvcVO));
return ResponseEntity.ok(
WnbtResponse.builder()
@@ -788,6 +790,17 @@ public class OrdrController {
paramData.put(map.getKey(), map.getValue());
});
LinkedHashMap goodsOne = ((List<LinkedHashMap>) paramData.get("goodsList")).get(0);
if(goodsOne.containsKey("subsvcInnb")) {
BOSubsvcVO subsvcVO = new BOSubsvcVO();
subsvcVO.setSopmalCd((String) goodsOne.get("sopmalCd"));
subsvcVO.setSubsvcInnb(goodsOne.get("subsvcInnb").toString());
subsvcVO.setQy(1);
paramData.remove("goodsList");
paramData.put("goodsList", service.selectSubsvcGoodsList(subsvcVO));
}
Map<String, Object> resultMap = insertBOOrder(paramData);
// Map<String, Object> resultMap = responseHandler.handleResponseAsMap(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/insertBOOrder", param)
@@ -3106,6 +3119,8 @@ public class OrdrController {
List<LinkedHashMap> goodsList = (List<LinkedHashMap>) param.get("goodsList"); // 상품정보
LinkedHashMap enuri = null;
LinkedHashMap setle = null;
// 구독서비스 여부
Boolean isSubsvc = goodsList.get(0).containsKey("subsvcInnb");
//회원일 경우에만 enuri정보 존재
if(user.getUserInnb() > 0){
@@ -3151,8 +3166,7 @@ public class OrdrController {
return content;
}
if (CollectionUtils.isEmpty(enuri)) {
if (!isSubsvc && CollectionUtils.isEmpty(enuri)) {
log.info("할인 또는 결제 정보를 찾을 수 없습니다.");
content.put("result","Y");
content.put("message", "할인 또는 결제 정보를 찾을 수 없습니다.");
@@ -3162,7 +3176,7 @@ public class OrdrController {
String sopmalCd = (String) param.get("sopmalCd");
String ordrTyCd = (String) param.get("ordrTyCd");
String mbrInnb = (String) goodsList.get(0).get("mbrInnb");
String mbrInnb = String.valueOf(goodsList.get(0).get("mbrInnb"));
String mbrDvCd = (String) goodsList.get(0).get("mbrDvCd");
String ordrrMbtlnb = (String) purchsr.get("mbtlnb");
@@ -3300,7 +3314,12 @@ public class OrdrController {
//회원/비회원 총결제금액
String reqSetleAmt = StringUtil.isNullToString(setle.get("rlSetleAmt"));
//재계산된 총결제금액관련정보
Map<String, Object> resultAmt = service.selectSetleExpectAmt(param);
Map<String, Object> resultAmt;
if(isSubsvc) {
resultAmt = service.selectSubsvcSetleExpectAmt(param);
} else {
resultAmt = service.selectSetleExpectAmt(param);
}
if(resultAmt.containsKey("setleExpectAmt")){
LinkedHashMap setleExpectAmt = (LinkedHashMap) resultAmt.get("setleExpectAmt");

View File

@@ -66,6 +66,10 @@
, RCIPT_NB
, SLE_EMPL_NM
, DWLD_COUPON_INNB
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(subsvcInnb)">
, SUBSVC_INNB
, SUBSVC_AT
</if>
, INDVDL_SETLE_SMS_CN
, INDVDL_SETLE_SMS_MBTLNB
, INDVDL_SETLE_SMS_AT
@@ -132,6 +136,10 @@
, #{rciptNb}
, #{sleEmplNm}
, #{dwldCouponInnb}
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(subsvcInnb)">
, #{subsvcInnb}
, 'Y'
</if>
, #{indvdlSetleSmsCn}
, HEX(AES_ENCRYPT(REPLACE(#{indvdlSetleSmsMbtlnb}, '-', ''), '1df5be2f7e90ae36'))
, #{indvdlSetleSmsAt}

View File

@@ -61,6 +61,15 @@
, GS.MBL_SUBSVC_DC_PC_SAME_AT /*모바일 구독서비스 설명 PC동일여부*/
, GS.LAST_PROCS_ODR /*최종차수*/
, GS.DFT_GOODS_OPTN_INNB /*기본상품옵션고유번호*/
, 1 AS QY /*구독서비스 결제 수량*/
]]>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mbrInnb)">
, #{mbrInnb} AS mbrInnb /*회원 고유번호*/
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mbrDvCd)">
, #{mbrDvCd} AS mbrDvCd /*회원구분코드*/
</if>
<![CDATA[
FROM GC_SUBSVC GS
WHERE GS.SOPMAL_CD = #{sopmalCd}
AND GS.SUBSVC_INNB = #{subsvcInnb}

View File

@@ -4241,7 +4241,7 @@
AND FC.SOPMAL_CD = #{sopmalCd}
AND FC.INPUT_OPTN_RELATE_NB = FGO.GOODS_OPTN_INNB
<if test="mbrInnb == 0 ">
AND FC.SESION_ID = #{sesionId}
AND FC.SESION_ID = #{sesionId}0
</if>
<if test="mbrInnb != 0 ">
AND FC.MBR_INNB = #{mbrInnb}
@@ -5589,6 +5589,97 @@
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</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 (
SELECT 1 AS n
UNION ALL
SELECT n + 1 FROM seq WHERE n <![CDATA[<]]> 24
)
SELECT GGO.SOPMAL_CD
, #{mbrInnb} AS MBR_INNB
, (
SELECT GM.MBR_DV_CD
FROM GC_MEMBER GM
INNER JOIN GC_MEMBER_GRAD_MAPPING GMGM
ON GMGM.MBR_INNB = GM.MBR_INNB
AND GMGM.MBR_DV_CD = GM.MBR_DV_CD
WHERE GM.USE_AT = 'Y'
AND GMGM.SOPMAL_CD = #{sopmalCd}
AND GMGM.MBR_INNB = #{mbrInnb}
) AS MBR_DV_CD
, GGO.GOODS_INNB
, GS.DFT_GOODS_OPTN_INNB AS GOODS_OPTN_INNB
, CAST(#{qy} AS UNSIGNED) AS QY
-- , (
-- SELECT CONCAT(
-- GS.SOPMAL_CD, ',',
-- GGO.GOODS_INNB, ',',
-- GS.DFT_GOODS_OPTN_INNB, ',',
-- GGO.OPTN_NM_1, ',',
-- ''#INPUT_OPTN_CN
-- )
-- ) AS INPUT_OPTN
-- , (
-- SELECT CONCAT(
-- GGO.OPTN_NM_1, ':',
-- ''#INPUT_OPTN_CN
-- )
-- ) AS INPUT_OPTN_TEXT
, GG.DLVY_GROUP_INNB
, GG.GOODS_STTUS_CD
, CASE WHEN GG.GOODS_STTUS_CD='03' AND GG.SEL_STPGE_CUSTOM_WORDS_AT ='Y' AND IFNULl(GG.SEL_STPGE_CUSTOM_WORDS, '')!='' THEN GG.SEL_STPGE_CUSTOM_WORDS
ELSE FN_GET_COMMCODE_NAME('GOODS_STTUS', GG.GOODS_STTUS_CD)
END AS GOODS_STTUS_NM
, GG.GOODS_NM
, GGO.OPTN_TY
, GGO.OPTN_RELATE_NB
, GGO.COMPNB_DSCNT_AT
, GGO.SCTN_DSCNT_AT
, NULLIF(GGO.OPTN_ESSNTL_AT, '') AS OPTN_ESSNTL_AT
, FORMAT(IFNULL(GGO.CNSMRPRIC, 0) * #{qy}, 0) AS SUB_CNSMRPRIC_BY_FORMAT
, IFNULL(GGO.CNSMRPRIC, 0) * #{qy} AS SUB_CNSMRPRIC
, FORMAT(IFNULL(GGO.CNSMRPRIC, 0), 0) AS CNSMRPRIC_BY_FORMAT
, IFNULL(GGO.CNSMRPRIC, 0) AS CNSMRPRIC
, FORMAT(IFNULL(GGO.SLEPRIC, 0) * #{qy}, 0) AS SUB_SLEPRIC_BY_FORMAT
, IFNULL(GGO.SLEPRIC, 0) * #{qy} AS SUB_SLEPRIC
, FORMAT(IFNULL(GGO.SLEPRIC, 0), 0) AS SLEPRIC_BY_FORMAT
, IFNULL(GGO.SLEPRIC, 0) AS SLEPRIC
, CONCAT(GGO.OPTN1, IF(GGO.OPTN2 IS NULL , '', CONCAT('/', GGO.OPTN2))
, IF(GGO.OPTN3 IS NULL , '', CONCAT('/', GGO.OPTN3))
, IF(GGO.OPTN4 IS NULL , '', CONCAT('/', GGO.OPTN4))) AS OPTN
, GGI.IMG AS GOODS_IMG_COURS
FROM GC_SUBSVC GS
INNER JOIN (
SELECT *
, CASE WHEN GGO.OPTN_NM_1 != '' AND GGO.OPTN_VAL_1 != ''
THEN CONCAT(GGO.OPTN_NM_1,':',GGO.OPTN_VAL_1)
END OPTN1
, CASE WHEN GGO.OPTN_NM_2 != '' AND GGO.OPTN_VAL_2 != ''
THEN CONCAT(GGO.OPTN_NM_2,':',GGO.OPTN_VAL_2)
END OPTN2
, CASE WHEN GGO.OPTN_NM_3 != '' AND GGO.OPTN_VAL_3 != ''
THEN CONCAT(GGO.OPTN_NM_3,':',GGO.OPTN_VAL_3)
END OPTN3
, CASE WHEN GGO.OPTN_NM_4 != '' AND GGO.OPTN_VAL_4 != ''
THEN CONCAT(GGO.OPTN_NM_4,':',GGO.OPTN_VAL_4)
END OPTN4 from GC_GOODS_OPTION GGO
)GGO
ON GGO.SOPMAL_CD = GS.SOPMAL_CD
AND GGO.GOODS_OPTN_INNB = GS.DFT_GOODS_OPTN_INNB
INNER JOIN GC_GOODS GG
ON GGO.SOPMAL_CD = GG.SOPMAL_CD
AND GGO.GOODS_INNB = GG.GOODS_INNB
JOIN seq
ON seq.n <![CDATA[<=]]> GS.SUB_PD
LEFT JOIN GC_GOODS_IMAGE GGI ON GG.SOPMAL_CD = GGI.SOPMAL_CD
AND GG.GOODS_INNB = GGI.GOODS_INNB
AND GGI.IMG_KND = '03'
AND GGI.CUT_NB = 1
WHERE GS.SOPMAL_CD = #{sopmalCd}
AND GS.SUBSVC_INNB = #{subsvcInnb}
</select>
<!-- 한화금액이 결제금액보다 많은지 체크하여 환불금액(원화) update -->
<update id="updateBOWonRefundAmt" parameterType="com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrRefundVO">
<![CDATA[

View File

@@ -12,6 +12,7 @@ secured:
- /sopmal/bnft/**
- /sopmal/ordr/selectSpbk
- /sopmal/ordr/selectMbrPurchsForm
- /sopmal/ordr/selectSubsvcPurchsForm
admin:
anonmymous:
# 로그인 없이 접근가능한 uri없음

View File

@@ -22,7 +22,13 @@
<script>
$(document).ready(function() {
var urlParams = new URLSearchParams(window.location.search);
if (urlParams.has('subsvcInnb')) {
$('#subsvcInnb').val(urlParams.get("subsvcInnb"));
}
var subsvcInnb = $('#subsvcInnb').val();
$('select[name="subsvcInnb"]').niceSelect('update');
fn_select_subsvcDetail(subsvcInnb);
fn_scroll_event();
});

View File

@@ -6,7 +6,7 @@
<%@ 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"/>
<spring:eval expression="@environment.getProperty('currency-unit.KR')" var="krUnit"/>
<%--
Class Name : SubsvcPurchsC.jsp
Description : 회원 구독상품 구매하기
@@ -79,12 +79,15 @@
const mbrDvCd = $('#mbrDvCd').val();
const mbrId = $('#mbrId').val();
const sopmalCd = $('#sopmalCd').val();
const mbrInnb = ${data.purchsr.mbrInnb};
const subsvcInnb = ${data.subsvcOne.subsvcInnb};
let param = {
'mbrDvCd':mbrDvCd,
'mbrId':mbrId,
'sopmalCd':sopmalCd,
'subsvcInnb':${data.subsvcOne.subsvcInnb}
'mbrInnb':mbrInnb,
'subsvcInnb':subsvcInnb
};
fn_get_goods_list(param, null);
@@ -275,12 +278,12 @@
});
// 마일리지 입력 글자수제한 숫자표시
$('input[name="btnAllUseMlgAmt"]').on("input", function () {
/*$('input[name="btnAllUseMlgAmt"]').on("input", function () {
$(".inputLimit__current").text($(this).val().length);
});
});*/
/* 배송지정보 > 배송비 쿠폰 선택 이벤트 */
$(document).on('change', '.dlvylcCouponList', function() {
/*$(document).on('change', '.dlvylcCouponList', function() {
// fn_check_dplct_lmtt_coupon('02', $(this));
if (!$(this).data('fromProductCoupon')) {
fn_check_dplct_lmtt_coupon('02', $(this));
@@ -327,10 +330,10 @@
}
fn_get_setle_amt();
});
});*/
/* 주문 상품 > 상품 쿠폰 선택 이벤트 */
$(document).on('change', '.useCoupons', function() {
/*$(document).on('change', '.useCoupons', function() {
$('#dlvylcCouponList').data('fromProductCoupon', true); // 플래그 설정
$('#dlvylcCouponList option:first').prop('selected', true).change();
@@ -428,10 +431,10 @@
fn_get_setle_amt();
});
});*/
/* 할인 정보 > 장바구니 쿠폰 선택 이벤트 */
$('#cartCouponList').on('change', function() {
/*$('#cartCouponList').on('change', function() {
if (!$(this).data('fromProductCoupon')) {
fn_check_dplct_lmtt_coupon('03', $(this));
@@ -464,10 +467,10 @@
fn_get_setle_amt();
});
});*/
/* 할인 정보 > 마일리지 할인 포커스 아웃 이벤트 */
$('#useMlgAmt').focusout(function() {
/*$('#useMlgAmt').focusout(function() {
$('#useCashMlgAmt').val(0);
const useMlgAmt = $(this).val();
const mlgAmt = parseInt(!fn_is_empty(useMlgAmt) ? useMlgAmt : '0');
@@ -476,10 +479,10 @@
fn_set_enuri();
fn_get_setle_amt();
});
});*/
/* 할인 정보 > GC 머니 할인 포커스 아웃 이벤트 */
$('#useCashMlgAmt').focusout(function() {
/*$('#useCashMlgAmt').focusout(function() {
const useCashMlgAmt = $(this).val();
const cashMlgAmt = parseInt(!fn_is_empty(useCashMlgAmt) ? useCashMlgAmt : '0');
const ableCashMlgAmt = $(this).closest('div').find('input[name="ableCashMlgAmt"]').val();
@@ -488,10 +491,10 @@
fn_get_setle_amt();
$('#pg03').click();
});
});*/
/* 할인 정보 > 마일리지 모두사용 버튼 선택 이벤트 */
$('#btnAllUseMlgAmt').on('click', function() {
/*$('#btnAllUseMlgAmt').on('click', function() {
$('#useCashMlgAmt').val(0);
const ableMlgAmt = parseInt($(this).closest('div').find('input[name="ableMlgAmt"]').val(), 10);
const lmttUseMlg = parseInt($('#lmttUseMlg').val(), 10);
@@ -501,10 +504,10 @@
fn_set_enuri();
fn_get_setle_amt();
});
});*/
/* 할인 정보 > GC 머니 모두사용 버튼 선택 이벤트 */
$('#btnAllUseCashMlgAmt').on('click', function() {
/*$('#btnAllUseCashMlgAmt').on('click', function() {
const ableCashMlgAmt = parseInt($(this).closest('div').find('input[name="ableCashMlgAmt"]').val(), 10);
const lmttUseCashMlg = parseInt($('#lmttUseCashMlg').val(), 10);
@@ -515,7 +518,7 @@
fn_get_setle_amt();
$('#pg03').click();
});
});*/
/* 결제정보 결제수단 버튼 선택 이벤트 */
$('input[name="pg"]').on('click', function() {
@@ -863,7 +866,7 @@
fn_set_multiordrdlcylc(); // 배송지별 상품 세팅
fn_get_dlvylc_coupon_list_multi();
// fn_get_dlvylc_coupon_list_multi();
fn_get_setle_amt();
@@ -916,7 +919,7 @@
/* 여러곳 배송 > 배송지정보 > 배송지 쿠폰 목록 조회 */
const fn_get_dlvylc_coupon_list_multi = function() {
/*const fn_get_dlvylc_coupon_list_multi = function() {
let dlvylcMulti = {};
dlvylcMulti['multiOrdrDlvylc'] = JSON.parse(localStorage.getItem('multiOrdrDlvylc'));
@@ -994,10 +997,10 @@
}
});
}
}
}*/
/* 여러곳 배송 > 배송지정보 > 배송지 쿠폰 목록 세팅 */
const fn_set_dlvylc_coupon_list_multi = function(data, formIndex) {
/*const fn_set_dlvylc_coupon_list_multi = function(data, formIndex) {
if (!fn_is_empty(data)) {
let form = $('#dlvylcForm');
@@ -1037,7 +1040,7 @@
$(form).find('.dlvyAmt').val(data.dlvyAmt);
}
}
}
}*/
/* 여러곳 배송 > 배송지별 상품목록 동기화 */
@@ -1267,7 +1270,7 @@
fn_set_multiordrdlcylc();
fn_get_dlvylc_coupon_list_multi();
// fn_get_dlvylc_coupon_list_multi();
fn_get_setle_amt();
}
@@ -1629,7 +1632,7 @@
fn_set_multiordrdlcylc();
fn_get_dlvylc_coupon_list_multi();
// fn_get_dlvylc_coupon_list_multi();
}
@@ -1661,7 +1664,7 @@
localStorage.removeItem('multiOrdrDlvylc');
fn_get_dlvylc_coupon_list();
// fn_get_dlvylc_coupon_list();
fn_get_setle_amt(); // 결제예정금액 조회
} else if ('05' === ordrTyValue) { // 여러곳 배송
@@ -1752,7 +1755,7 @@
fn_set_multiordrdlcylc(); // 배송지별 상품객체 세팅
fn_get_dlvylc_coupon_list_multi();
// fn_get_dlvylc_coupon_list_multi();
fn_get_setle_amt(); // 결제예정금액 조회
}
@@ -1843,7 +1846,7 @@
}
/* 배송지정보 > 배송지 쿠폰 목록 조회 */
const fn_get_dlvylc_coupon_list = function() {
/*const fn_get_dlvylc_coupon_list = function() {
let goodsList = localStorage.getItem('goodsList');
if (!fn_is_empty(goodsList)) {
@@ -1883,10 +1886,10 @@
}
});
}
}
}*/
/* 배송지정보 > 배송지 쿠폰 목록 세팅 */
const fn_set_dlvylc_coupon_list = function(data) {
/*const fn_set_dlvylc_coupon_list = function(data) {
if (!fn_is_empty(data)) {
const form = $('#dlvylcForm');
@@ -1919,7 +1922,7 @@
$(form).find('.dlvyAmt').val(data.dlvyAmt);
}
}
}
}*/
/* 배송지정보 > 배송지 정보 조회 */
const fn_get_dlvylc_data = function() {
@@ -1950,7 +1953,7 @@
$.ajax({
type: 'post',
contentType: 'application/json',
url: '<c:url value="/sopmal/ordr/selectOrderSubsvcOne"/>',
url: '<c:url value="/sopmal/ordr/selectOrderSubsvcList"/>',
data: JSON.stringify(param),
// data: JSON.stringify(requestData),
dataType: 'json',
@@ -1969,13 +1972,13 @@
return false;
}
localStorage.setItem('subsvcOne', JSON.stringify(result));
localStorage.setItem('goodsList', JSON.stringify(result));
fn_set_goods_list(result);
fn_set_prsnt_list(result.prsnt);
// fn_set_prsnt_list(result.prsnt);
fn_get_dlvylc_coupon_list();
// fn_get_dlvylc_coupon_list();
}
},
error: function (data) {
@@ -1993,17 +1996,20 @@
let tr = '';
if (!fn_is_empty(data)) {
tr += '<tr class="ordrGoods" data-product-id="' + fn_nvl(data.subsvcInnb, '') + '">';
for (let i = 0; i < data.length; i++) {
const goods = data[i];
tr += '<tr class="ordrGoods" data-product-id="' + fn_nvl(goods.subsvcInnb, '') + '">';
tr += ' <td>';
tr += ' <div class="cartItem">';
tr += ' <div class="cartItem__image">';
tr += ' <a href="/sopmal/main/selectSubscribeForm?subsvcInnb=' + data.subsvcInnb + '">';
tr += ' <img src="' + cdnurl + data.img + '" onerror="this.src=\'<c:url value="/pc/images/image_placeholder.png"/>\'" alt="' + data.subsvcConcatNm + '">';
tr += ' <a href="/sopmal/main/selectSubscribeForm?subsvcInnb=' + goods.subsvcInnb + '">';
tr += ' <img src="' + cdnurl + goods.img + '" onerror="this.src=\'<c:url value="/pc/images/image_placeholder.png"/>\'" alt="' + goods.subsvcConcatNm + '">';
tr += ' </a>';
tr += ' </div>';
tr += ' <div class="cartItem__productInfo">';
tr += ' <a href="javascript:void(0);" class="cartItem__productTitle">' + data.subsvcNm + '</a>';
tr += ' <span class="cartItem__productOption"><span class="option-badge">옵션</span> ' + data.subsvcGnrNm + '</span>';
tr += ' <a href="javascript:void(0);" class="cartItem__productTitle">' + goods.subsvcNm + '</a>';
tr += ' <span class="cartItem__productOption"><span class="option-badge">옵션</span> ' + goods.subsvcGnrNm + '</span>';
// if (!fn_is_empty(goods.inputOptnText)) {
// tr += ' <span class="cartItem__productOption">' + goods.inputOptnText + '</span>';
@@ -2013,13 +2019,13 @@
tr += ' </div>'
// 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="goodsInnb" value="' + fn_nvl(goods.goodsInnb, '') + '"/>';
tr += ' <input type="hidden" class="subsvcInnb" value="' + fn_nvl(goods.subsvcInnb, '') + '"/>';
// 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="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="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-dscntAmt" value="' + fn_nvl(goods.dscntAmt, '') + '"/>';
// tr += ' <input type="hidden" class="product-mbrInnb" value="' + fn_nvl(goods.mbrInnb, '') + '"/>';
@@ -2031,8 +2037,8 @@
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 += ' <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">' + (data.selpric).toLocaleString() + '</span><span class="priceUnit">' + curUnit + '</span></span>';
tr += ' <span class="cartItem__beforePrice"><span class="comma product-subCnsmrpric">' + (goods.cnsmrpric).toLocaleString() + '</span>' + curUnit + '</span>';
tr += ' <span class="cartItem__afterPrice"><span class="comma product-dscntApplyAmt">' + (goods.selpric).toLocaleString() + '</span><span class="priceUnit">' + curUnit + '</span></span>';
tr += ' </td>';
tr += '</tr>';
@@ -2058,6 +2064,7 @@
// tr += ' </td>';
// tr += '</tr>';
// }
}
} else {
tr += '<tr><td colSpan="100%"><spring:message code="common.nodata"/></td></tr>';
}
@@ -2067,7 +2074,7 @@
}
/* 주문 상품 > 사은품 목록 세팅 */
const fn_set_prsnt_list = function(data) {
/*const fn_set_prsnt_list = function(data) {
if (!fn_is_empty(data)) {
const tbody = $('#prsntList');
const keys = Object.keys(data);
@@ -2123,7 +2130,7 @@
$(tbody).empty().append(tr);
$(tbody).closest('table').find('.select-box select').niceSelect();
/* 수령여부 라디오 선택 이벤트 */
/!* 수령여부 라디오 선택 이벤트 *!/
$(tbody).find('.rcvPrsnt').on('click', function () {
const evtInnb = $(this).closest('tr').find('.evtInnb').val();// $(this).attr('evtInnb')
const isRcvPrsnt = $(this).val();
@@ -2147,10 +2154,10 @@
} else {
$('#prsnt').hide();
}
}
}*/
/* 사은품 데이타 세팅 */
const fn_get_prsnt_data = function(goodsInnb) {
/*const fn_get_prsnt_data = function(goodsInnb) {
const rows = $('#prsntList').find('[class*=prsnt_]');
let prsnts = [];
@@ -2182,10 +2189,10 @@
}
return prsnts;
}
}*/
/* 할인 정보 > 장바구니 쿠폰 목록 조회 */
const fn_get_cart_coupon_list = function() {
/*const fn_get_cart_coupon_list = function() {
let formData = fn_get_form_obj('enuriForm');
formData.setleAmt = String(Number(formData.setleAmt) - Number(formData.dlvyAmt));
@@ -2222,10 +2229,10 @@
alert('<spring:message code="error.internal-server"/>');
}
});
}
}*/
/* 할인 정보 > 장바구니 쿠폰 목록 세팅 */
const fn_set_cart_coupon_list = function(data) {
/*const fn_set_cart_coupon_list = function(data) {
if (!fn_is_empty(data)) {
const select = $('#cartCouponList');
const cartCouponList = data.cartCouponList;
@@ -2251,7 +2258,7 @@
$(select).empty().append(option).niceSelect('update');
}
}
}
}*/
/* 결제정보 > 일반결제 현금영수증 화면 세팅*/
const fn_set_csh_rcipt_issu = function(id) {
@@ -2439,7 +2446,7 @@
}
/* 할인 정보 > 할인 정보 정보 세팅 */
const fn_set_enuri = function() {
/*const fn_set_enuri = function() {
let enuri = fn_get_form_obj('enuriForm');
const cartCoupon = JSON.parse(localStorage.getItem('cartCoupon'));
@@ -2448,7 +2455,7 @@
}
localStorage.setItem('enuri', JSON.stringify(enuri));
}
}*/
/* 결제예정금액 > 결제금액 조회 */
const fn_get_setle_amt = function() {
@@ -2465,8 +2472,8 @@
setle['sopmalCd'] = $('#sopmalCd').val();
setle['dlvylc'] = JSON.parse(localStorage.getItem('dlvylc'));
setle['subsvcOne'] = JSON.parse(localStorage.getItem('subsvcOne'));
setle['enuri'] = JSON.parse(localStorage.getItem('enuri'));
setle['goodsList'] = JSON.parse(localStorage.getItem('goodsList'));
// setle['enuri'] = JSON.parse(localStorage.getItem('enuri'));
setle['dlvylcZip'] = localStorage.getItem('dlvylcZip');
setle['dlvylcAreaCd'] = localStorage.getItem('dlvylcAreaCd');
setle['prefcd'] = localStorage.getItem('prefcd');
@@ -2487,19 +2494,19 @@
if (parseData.status === '1') {
alert(parseData.message);
let useMilg = $('.useMilg').text().replace(/,/g, '');
if (!fn_is_empty(parseData.mlgMxmmUseAmt)) {
let mlgMxmmUseAmt = parseAmount(parseData.mlgMxmmUseAmt);
useMilg = mlgMxmmUseAmt;
}
// let useMilg = $('.useMilg').text().replace(/,/g, '');
// if (!fn_is_empty(parseData.mlgMxmmUseAmt)) {
// let mlgMxmmUseAmt = parseAmount(parseData.mlgMxmmUseAmt);
// useMilg = mlgMxmmUseAmt;
// }
$('#useMlgAmt').val(useMilg);
// $('#useMlgAmt').val(useMilg);
let useCashMilg = $('.useCashMilg').text().replace(/,/g, '');
// let useCashMilg = $('.useCashMilg').text().replace(/,/g, '');
$('#useCashMlgAmt').val(useCashMilg);
// $('#useCashMlgAmt').val(useCashMilg);
fn_set_enuri();
// fn_set_enuri();
fn_get_setle_amt();
} else {
@@ -2514,12 +2521,12 @@
if (ordrTyCd === '05') { // 여러곳 배송
fn_set_multiordrdlcylc();
fn_get_dlvylc_coupon_list_multi();
// fn_get_dlvylc_coupon_list_multi();
} else {
fn_get_dlvylc_coupon_list();
// fn_get_dlvylc_coupon_list();
}
fn_get_cart_coupon_list();
// fn_get_cart_coupon_list();
}
}
@@ -2541,50 +2548,51 @@
$('#accmlMlgAmtSapn').text((data.accmlMlgAmt).toLocaleString());
$('#setleAmtSapn').text((data.setleAmt).toLocaleString());
$('#setleAmtKrSapn').text((data.setleAmtKr).toLocaleString());
let li = '';
if (data.evtDscntAmt > 0) {
li += '<li class="cartOrderBox__miscItem first">';
li += ' <span class="cartOrderBox__miscTh">이벤트</span>';
li += ' <span class="cartOrderBox__miscTd"><span class="comma">' + (data.evtDscntAmt).toLocaleString() + '</span><span class="priceUnit">' + curUnit + '</span></span>';
li += '</li>';
}
// if (data.evtDscntAmt > 0) {
// li += '<li class="cartOrderBox__miscItem first">';
// li += ' <span class="cartOrderBox__miscTh">이벤트</span>';
// li += ' <span class="cartOrderBox__miscTd"><span class="comma">' + (data.evtDscntAmt).toLocaleString() + '</span><span class="priceUnit">' + curUnit + '</span></span>';
// li += '</li>';
// }
if (data.goodsCouponDscntAmt > 0) {
li += '<li class="cartOrderBox__miscItem">';
li += ' <span class="cartOrderBox__miscTh">상품 쿠폰</span>';
li += ' <span class="cartOrderBox__miscTd"><span class="comma">' + (data.goodsCouponDscntAmt).toLocaleString() + '</span><span class="priceUnit">' + curUnit + '</span></span>';
li += '</li>';
}
// if (data.goodsCouponDscntAmt > 0) {
// li += '<li class="cartOrderBox__miscItem">';
// li += ' <span class="cartOrderBox__miscTh">상품 쿠폰</span>';
// li += ' <span class="cartOrderBox__miscTd"><span class="comma">' + (data.goodsCouponDscntAmt).toLocaleString() + '</span><span class="priceUnit">' + curUnit + '</span></span>';
// li += '</li>';
// }
if (data.dlvyCouponDscntAmt > 0) {
li += '<li class="cartOrderBox__miscItem">';
li += ' <span class="cartOrderBox__miscTh">배송비 쿠폰</span>';
li += ' <span class="cartOrderBox__miscTd"><span class="comma">' + (data.dlvyCouponDscntAmt).toLocaleString() + '</span><span class="priceUnit">' + curUnit + '</span></span>';
li += '</li>';
}
// if (data.dlvyCouponDscntAmt > 0) {
// li += '<li class="cartOrderBox__miscItem">';
// li += ' <span class="cartOrderBox__miscTh">배송비 쿠폰</span>';
// li += ' <span class="cartOrderBox__miscTd"><span class="comma">' + (data.dlvyCouponDscntAmt).toLocaleString() + '</span><span class="priceUnit">' + curUnit + '</span></span>';
// li += '</li>';
// }
if (data.cartCouponDscntAmt > 0) {
li += '<li class="cartOrderBox__miscItem">';
li += ' <span class="cartOrderBox__miscTh">장바구니 쿠폰</span>';
li += ' <span class="cartOrderBox__miscTd"><span class="comma">' + (data.cartCouponDscntAmt).toLocaleString() + '</span><span class="priceUnit">' + curUnit + '</span></span>';
li += '</li>';
}
// if (data.cartCouponDscntAmt > 0) {
// li += '<li class="cartOrderBox__miscItem">';
// li += ' <span class="cartOrderBox__miscTh">장바구니 쿠폰</span>';
// li += ' <span class="cartOrderBox__miscTd"><span class="comma">' + (data.cartCouponDscntAmt).toLocaleString() + '</span><span class="priceUnit">' + curUnit + '</span></span>';
// li += '</li>';
// }
if (data.useMlgAmt > 0) {
li += '<li class="cartOrderBox__miscItem">';
li += ' <span class="cartOrderBox__miscTh">마일리지 할인</span>';
li += ' <span class="cartOrderBox__miscTd"><span class="comma useMilg">' + (data.useMlgAmt).toLocaleString() + '</span><span class="priceUnit">점</span></span>';
li += '</li>';
}
// if (data.useMlgAmt > 0) {
// li += '<li class="cartOrderBox__miscItem">';
// li += ' <span class="cartOrderBox__miscTh">마일리지 할인</span>';
// li += ' <span class="cartOrderBox__miscTd"><span class="comma useMilg">' + (data.useMlgAmt).toLocaleString() + '</span><span class="priceUnit">점</span></span>';
// li += '</li>';
// }
if (data.useCashMlgAmt > 0) {
li += '<li class="cartOrderBox__miscItem">';
li += ' <span class="cartOrderBox__miscTh">GC 머니 할인</span>';
li += ' <span class="cartOrderBox__miscTd"><span class="comma useCashMilg">' + (data.useCashMlgAmt).toLocaleString() + '</span><span class="priceUnit">' + curUnit + '</span></span>';
li += '</li>';
}
// if (data.useCashMlgAmt > 0) {
// li += '<li class="cartOrderBox__miscItem">';
// li += ' <span class="cartOrderBox__miscTh">GC 머니 할인</span>';
// li += ' <span class="cartOrderBox__miscTd"><span class="comma useCashMilg">' + (data.useCashMlgAmt).toLocaleString() + '</span><span class="priceUnit">' + curUnit + '</span></span>';
// li += '</li>';
// }
if (!fn_is_empty(data.dlvyAmtMap)) {
const form = $('#dlvylcForm');
@@ -2623,6 +2631,7 @@
$('#enuriForm').find('#stdrGoodsSetleAmt').val(data.stdrGoodsSetleAmt);
$('#enuriForm').find('#cartCoupondlvyAmt').val(data.dlvyAmt);
$('#setleForm').find('#rlSetleAmt').val(data.setleAmt);
$('#setleForm').find('#wonRlSetleAmt').val(data.setleAmtKr);
}
if (!fn_is_empty(data.lmttUseMlg)) {
@@ -2643,13 +2652,13 @@
let order = {};
let isValid = true;
let localGoods = localStorage.getItem('goodsList');
let goodsLists = JSON.parse(localGoods);
// let localGoods = localStorage.getItem('goodsList');
// let goodsLists = JSON.parse(localGoods);
const ordrTyCd = $('input[name="ordrTy"]:checked').val();
// 상품 고유번호로 그룹화
let groupedGoods = goodsLists.reduce((groups, item) => {
/*let groupedGoods = goodsLists.reduce((groups, item) => {
if (!groups[item.goodsInnb]) {
groups[item.goodsInnb] = [];
}
@@ -2669,7 +2678,7 @@
return false;
}
});
});*/
/* 배송지 정합성 검사 시작 */
@@ -2737,14 +2746,14 @@
order['dlvylcAreaCd'] = localStorage.getItem('dlvylcAreaCd');
order['prefcd'] = localStorage.getItem('prefcd');
// order['subsvcInnb'] = 0;
// order['subsvcAt'] = 'N';
order['subsvcInnb'] = ${data.subsvcOne.subsvcInnb};
// order['subsvcAt'] = 'Y';
/* 여러곳 배송 > 배송지별 정합성 검사 시작 */
if (ordrTyCd === '05') { // 여러곳 배송
fn_set_multiordrdlcylc();
fn_get_dlvylc_coupon_list_multi();
// fn_get_dlvylc_coupon_list_multi();
// 상품 수량 채크
$('.multiOrdrInnerShipping').each(function (idx) {
@@ -3049,15 +3058,15 @@
order['goodsList'] = JSON.parse(goodsList);
}
order['prsnt'] = fn_get_prsnt_data();
// order['prsnt'] = fn_get_prsnt_data();
/* 주문상품, 사은품 데이터 세팅 종료 */
/* 에누리 데이터 세팅 시작 */
const enuri = localStorage.getItem('enuri');
// const enuri = localStorage.getItem('enuri');
if (!fn_is_empty(enuri)) {
order['enuri'] = JSON.parse(enuri);
}
// if (!fn_is_empty(enuri)) {
// order['enuri'] = JSON.parse(enuri);
// }
/* 에누리 데이터 세팅 종료 */
@@ -3067,14 +3076,14 @@
let stdrGoodsList = [];
$('#goodsList').find('.ordrGoods').each(function () {
const goodsInnb = $(this).find('.goodsInnb').val();
const goodsOptnInnb = $(this).find('.goodsOptnInnb').val();
const subsvcInnb = $(this).find('.subsvcInnb').val();
// const goodsOptnInnb = $(this).find('.goodsOptnInnb').val();
const qy = $(this).find('.qy').val();
let goods = {
'sopmalCd': sopmalCd,
'goodsInnb': goodsInnb,
'goodsOptnInnb': goodsOptnInnb,
'subsvcInnb': subsvcInnb,
// 'goodsOptnInnb': goodsOptnInnb,
'qy': qy
};
@@ -3088,9 +3097,9 @@
storageTempGoodsList.forEach((item, index) => {
let goods = {
'sopmalCd': sopmalCd,
'goodsInnb': item.goodsInnb.toString(),
'goodsOptnInnb': item.goodsOptnInnb.toString(),
'qy': item.qy.toString()
'subsvcInnb': item.subsvcInnb.toString(),
// 'goodsOptnInnb': item.goodsOptnInnb.toString(),
'qy': item.qy.toString(),
};
storageGoodsList.push(goods);
@@ -3106,12 +3115,15 @@
const setleAmtFromOrder = order['setle']['rlSetleAmt']; // 실 결제금액
const enuriObj = JSON.parse(enuri);
const setleAmtFromEnuri = enuriObj['setleAmt']; // 계산된 결제금액
// const enuriObj = JSON.parse(enuri);
// const setleAmtFromEnuri = enuriObj['setleAmt']; // 계산된 결제금액
const setleAmtFromSubsvc = order.goodsList.reduce(function(sum, item){
return sum + Number(item.selpric || 0); // 계산된 결제금액
}, 0);
if (setleAmtFromOrder !== setleAmtFromEnuri) {
if (setleAmtFromOrder != setleAmtFromSubsvc) {
alert(ordrCheckMsg);
location.reload();
// location.reload();
return false;
}
/* ********************* 실 결제금액 세팅 결제금액 비교 종료 ********************* */
@@ -3172,7 +3184,7 @@
}
/* 중복제한 쿠폰 체크 */
const fn_check_dplct_lmtt_coupon = function(cpnDvCd, obj) {
/*const fn_check_dplct_lmtt_coupon = function(cpnDvCd, obj) {
const objGoodsOptnInnb = obj.closest('tr').prev('tr').find('.goodsOptnInnb').val(); // 이벤트 발생 상품옵션고유번호
$('#goodsList').find('.ordrGoods').each(function () {
@@ -3204,56 +3216,54 @@
});
return false;
}
}*/
/* form 정보 조회 */
const fn_get_form_obj = function(id) {
let formObj = {};
const inputs = $('#' + id).serializeArray();
let cartCoupon = localStorage.getItem('cartCoupon');
let dscntAmt = 0;
// let cartCoupon = localStorage.getItem('cartCoupon');
// let dscntAmt = 0;
if (cartCoupon) {
let parsedCoupon = JSON.parse(cartCoupon);
if (parsedCoupon && parsedCoupon.dscntAmt) {
dscntAmt = parseFloat(parsedCoupon.dscntAmt);
}
}
// if (cartCoupon) {
// let parsedCoupon = JSON.parse(cartCoupon);
// if (parsedCoupon && parsedCoupon.dscntAmt) {
// dscntAmt = parseFloat(parsedCoupon.dscntAmt);
// }
// }
let enuri = localStorage.getItem('enuri');
let useMlgAmt = 0;
// let enuri = localStorage.getItem('enuri');
// let useMlgAmt = 0;
//
// if (enuri) {
// let parsedUseMlg = JSON.parse(enuri);
// if (parsedUseMlg && parsedUseMlg.useMlgAmt) {
// useMlgAmt = parseFloat(parsedUseMlg.useMlgAmt);
// }
// }
if (enuri) {
let parsedUseMlg = JSON.parse(enuri);
if (parsedUseMlg && parsedUseMlg.useMlgAmt) {
useMlgAmt = parseFloat(parsedUseMlg.useMlgAmt);
}
}
let goodsList = localStorage.getItem('goodsList');
let parsedGoodsList = JSON.parse(goodsList);
let goodsDscntDtlsList = parsedGoodsList[0].goodsDscntDtlsList;
// let goodsList = localStorage.getItem('goodsList');
// let parsedGoodsList = JSON.parse(goodsList);
// let goodsDscntDtlsList = parsedGoodsList[0].goodsDscntDtlsList;
let totalDscntAmt = 0;
goodsDscntDtlsList.forEach(item => {
/*goodsDscntDtlsList.forEach(item => {
totalDscntAmt += item.dscntAmt;
});
});*/
let goodsDscntAmt = 0;
if (goodsList) {
/**
let parsedGoodsList = JSON.parse(goodsList);
if (parsedGoodsList && parsedGoodsList.useMlgAmt) {
goodsDscntAmt = parseFloat(parsedGoodsList.useMlgAmt);
}
*/
}
// if (goodsList) {
// let parsedGoodsList = JSON.parse(goodsList);
// if (parsedGoodsList && parsedGoodsList.useMlgAmt) {
// goodsDscntAmt = parseFloat(parsedGoodsList.useMlgAmt);
// }
// }
$('#cartDscntAmt').val(dscntAmt);
$('#milgDscntAmt').val(useMlgAmt);
// $('#cartDscntAmt').val(dscntAmt);
// $('#milgDscntAmt').val(useMlgAmt);
$('#totalGoodsDscntAmt').val(totalDscntAmt);
$.each(inputs, function (i, input) {
@@ -3967,6 +3977,7 @@
<form id="setleForm">
<input type="hidden" name="rlSetleAmt" id="rlSetleAmt" value="">
<input type="hidden" name="wonRlSetleAmt" id="wonRlSetleAmt" value="">
<input type="hidden" name="lmttUseMlg" id="lmttUseMlg" value="">
<input type="hidden" name="lmttUseCashMlg" id="lmttUseCashMlg" value="">
<input type="hidden" name="siteCdMid" id="siteCdMid" value="<c:out value="${payInfo.kcpMid}"/>">
@@ -4339,9 +4350,13 @@
<span class="cartOrderBox__td"><span class="cartOrderBox__discountMinus">(-)</span><span id="dscntAmtSapn" class="comma">0</span><span class="priceUnit">${curUnit}</span></span>
</li>
</ul>
<div class="cartOrderBox__total">
<div class="cartOrderBox__total" style="margin-bottom: 5px;">
<span class="cartOrderBox__totalTh">총 결제금액</span>
<span class="cartOrderBox__totalTd"><span id="setleAmtSapn" class="comma">0</span><span class="priceUnit">${curUnit}</span></span>
<span class="cartOrderBox__td"><span id="setleAmtSapn" class="comma">0</span><span class="priceUnit">${curUnit}</span></span>
</div>
<div class="cartOrderBox__total" style="margin-top: 5px;">
<span class="cartOrderBox__totalTh"></span>
<span class="cartOrderBox__totalTd"><span id="setleAmtKrSapn" class="comma">0</span><span class="priceUnit">${krUnit}</span></span>
</div>
<%--광고 수신 동의 여부가 null 일 시 --%>
<c:if test="${empty purchsr.marktRecptnAgreAt}">

View File

@@ -16,6 +16,11 @@
$(document).ready(function() {
$(".header__title").text("구독 서비스");
var urlParams = new URLSearchParams(window.location.search);
if (urlParams.has('subsvcInnb')) {
$('input[name="subsvcInnb"][value="' + urlParams.get("subsvcInnb") + '"]').prop('checked', true);
}
var subsvcInnb = $('[name="subsvcInnb"]:checked').val();
fn_select_subsvcDetail(subsvcInnb);
});

View File

@@ -160,12 +160,13 @@
const mbrDvCd = $('#mbrDvCd').val();
const mbrId = $('#mbrId').val();
const sopmalCd = $('#sopmalCd').val();
const subsvcInnb = ${data.subsvcOne.subsvcInnb};
let param = {
'mbrDvCd': mbrDvCd,
'mbrId': mbrId,
'sopmalCd': sopmalCd,
'subsvcInnb':${data.subsvcOne.subsvcInnb}
'subsvcInnb':subsvcInnb
};
fn_get_goods_list(param, null);