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 7f0b71ab..8274ead7 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 7a55913a..41b75556 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 @@ -1332,10 +1332,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); } @@ -1498,10 +1501,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 3a5f7553..f3327b07 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,6 +795,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")); @@ -2904,10 +2905,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 b471a55b..e197735d 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 @@ -794,7 +794,7 @@