구독서비스 결제 적용
This commit is contained in:
@@ -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");
|
||||
|
||||
@@ -145,4 +145,6 @@ public class BOOrderVO extends AbstractVO {
|
||||
private String secretKey;
|
||||
|
||||
private String currOrdrSttusCd;
|
||||
|
||||
private Integer subsvcInnb;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
/* ####################################
|
||||
사용자 > 구독상품 > 구매/결제 > 구독서비스 결제 종료
|
||||
#################################### */
|
||||
|
||||
Reference in New Issue
Block a user