fix : 주문/배송 상세조회(모바일) - 여러곳 배송/선물하기 주문취소 개선

This commit is contained in:
이대환
2026-04-14 15:47:38 +09:00
parent a1d95d1e01
commit eda43b3d17
4 changed files with 14 additions and 1 deletions

View File

@@ -873,9 +873,12 @@ public class BOOrderService {
List<BOOrderItemVO> 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);
}

View File

@@ -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());
}

View File

@@ -795,6 +795,7 @@ public class OrdrController {
LinkedHashMap goodsOne = ((List<LinkedHashMap>) 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) {

View File

@@ -794,7 +794,7 @@
</c:forEach>
<c:if test = "${order.ordrSttusCd eq '15'}">
<div class="orderDetailProduct__btnControls">
<a href="javascript:void(0);" onclick="fn_post_cancl_ordr_confirm('${goods.sopmalCd}', '${goods.ordrInnb}', '${order.ordrSttusCd}');" class="btn gray full">주문취소</a>
<a href="javascript:void(0);" onclick="fn_post_cancl_ordr_confirm('${order.sopmalCd}', '${order.ordrInnb}', '${order.ordrSttusCd}');" class="btn gray full">주문취소</a>
</div>
</c:if>
</c:if>