From 83024e46d057a1902131bf6be2f7bbd91513d50a Mon Sep 17 00:00:00 2001 From: jazz Date: Fri, 13 Mar 2026 11:45:58 +0900 Subject: [PATCH] =?UTF-8?q?fix=20:=20=EA=B4=80=EB=A6=AC=EC=9E=90=20?= =?UTF-8?q?=EA=B5=AC=EB=8F=85=EC=84=9C=EB=B9=84=EC=8A=A4=20=EA=B2=B0?= =?UTF-8?q?=EC=A0=9C=EC=B7=A8=EC=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gcone/ordr/ordr/mapper/BOOrdrMapper.java | 7 +++++ .../ordr/ordr/service/BOOrdrService.java | 6 +++++ .../mapper/gcone/ordr/ordr/BOOrdrMapper.xml | 27 +++++++++++++++++++ 3 files changed, 40 insertions(+) diff --git a/src/main/java/com/wb/domainserver/domain/gcone/ordr/ordr/mapper/BOOrdrMapper.java b/src/main/java/com/wb/domainserver/domain/gcone/ordr/ordr/mapper/BOOrdrMapper.java index 522204d1..2f24e04b 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/ordr/ordr/mapper/BOOrdrMapper.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/ordr/ordr/mapper/BOOrdrMapper.java @@ -999,6 +999,13 @@ public interface BOOrdrMapper { * @param refundVO */ public void updateBOWonRefundAmt(BOOrdrRefundVO refundVO); + + /** + * 결제취소 시 구독서비스 환불금액 조회 + * 계산식 : 전체결제금액 - 전체배송비 - 발송및취소된(35~85)상품금액 + * @param refundVO + */ + public Integer selectSubsvcRefundAmt(BOOrdrRefundVO refundVO); } 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 7958d9f4..30e2f63f 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 @@ -2292,9 +2292,15 @@ public class BOOrdrService{ } //상품 환불금액 합산 + //각 상품별 금액 합산(일반상품은 문제없음) -> 구독상품은 상품별 금액이 상관없음 refundVO.setRefundAmt(BigDecimal.valueOf(refundItemList.stream().mapToInt(vo -> vo.getGoodsRefundAmt().intValue()).sum())); refundVO.setRefundAccmlmnyAmt(BigDecimal.valueOf(refundItemList.stream().mapToInt(vo -> vo.getSnggdsAccmlMlgAmt().intValue()).sum())); + Integer subsvcRefundAmt = mapper.selectSubsvcRefundAmt(refundVO); + if(subsvcRefundAmt != null){ + refundVO.setRefundAmt(BigDecimal.valueOf(subsvcRefundAmt.longValue())); + } + BigDecimal useMlg = null; // 구매총수량과 환불요청수량이 같은경우는 전체결제취소 또는 전체 환불신청 if (ordrQy == canclQy) { // TODO : 구매확정 수량으로 계산해야함. ***** diff --git a/src/main/resources/mybatis/xml/mapper/gcone/ordr/ordr/BOOrdrMapper.xml b/src/main/resources/mybatis/xml/mapper/gcone/ordr/ordr/BOOrdrMapper.xml index 70320567..84305bf7 100644 --- a/src/main/resources/mybatis/xml/mapper/gcone/ordr/ordr/BOOrdrMapper.xml +++ b/src/main/resources/mybatis/xml/mapper/gcone/ordr/ordr/BOOrdrMapper.xml @@ -5614,6 +5614,33 @@ ]]> + + +