diff --git a/src/main/java/com/wb/domainserver/domain/gcone/goods/purchs/service/BOPurchsService.java b/src/main/java/com/wb/domainserver/domain/gcone/goods/purchs/service/BOPurchsService.java index c13ea472..8b91ec26 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/goods/purchs/service/BOPurchsService.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/goods/purchs/service/BOPurchsService.java @@ -2158,6 +2158,9 @@ public class BOPurchsService { for (Map.Entry> dlvyGroupEtry : goodsByDlvyGroupMap.entrySet()) { int dlvyGroupInnb = dlvyGroupEtry.getKey().intValue(); List goodsByDlvyGroupList = dlvyGroupEtry.getValue(); + log.debug("goodsByDlvyGroupList : {}", goodsByDlvyGroupList); +// BigDecimal goodsQy = (BigDecimal) goodsByDlvyGroupList.get("qy"); +// log.debug("goodsByDlvyGroupList qy : {}", qy); finalDlvyGroupInnb = dlvyGroupInnb; @@ -2182,6 +2185,8 @@ public class BOPurchsService { for (DataMap goodsMap : goodsByDlvyGroupList) { + BigDecimal qy = (BigDecimal) goodsMap.get("qy"); // 수량 + // 금액 조건 if ("Y".equals(amtCndUseAt)) { BigDecimal amtCndAditAmt = (BigDecimal) shippingGrouping.get("amtCndAditAmt"); // 금액조건 추가금액 @@ -2189,16 +2194,21 @@ public class BOPurchsService { if (slepric.compareTo(amtCndAditAmt) > 0) { dlvyAmt = new BigDecimal(0); + } else { + //배송비 합(같은상품 수량당 배송비 책정) + dlvyAmt = dlvyAmt.multiply(qy); } } // 수량 조건 if ("Y".equals(cntCndUseAt)) { BigDecimal cntCndAditAmt = (BigDecimal) shippingGrouping.get("cntCndAditAmt"); // 금액조건 추가금액 - BigDecimal qy = (BigDecimal) goodsMap.get("qy"); // 수량 if (qy.compareTo(cntCndAditAmt) > 0) { dlvyAmt = new BigDecimal(0); + } else { + //배송비 합(같은상품 수량당 배송비 책정) + dlvyAmt = dlvyAmt.multiply(qy); } } } @@ -2258,7 +2268,16 @@ public class BOPurchsService { } else if ("03".equals(dlvyGroupDvCd)) { // 유료배송 - paidDlvyAmt = paidDlvyAmt.add(dlvyAmt); // 유료배송비 합 + BigDecimal goodsQy = new BigDecimal(0); + // 유료배송비 합(같은상품 수량당 배송비 책정) + for (DataMap goodsMap : goodsByDlvyGroupList) { + goodsQy = (BigDecimal) goodsMap.get("qy"); + dlvyAmt = dlvyAmt.multiply(goodsQy); + + paidDlvyAmt = paidDlvyAmt.add(dlvyAmt); + } + // 유료배송비 합(같은상품 묶음 처리) + //paidDlvyAmt = paidDlvyAmt.add(dlvyAmt); if (!StringUtils.isEmpty(dlvyAreaAditAt) && "Y".equals(dlvyAreaAditAt)) { if (!StringUtils.isEmpty(defaultAdressAt) && "Y".equals(defaultAdressAt)) { @@ -2281,7 +2300,7 @@ public class BOPurchsService { log.debug("@@@ 유료배송비 합 : {}", paidDlvyAmt); dlvyAmtByDlvyGroupList.add(dlvyGroupMap); // 배송그룹별 배송비 목록 - } + } // for // TODO : 도서산간 추가배송비 정채 :: 무료일 경우 무조건 무료인지 추가배송비는 발생 시킬건지 정의 필요 ( 2024-10-01 ) addFreeDlvyAmt = addFreeDlvyAmt.compareTo(addBundleDlvyAmtY) > 0 ? addFreeDlvyAmt : addBundleDlvyAmtY; // 무료배송 추가 배송비와 조건부 무료배송 묶음 O 의 추가 배송비 중 큰 배송비 diff --git a/src/main/java/com/wb/domainserver/domain/gcone/ordr/ordr/service/BOOrdrService.java b/src/main/java/com/wb/domainserver/domain/gcone/ordr/ordr/service/BOOrdrService.java index a9332f47..2bf7daed 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/ordr/ordr/service/BOOrdrService.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/ordr/ordr/service/BOOrdrService.java @@ -3041,6 +3041,7 @@ public class BOOrdrService{ LinkedHashMap enuriMap = (LinkedHashMap) param.get("enuri"); // 애누리 ( 장바구니 쿠폰, 마일리지, 애누리 ) List goodsList = (List) param.get("goodsList"); + log.debug("goodsList : {}", goodsList); if (!CollectionUtils.isEmpty(goodsList)) { for (LinkedHashMap goods : goodsList) {