fix : 구독서비스 결제 적용

This commit is contained in:
이대환
2026-03-24 16:22:28 +09:00
parent 7b0f7327dc
commit 393fb35802
5 changed files with 78 additions and 14 deletions

View File

@@ -76,7 +76,8 @@ public class BOOrderService {
LinkedHashMap setle = (LinkedHashMap) param.get("setle"); // 결제정보
List<LinkedHashMap> prsntList = (List<LinkedHashMap>) param.get("prsnt"); // 사은품 정보
if(param.containsKey("subsvcInnb")) {
Boolean subsvcAt = param.containsKey("subsvcInnb"); // 구독서비스 여부
if(subsvcAt) {
setle.put("subsvcInnb", param.get("subsvcInnb"));
}
@@ -221,7 +222,7 @@ public class BOOrderService {
// }
//
// } else if ("03".equals(itemDlvyGroupDvCd)) { // 유료배송
if ("03".equals(itemDlvyGroupDvCd)) { // 유료배송
if ("03".equals(itemDlvyGroupDvCd) || subsvcAt) { // 유료배송
// 추가배송비 계산 (MUL)
if (!StringUtils.isEmpty(itemDlvyAreaAditAt) && "Y".equals(itemDlvyAreaAditAt)) {
@@ -231,12 +232,12 @@ public class BOOrderService {
}
// 유료배송 + 수량 조건
if ("Y".equals(itemCntCndUseAt) && itemCntCndAditAmt.compareTo(BigDecimal.ZERO) > 0) {
if (("Y".equals(itemCntCndUseAt) && itemCntCndAditAmt.compareTo(BigDecimal.ZERO) > 0) || subsvcAt) {
// 수량 조건 있을 경우
for (DataMap goodsMap : goodsByDlvyGroupList) {
BigDecimal qy = new BigDecimal(String.valueOf(goodsMap.get("qy"))); // 수량
BigDecimal unitQy = qy.divide(itemCntCndAditAmt, 0, RoundingMode.CEILING); // 단위수량
BigDecimal unitQy = subsvcAt ? qy : qy.divide(itemCntCndAditAmt, 0, RoundingMode.CEILING); // 단위수량
BigDecimal goodsDscntAmt = new BigDecimal(String.valueOf(goodsMap.get("dscntAmt")));
BigInteger unitDscntAmt = BigInteger.valueOf(goodsDscntAmt.intValue());

View File

@@ -37,7 +37,7 @@ private static final long serialVersionUID = 1L;
/** 소비자가 */
private String cnsmrpric;
/** 판매가 */
private String slepric;
private Integer slepric;
/** 재고수량 */
private String invntryQy;
/** 판매재고수량 */
@@ -143,10 +143,14 @@ private static final long serialVersionUID = 1L;
private Integer subCnsmrpric;
/** 소비자가 (형식적용) */
private String cnsmrpricByFormat;
/** 판매가 합계 (형식적용) */
/** 옵션주문단가 × 옵션주문수량 (형식적용) */
private String subSlepricByFormat;
/** 판매가 합계 (형식적용) */
/** 옵션주문단가 × 옵션주문수량 */
private Integer subSlepric;
/** 할인금액 */
private Integer dscntAmt;
/** 할인적용금액 */
private Integer dscntApplyAmt;
/** 판매가 합계 (형식적용) */
private String slepricByFormat;
/** 상품이미지경로 */

View File

@@ -795,7 +795,8 @@ public class OrdrController {
BOSubsvcVO subsvcVO = new BOSubsvcVO();
subsvcVO.setSopmalCd((String) goodsOne.get("sopmalCd"));
subsvcVO.setSubsvcInnb(goodsOne.get("subsvcInnb").toString());
subsvcVO.setQy(1);
subsvcVO.setQy((int) goodsOne.get("qy"));
subsvcVO.setMbrInnb((int) goodsOne.get("mbrInnb"));
paramData.remove("goodsList");
paramData.put("goodsList", service.selectSubsvcGoodsList(subsvcVO));