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 f72c9ad0..7fe660f2 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 @@ -25,6 +25,7 @@ import java.math.BigInteger; import java.math.RoundingMode; import java.util.*; import java.util.stream.Collectors; +import java.util.stream.Stream; @Service @Slf4j @@ -569,7 +570,7 @@ public class BOOrderService { /* *********************************** 4. 주문상품 등록(GC_ORDER_ITEM) *********************************** */ - List insertedGoodsList = insertOrdrGoods(sopmalCd, "01", ordrInnb, goodsList); + List insertedGoodsList = insertOrdrGoods(sopmalCd, "01", ordrInnb, goodsList, subsvcAt); BOOrderShippingVO shippingEscrowVO = new BOOrderShippingVO(); if ("01".equals(ordrTyCd) || "03".equals(ordrTyCd) || "04".equals(ordrTyCd) || "06".equals(ordrTyCd)) { // 일반주문, 회원 개인결제, 정기배송 @@ -869,8 +870,14 @@ public class BOOrderService { int goodsOptnInnb = (int) goods.get("goodsOptnInnb"); int ordrQy = (int) goods.get("qy"); - BOOrderItemVO orderItemVO = insertedGoodsList.stream().filter(obj-> Objects.equals(ordrInnb, obj.getOrdrInnb()) && - Objects.equals(BigInteger.valueOf(goodsInnb), obj.getGoodsInnb())).findAny().orElse(null); + List orderItemVOList = insertedGoodsList.stream().filter(obj-> Objects.equals(ordrInnb, obj.getOrdrInnb()) && + Objects.equals(BigInteger.valueOf(goodsInnb), obj.getGoodsInnb())).toList(); + BOOrderItemVO orderItemVO = new BOOrderItemVO(); + if(subsvcAt) { + orderItemVO = orderItemVOList.size() > allGoodsCount ? orderItemVOList.get(allGoodsCount) : null; + } else { + orderItemVO = orderItemVOList.stream().findAny().orElse(null); + } /* *********************************************** 6. 주문 상품 옵션 정보 등록(GC_ORDER_ITEM_OPTION) @@ -1051,7 +1058,14 @@ public class BOOrderService { * @return */ public List insertOrdrGoods(String sopmalCd, String goodsKndCd, BigInteger ordrInnb, List goodsList) { - List goodsInnbList = (goodsList.stream().map(obj-> (int) obj.get("goodsInnb")).toList()).stream().distinct().toList(); // 상품번호 목록(중복제거) + return insertOrdrGoods(sopmalCd, goodsKndCd, ordrInnb, goodsList, false); + } + public List insertOrdrGoods(String sopmalCd, String goodsKndCd, BigInteger ordrInnb, List goodsList, Boolean subsvcAt) { + Stream goodsInnbstream = goodsList.stream().map(obj -> (int) obj.get("goodsInnb")); + if(!subsvcAt) // 상품번호 목록(중복제거) + goodsInnbstream = goodsInnbstream.distinct(); + List goodsInnbList = goodsInnbstream.toList(); + boolean tmAt = goodsList.stream().anyMatch(map -> map.containsKey("tmAt")); //tm주문 여부 List insertedGoodsList = new ArrayList<>(); // 주문상품 목록