merge master into develop - CscListRForm.jsp FAQ 아코디언 버그 수정
This commit is contained in:
@@ -0,0 +1,367 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.wb.domainserver.domain.gcone.bnft.bnftMain.mapper.BOBnftMainMapper">
|
||||
|
||||
<!-- 혜택 메인 메뉴 목록 조회 -->
|
||||
<select id="selectBnftMainList" parameterType="com.wb.domainserver.domain.gcone.bnft.bnftMain.vo.BOBnftMainVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
m.BNF_DV_CD,
|
||||
m.SOPMAL_CD,
|
||||
m.MENU_SJ_1,
|
||||
m.MENU_SJ_2,
|
||||
m.SORT_ORDR,
|
||||
CASE
|
||||
WHEN m.BNF_DV_CD = '120' THEN 'Y'
|
||||
WHEN m.BNF_DV_CD = '140' THEN 'Y'
|
||||
WHEN m.BNF_DV_CD = '020' AND (
|
||||
SELECT COALESCE(d.PHAC_AGRE_AT, 'N')
|
||||
FROM GC_MEMBER_DEVICE_INFO d
|
||||
WHERE d.MBR_INNB = #{mbrInnb}
|
||||
AND d.MBR_DV_CD = #{mbrDvCd}
|
||||
AND d.SOPMAL_CD = #{sopmalCd}
|
||||
AND d.DEVICE_ID = #{deviceId}
|
||||
LIMIT 1
|
||||
) = 'Y' AND EXISTS (
|
||||
SELECT 1
|
||||
FROM GC_BENEFIT b
|
||||
WHERE b.BNF_DV_CD = m.BNF_DV_CD
|
||||
AND b.SOPMAL_CD = m.SOPMAL_CD
|
||||
AND b.USE_AT = 'Y'
|
||||
AND (b.BNF_BGN_DT IS NULL OR b.BNF_BGN_DT <= NOW())
|
||||
AND (b.BNF_END_DT IS NULL OR b.BNF_END_DT >= NOW())
|
||||
) THEN 'Y'
|
||||
WHEN EXISTS (
|
||||
SELECT 1
|
||||
FROM GC_BENEFIT b
|
||||
WHERE b.BNF_DV_CD = m.BNF_DV_CD
|
||||
AND b.SOPMAL_CD = m.SOPMAL_CD
|
||||
AND b.USE_AT = 'Y'
|
||||
AND (b.BNF_BGN_DT IS NULL OR b.BNF_BGN_DT <= NOW())
|
||||
AND (b.BNF_END_DT IS NULL OR b.BNF_END_DT >= NOW())
|
||||
) THEN 'Y'
|
||||
ELSE 'N'
|
||||
END AS AVAL_AT,
|
||||
CASE
|
||||
WHEN m.BNF_DV_CD = '100' AND EXISTS (
|
||||
SELECT 1
|
||||
FROM GC_BENEFIT b
|
||||
JOIN GC_BENEFIT_NTKCHL n ON b.BNF_INNB = n.BNF_INNB
|
||||
WHERE b.BNF_DV_CD = '100'
|
||||
AND b.SOPMAL_CD = m.SOPMAL_CD
|
||||
AND b.USE_AT = 'Y'
|
||||
AND n.MBR_INNB = #{mbrInnb}
|
||||
AND n.MBR_DV_CD = #{mbrDvCd}
|
||||
AND n.DEL_AT = 'N'
|
||||
) THEN 'Y'
|
||||
ELSE 'N'
|
||||
END AS NTK_CHL_AT,
|
||||
(
|
||||
SELECT b.BNF_INNB
|
||||
FROM GC_BENEFIT b
|
||||
JOIN GC_BENEFIT_NTKCHL n ON b.BNF_INNB = n.BNF_INNB
|
||||
WHERE b.BNF_DV_CD = '100'
|
||||
AND b.SOPMAL_CD = m.SOPMAL_CD
|
||||
AND b.USE_AT = 'Y'
|
||||
AND (b.BNF_BGN_DT IS NULL OR b.BNF_BGN_DT <= NOW())
|
||||
AND (b.BNF_END_DT IS NULL OR b.BNF_END_DT >= NOW())
|
||||
AND n.MBR_INNB = #{mbrInnb}
|
||||
AND n.MBR_DV_CD = #{mbrDvCd}
|
||||
AND n.DEL_AT = 'N'
|
||||
ORDER BY n.REGIST_DT DESC
|
||||
LIMIT 1
|
||||
) AS NTK_BNF_INNB,
|
||||
CASE
|
||||
WHEN m.BNF_DV_CD = '050' AND EXISTS (
|
||||
SELECT
|
||||
gbcs.BNF_STTUS_INNB,
|
||||
gbcs.PROGRS_AT,
|
||||
gbcs.BNF_INNB
|
||||
from
|
||||
GC_BENEFIT gb
|
||||
left join
|
||||
GC_BENEFIT_CPSLMKN_STTUS gbcs
|
||||
on gb.BNF_INNB = gbcs.BNF_INNB
|
||||
WHERE
|
||||
gbcs.MBR_INNB = #{mbrInnb}
|
||||
AND gbcs.MBR_DV_CD = #{mbrDvCd}
|
||||
AND gbcs.PROGRS_AT = 'Y'
|
||||
AND gb.SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
AND USE_AT = 'Y'
|
||||
) THEN 'Y'
|
||||
ELSE 'N'
|
||||
END AS CPSL_PROGRS_AT,
|
||||
(
|
||||
SELECT s.BNF_INNB
|
||||
FROM GC_BENEFIT_CPSLMKN_STTUS s
|
||||
JOIN GC_BENEFIT b ON s.BNF_INNB = b.BNF_INNB
|
||||
WHERE s.MBR_INNB = #{mbrInnb}
|
||||
AND s.MBR_DV_CD = #{mbrDvCd}
|
||||
AND s.PROGRS_AT = 'Y'
|
||||
AND b.SOPMAL_CD = m.SOPMAL_CD
|
||||
AND b.BNF_DV_CD = '050'
|
||||
AND b.USE_AT = 'Y'
|
||||
AND (b.BNF_BGN_DT IS NULL OR b.BNF_BGN_DT <= NOW())
|
||||
AND (b.BNF_END_DT IS NULL OR b.BNF_END_DT >= NOW())
|
||||
ORDER BY s.REGIST_DT DESC
|
||||
LIMIT 1
|
||||
) AS CPSL_BNF_INNB,
|
||||
CASE
|
||||
WHEN EXISTS (
|
||||
SELECT 1
|
||||
FROM GC_BENEFIT b2
|
||||
JOIN GC_BENEFIT_INTEREST bi ON b2.BNF_INNB = bi.BNF_INNB
|
||||
WHERE b2.BNF_DV_CD = m.BNF_DV_CD
|
||||
AND b2.SOPMAL_CD = m.SOPMAL_CD
|
||||
AND bi.USE_AT = 'Y'
|
||||
AND bi.DEL_AT = 'N'
|
||||
) THEN 'Y'
|
||||
ELSE 'N'
|
||||
END AS INTRST_AVAL_AT,
|
||||
CASE
|
||||
WHEN m.BNF_DV_CD = '040' THEN (
|
||||
COALESCE(
|
||||
(SELECT SUM(CHG_CNT) FROM GC_BENEFIT_CHARGE
|
||||
WHERE MBR_INNB = #{mbrInnb} AND BNF_DV_CD = '040')
|
||||
, 0)
|
||||
-
|
||||
COALESCE(
|
||||
(SELECT COUNT(*) FROM GC_BENEFIT_PARTCPTN BP
|
||||
INNER JOIN GC_BENEFIT B ON BP.BNF_INNB = B.BNF_INNB
|
||||
WHERE BP.MBR_INNB = #{mbrInnb}
|
||||
AND B.BNF_DV_CD = '040')
|
||||
, 0)
|
||||
)
|
||||
ELSE 0
|
||||
END AS ROULETTE_REMAINING_CNT
|
||||
FROM
|
||||
GC_BENEFIT_MANAGE_MENU m
|
||||
WHERE
|
||||
m.INDICT_AT = 'Y'
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
ORDER BY
|
||||
m.SORT_ORDR asc
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 디바이스 권한 조회 -->
|
||||
<select id="selectDevicePermission" parameterType="com.wb.domainserver.domain.gcone.bnft.bnftMain.vo.BOBnftMainVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
PHAC_AGRE_AT
|
||||
FROM
|
||||
GC_MEMBER_DEVICE_INFO
|
||||
WHERE
|
||||
MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND DEVICE_ID = #{deviceId}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 배너 목록 조회 -->
|
||||
<select id="selectBannerList" parameterType="com.wb.domainserver.domain.gcone.bnft.bnftMain.vo.BOBnftMainVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
BNF_BANNER_INNB, -- 혜택 배너 고유번호
|
||||
SOPMAL_CD, -- 쇼핑몰코드
|
||||
BANNER_SJ, -- 배너 제목
|
||||
LINK_URL, -- 링크 URL
|
||||
IMG_FIL_COURS, -- 이미지 파일 경로
|
||||
IMG_FIL_NM, -- 이미지 파일명
|
||||
SORT_ORDR -- 정렬 순서
|
||||
FROM
|
||||
GC_BENEFIT_MANAGE_BANNER
|
||||
WHERE
|
||||
SOPMAL_CD = #{sopmalCd} -- 파라미터로 받은 쇼핑몰 코드
|
||||
AND USE_AT = 'Y' -- 사용 여부가 'Y'인 배너만
|
||||
AND DEL_AT = 'N' -- 삭제되지 않은 배너만
|
||||
ORDER BY
|
||||
SORT_ORDR ASC -- 정렬 순서대로 조회
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 마케팅동의 여부 조회 -->
|
||||
<select id="selectMbrMarktAgreeAt" parameterType="com.wb.domainserver.domain.gcone.bnft.bnftMain.vo.BOBnftMainVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
MARKT_RECPTN_AGRE_AT
|
||||
FROM
|
||||
GC_MARKETING_AGREE
|
||||
WHERE
|
||||
MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 현재 방영 중인 라이브쇼핑 확인 쿼리 -->
|
||||
<select id="selectCurrentLiveShopping" parameterType="com.wb.domainserver.domain.gcone.bnft.bnftMain.vo.BOBnftMainVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
CASE
|
||||
WHEN EXISTS (
|
||||
SELECT 1
|
||||
FROM GC_BENEFIT b
|
||||
JOIN GC_BENEFIT_CONTENT c ON b.BNF_INNB = c.BNF_INNB
|
||||
WHERE b.SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
AND b.BNF_DV_CD = '070' -- 라이브쇼핑 혜택 구분 코드
|
||||
AND b.USE_AT = 'Y' -- 사용 중인 혜택만
|
||||
AND c.CN_BGN_DT <= NOW() -- 현재 시간이 방송 시작 시간 이후
|
||||
AND c.CN_END_DT >= NOW() -- 현재 시간이 방송 종료 시간 이전
|
||||
) THEN 'Y'
|
||||
ELSE 'N'
|
||||
END AS IS_LIVE_ON_AIR -- 라이브쇼핑 방영 중 여부
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 새로 시작한 비상시적 이벤트 조회 쿼리 -->
|
||||
<select id="selectNewEvents" parameterType="com.wb.domainserver.domain.gcone.bnft.bnftMain.vo.BOBnftMainVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
b.BNF_INNB, -- 혜택 설정 고유번호
|
||||
b.BNF_DV_CD, -- 혜택 구분 코드
|
||||
b.BNF_SJ, -- 혜택 제목
|
||||
b.BNF_BGN_DT, -- 혜택 시작 일시
|
||||
b.BNF_END_DT -- 혜택 종료 일시
|
||||
FROM
|
||||
GC_BENEFIT b
|
||||
WHERE
|
||||
b.SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
AND b.USE_AT = 'Y' -- 사용 중인 혜택만
|
||||
AND b.BNF_DV_CD NOT IN ('010', '020') -- 출석체크, 만보기 제외
|
||||
AND b.BNF_BGN_DT <= NOW() -- 현재 시간이 혜택 시작 시간 이후
|
||||
AND b.BNF_END_DT >= NOW() -- 현재 시간이 혜택 종료 시간 이전
|
||||
AND DATEDIFF(NOW(), b.BNF_BGN_DT) <= 1 -- 시작한지 7일 이내의 이벤트
|
||||
ORDER BY
|
||||
b.BNF_BGN_DT DESC -- 최근에 시작한 순으로 정렬
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- 참여했거나 혜택 지급 완료된 이벤트 조회 쿼리 -->
|
||||
<select id="selectParticipatedEvents" parameterType="com.wb.domainserver.domain.gcone.bnft.bnftMain.vo.BOBnftMainVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT DISTINCT
|
||||
b.BNF_INNB, -- 혜택 설정 고유번호
|
||||
b.BNF_DV_CD, -- 혜택 구분 코드
|
||||
b.BNF_SJ, -- 혜택 제목
|
||||
p.BNF_PRT_DT, -- 혜택 참여 일시
|
||||
CASE
|
||||
WHEN r.BNF_RCV_INNB IS NOT NULL THEN 'Y'
|
||||
ELSE 'N'
|
||||
END AS REWARD_RECEIVED -- 보상 수령 여부
|
||||
FROM
|
||||
GC_BENEFIT b
|
||||
JOIN
|
||||
GC_BENEFIT_PARTCPTN p ON b.BNF_INNB = p.BNF_INNB
|
||||
LEFT JOIN
|
||||
GC_BENEFIT_RECEIPT r ON p.BNF_PRT_INNB = r.BNF_PRT_INNB
|
||||
WHERE
|
||||
b.SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
AND p.MBR_INNB = #{mbrInnb} -- 회원 고유번호
|
||||
AND p.MBR_DV_CD = #{mbrDvCd} -- 회원 구분 코드
|
||||
AND b.BNF_DV_CD != '020' -- 만보기 제외 (참여완료 의미 없음)
|
||||
AND b.BNF_DV_CD != '040' -- 룰렛 제외 (참여완료 의미 없음)
|
||||
AND b.BNF_END_DT >= NOW() -- 아직 종료되지 않은 이벤트만
|
||||
AND DATE(p.BNF_PRT_DT) = CURRENT_DATE() -- 모든 혜택에 대해 오늘 참여한 것만 포함
|
||||
ORDER BY
|
||||
p.BNF_PRT_DT DESC -- 최근 참여 순으로 정렬
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- QR 이벤트 혜택 설정 조회 -->
|
||||
<select id="selectQrEventBenefit" parameterType="com.wb.domainserver.domain.gcone.bnft.bnftMain.vo.BOBnftMainVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
<![CDATA[
|
||||
SELECT
|
||||
b.BNF_INNB, -- 혜택 고유 번호
|
||||
b.BNF_SJ, -- 혜택 제목
|
||||
b.USE_AT, -- 사용여부
|
||||
b.BNF_WORDS_CN, -- 혜택 안내 문구
|
||||
b.BNF_BGN_DT, -- 진행기간 시작일시
|
||||
b.BNF_END_DT -- 진행기간 종료일시
|
||||
FROM
|
||||
GC_BENEFIT b
|
||||
WHERE
|
||||
b.BNF_DV_CD = '150' -- QR코드 이벤트 혜택 구분 코드
|
||||
AND b.USE_AT = 'Y' -- 사용 중인 혜택만
|
||||
AND b.SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
AND (b.BNF_BGN_DT IS NULL OR b.BNF_BGN_DT <= NOW()) -- 시작일 체크
|
||||
AND (b.BNF_END_DT IS NULL OR b.BNF_END_DT >= NOW()) -- 종료일 체크
|
||||
ORDER BY
|
||||
b.BNF_INNB DESC -- 최신 혜택 우선
|
||||
]]>
|
||||
</select>
|
||||
|
||||
<!-- QR 이벤트 참여 정보 저장 -->
|
||||
<insert id="insertQrEventParticipation" parameterType="com.wb.domainserver.domain.gcone.bnft.bnftMain.vo.BOBnftMainVO" useGeneratedKeys="true" keyProperty="bnfPrtInnb" keyColumn="BNF_PRT_INNB">
|
||||
INSERT INTO GC_BENEFIT_PARTCPTN (
|
||||
BNF_INNB, -- 혜택 고유 번호
|
||||
BNF_PRT_DT, -- 혜택 참여 일시
|
||||
MBR_INNB, -- 회원 고유 번호
|
||||
MBR_DV_CD, -- 회원 구분 코드
|
||||
STR_INNB, -- 매장 고유번호
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록 일시
|
||||
)
|
||||
VALUES (
|
||||
#{bnfInnb},
|
||||
NOW(),
|
||||
#{mbrInnb},
|
||||
#{mbrDvCd},
|
||||
#{strInnb},
|
||||
#{mbrInnb},
|
||||
NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- QR 이벤트 보상 정보 조회 -->
|
||||
<select id="selectQrEventReward" parameterType="com.wb.domainserver.domain.gcone.bnft.bnftMain.vo.BOBnftMainVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
br.BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
br.BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
br.MLG_RWD_AMT, -- 마일리지 보상 금액
|
||||
br.COUPON_INNB, -- 쿠폰 고유 번호
|
||||
COALESCE(cs.COUPON_SNDNG_NM, br.ITM_NM) AS ITM_NM -- 쿠폰 이름 (쿠폰발송명 우선, 없으면 표시명)
|
||||
FROM
|
||||
GC_BENEFIT_REWARD br
|
||||
LEFT JOIN GC_COUPON_SNDNG cs ON br.COUPON_INNB = cs.COUPON_SNDNG_INNB
|
||||
AND cs.SOPMAL_CD = #{sopmalCd}
|
||||
WHERE
|
||||
<if test="bnfInnb != null and bnfInnb != ''">
|
||||
br.BNF_INNB = #{bnfInnb} -- 혜택 고유 번호
|
||||
</if>
|
||||
AND br.BNF_RWD_CATE_DV_CD = '15010' -- QR코드 이벤트 보상 코드
|
||||
ORDER BY
|
||||
br.MLG_RWD_AMT DESC -- 마일리지 높은 순으로 정렬
|
||||
</select>
|
||||
|
||||
<!-- QR 이벤트 보상 영수증 저장 -->
|
||||
<insert id="insertQrEventRewardReceipt" parameterType="com.wb.domainserver.domain.gcone.bnft.bnftMain.vo.BOBnftMainVO">
|
||||
<selectKey keyProperty="bnfRcvInnb" resultType="java.lang.Long" order="BEFORE">
|
||||
SELECT IFNULL(MAX(BNF_RCV_INNB), 0) + 1 FROM GC_BENEFIT_RECEIPT
|
||||
</selectKey>
|
||||
INSERT INTO GC_BENEFIT_RECEIPT
|
||||
(
|
||||
BNF_RCV_INNB, -- 혜택 보상수령 고유 번호
|
||||
BNF_PRT_INNB, -- 혜택 참여 고유 번호
|
||||
BNF_RWD_CATE_DV_CD, -- 보상 항목 구분 코드
|
||||
BNF_RWD_GODS_DV_CD, -- 보상 상품 구분 코드
|
||||
MLG_RWD_AMT, -- 마일리지 보상 금액
|
||||
COUPON_INNB, -- 쿠폰 고유 번호
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록 일시
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
#{bnfRcvInnb},
|
||||
#{bnfPrtInnb},
|
||||
#{bnfRwdCateDvCd},
|
||||
#{bnfRwdGodsDvCd},
|
||||
#{mlgRwdAmt},
|
||||
#{couponInnb},
|
||||
#{mbrInnb},
|
||||
NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user