From cac103e3ecc2a1fe57b327845f4395b832bf11cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EB=8C=80=ED=99=98?= Date: Tue, 14 Apr 2026 15:47:38 +0900 Subject: [PATCH] =?UTF-8?q?fix=20:=20=EC=A3=BC=EB=AC=B8/=EB=B0=B0=EC=86=A1?= =?UTF-8?q?=20=EC=83=81=EC=84=B8=EC=A1=B0=ED=9A=8C(=EB=AA=A8=EB=B0=94?= =?UTF-8?q?=EC=9D=BC)=20-=20=EC=97=AC=EB=9F=AC=EA=B3=B3=20=EB=B0=B0?= =?UTF-8?q?=EC=86=A1/=EC=84=A0=EB=AC=BC=ED=95=98=EA=B8=B0=20=EC=A3=BC?= =?UTF-8?q?=EB=AC=B8=EC=B7=A8=EC=86=8C=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit eda43b3d172f12d9f55d3fff74ab808431e5449b) --- .../domain/gcone/goods/purchs/service/BOOrderService.java | 3 +++ .../ordr/rtngudrefnd/service/BORtngudrefndService.java | 6 ++++++ .../domain/sopmal/ordr/controller/OrdrController.java | 4 ++++ .../webapp/WEB-INF/views/sopmal_m/mpage/ordr/OrdrDtlR.jsp | 2 +- 4 files changed, 14 insertions(+), 1 deletion(-) 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 26530527..4a30adc6 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 @@ -873,9 +873,12 @@ public class BOOrderService { List orderItemVOList = insertedGoodsList.stream().filter(obj-> Objects.equals(ordrInnb, obj.getOrdrInnb()) && Objects.equals(BigInteger.valueOf(goodsInnb), obj.getGoodsInnb())).toList(); BOOrderItemVO orderItemVO = new BOOrderItemVO(); + // 구독서비스 여부(subsvcAt)에 따라 주문상품 취급 방식 분기 if(subsvcAt) { + // 구독서비스 : 동일 상품이라도 순번에 따라 개별 옵션 유지 orderItemVO = orderItemVOList.size() > allGoodsCount ? orderItemVOList.get(allGoodsCount) : null; } else { + // 일반 주문 : 동일 상품과 옵션은 하나로 병합하여 처리 orderItemVO = orderItemVOList.stream().findAny().orElse(null); } 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 97d1b78e..ed6058ec 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 @@ -1382,10 +1382,13 @@ public class BORtngudrefndService { DataMap ordrDtl = ordrMapper.selectOrdrDtl(ordrVO); boolean subsvcAt = "Y".equals(ordrDtl.get("subsvcAt")); + // 구독서비스 여부(subsvcAt)에 따라 재고 처리 로직을 분기 if(subsvcAt) { + // 구독서비스 ordrVO.setSubsvcInnb(ordrDtl.get("subsvcInnb").toString()); subsvcService.updateSubsvcRefundUsefulInvntryQy(ordrVO); } else { + // 일반 주문 boGoodsService.updateRefundUsefulInvntryQy(refundVO); } @@ -1548,10 +1551,13 @@ public class BORtngudrefndService { DataMap ordrDtl = ordrMapper.selectOrdrDtl(boOrdrVO); boolean subsvcAt = "Y".equals(ordrDtl.get("subsvcAt")); + // 구독서비스 여부(subsvcAt)에 따라 재고 처리 로직을 분기 if(subsvcAt) { + // 구독서비스 boOrdrVO.setSubsvcInnb(ordrDtl.get("subsvcInnb").toString()); subsvcService.updateSubsvcCancelOrderUsefulInvntryQy(boOrdrVO); } else { + // 일반 주문 boGoodsService.updateCancelOrderUsefulInvntryQy(ordrVO, ordrVO.getOrdrInnb()); } 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 600c9a07..e1503f7d 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 @@ -797,6 +797,7 @@ public class OrdrController { LinkedHashMap goodsOne = ((List) paramData.get("goodsList")).get(0); Boolean subsvcAt = goodsOne.containsKey("subsvcInnb"); + // 구독서비스에 포함된 상품 목록 세팅 if(subsvcAt) { model.addAttribute("subsvcInnb", goodsOne.get("subsvcInnb")); @@ -2931,10 +2932,13 @@ public class OrdrController { DataMap ordrDtl = (DataMap) service.selectOrdrDtlInqire(ordrVO).get("dtl"); boolean subsvcAt = "Y".equals(ordrDtl.get("subsvcAt")); + // 구독서비스 여부(subsvcAt)에 따라 재고 처리 로직을 분기 if(subsvcAt) { + // 구독서비스 ordrVO.setSubsvcInnb(ordrDtl.get("subsvcInnb").toString()); subsvcService.updateSubsvcOrdrUsefulInvntryQy(ordrVO); } else { + // 일반 주문 boGoodsService.updateOrdrUsefulInvntryQy(orderVO); } } catch (Exception e) { diff --git a/src/main/webapp/WEB-INF/views/sopmal_m/mpage/ordr/OrdrDtlR.jsp b/src/main/webapp/WEB-INF/views/sopmal_m/mpage/ordr/OrdrDtlR.jsp index 8dda4d1b..53d7ec4e 100644 --- a/src/main/webapp/WEB-INF/views/sopmal_m/mpage/ordr/OrdrDtlR.jsp +++ b/src/main/webapp/WEB-INF/views/sopmal_m/mpage/ordr/OrdrDtlR.jsp @@ -803,7 +803,7 @@