구독서비스 결제 - 주문 상품 테이블 다중 Insert 적용

This commit is contained in:
이대환
2026-04-09 11:27:53 +09:00
parent 60ff733d4d
commit 9d376958b7

View File

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