Merge remote-tracking branch 'origin/master'

This commit is contained in:
이경숙
2026-04-15 16:09:42 +09:00
42 changed files with 3756 additions and 207 deletions

View File

@@ -52,6 +52,9 @@ public interface BOMaMtngMapper {
/** 주문 전 쿠폰정보 재확인*/
public List<String> selectBOPreOrderValidationCouponList(BOPreOrderValidVO goods);
/** 구독서비스 주문 전 주문정보 재확인*/
public List<DataMap> selectBOSubsvcPreOrderValidation(BOPreOrderValidVO goods);
/*쇼핑몰 구매요청 재검증 확인 여부*/
public String selectPurchsValidUseAt(String sopmalCd);
}

View File

@@ -306,8 +306,12 @@ public class BOMaMtngService {
}
for(BOPreOrderValidVO goods : goodsList) {
List<DataMap> resultValid = mapper.selectBOPreOrderValidation(goods);
List<DataMap> resultValid = new ArrayList<>();
if(goods.getSubsvcInnb() != "") {
resultValid = mapper.selectBOSubsvcPreOrderValidation(goods);
} else {
resultValid = mapper.selectBOPreOrderValidation(goods);
}
//구매정보 변경대상 필터링
// 값이 1인 항목 == 변경항목
@@ -473,12 +477,14 @@ public class BOMaMtngService {
goodsList.forEach(goods -> {
String goodsInnb = StringUtil.isNullToString(goods.get("goodsInnb"));
String subsvcInnb = StringUtil.isNullToString(goods.get("subsvcInnb"));
//상품별 수량합계
int goodsTotalQy = 0;
if(qySums.containsKey(goodsInnb)){
goodsTotalQy = qySums.getOrDefault(goodsInnb, 0);
} else if (qySums.containsKey(subsvcInnb)) {
goodsTotalQy = qySums.getOrDefault(subsvcInnb, 0);
}
@@ -514,6 +520,7 @@ public class BOMaMtngService {
.sopmalCd(StringUtil.isNullToString(goods.get("sopmalCd")))
.goodsInnb(StringUtil.isNullToString(goods.get("goodsInnb")))
.goodsOptnInnb(StringUtil.isNullToString(goods.get("goodsOptnInnb")))
.subsvcInnb(StringUtil.isNullToString(goods.get("subsvcInnb")))
.mbrInnb(StringUtil.isNullToString(goods.get("mbrInnb")))
.mbrDvCd(StringUtil.isNullToString(goods.get("mbrDvCd")))
.qy(StringUtil.isNullToString(goods.get("qy")))

View File

@@ -24,6 +24,9 @@ public class BOPreOrderValidVO {
/*상품옵션고유번호*/
private String goodsOptnInnb;
/*구독서비스고유번호*/
private String subsvcInnb;
/*회원고유번호*/
private String mbrInnb;

View File

@@ -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<BOOrderItemVO> insertedGoodsList = insertOrdrGoods(sopmalCd, "01", ordrInnb, goodsList);
List<BOOrderItemVO> 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,17 @@ 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<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);
}
/* ***********************************************
6. 주문 상품 옵션 정보 등록(GC_ORDER_ITEM_OPTION)
@@ -1051,7 +1061,14 @@ public class BOOrderService {
* @return
*/
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주문 여부
List<BOOrderItemVO> insertedGoodsList = new ArrayList<>(); // 주문상품 목록

View File

@@ -30,4 +30,13 @@ public interface BOSubsvcMapper {
void insertBOMngrSubsvc(BOSubsvcVO vo);
/** 관리자 구독서비스 명 중복체크*/
int selectBOMngrSubsvcNmDupCheck(BOSubsvcVO vo);
/** 구독서비스 주문에 따른 판매재고수량 수정*/
public void updateSubsvcOrdrUsefulInvntryQy(BOSubsvcVO vo);
/** 구독서비스 환불에 따른 판매재고수량 수정*/
public void updateSubsvcRefundUsefulInvntryQy(BOSubsvcVO vo);
/** 구독서비스 주문취소에 따른 판매재고수량 수정*/
public void updateSubsvcCancelOrderUsefulInvntryQy(BOSubsvcVO vo);
/** 판매재고수량 변경에 따른 구독서비스 상태 수정*/
public void updateInvntryPolicySubsvcSttusChng(BOSubsvcVO vo);
}

View File

@@ -1,13 +1,15 @@
package com.wb.domainserver.domain.gcone.goods.subsvc.service;
import com.wb.domainserver.domain.gcone.goods.goodsinfo.vo.BOGoodsInfoVO;
import com.wb.domainserver.domain.gcone.goods.subsvc.mapper.BOSubsvcMapper;
import com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO;
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrVO;
import com.wb.domainserver.util.dataaccess.DataMap;
import io.micrometer.common.util.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
@@ -137,4 +139,51 @@ public class BOSubsvcService {
return message;
}
/**
* 주문에 따른 판매재고수량 수정
* @param ordrVO
* @return
*/
@Transactional
public void updateSubsvcOrdrUsefulInvntryQy(BOOrdrVO ordrVO) throws Exception {
BOSubsvcVO subsvcVO = new BOSubsvcVO();
BeanUtils.copyProperties(ordrVO, subsvcVO);
//판매수량 수정
mapper.updateSubsvcOrdrUsefulInvntryQy(subsvcVO);
//구독서비스 상태 수정
mapper.updateInvntryPolicySubsvcSttusChng(subsvcVO);
}
/**
* 환불에 따른 판매재고수량 수정
* @param ordrVO
* @return
*/
@Transactional
public void updateSubsvcRefundUsefulInvntryQy(BOOrdrVO ordrVO) throws Exception {
BOSubsvcVO subsvcVO = new BOSubsvcVO();
BeanUtils.copyProperties(ordrVO, subsvcVO);
//판매수량 수정
mapper.updateSubsvcRefundUsefulInvntryQy(subsvcVO);
//구독서비스 상태 수정
mapper.updateInvntryPolicySubsvcSttusChng(subsvcVO);
}
/**
* 주문취소에 따른 판매재고수량 수정
* @param ordrVO
* @return
*/
@Transactional
public void updateSubsvcCancelOrderUsefulInvntryQy(BOOrdrVO ordrVO) throws Exception {
BOSubsvcVO subsvcVO = new BOSubsvcVO();
BeanUtils.copyProperties(ordrVO, subsvcVO);
//판매수량 수정
mapper.updateSubsvcCancelOrderUsefulInvntryQy(subsvcVO);
//구독서비스 상태 수정
mapper.updateInvntryPolicySubsvcSttusChng(subsvcVO);
}
}

View File

@@ -4,6 +4,7 @@ import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigInteger;
import java.util.List;
@Data
@@ -12,14 +13,14 @@ public class BOSubsvcVO extends AbstractVO {
private static final long serialVersionUID = 1L;
/** 구독서비스고유번호 */
private String subsvcInnb;
/** 쇼핑몰코드 */
private String sopmalCd;
/** 구독서비스명 */
private String subsvcNm;
/** 구독기간 */
private String subPd;
/** 구독서비스고유번호 */
private String subsvcInnb;
/** 구독서비스기수 */
private String subsvcGnr;
/** 구독서비스명 다음기수 */
@@ -108,6 +109,8 @@ private static final long serialVersionUID = 1L;
private Integer mbrInnb;
/** 회원구분코드 */
private String mbrDvCd;
/** 주문고유번호 */
private String ordrInnb;
/** 결제상품정보 */

View File

@@ -6017,8 +6017,8 @@ public class BOOrdrService{
LinkedHashMap subsvcOne = subsvcList.get(0);
log.debug("subsvcOne : {}", subsvcOne);
goodsAmt = BigDecimal.valueOf((Integer) subsvcOne.get("selpric"));
setleAmt = BigDecimal.valueOf((Integer) subsvcOne.get("selpric"));
goodsAmt = BigDecimal.valueOf((Integer) subsvcOne.get("slepric"));
setleAmt = BigDecimal.valueOf((Integer) subsvcOne.get("slepric"));
log.debug("결제 예정 금액 : {}", setleAmt);
// 환율계산

View File

@@ -1,53 +1,45 @@
package com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.service;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.wb.domainserver.domain.gcone.goods.goods.service.BOGoodsService;
import com.wb.domainserver.domain.gcone.goods.purchs.mapper.BOPurchsMapper;
import com.wb.domainserver.domain.gcone.goods.purchs.service.BOOrderService;
import com.wb.domainserver.domain.gcone.goods.purchs.vo.BOOrderLogVO;
import com.wb.domainserver.domain.gcone.goods.subsvc.service.BOSubsvcService;
import com.wb.domainserver.domain.gcone.mbr.mlg.service.BOMlgService;
import com.wb.domainserver.domain.gcone.mbr.mlg.vo.BOCashVO;
import com.wb.domainserver.domain.gcone.mbr.mlg.vo.BOMlgVO;
import com.wb.domainserver.domain.gcone.ntcn.mssage.service.BOMssageService;
import com.wb.domainserver.domain.gcone.ordr.ordr.mapper.BOOrdrMapper;
import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrdrService;
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrDlvyVO;
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrRefundVO;
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrVO;
import com.wb.domainserver.domain.gcone.ordr.pay.service.BOPayService;
import com.wb.domainserver.domain.gcone.ordr.pay.vo.BOPayVO;
import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.mapper.BORtngudrefndMapper;
import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.vo.BOOrderReItemVO;
import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.vo.BORefundSetleVO;
import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.vo.BORtngudrefndSrchVO;
import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.vo.BORtngudrefndVO;
import com.wb.domainserver.domain.gcone.ordr.selngpruf.service.BOSelngprufService;
import com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO;
import com.wb.domainserver.domain.gcone.promtn.coupon.service.BOCouponService;
import com.wb.domainserver.domain.gcone.promtn.coupon.vo.BODwldCouponVO;
import com.wb.domainserver.domain.gcone.setup.site.mapper.BOSiteMapper;
import com.wb.domainserver.domain.gcone.setup.site.vo.BOSetupContentsItemVO;
import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.util.dataaccess.DataMap;
import com.wb.domainserver.util.string.StringUtil;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.wb.domainserver.domain.admin.sys.comncd.service.BOMaComncdService;
import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.mapper.BORtngudrefndMapper;
import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.vo.BORtngudrefndSrchVO;
import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.vo.BORtngudrefndVO;
import com.wb.domainserver.util.dataaccess.DataMap;
import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.support.WebExchangeBindException;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.text.SimpleDateFormat;
import java.util.*;
/**
*
@@ -87,6 +79,9 @@ public class BORtngudrefndService {
@Autowired
private BOOrderService orderService;
@Autowired
private BOSubsvcService subsvcService;
@Autowired
private BORtngudrefndMapper mapper;
@@ -1381,7 +1376,21 @@ public class BORtngudrefndService {
if ("0".equals(message.get("status"))) {
// ########################################### 상품 재고 ###########################################
boGoodsService.updateRefundUsefulInvntryQy(refundVO);
BOOrdrVO ordrVO = new BOOrdrVO();
ordrVO.setOrdrInnb(refundVO.getOrdrInnb());
ordrVO.setSopmalCd(refundVO.getSopmalCd());
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);
}
// ########################################### 쿠폰 복원 ###########################################
@@ -1536,7 +1545,21 @@ public class BORtngudrefndService {
// ########################################### 상품 재고 ###########################################
boGoodsService.updateCancelOrderUsefulInvntryQy(ordrVO, ordrVO.getOrdrInnb());
BOOrdrVO boOrdrVO = new BOOrdrVO();
boOrdrVO.setOrdrInnb(ordrVO.getOrdrInnb());
boOrdrVO.setSopmalCd(ordrVO.getSopmalCd());
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());
}
resotreResult.put("restoreResult", "0");
} catch (Exception e) {

View File

@@ -261,6 +261,143 @@ public class MyActController {
return Util.getDeviceType(request)+"/mpage/act/MyGoodsQnaDtlUpdtU";
}
/**
* 일반문의 조회
* @param bbsctt
* @return String
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectNormalQnaInqire")
public String selectNormalQnaInqire(HttpServletRequest request, ModelMap model, BOGnrlbbscttVO bbsctt, BOMbrVO vo){
bbsctt.setBbsTyCd("01");
bbsctt.setServerDv("sopmal");
bbsctt.setReqUrl("mpage");
DataMap content = selectBOBbscttListInqire(bbsctt);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire",bbsctt),
// model,
// "resultMap"
// );
Map<String, Object> content2 = selectBOMpageInfoInqire(vo);
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
model.addAttribute("mpageResultMap", content2);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire",bbsctt),
// model,
// "mpageResultMap"
// );
return Util.getDeviceType(request)+"/mpage/act/MyNormalQaR";
}
/**
* 일반문의 수정 폼 이동
* @param bbsctt
* @return String
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectNormalQnaDtlUpdtForm")
public String selectNormalQnaDtlUpdtForm(HttpServletRequest request, ModelMap model,BOGnrlbbscttVO bbsctt, BOMbrVO vo){
bbsctt.setServerDv("sopmal");
bbsctt.setBbsTyCd("01");
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if ("01".equals(user.getSysDvCd())) {
bbsctt.setSopmalCd(user.getSopmalCd());
}
;
if (user.getUserInnb() > 0) {
if ("mngr".equals(bbsctt.getServerDv())) {
bbsctt.setRegusrDvCd("02"); //관리자
} else {
bbsctt.setRegusrDvCd("01"); //회원
bbsctt.setAnswMbtlnb(user.getMbtlnb());
}
} else {
bbsctt.setRegusrDvCd("99");//비회원
}
bbsctt.setSecretKey(boCommonService.selectSecretkey());
// 게시판 설정 정보
BOBbsVO bbsVO = new BOBbsVO();
// bbsVO에 쇼핑몰코드, 해당 게시판 set
bbsVO.setSopmalCd(bbsctt.getSopmalCd());
bbsVO.setBbsId(bbsctt.getBbsId());
bbsVO.setBbsTyCd(bbsctt.getBbsTyCd());
DataMap bbsInfo = new DataMap();
bbsInfo = bbsService.selectBOBbsSetupInfo(bbsVO);
// 게시글 상세 조회
Map<String, Object> bbscttInfo = new HashMap<String, Object>();
bbscttInfo = service.selectBOBbscttUpdt(bbsctt);
// 분류 조회
List<DataMap> itmList = new ArrayList<>();
itmList = service.selectBOBbscttItmInqire(bbsctt);
//추가 항목 조회, 추가항목 항목 조회
Map<String, Object> qesitmList = new HashMap<String, Object>();
qesitmList = service.selectBOBbscttRegistPopupForm(bbsctt);
//리뷰항목 리스트, 리뷰항목 항목 리스트
Map<String, Object> rvwQesitmList = new HashMap<String, Object>();
rvwQesitmList = service.selectBOStarItm(bbsctt);
Map<String, Object> content = new HashMap<String, Object>();
content.put("bbsInfo", bbsInfo);
content.put("bbscttVO", bbsctt);
content.put("bbscttInfo", bbscttInfo);
content.put("itmList", itmList);
content.put("qesitmList", qesitmList);
content.put("rvwQesitmList", rvwQesitmList);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttUpdtPopupForm",bbsctt),
// model,
// "resultMap"
// );
model.addAttribute("bbsctt", bbsctt);
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
Map<String, Object> content2 = selectBOMpageInfoInqire(vo);
model.addAttribute("mpageResultMap", content2);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire",bbsctt),
// model,
// "mpageResultMap"
// );
return Util.getDeviceType(request)+"/mpage/act/MyNormalQnaDtlUpdtU";
}
/**
* 일반문의 ajax 조회
* @param bbsctt
* @return String
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectNormalQnaInqireAjax", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> selectNormalQnaInqireAjax(BOGnrlbbscttVO bbsctt){
bbsctt.setBbsTyCd("01");
bbsctt.setServerDv("sopmal");
bbsctt.setReqUrl("mpage");
//게시글 노출 항목 설정값과 게시판 목록 조회
DataMap content = selectBOBbscttListInqire(bbsctt);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire",bbsctt),
// ReplyFromResrc::getReply
// );
}
/**
* 1:1 문의 조회
* @param bbsctt

View File

@@ -797,6 +797,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"));
@@ -2925,7 +2926,21 @@ public class OrdrController {
// 2.가용재고수량 수정 ==============================================================
try {
boGoodsService.updateOrdrUsefulInvntryQy(orderVO);
BOOrdrVO ordrVO = new BOOrdrVO();
ordrVO.setOrdrInnb(orderVO.getOrdrInnb().toString());
ordrVO.setSopmalCd(orderVO.getSopmalCd());
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) {
logVO.setFailContent("상품 재고수량 업데이트 실패");
log.error("{} 상품 재고수량 업데이트 실패!", payVO.getOrderId());