From df09e3911d0b4cac68e7fbc073b825bff6f9978f Mon Sep 17 00:00:00 2001 From: jazz Date: Thu, 12 Mar 2026 14:28:09 +0900 Subject: [PATCH] =?UTF-8?q?fix=20:=20=EA=B4=80=EB=A6=AC=EC=9E=90=20?= =?UTF-8?q?=EA=B2=B0=EC=A0=9C=EC=B7=A8=EC=86=8C,=20=ED=99=98=EB=B6=88=20?= =?UTF-8?q?=EC=9B=90=ED=99=94=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gcone/ordr/ordr/mapper/BOOrdrMapper.java | 6 ++ .../ordr/ordr/service/BOOrdrService.java | 5 +- .../mapper/BORtngudrefndMapper.java | 2 +- .../service/BORtngudrefndService.java | 89 ++++++++++++++----- .../ordr/rtngudrefnd/vo/BORefundSetleVO.java | 2 + .../ordr/rtngudrefnd/vo/BORtngudrefndVO.java | 84 +++++++++-------- .../mapper/gcone/ordr/ordr/BOOrdrMapper.xml | 27 ++++++ .../ordr/rtngudrefnd/BORtngudrefndMapper.xml | 71 ++++++++++----- 8 files changed, 198 insertions(+), 88 deletions(-) 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 e70b8444..522204d1 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 @@ -993,6 +993,12 @@ public interface BOOrdrMapper { * @return List */ public List selectMbrSubsvcOrdrList(BOOrdrDlvyVO ordrDlvyVO); + + /** + * 최종 한화금액이 결제금액보다 많은지 체크하여 환불금액(원화) update + * @param refundVO + */ + public void updateBOWonRefundAmt(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 f630eaad..f8c7adb7 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 @@ -2655,9 +2655,10 @@ public class BOOrdrService{ mapper.updateBOFinalReturnDlvyAmtUpdt(refundVO); } - /** ------------------------------------------ 반품 배송비 산정 END ------------------------------------------ */ + /* 한화금액이 결제금액보다 많은지 체크하여 환불금액(원화) update */ + mapper.updateBOWonRefundAmt(refundVO); // 수동환불 처리 세팅 @@ -2689,8 +2690,6 @@ public class BOOrdrService{ message.put("adcript", adcriptContent); - - BOOrdrRefundVO resultRefundVO = refundMapper.selectBORtngudDtlInqire(refundVO); if (!StringUtils.isEmpty(resultRefundVO.getOrderRefundInnb()) && !StringUtils.isEmpty(resultRefundVO.getRefundCd())) { diff --git a/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/mapper/BORtngudrefndMapper.java b/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/mapper/BORtngudrefndMapper.java index e312aef4..a60d7251 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/mapper/BORtngudrefndMapper.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/mapper/BORtngudrefndMapper.java @@ -248,7 +248,7 @@ public interface BORtngudrefndMapper { * @param boRtngudrefndVO * @return */ - public Integer selectBOORderRefundAmtSumInqire(BORtngudrefndVO boRtngudrefndVO); + public DataMap selectBOORderRefundAmtSumInqire(BORtngudrefndVO boRtngudrefndVO); /** diff --git a/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/service/BORtngudrefndService.java b/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/service/BORtngudrefndService.java index 509bfe6c..d7c07e0f 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/service/BORtngudrefndService.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/service/BORtngudrefndService.java @@ -31,6 +31,7 @@ import com.wb.domainserver.domain.gcone.setup.site.mapper.BOSiteMapper; import com.wb.domainserver.domain.gcone.setup.site.vo.BOSetupContentsItemVO; import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.util.string.StringUtil; +import lombok.Data; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -249,7 +250,6 @@ public class BORtngudrefndService { try { - if (boRtngudrefndVO.getRefundProcsSttusCd() != null) { if (boRtngudrefndVO.getReturnCstmrTelnb() != null) { @@ -278,28 +278,38 @@ public class BORtngudrefndService { } } + /*한화금액이 결제금액보다 많은지 체크하여 환불금액(원화) update를 위한 파라미터 셋팅*/ + BOOrdrRefundVO refundVO = new BOOrdrRefundVO(); + refundVO.setSopmalCd(boRtngudrefndVO.getSopmalCd()); + refundVO.setOrdrInnb(new BigInteger(boRtngudrefndVO.getOrdrInnb())); + refundVO.setOrderRefundInnb(boRtngudrefndVO.getOrderRefundInnb()); if ( "01".equals(boRtngudrefndVO.getRefundTyCd()) ) { // 결제 취소 - if ("01".equals(boRtngudrefndVO.getRefundProcsSttusCd())) { + if ("01".equals(boRtngudrefndVO.getRefundProcsSttusCd())) { // 환불신청 // TODO : 신청일때 로직 mapper.updateBOOrderReSttusUpdt(boRtngudrefndVO); // 반품/환불 상태값 수정 + /* 한화금액이 결제금액보다 많은지 체크하여 환불금액(원화) update */ + ordrMapper.updateBOWonRefundAmt(refundVO); - } else if ("02".equals(boRtngudrefndVO.getRefundProcsSttusCd())) { + } else if ("02".equals(boRtngudrefndVO.getRefundProcsSttusCd())) { //환불진행중 - if ("01".equals(boRtngudrefndVO.getOldRefundProcsSttusCd())) { + if ("01".equals(boRtngudrefndVO.getOldRefundProcsSttusCd())) { //이전 환불진행상태 = 환불신청 orderRefundSttusUpdtPorcs(boRtngudrefndVO); // 주문에 환불건 관련 상태 및 수량 업데이트 } - if ( "02".equals(boRtngudrefndVO.getRefundMthCd()) ) { + if ( "02".equals(boRtngudrefndVO.getRefundMthCd()) ) { //환불방법 = 무통장계좌이체 mapper.updateBOOrderReSttusUpdt(boRtngudrefndVO); // 반품/환불 상태값 수정 + /* 한화금액이 결제금액보다 많은지 체크하여 환불금액(원화) update */ + ordrMapper.updateBOWonRefundAmt(refundVO); + } else { // message = updateBORefundProcsProcess(boRtngudrefndVO); // 완료시에만 환불 처리 } - } else if ("03".equals(boRtngudrefndVO.getRefundProcsSttusCd())) { + } else if ("03".equals(boRtngudrefndVO.getRefundProcsSttusCd())) { //환불완료 - if ("01".equals(boRtngudrefndVO.getOldRefundProcsSttusCd())) { // 신청에서 완료처리시 + if ("01".equals(boRtngudrefndVO.getOldRefundProcsSttusCd())) { // 이전 환불진행상태 = 환불신청 => 신청에서 완료처리시 orderRefundSttusUpdtPorcs(boRtngudrefndVO); // 주문에 환불건 관련 상태 및 수량 업데이트 } @@ -313,6 +323,8 @@ public class BORtngudrefndService { log.debug("상태 업데이트 파라미터 확인 : {}", boRtngudrefndVO); mapper.updateBOOrderReSttusUpdt(boRtngudrefndVO); // 반품/환불 상태값 수정 + /* 한화금액이 결제금액보다 많은지 체크하여 환불금액(원화) update */ + ordrMapper.updateBOWonRefundAmt(refundVO); } else if ( "02".equals(boRtngudrefndVO.getRefundProcsSttusCd()) && "02".equals(boRtngudrefndVO.getReturnProcsSttusCd()) ) { // 상품 받은거 확인하고 돈을 입금하지않았을 경우 @@ -321,6 +333,8 @@ public class BORtngudrefndService { } mapper.updateBOOrderReSttusUpdt(boRtngudrefndVO); // 반품/환불 상태값 수정 + /* 한화금액이 결제금액보다 많은지 체크하여 환불금액(원화) update */ + ordrMapper.updateBOWonRefundAmt(refundVO); } else if ( "03".equals(boRtngudrefndVO.getRefundProcsSttusCd()) && "02".equals(boRtngudrefndVO.getReturnProcsSttusCd()) ) { // 상품 받은거 확인하고 @@ -466,21 +480,35 @@ public class BORtngudrefndService { Long lordrInnb = Long.valueOf(ordrInnb); BigInteger intOrdrInnb = BigInteger.valueOf(lordrInnb); String sopmalCd = refundVO.getSopmalCd(); - Integer refundAmt = 0; + Integer refundAmt = 0; //현재 상품환불금액 + Integer wonRefundAmt = 0; //현재 상품환불금액(원화) + if (!CollectionUtils.isEmpty(orderReItemVOList)) { refundAmt = orderReItemVOList.stream() .mapToInt(BOOrderReItemVO::getGoodsRefundAmt) .sum(); } else { - refundAmt = Integer.parseInt(refundVO.getRefundAmt()); // 현재 환불 금액 + refundAmt = Integer.parseInt(refundVO.getRefundAmt()); // 현재 상품환불금액 + } + wonRefundAmt = Integer.parseInt(refundVO.getWonRefundAmt()); //현재 상품환불금액(원화) + + DataMap beforeRefund = mapper.selectBOORderRefundAmtSumInqire(refundVO); + Integer orderRefundAmtSum = 0; // 해당주문의 이전 총환불금액 + Integer wonOrderRefundAmtSum = 0; // 해당주문의 이전 총환불금액(원화) + if(!ObjectUtils.isEmpty(beforeRefund)) { + orderRefundAmtSum = ((BigDecimal) beforeRefund.get("orderRefundAmtSum")).intValue(); // 해당주문의 이전 총환불금액 + wonOrderRefundAmtSum = ((BigDecimal)beforeRefund.get("wonOrderRefundAmtSum")).intValue(); // 해당주문의 이전 총환불금액(원화) } - Integer orderRefundAmtSum = mapper.selectBOORderRefundAmtSumInqire(refundVO); // 해당 주문의 총 환불금액 Integer dlvyAmtRefundAmt = 0; // 최종 배송비 처리 금액 ( 환불 배송비, 반품 배송비 조건에 따라 변동 ) + Integer wonDlvyAmtRefundAmt = 0; // 최종 배송비 처리 금액 ( 환불 배송비, 반품 배송비 조건에 따라 변동 ) Integer refundDlvyAmt = 0; // 환불 배송비 금액 + Integer wonRefundDlvyAmt = 0; // 환불 배송비 금액 Integer finalRefundAmt = 0; + Integer finalWonRefundAmt = 0; finalRefundAmt = refundAmt; + finalWonRefundAmt = wonRefundAmt; try { @@ -506,16 +534,19 @@ public class BORtngudrefndService { */ refundDlvyAmt = Integer.parseInt(refundVO.getRefundDlvyAmt()); + wonRefundDlvyAmt = Integer.parseInt(refundVO.getWonRefundDlvyAmt()); log.debug("여기 아래부터 배송비랑 환불금액 산정하는데 그전에 refundVO 데이터 확인 : {}", refundVO); if ("01".equals(refundVO.getRefundTyCd())) { refundAmt += refundDlvyAmt; // 환불 배송비 포함 반품 + wonRefundAmt += wonRefundDlvyAmt; refundVO.setDlvyAmtRefundAmt("0"); } else if ("02".equals(refundVO.getRefundTyCd())) { dlvyAmtRefundAmt = Integer.parseInt(refundVO.getReturnDlvyAmt()); + wonDlvyAmtRefundAmt = Integer.parseInt(refundVO.getWonReturnDlvyAmt()); // 배송비 책임 if ("01".equals(refundVO.getReturnDlvyRspnsblCd())) { // 구매자 책임 @@ -530,12 +561,14 @@ public class BORtngudrefndService { if ("02".equals(refundVO.getReturnDlvyPymntTyCd()) && refundVO.getReturnDlvyAmt() != null) { // 환불금액에서 차감 // refundAmt -= dlvyAmtRefundAmt; refundAmt = refundAmt - dlvyAmtRefundAmt > 0 ? refundAmt - dlvyAmtRefundAmt : 0; + wonRefundAmt = wonRefundAmt - wonDlvyAmtRefundAmt > 0 ? wonRefundAmt - wonDlvyAmtRefundAmt : 0; } refundVO.setDlvyAmtRefundAmt(StringUtil.isNullToString(dlvyAmtRefundAmt)); } else if ("02".equals(refundVO.getReturnDlvyRspnsblCd())) { // 판매자 refundAmt += refundDlvyAmt; // 환불 배송비 포함 반품 + wonRefundAmt += wonRefundDlvyAmt; refundVO.setDlvyAmtRefundAmt("0"); } @@ -568,13 +601,23 @@ public class BORtngudrefndService { log.info("setle : {}", setle); Integer setleAmt = setle.getSetleAmt(); // 결제금액 + Integer wonSetleAmt = setle.getWonSetleAmt(); // 결제금액(원화) + Integer remMnyAmt = setleAmt - orderRefundAmtSum; - log.info("이번 환불 결제건에서 환불할 금액 확인 remMnyAmt : {}", remMnyAmt); - log.info("이번 환불 결제건에서 환불할 금액 확인 refundAmt : {}", refundAmt); - log.info("이번 환불 결제건에서 환불할 금액 확인 orderRefundAmtSum : {}", orderRefundAmtSum); + Integer wonRemMnyAmt = wonSetleAmt - wonOrderRefundAmtSum; + + log.info("이번 환불 결제건에서 환불할 금액 확인 remMnyAmt : {}, {}", remMnyAmt, wonRemMnyAmt); + log.info("이번 환불 결제건에서 환불할 금액 확인 refundAmt : {}, {}", refundAmt, wonRefundAmt); + log.info("이번 환불 결제건에서 환불할 금액 확인 orderRefundAmtSum : {}, {}", orderRefundAmtSum, wonOrderRefundAmtSum); + Integer cancelAmt = 0; // 취소금액 + Integer wonCancelAmt = 0; // 취소금액(원화) + + // 환불금액, 결제금액 - (이전환불금액 - 환불금액) cancelAmt = Math.min(refundAmt, setleAmt - (orderRefundAmtSum - refundAmt)); - log.info("이번 환불 결제건에서 환불할 금액 확인 cancelAmt : {}", cancelAmt); + wonCancelAmt = Math.min(wonRefundAmt, wonSetleAmt - (wonOrderRefundAmtSum - wonRefundAmt)); + + log.info("이번 환불 결제건에서 환불할 금액 확인 cancelAmt : {}, {}", cancelAmt, wonCancelAmt); Integer receiptCancelAmt = cancelAmt; // 현금영수증 취소금액 log.info("이번 환불 결제건에서 환불할 현금영수증 GC 머니 추가 전 금액 확인 receiptCancelAmt : {}", receiptCancelAmt); @@ -734,6 +777,7 @@ public class BORtngudrefndService { } /************************** KCP 환불 코드 세팅 END *************************/ + // 02:무통장계좌이체, 08:마일리지, 13:수동 if ("02".equals(setle.getSetleTyCd()) || "08".equals(setle.getSetleTyCd()) || "13".equals(setle.getSetleTyCd())) { if ("02".equals(setle.getSetleTyCd())) { // 무통장입금 @@ -788,9 +832,7 @@ public class BORtngudrefndService { // TODO : - } else if ("08".equals(setle.getSetleTyCd())) { // 마일리지 - // 마일리지 사용취소로 처리 - } else if ("09".equals(setle.getSetleTyCd())) { + } else if ("09".equals(setle.getSetleTyCd())) { // 포스 환불은 포스기계쪽에서 처리됌 GCONE 에서는 데이터 처리만 진행 } else if ("11".equals(setle.getSetleTyCd())) { // TODO : 복합 결제 취소 로직 확인 필요 @@ -812,9 +854,9 @@ public class BORtngudrefndService { payVO.setCancelReason(refundVO.getRefundResnCn()); // 취소사유 if ("01".equals(refundVO.getRefundScopeCd())) { - payVO.setCancelAmount(String.valueOf(cancelAmt)); // 취소금액 ( 금액이 없으면 전체취소 ) + payVO.setCancelAmount(String.valueOf(wonCancelAmt)); // 취소금액 ( 금액이 없으면 전체취소 ) } else if ("02".equals(refundVO.getRefundScopeCd())) { - payVO.setCancelAmount(String.valueOf(cancelAmt)); // 취소금액 ( 금액이 없으면 전체취소 ) + payVO.setCancelAmount(String.valueOf(wonCancelAmt)); // 취소금액 ( 금액이 없으면 전체취소 ) } payVO.setBank(refundVO.getRefundAcntBnnkCd()); // 환불 은행코드 @@ -841,10 +883,12 @@ public class BORtngudrefndService { payVO.setMId(setle.getSetleMid()); // 결제 MID(상점키) payVO.setPaymentKey(setle.getDelngNb()); // 거래번호 + log.info("토스 취소 파라미터 확인 : {}", payVO); setleCancelResultMessage = payService.cancelTossPay(payVO); log.info("결제 취소 API 결과 확인 : {}", setleCancelResultMessage); log.info("결제 취소 API 결과 확인 : {}", setleCancelResultMessage.get("response")); + String jsonString = (String) setleCancelResultMessage.get("response"); ObjectMapper objectMapper = new ObjectMapper(); responseMap = objectMapper.readValue(jsonString, Map.class); @@ -984,7 +1028,7 @@ public class BORtngudrefndService { payVO.setSetleTyCd(setle.getSetleTyCd()); // 결제 유형 코드 payVO.setCancelReason(refundVO.getRefundResnCn()); // 취소사유 - payVO.setCancelAmount(String.valueOf(cancelAmt)); // 취소금액 ( 금액이 없으면 전체취소 ) + payVO.setCancelAmount(String.valueOf(wonCancelAmt)); // 취소금액 ( 금액이 없으면 전체취소 ) payVO.setBank(refundVO.getRefundAcntBnnkCd()); // 계좌 입금 후 취소시 환불은행코드? payVO.setAccountNumber(refundVO.getRefundAcntnb()); // 환불 계좌번호 @@ -992,8 +1036,8 @@ public class BORtngudrefndService { payVO.setTno(setle.getDelngNb()); // 거래번호 payVO.setModType(refundModeType); // 전체 취소, 부분 취소 - payVO.setModMny(String.valueOf(cancelAmt)); // 부분취소 요청 금액 - payVO.setRemMny(String.valueOf(remMnyAmt)); // 부분취소 가능 금액 + payVO.setModMny(String.valueOf(wonCancelAmt)); // 부분취소 요청 금액 + payVO.setRemMny(String.valueOf(wonRemMnyAmt)); // 부분취소 가능 금액 payVO.setSubModType(sub_mod_type); // 전체 취소, 부분 취소 @@ -1202,6 +1246,7 @@ public class BORtngudrefndService { // ########################################### 최종 반품/환불 상태변경 ########################################### boRtngudrefndVO.setRefundAmt(String.valueOf(finalRefundAmt)); + boRtngudrefndVO.setWonRefundAmt(String.valueOf(finalWonRefundAmt)); boRtngudrefndVO.setDlvyAmtRefundAmt(refundVO.getDlvyAmtRefundAmt()); boRtngudrefndVO.setRefundProcsSttusCd("03"); log.debug("환불 상태값이랑 정보 수정하기 전 boRtngudrefndVO :: {}", boRtngudrefndVO); diff --git a/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/vo/BORefundSetleVO.java b/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/vo/BORefundSetleVO.java index 724704bb..daa8e104 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/vo/BORefundSetleVO.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/vo/BORefundSetleVO.java @@ -23,6 +23,8 @@ public class BORefundSetleVO extends AbstractVO { private Integer setleAmt; + private Integer wonSetleAmt; + private String pgCmpnyNm; private String pgInnb; diff --git a/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/vo/BORtngudrefndVO.java b/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/vo/BORtngudrefndVO.java index d1585f5f..8669c4d7 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/vo/BORtngudrefndVO.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/vo/BORtngudrefndVO.java @@ -15,7 +15,7 @@ public class BORtngudrefndVO extends AbstractVO{ private String ordrDlvyInnb; private String[] ordrDlvyInnbArr; - //쇼핑몰코드 + /**쇼핑몰코드*/ private String sopmalCd; //TODO:: 추후 SESSION에서 처리 사용자,관리자 구분 private String usrDv; @@ -25,69 +25,71 @@ public class BORtngudrefndVO extends AbstractVO{ private String orderReInnb; private String refundCd; // 환불 코드 번호 private String orderRefundInnb; - /*주문고유번호*/ + /**주문고유번호*/ private String ordrInnb; - /*환불신청일시*/ + /**환불신청일시*/ private String refundReqstDt; - /*환불완료일시*/ + /**환불완료일시*/ private String refundComptDt; - /*신청(request), 처리중(ing), 완료(complete)*/ + /**신청(request), 처리중(ing), 완료(complete)*/ private String refundProcsSttusCd; - /*신청(request), 처리중(ing), 완료(complete) 이전 상태 */ + /**신청(request), 처리중(ing), 완료(complete) 이전 상태 */ private String oldRefundProcsSttusCd; - /*결제취소(cancel_payment),반품환불(return),배송비환불(shipping_price)*/ + /**결제취소(cancel_payment),반품환불(return),배송비환불(shipping_price)*/ private String refundTyCd; - /*전체취소(full), 부분취소(partial)*/ + /**전체취소(full), 부분취소(partial)*/ private String refundScopeCd; - /*환불사유내용*/ + /**환불사유내용*/ private String refundResnCn; - /*계좌이체(account), 무통장(bank), 신용카드(card), 수동(manual), ?(payco_coupon), 포스기기(pos)*/ + /**계좌이체(account), 무통장(bank), 신용카드(card), 수동(manual), ?(payco_coupon), 포스기기(pos)*/ private String refundMthCd; /** 환불계좌은행코드 */ private String refundAcntBnnkCd; // 환불계좌은행코드 - /*환불계좌은행명*/ + /**환불계좌은행명*/ private String refundAcntBnnkNm; - /*환불계좌예금주명*/ + /**환불계좌예금주명*/ private String refundAcntDpstrNm; - /*환불계좌번호*/ + /**환불계좌번호*/ private String refundAcntnb; - /*환불금액*/ + /**환불금액*/ private String refundAmt; - /*환불적립금액*/ + /**환불금액(원화)*/ + private String wonRefundAmt; + /**환불적립금액*/ private Integer refundAccmlmnyAmt; - /*배송비환불총금액*/ + /**배송비환불총금액*/ private Integer dlvyAmtTotRefundAmt; - /*쿠폰할인보정금액*/ + /**쿠폰할인보정금액*/ private Integer coupDscntRevisnAmt; - /*적립금보정금액*/ + /**적립금보정금액*/ private Integer accmlmnyRevisnAmt; - /*에누리보정금액*/ + /**에누리보정금액*/ private Integer enuriRevisnAmt; - /*적립금유효일자*/ + /**적립금유효일자*/ private String accmlmnyValidDe; - /*다운로드쿠폰 고유번호*/ + /**다운로드쿠폰 고유번호*/ private String dwldCouponInnb; - /*상태메모내용*/ + /**상태메모내용*/ private String sttusMemoCn; - /*관리자메모내용*/ + /**관리자메모내용*/ private String mngrMemoCn; - /*관리자 고유번호*/ + /**관리자 고유번호*/ private String mngrInnb; - /*스마트쇼핑환불신청일시*/ + /**스마트쇼핑환불신청일시*/ private String smrtShopngRefndReqstDt; - /*스마트쇼핑환불완료일시*/ + /**스마트쇼핑환불완료일시*/ private String smrtShopngRefndComptDt; - /*cancel_done, refund_request*/ + /**cancel_done, refund_request*/ private String smrtShopngRefndProcsSttusCd; - /*스마트쇼핑클레임발생금액*/ + /**스마트쇼핑클레임발생금액*/ private Integer smrtShopngClaimOccrrncAmt; - /*스마트쇼핑초도배송비금액*/ + /**스마트쇼핑초도배송비금액*/ private Integer smrtShopngFrsttmeDlvyAmtAmt; - /*반품환불보류상품번호내용*/ + /**반품환불보류상품번호내용*/ private String returnRefndDferGoodsNbCn; - /*사용여부*/ + /**사용여부*/ private String useAt; - /*처리대상자 구분*/ + /**처리대상자 구분*/ private String procsTargetDv; private String returnCd; // 반품 코드 /**신청(request), 완료(complete), 철회(retraction)*/ @@ -108,6 +110,8 @@ public class BORtngudrefndVO extends AbstractVO{ private String returnCstmrMbtlnb; /** 반품배송비금액 */ private String returnDlvyAmt; + /** 반품배송비금액(원화) */ + private String wonReturnDlvyAmt; /** company,provider */ private String returnDlvyAmtRecptTrgetCd; /**구매자(buyer), 판매자(seller)*/ @@ -144,10 +148,14 @@ public class BORtngudrefndVO extends AbstractVO{ private String smrtShopngReturnProcsSttusCd; /** 배송비환불금액 */ private String dlvyAmtRefundAmt; + /** 배송비환불금액(원화) */ + private String wonDlvyAmtRefundAmt; /** 지번 or 도로명 주소 */ private String lnbOrRnmAdres; /** 환불배송비총금액 */ private String refundDlvyAmt; + /** 환불배송비총금액(원화) */ + private String wonRefundDlvyAmt; /** 반품 환불 상품 옵션 리스트 */ private List orderReItemVOList; /**상세 내용*/ @@ -167,11 +175,11 @@ public class BORtngudrefndVO extends AbstractVO{ public String endDt; //날짜 검색 구분 private String srchDtDv; - //** 반품처리상태 */ + /** 반품처리상태 */ private String[] srchReturnProcsStuusCd; - //** 환불처리상태 */ + /** 환불처리상태 */ private String[] srchRefundProcsSttusCd; - //** 회수방법(반품) */ + /** 회수방법(반품) */ private String srchReturnMthCd; /**검색시작일*/ public String srchStartDate; @@ -189,9 +197,9 @@ public class BORtngudrefndVO extends AbstractVO{ private String mbtlnb; /** 회원타입코드 */ private String mbrTyCd; - /*시크릿 키*/ + /**시크릿 키*/ private String secretKey; - /*회원 사이트정보 갱신용*/ + /**회원 사이트정보 갱신용*/ private String siteMbrInnb; private String siteMbrDvCd; @@ -200,7 +208,7 @@ public class BORtngudrefndVO extends AbstractVO{ /** 실 환불 GC 머니 금액 */ private String prosbleCancelCashAmt; - //** 반품처리상태 */ + /** 반품처리상태 */ private String[] returnProcsStuusCd; private String serverDv; 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 e60ba71e..70320567 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 @@ -3920,6 +3920,7 @@ AND FOS.ORDR_INNB = FO.ORDR_INNB WHERE FO.USE_AT = 'Y' AND FO.SUBSVC_AT = 'N' /*구독서비스 제외*/ + AND ( ( FO.ORDR_STTUS_CD BETWEEN '15' AND '75' ) OR FO.ORDR_STTUS_CD = '95' ) AND IFNULL(FOS.ORDR_INNB, '') != '' AND FO.SOPMAL_CD = #{sopmalCd} AND FO.MBR_DV_CD = #{mbrDvCd} @@ -5587,6 +5588,32 @@ ) PV LIMIT #{recordCountPerPage} OFFSET #{firstIndex} + + + + (SELECT WON_REST_AMT FROM BF) THEN (SELECT WON_REST_AMT FROM BF) - WON_REFUND_DLVY_AMT + ELSE WON_REFUND_AMT + END) + , UPDT_DT = NOW() + WHERE SOPMAL_CD = #{sopmalCd} + AND ORDER_REFUND_INNB = #{orderRefundInnb} + ]]> + + diff --git a/src/main/resources/mybatis/xml/mapper/gcone/ordr/rtngudrefnd/BORtngudrefndMapper.xml b/src/main/resources/mybatis/xml/mapper/gcone/ordr/rtngudrefnd/BORtngudrefndMapper.xml index b12f1a1d..99906668 100644 --- a/src/main/resources/mybatis/xml/mapper/gcone/ordr/rtngudrefnd/BORtngudrefndMapper.xml +++ b/src/main/resources/mybatis/xml/mapper/gcone/ordr/rtngudrefnd/BORtngudrefndMapper.xml @@ -1144,12 +1144,20 @@ - + DLVY_AMT_REFUND_AMT = #{dlvyAmtRefundAmt}, + WON_DLVY_AMT_REFUND_AMT = ROUND((SELECT GO2.BUY_RATE FROM GC_ORDER GO2 WHERE GO2.SOPMAL_CD = #{sopmalCd} AND GO2.ORDR_INNB = #{ordrInnb}) * #{dlvyAmtRefundAmt}, 0), REFUND_AMT = #{refundAmt}, - WON_REFUND_AMT = ROUND((SELECT GO2.BUY_RATE FROM GC_ORDER GO2 WHERE GO2.SOPMAL_CD = #{sopmalCd} AND GO2.ORDR_INNB = #{ordrInnb}) * #{refundAmt}, 0) , + + + WON_REFUND_AMT = ROUND((SELECT GO2.BUY_RATE FROM GC_ORDER GO2 WHERE GO2.SOPMAL_CD = #{sopmalCd} AND GO2.ORDR_INNB = #{ordrInnb}) * #{refundAmt}, 0) , + + + WON_REFUND_AMT = #{wonRefundAmt}, + + MNGR_INNB = #{updusr}, UPDT_DT = SYSDATE()