구독서비스 결제 적용

This commit is contained in:
이대환
2026-03-19 10:09:51 +09:00
parent 3e77f9bf31
commit bcc7371b7a
15 changed files with 501 additions and 235 deletions

View File

@@ -66,6 +66,10 @@
, RCIPT_NB
, SLE_EMPL_NM
, DWLD_COUPON_INNB
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(subsvcInnb)">
, SUBSVC_INNB
, SUBSVC_AT
</if>
, INDVDL_SETLE_SMS_CN
, INDVDL_SETLE_SMS_MBTLNB
, INDVDL_SETLE_SMS_AT
@@ -132,6 +136,10 @@
, #{rciptNb}
, #{sleEmplNm}
, #{dwldCouponInnb}
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(subsvcInnb)">
, #{subsvcInnb}
, 'Y'
</if>
, #{indvdlSetleSmsCn}
, HEX(AES_ENCRYPT(REPLACE(#{indvdlSetleSmsMbtlnb}, '-', ''), '1df5be2f7e90ae36'))
, #{indvdlSetleSmsAt}

View File

@@ -61,6 +61,15 @@
, GS.MBL_SUBSVC_DC_PC_SAME_AT /*모바일 구독서비스 설명 PC동일여부*/
, GS.LAST_PROCS_ODR /*최종차수*/
, GS.DFT_GOODS_OPTN_INNB /*기본상품옵션고유번호*/
, 1 AS QY /*구독서비스 결제 수량*/
]]>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mbrInnb)">
, #{mbrInnb} AS mbrInnb /*회원 고유번호*/
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mbrDvCd)">
, #{mbrDvCd} AS mbrDvCd /*회원구분코드*/
</if>
<![CDATA[
FROM GC_SUBSVC GS
WHERE GS.SOPMAL_CD = #{sopmalCd}
AND GS.SUBSVC_INNB = #{subsvcInnb}

View File

@@ -4241,7 +4241,7 @@
AND FC.SOPMAL_CD = #{sopmalCd}
AND FC.INPUT_OPTN_RELATE_NB = FGO.GOODS_OPTN_INNB
<if test="mbrInnb == 0 ">
AND FC.SESION_ID = #{sesionId}
AND FC.SESION_ID = #{sesionId}0
</if>
<if test="mbrInnb != 0 ">
AND FC.MBR_INNB = #{mbrInnb}
@@ -5589,6 +5589,97 @@
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</select>
<!-- 사용자 > 구독서비스 결제 > 구독서비스 주문 상품 목록 조회 -->
<select id="selectSubsvcGoodsList" parameterType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO" resultType="com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO">
WITH RECURSIVE seq AS (
SELECT 1 AS n
UNION ALL
SELECT n + 1 FROM seq WHERE n <![CDATA[<]]> 24
)
SELECT GGO.SOPMAL_CD
, #{mbrInnb} AS MBR_INNB
, (
SELECT GM.MBR_DV_CD
FROM GC_MEMBER GM
INNER JOIN GC_MEMBER_GRAD_MAPPING GMGM
ON GMGM.MBR_INNB = GM.MBR_INNB
AND GMGM.MBR_DV_CD = GM.MBR_DV_CD
WHERE GM.USE_AT = 'Y'
AND GMGM.SOPMAL_CD = #{sopmalCd}
AND GMGM.MBR_INNB = #{mbrInnb}
) AS MBR_DV_CD
, GGO.GOODS_INNB
, GS.DFT_GOODS_OPTN_INNB AS GOODS_OPTN_INNB
, CAST(#{qy} AS UNSIGNED) AS QY
-- , (
-- SELECT CONCAT(
-- GS.SOPMAL_CD, ',',
-- GGO.GOODS_INNB, ',',
-- GS.DFT_GOODS_OPTN_INNB, ',',
-- GGO.OPTN_NM_1, ',',
-- ''#INPUT_OPTN_CN
-- )
-- ) AS INPUT_OPTN
-- , (
-- SELECT CONCAT(
-- GGO.OPTN_NM_1, ':',
-- ''#INPUT_OPTN_CN
-- )
-- ) AS INPUT_OPTN_TEXT
, GG.DLVY_GROUP_INNB
, GG.GOODS_STTUS_CD
, CASE WHEN GG.GOODS_STTUS_CD='03' AND GG.SEL_STPGE_CUSTOM_WORDS_AT ='Y' AND IFNULl(GG.SEL_STPGE_CUSTOM_WORDS, '')!='' THEN GG.SEL_STPGE_CUSTOM_WORDS
ELSE FN_GET_COMMCODE_NAME('GOODS_STTUS', GG.GOODS_STTUS_CD)
END AS GOODS_STTUS_NM
, GG.GOODS_NM
, GGO.OPTN_TY
, GGO.OPTN_RELATE_NB
, GGO.COMPNB_DSCNT_AT
, GGO.SCTN_DSCNT_AT
, NULLIF(GGO.OPTN_ESSNTL_AT, '') AS OPTN_ESSNTL_AT
, FORMAT(IFNULL(GGO.CNSMRPRIC, 0) * #{qy}, 0) AS SUB_CNSMRPRIC_BY_FORMAT
, IFNULL(GGO.CNSMRPRIC, 0) * #{qy} AS SUB_CNSMRPRIC
, FORMAT(IFNULL(GGO.CNSMRPRIC, 0), 0) AS CNSMRPRIC_BY_FORMAT
, IFNULL(GGO.CNSMRPRIC, 0) AS CNSMRPRIC
, FORMAT(IFNULL(GGO.SLEPRIC, 0) * #{qy}, 0) AS SUB_SLEPRIC_BY_FORMAT
, IFNULL(GGO.SLEPRIC, 0) * #{qy} AS SUB_SLEPRIC
, FORMAT(IFNULL(GGO.SLEPRIC, 0), 0) AS SLEPRIC_BY_FORMAT
, IFNULL(GGO.SLEPRIC, 0) AS SLEPRIC
, CONCAT(GGO.OPTN1, IF(GGO.OPTN2 IS NULL , '', CONCAT('/', GGO.OPTN2))
, IF(GGO.OPTN3 IS NULL , '', CONCAT('/', GGO.OPTN3))
, IF(GGO.OPTN4 IS NULL , '', CONCAT('/', GGO.OPTN4))) AS OPTN
, GGI.IMG AS GOODS_IMG_COURS
FROM GC_SUBSVC GS
INNER JOIN (
SELECT *
, CASE WHEN GGO.OPTN_NM_1 != '' AND GGO.OPTN_VAL_1 != ''
THEN CONCAT(GGO.OPTN_NM_1,':',GGO.OPTN_VAL_1)
END OPTN1
, CASE WHEN GGO.OPTN_NM_2 != '' AND GGO.OPTN_VAL_2 != ''
THEN CONCAT(GGO.OPTN_NM_2,':',GGO.OPTN_VAL_2)
END OPTN2
, CASE WHEN GGO.OPTN_NM_3 != '' AND GGO.OPTN_VAL_3 != ''
THEN CONCAT(GGO.OPTN_NM_3,':',GGO.OPTN_VAL_3)
END OPTN3
, CASE WHEN GGO.OPTN_NM_4 != '' AND GGO.OPTN_VAL_4 != ''
THEN CONCAT(GGO.OPTN_NM_4,':',GGO.OPTN_VAL_4)
END OPTN4 from GC_GOODS_OPTION GGO
)GGO
ON GGO.SOPMAL_CD = GS.SOPMAL_CD
AND GGO.GOODS_OPTN_INNB = GS.DFT_GOODS_OPTN_INNB
INNER JOIN GC_GOODS GG
ON GGO.SOPMAL_CD = GG.SOPMAL_CD
AND GGO.GOODS_INNB = GG.GOODS_INNB
JOIN seq
ON seq.n <![CDATA[<=]]> GS.SUB_PD
LEFT JOIN GC_GOODS_IMAGE GGI ON GG.SOPMAL_CD = GGI.SOPMAL_CD
AND GG.GOODS_INNB = GGI.GOODS_INNB
AND GGI.IMG_KND = '03'
AND GGI.CUT_NB = 1
WHERE GS.SOPMAL_CD = #{sopmalCd}
AND GS.SUBSVC_INNB = #{subsvcInnb}
</select>
<!-- 한화금액이 결제금액보다 많은지 체크하여 환불금액(원화) update -->
<update id="updateBOWonRefundAmt" parameterType="com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrRefundVO">
<![CDATA[

View File

@@ -12,6 +12,7 @@ secured:
- /sopmal/bnft/**
- /sopmal/ordr/selectSpbk
- /sopmal/ordr/selectMbrPurchsForm
- /sopmal/ordr/selectSubsvcPurchsForm
admin:
anonmymous:
# 로그인 없이 접근가능한 uri없음