From 393fb358024659658b50ed942a7fba831281889a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EB=8C=80=ED=99=98?= Date: Tue, 24 Mar 2026 16:22:28 +0900 Subject: [PATCH] =?UTF-8?q?fix=20:=20=EA=B5=AC=EB=8F=85=EC=84=9C=EB=B9=84?= =?UTF-8?q?=EC=8A=A4=20=EA=B2=B0=EC=A0=9C=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../goods/purchs/service/BOOrderService.java | 9 +-- .../gcone/goods/subsvc/vo/BOSubsvcVO.java | 10 ++- .../ordr/controller/OrdrController.java | 3 +- .../mapper/gcone/ordr/ordr/BOOrdrMapper.xml | 3 + .../views/sopmal/ordr/SubsvcPurchsC.jsp | 67 +++++++++++++++++-- 5 files changed, 78 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/wb/domainserver/domain/gcone/goods/purchs/service/BOOrderService.java b/src/main/java/com/wb/domainserver/domain/gcone/goods/purchs/service/BOOrderService.java index 09889bcd..08f3cbc1 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/goods/purchs/service/BOOrderService.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/goods/purchs/service/BOOrderService.java @@ -76,7 +76,8 @@ public class BOOrderService { LinkedHashMap setle = (LinkedHashMap) param.get("setle"); // 결제정보 List prsntList = (List) 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()); diff --git a/src/main/java/com/wb/domainserver/domain/gcone/goods/subsvc/vo/BOSubsvcVO.java b/src/main/java/com/wb/domainserver/domain/gcone/goods/subsvc/vo/BOSubsvcVO.java index 3765c629..3f78b530 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/goods/subsvc/vo/BOSubsvcVO.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/goods/subsvc/vo/BOSubsvcVO.java @@ -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; /** 상품이미지경로 */ diff --git a/src/main/java/com/wb/domainserver/domain/sopmal/ordr/controller/OrdrController.java b/src/main/java/com/wb/domainserver/domain/sopmal/ordr/controller/OrdrController.java index 45ce4147..39751b71 100644 --- a/src/main/java/com/wb/domainserver/domain/sopmal/ordr/controller/OrdrController.java +++ b/src/main/java/com/wb/domainserver/domain/sopmal/ordr/controller/OrdrController.java @@ -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)); 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 62f255d4..dd924ce0 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 @@ -1501,6 +1501,7 @@ AND GOR.USE_AT = 'Y' AND GOR.REFUND_PROCS_STTUS_CD = '03' /*처리상태:환불완료*/) AS ORDER_RE_INNB , FO.SUBSVC_AT + , FO.SUBSVC_INNB FROM GC_ORDER FO INNER JOIN ( SELECT FOI.SOPMAL_CD @@ -5649,6 +5650,8 @@ , IFNULL(GGO.SLEPRIC, 0) * #{qy} AS SUB_SLEPRIC , FORMAT(IFNULL(GGO.SLEPRIC, 0), 0) AS SLEPRIC_BY_FORMAT , IFNULL(GGO.SLEPRIC, 0) AS SLEPRIC + , 0 AS DSCNT_AMT + , IFNULL(GGO.SLEPRIC, 0) * #{qy} AS DSCNT_APPLY_AMT , CONCAT(GGO.OPTN1, IF(GGO.OPTN2 IS NULL , '', CONCAT('/', GGO.OPTN2)) , IF(GGO.OPTN3 IS NULL , '', CONCAT('/', GGO.OPTN3)) , IF(GGO.OPTN4 IS NULL , '', CONCAT('/', GGO.OPTN4))) AS OPTN diff --git a/src/main/webapp/WEB-INF/views/sopmal/ordr/SubsvcPurchsC.jsp b/src/main/webapp/WEB-INF/views/sopmal/ordr/SubsvcPurchsC.jsp index cc99543f..f4bd5d49 100644 --- a/src/main/webapp/WEB-INF/views/sopmal/ordr/SubsvcPurchsC.jsp +++ b/src/main/webapp/WEB-INF/views/sopmal/ordr/SubsvcPurchsC.jsp @@ -703,11 +703,15 @@ if (radioValue === 'Default') { if ($(this).is(':checked')) { - $('#recpntNm').val($('#mbrNm').val()); - $('.recpntNm_ordrInfo_text').text($('#mbrNm').val()); + $('#recpntNm').val($('#mbrNm').val()); + $('.recpntNm_ordrInfo_text').text($('#mbrNm').val()); + + $('#recpntMbtlnb').val($('#mbtlnb').val()); + $('.recpntMbtlnb_ordrInfo_text').text($('#mbtlnb').val()); + + $('#cstmclerCd').val($('#cstmclerCd').val()); + $('.cstmclerCd_ordrInfo_text').text($('#cstmclerCd').val()); - $('#recpntMbtlnb').val($('#mbtlnb').val()); - $('.recpntMbtlnb_ordrInfo_text').text($('#mbtlnb').val()); } else { let data = { @@ -726,6 +730,8 @@ $('.recpntNm_ordrInfo_text').text($('#recpntNm').val()); $('#recpntMbtlnb').val(parseJson.dftDlvylc.mbtlnb); $('.recpntMbtlnb_ordrInfo_text').text($('#recpntMbtlnb').val()); + $('#cstmclerCd').val(parseJson.dftDlvylc.cstmclerCd); + $('.cstmclerCd_ordrInfo_text').text($('#cstmclerCd').val()); } }); @@ -1503,6 +1509,12 @@ html += ' '; html += ' '; html += ' '; + html += ' '; + html += ' 개인통관번호'; + html += ' '; + html += ' '; + html += ' '; + html += ' '; html += ' '; html += ' '; html += ' 배송요청사항'; @@ -1766,6 +1778,8 @@ $('.presentArea').hide(); $('.presentArea').find('input').prop('disabled', true); + $('.cstmclerArea').hide(); + $('.cstmclerArea').find('input').prop('disabled', true); $('.presentShowArea').show(); $('.presentShowArea').find('input').prop('disabled', false); @@ -1786,6 +1800,8 @@ if (dlvylcDvCd === 'New') { $('.presentArea').show(); $('.presentArea').find('input').prop('disabled', false); + $('.cstmclerArea').show(); + $('.cstmclerArea').find('input').prop('disabled', false); $('.presentShowArea').hide(); $('.presentShowArea').find('input').prop('disabled', true); } @@ -1836,6 +1852,17 @@ $(form).find('input[name="dlvylcAdresDtl"]').val(data.dtlAdres); $(form).find('input[name="dlvylcAdres"]').val('01' === $(form).find('input[name="dlvylcAdresDvCd"]').val() ? $(form).find('input[name="dlvylcRnmAdres"]').val() : $(form).find('input[name="dlvylcLnbAdres"]').val()); + let dlvylcAreaCd = $(form).find('input[name="dlvylcAreaCd"]').val(); + + if('JP' === dlvylcAreaCd){ + + $('.cstmclerArea').hide(); + $('.cstmclerArea').find('input').prop('disabled', true); + } else { + $('.cstmclerArea').show(); + $('.cstmclerArea').find('input').prop('disabled', false); + } + // 배송지 정보 세팅 이후 결제예정금액 재계산 fn_get_setle_amt(); } @@ -2742,7 +2769,7 @@ if (fn_is_empty(val)) { - alert('개인통관번호를 입력해 주십시요'); + alert('개인통관번호를 입력해 주십시오'); $('#dlvylcForm').find('input[name="' + name + '"]').focus(); @@ -3626,6 +3653,28 @@ + + + + 개인통관번호 + + "> + <%-- --%> + + + " placeholder="배송지 관리에서 입력하세요."> + + + " placeholder="배송지 관리에서 입력하세요." readonly> + + + + + + + "> + + @@ -3658,6 +3707,12 @@ + + 개인통관번호 + + + + 선물메세지 @@ -3944,7 +3999,7 @@
-
예상 적립혜택
+
예상 적립혜택
  • 구매 확정 시 적립