From 65d920874fc64e264b21979a24aa59ccd4660972 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=ED=98=84=EC=9A=B1?= Date: Tue, 30 Dec 2025 16:51:25 +0900 Subject: [PATCH] =?UTF-8?q?=EB=8F=99=EC=9D=BC=EC=83=81=ED=92=88=20?= =?UTF-8?q?=EC=97=AC=EB=9F=AC=EA=B0=9C=20=EC=A3=BC=EB=AC=B8=20=EC=8B=9C=20?= =?UTF-8?q?=EB=B0=B0=EC=86=A1=EB=A3=8C=20=EB=88=84=EC=A0=81=20=EA=B3=84?= =?UTF-8?q?=EC=82=B0(1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../goods/purchs/service/BOPurchsService.java | 25 ++++++++++++++++--- .../ordr/ordr/service/BOOrdrService.java | 1 + 2 files changed, 23 insertions(+), 3 deletions(-) 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) {