fix : 관리자 구독서비스 결제취소

This commit is contained in:
jazz
2026-03-13 11:45:58 +09:00
parent fa6371a099
commit 83024e46d0
3 changed files with 40 additions and 0 deletions

View File

@@ -999,6 +999,13 @@ public interface BOOrdrMapper {
* @param refundVO
*/
public void updateBOWonRefundAmt(BOOrdrRefundVO refundVO);
/**
* 결제취소 시 구독서비스 환불금액 조회
* 계산식 : 전체결제금액 - 전체배송비 - 발송및취소된(35~85)상품금액
* @param refundVO
*/
public Integer selectSubsvcRefundAmt(BOOrdrRefundVO refundVO);
}

View File

@@ -2292,9 +2292,15 @@ public class BOOrdrService{
}
//상품 환불금액 합산
//각 상품별 금액 합산(일반상품은 문제없음) -> 구독상품은 상품별 금액이 상관없음
refundVO.setRefundAmt(BigDecimal.valueOf(refundItemList.stream().mapToInt(vo -> vo.getGoodsRefundAmt().intValue()).sum()));
refundVO.setRefundAccmlmnyAmt(BigDecimal.valueOf(refundItemList.stream().mapToInt(vo -> vo.getSnggdsAccmlMlgAmt().intValue()).sum()));
Integer subsvcRefundAmt = mapper.selectSubsvcRefundAmt(refundVO);
if(subsvcRefundAmt != null){
refundVO.setRefundAmt(BigDecimal.valueOf(subsvcRefundAmt.longValue()));
}
BigDecimal useMlg = null;
// 구매총수량과 환불요청수량이 같은경우는 전체결제취소 또는 전체 환불신청
if (ordrQy == canclQy) { // TODO : 구매확정 수량으로 계산해야함. *****

View File

@@ -5614,6 +5614,33 @@
]]>
</update>
<!--
결제취소 시 구독서비스 환불금액 조회
계산식 : 전체결제금액 - 전체배송비 - 발송및취소된(35~85)상품금액
-->
<select id="selectSubsvcRefundAmt" parameterType="com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrRefundVO" resultType="java.lang.Integer">
SELECT (MAX(O.RL_SETLE_AMT) - SUM(GOS.RL_DLVY_AMT) - SUM(CASE
WHEN GOIO.ORDR_STTUS_CD BETWEEN 35 AND 85 THEN (GOIO.SLEPRIC * GOIO.ORDR_QY)
ELSE 0
END)
) AS REFUND_AMT
FROM GC_ORDER O
INNER JOIN GC_ORDER_SHIPPING GOS
ON GOS.SOPMAL_CD = O.SOPMAL_CD
AND GOS.ORDR_INNB = O.ORDR_INNB
AND GOS.USE_AT = 'Y'
INNER JOIN GC_ORDER_ITEM GOI
ON GOI.SOPMAL_CD = O.SOPMAL_CD
AND GOI.ORDR_INNB = O.ORDR_INNB
INNER JOIN GC_ORDER_ITEM_OPTION GOIO
ON GOIO.SOPMAL_CD = GOI.SOPMAL_CD
AND GOIO.ORDR_GOODS_INNB = GOI.ORDR_GOODS_INNB
AND GOIO.ORDR_DLVY_INNB = GOS.ORDR_DLVY_INNB
WHERE O.SOPMAL_CD = #{sopmalCd}
AND O.ORDR_INNB = #{ordrInnb}
AND O.SUBSVC_AT = 'Y'
</select>
</mapper>