구독서비스 결제 - 주문무효 처리 후 재고 및 상태 변경

This commit is contained in:
이대환
2026-04-13 16:44:07 +09:00
parent ce9b1c1bfc
commit ce15736c9d
4 changed files with 81 additions and 32 deletions

View File

@@ -35,6 +35,8 @@ public interface BOSubsvcMapper {
public void updateSubsvcOrdrUsefulInvntryQy(BOSubsvcVO vo);
/** 구독서비스 환불에 따른 판매재고수량 수정*/
public void updateSubsvcRefundUsefulInvntryQy(BOSubsvcVO vo);
/** 구독서비스 주문취소에 따른 판매재고수량 수정*/
public void updateSubsvcCancelOrderUsefulInvntryQy(BOSubsvcVO vo);
/** 판매재고수량 변경에 따른 구독서비스 상태 수정*/
public void updateInvntryPolicySubsvcSttusChng(BOSubsvcVO vo);
}

View File

@@ -170,4 +170,20 @@ public class BOSubsvcService {
//구독서비스 상태 수정
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

@@ -1542,7 +1542,18 @@ public class BORtngudrefndService {
// ########################################### 상품 재고 ###########################################
BOOrdrVO boOrdrVO = new BOOrdrVO();
boOrdrVO.setOrdrInnb(ordrVO.getOrdrInnb());
boOrdrVO.setSopmalCd(ordrVO.getSopmalCd());
DataMap ordrDtl = ordrMapper.selectOrdrDtl(boOrdrVO);
boolean subsvcAt = "Y".equals(ordrDtl.get("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

@@ -356,6 +356,26 @@
]]>
</update>
<!-- 구독서비스 주문무효에 따른 판매재고수량 수정 -->
<update id="updateSubsvcCancelOrderUsefulInvntryQy" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO">
<![CDATA[
UPDATE GC_SUBSVC GS
INNER JOIN (
SELECT
GO.SUBSVC_INNB,
COUNT(*) AS ORDR_QY
FROM GC_ORDER GO
WHERE GO.SOPMAL_CD = #{sopmalCd}
AND GO.ORDR_INNB = #{ordrInnb}
GROUP BY
GO.SUBSVC_INNB
) SUBQUERY
ON GS.SUBSVC_INNB = SUBQUERY.SUBSVC_INNB
SET GS.USEFUL_INVNTRY_QY = IFNULL(GS.USEFUL_INVNTRY_QY, 0) - SUBQUERY.ORDR_QY
WHERE GS.SUBSVC_INNB = SUBQUERY.SUBSVC_INNB
]]>
</update>
<!-- 판매재고수량 변경에 따른 구독서비스 상태 수정 -->
<update id="updateInvntryPolicySubsvcSttusChng" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO">
<![CDATA[