merge master into develop - CscListRForm.jsp FAQ 아코디언 버그 수정
This commit is contained in:
@@ -0,0 +1,431 @@
|
||||
<?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.stepcnt.mapper.BOStepcntMapper">
|
||||
|
||||
<!-- 현재 회원의 최신 걸음 수 조회 -->
|
||||
<select id="selectCurrentStepCount" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
BP.BNF_PRT_INNB as BNF_PRT_INNB, -- 혜택 참여 고유번호
|
||||
BP.STEP_CNT as STEP_CNT, -- 현재 걸음 수
|
||||
BP.BNF_PRT_DT as participationDate, -- 참여 일시
|
||||
BP.MBR_INNB as memberNo -- 회원 고유번호
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN BP
|
||||
INNER JOIN
|
||||
GC_BENEFIT B ON BP.BNF_INNB = B.BNF_INNB
|
||||
WHERE
|
||||
BP.MBR_INNB = #{mbrInnb} -- 회원 고유번호 조건
|
||||
AND BP.MBR_DV_CD = #{mbrDvCd} -- 회원 구분 코드
|
||||
AND B.BNF_DV_CD = '020' -- 만보기 혜택 코드
|
||||
AND DATE(BP.BNF_PRT_DT) = CURDATE() -- 오늘 날짜 기준
|
||||
ORDER BY
|
||||
BP.BNF_PRT_DT DESC -- 최신 정보 우선
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<!-- 이번 달 만보 달성 현황 조회 -->
|
||||
<select id="selectMonthlyStepCountAchievement" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
DATE(BP.BNF_PRT_DT) as achievementDate, -- 달성 일자
|
||||
MAX(BP.STEP_CNT) as stepCount, -- 일별 최대 걸음 수
|
||||
CASE WHEN MAX(BP.STEP_CNT) >= 10000 THEN 'Y' ELSE 'N' END as isAchieved -- 만보 달성 여부
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN BP
|
||||
INNER JOIN
|
||||
GC_BENEFIT B ON BP.BNF_INNB = B.BNF_INNB
|
||||
WHERE
|
||||
BP.MBR_INNB = #{mbrInnb} -- 회원 고유번호 조건
|
||||
AND BP.MBR_DV_CD = #{mbrDvCd} -- 회원 구분 코드
|
||||
AND B.BNF_DV_CD = '020' -- 만보기 혜택 코드
|
||||
AND DATE_FORMAT(BP.BNF_PRT_DT, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m') -- 이번 달 필터링
|
||||
GROUP BY
|
||||
DATE(BP.BNF_PRT_DT) -- 일자별 그룹화
|
||||
ORDER BY
|
||||
DATE(BP.BNF_PRT_DT) -- 날짜순 정렬
|
||||
</select>
|
||||
|
||||
<!-- 이번 달 만보 달성 횟수 조회 -->
|
||||
<select id="selectMonthlyStepCountAchievementCount" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="int">
|
||||
SELECT
|
||||
COUNT(DISTINCT DATE(BP.BNF_PRT_DT)) as achievementCount -- 만보 달성한 날짜 수
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN BP
|
||||
INNER JOIN
|
||||
GC_BENEFIT B ON BP.BNF_INNB = B.BNF_INNB
|
||||
WHERE
|
||||
BP.MBR_INNB = #{mbrInnb} -- 회원 고유번호 조건
|
||||
AND BP.MBR_DV_CD = #{mbrDvCd} -- 회원 구분 코드
|
||||
AND B.BNF_DV_CD = '020' -- 만보기 혜택 코드
|
||||
AND DATE_FORMAT(BP.BNF_PRT_DT, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m') -- 이번 달 필터링
|
||||
AND BP.STEP_CNT >= 10000 -- 만보 이상 조건
|
||||
</select>
|
||||
|
||||
<!-- 선택한 달의 일별 걸음 수 내역 조회 -->
|
||||
<select id="selectDailyStepCounts" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
DATE(BP.BNF_PRT_DT) as recordDate, -- 기록 일자
|
||||
MAX(BP.STEP_CNT) as stepCount, -- 일별 최대 걸음 수
|
||||
CASE
|
||||
WHEN MAX(BP.STEP_CNT) >= 10000 THEN 100
|
||||
ELSE FLOOR(MAX(BP.STEP_CNT) * 100 / 10000)
|
||||
END as achievementRate, -- 달성률(%) 계산
|
||||
CASE
|
||||
WHEN MAX(BP.STEP_CNT) >= 10000 THEN 4 -- 만보 달성
|
||||
WHEN MAX(BP.STEP_CNT) >= 7500 THEN 3 -- 7500 이상
|
||||
WHEN MAX(BP.STEP_CNT) >= 5000 THEN 2 -- 5000 이상
|
||||
WHEN MAX(BP.STEP_CNT) >= 2500 THEN 1 -- 2500 이상
|
||||
ELSE 0 -- 2500 미만
|
||||
END as achievementLevel -- 달성 레벨(0~4)
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN BP
|
||||
INNER JOIN
|
||||
GC_BENEFIT B ON BP.BNF_INNB = B.BNF_INNB
|
||||
WHERE
|
||||
BP.MBR_INNB = #{mbrInnb} -- 회원 고유번호 조건
|
||||
AND BP.MBR_DV_CD = #{mbrDvCd} -- 회원 구분 코드
|
||||
AND B.BNF_DV_CD = '020' -- 만보기 혜택 코드
|
||||
AND DATE_FORMAT(BP.BNF_PRT_DT, '%Y-%m') = #{yearMonth} -- 선택한 년월 기준
|
||||
GROUP BY
|
||||
DATE(BP.BNF_PRT_DT) -- 일자별 그룹화
|
||||
ORDER BY
|
||||
DATE(BP.BNF_PRT_DT) -- 날짜순 정렬
|
||||
</select>
|
||||
|
||||
<!-- 이번 달 만보기 사용 통계 조회 -->
|
||||
<select id="selectMonthlyStepCountStats" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
ROUND((SELECT AVG(STEP_CNT)
|
||||
FROM GC_BENEFIT_PARTCPTN
|
||||
WHERE MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND DATE_FORMAT(BNF_PRT_DT, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m')
|
||||
), 0) as avgStepCount, -- 하루 평균 걸음 수 (조인 영향 없이 계산)
|
||||
rewardStats.surpriseGiftCount, -- 깜짝선물 획득 수
|
||||
rewardStats.totalMileage -- 획득한 마일리지 합계
|
||||
FROM (
|
||||
SELECT
|
||||
COUNT(CASE WHEN BR.BNF_RWD_CATE_DV_CD IN ('02030','02031','02032','02033','02034','02035','02036') THEN 1 END) as surpriseGiftCount,
|
||||
SUM(CASE WHEN BR.BNF_RWD_GODS_DV_CD = '010' THEN BR.MLG_RWD_AMT ELSE 0 END) as totalMileage
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN BP
|
||||
LEFT JOIN
|
||||
GC_BENEFIT_RECEIPT BR ON BR.BNF_PRT_INNB = BP.BNF_PRT_INNB
|
||||
LEFT JOIN
|
||||
GC_BENEFIT B ON BP.BNF_INNB = B.BNF_INNB AND B.BNF_DV_CD = '020'
|
||||
WHERE
|
||||
BP.MBR_INNB = #{mbrInnb}
|
||||
AND BP.MBR_DV_CD = #{mbrDvCd}
|
||||
AND DATE_FORMAT(BP.BNF_PRT_DT, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m')
|
||||
) rewardStats
|
||||
</select>
|
||||
|
||||
<!-- 보상 정보 조회 -->
|
||||
<select id="selectStepCountReward" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
B.BNF_INNB as bnfInnb, -- 혜택 고유번호
|
||||
BR.BNF_RWD_CATE_DV_CD as rewardCategoryCode, -- 보상 항목 구분 코드
|
||||
BR.BNF_RWD_GODS_DV_CD as rewardGoodsCode, -- 보상 상품 구분 코드
|
||||
BR.MLG_RWD_AMT as mileageAmount, -- 마일리지 보상 금액
|
||||
BR.COUPON_INNB as couponNo, -- 쿠폰 고유번호
|
||||
BR.RWD_CND_CNT as rewardConditionCount -- 보상 조건 걸음 수
|
||||
FROM
|
||||
GC_BENEFIT B
|
||||
INNER JOIN
|
||||
GC_BENEFIT_REWARD BR ON B.BNF_INNB = BR.BNF_INNB
|
||||
WHERE
|
||||
B.BNF_DV_CD = '020' -- 만보기 혜택 코드
|
||||
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()) -- 종료일 체크
|
||||
AND BR.BNF_RWD_CATE_DV_CD = #{bnfRwdCateDvCd} -- 요청한 보상 카테고리
|
||||
</select>
|
||||
|
||||
<!-- 깜짝 선물 위치 정보 조회 (요일에 따라 변경) -->
|
||||
<select id="selectSurpriseGiftPosition" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
B.BNF_INNB as bnfInnb, -- 혜택 고유번호
|
||||
BR.BNF_RWD_CATE_DV_CD as rewardCategoryCode, -- 보상 항목 구분 코드
|
||||
BR.RWD_CND_CNT as surprisePosition -- 깜짝 선물 위치 (테이블에 정의된 값)
|
||||
FROM
|
||||
GC_BENEFIT B
|
||||
INNER JOIN
|
||||
GC_BENEFIT_REWARD BR ON B.BNF_INNB = BR.BNF_INNB
|
||||
WHERE
|
||||
B.BNF_DV_CD = '020' -- 만보기 혜택 코드
|
||||
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()) -- 종료일 체크
|
||||
AND BR.BNF_RWD_CATE_DV_CD = CONCAT('0203', WEEKDAY(NOW())) -- 요일에 맞는 깜짝선물 코드
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<!-- 초록잎 지급 개수 조회 -->
|
||||
<select id="selectLeafCounts" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
PYMNT_CNT, -- 지급 초록잎 개수
|
||||
SPECIAL_CNT -- 스페셜 지급 초록잎 개수
|
||||
FROM
|
||||
GC_BENEFIT_CPSLMKN
|
||||
WHERE
|
||||
BNF_DV_CD = '020' -- 만보기 혜택 구분 코드로 수정
|
||||
AND SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
</select>
|
||||
|
||||
<!-- 걸음수 정보 저장/업데이트 -->
|
||||
<insert id="insertOrUpdateStepCount" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO">
|
||||
INSERT INTO GC_BENEFIT_PARTCPTN (
|
||||
BNF_INNB,
|
||||
BNF_PRT_DT,
|
||||
MBR_INNB,
|
||||
MBR_DV_CD,
|
||||
STEP_CNT,
|
||||
REGIST_DT,
|
||||
PRT_LEAF_CNT,
|
||||
REGUSR
|
||||
) VALUES (
|
||||
#{bnfInnb}, -- 혜택 고유번호
|
||||
NOW(), -- 현재 시간
|
||||
#{mbrInnb}, -- 회원 고유번호
|
||||
#{mbrDvCd}, -- 회원 구분 코드
|
||||
#{stepCnt}, -- 걸음 수
|
||||
NOW(), -- 등록 시간
|
||||
#{paidLeafCnt}, -- 적립된 초록잎 개수
|
||||
#{regusr} -- 등록자
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
STEP_CNT = #{stepCnt}, -- 걸음 수 업데이트
|
||||
UPDT_DT = NOW(), -- 수정 시간
|
||||
UPDUSR = #{updusr}, -- 수정자
|
||||
PRT_LEAF_CNT = CASE
|
||||
WHEN #{stepCnt} >= 10000 AND STEP_CNT < 10000 THEN #{paidLeafCnt}
|
||||
WHEN #{stepCnt} >= 10000 THEN PRT_LEAF_CNT
|
||||
ELSE PRT_LEAF_CNT
|
||||
END -- 만보 최초 달성 시에만 초록잎 추가
|
||||
</insert>
|
||||
|
||||
<!-- 보상 수령 내역 저장 -->
|
||||
<insert id="insertStepCountReward" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO">
|
||||
<selectKey keyProperty="bnfRcvInnb" resultType="java.math.BigInteger" 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}, -- 쿠폰 고유번호
|
||||
#{regusr}, -- 등록자(회원)
|
||||
NOW() -- 등록 시간
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 10회 달성 시 추가 보상 대상 상품 정보 조회 -->
|
||||
<select id="selectMonthlyAchievementReward" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
B.BNF_INNB as bnfInnb, -- 혜택 고유번호
|
||||
B.BNF_SJ as bnfTitle, -- 혜택 제목
|
||||
B.SCR_RWD_IMG as rewardImageUrl, -- 보상 이미지 URL
|
||||
B.SCR_RWD_LINK_URL as rewardLinkUrl, -- 보상 링크 URL
|
||||
BR.MLG_RWD_AMT as mileageAmount, -- 마일리지 보상 금액
|
||||
BR.ITM_NM as itemName -- 표시명
|
||||
FROM
|
||||
GC_BENEFIT B
|
||||
INNER JOIN
|
||||
GC_BENEFIT_REWARD BR ON B.BNF_INNB = BR.BNF_INNB
|
||||
WHERE
|
||||
B.BNF_DV_CD = '020' -- 만보기 혜택 코드
|
||||
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()) -- 종료일 체크
|
||||
AND BR.BNF_RWD_CATE_DV_CD = '02020' -- 만보기 월누적10회 코드
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<!-- 만보기 동의 상태 조회 -->
|
||||
<select id="selectStepcntAgreement" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
AGRE_AT
|
||||
FROM
|
||||
GC_BENEFIT_AGREE
|
||||
WHERE
|
||||
SOPMAL_CD = #{sopmalCd}
|
||||
AND MBR_INNB = #{mbrInnb}
|
||||
AND MBR_DV_CD = #{mbrDvCd}
|
||||
AND BNF_DV_CD = '020'
|
||||
AND BNF_AGRE_DV_CD = '020'
|
||||
</select>
|
||||
|
||||
<!-- 만보기 동의 정보 저장/업데이트 -->
|
||||
<insert id="insertStepcntAgreement" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO">
|
||||
INSERT INTO GC_BENEFIT_AGREE (
|
||||
SOPMAL_CD, -- 쇼핑몰 코드
|
||||
MBR_INNB, -- 회원 고유번호
|
||||
MBR_DV_CD, -- 회원 구분 코드
|
||||
BNF_DV_CD, -- 혜택 구분 코드
|
||||
BNF_AGRE_DV_CD, -- 혜택 동의 구분 코드
|
||||
BNF_INNB, -- 혜택 고유번호
|
||||
AGRE_AT, -- 동의 여부
|
||||
REGUSR, -- 등록자
|
||||
REGIST_DT -- 등록 시간
|
||||
) VALUES (
|
||||
#{sopmalCd}, -- 쇼핑몰 코드
|
||||
#{mbrInnb}, -- 회원 고유번호
|
||||
#{mbrDvCd}, -- 회원 구분 코드
|
||||
'020', -- 혜택 구분 코드(만보기)
|
||||
'020', -- 혜택 동의 구분 코드(만보기)
|
||||
#{bnfInnb}, -- 혜택 고유번호
|
||||
#{agreeYn}, -- 동의 여부
|
||||
#{regusr}, -- 등록자(회원)
|
||||
NOW() -- 등록 시간
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 만보기 동의 정보 업데이트 -->
|
||||
<update id="updateStepcntAgreement" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO">
|
||||
UPDATE GC_BENEFIT_AGREE
|
||||
SET AGRE_AT = #{agreeYn}, -- 동의 여부
|
||||
REGIST_DT = NOW(), -- 등록 시간
|
||||
REGUSR = #{regusr} -- 등록자(회원)
|
||||
WHERE SOPMAL_CD = #{sopmalCd} -- 쇼핑몰 코드
|
||||
AND MBR_INNB = #{mbrInnb} -- 회원 고유번호
|
||||
AND MBR_DV_CD = #{mbrDvCd} -- 회원 구분 코드
|
||||
AND BNF_DV_CD = '020' -- 혜택 구분 코드(만보기)
|
||||
AND BNF_AGRE_DV_CD = '020' -- 혜택 동의 구분 코드(만보기)
|
||||
</update>
|
||||
|
||||
<!-- 만보기 화면의 기본 정보 조회 -->
|
||||
<select id="selectStepcntBaseInfo" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
B.BNF_INNB as BNF_INNB, -- 혜택 고유번호
|
||||
B.BNF_SJ as BNF_TITLE, -- 혜택 제목
|
||||
B.BNF_WORDS_CN as BNF_GUIDANCE, -- 혜택 안내
|
||||
B.SCR_RWD_IMG as REWARD_IMG, -- 화면 대표 이미지
|
||||
B.SCR_REPRSNT_LINK_URL as REPRESENT_LINK_URL, -- 화면 대표 링크 URL
|
||||
B.SCR_RWD_LINK_URL as REWARD_LINK_URL, -- 화면 보상 링크 URL
|
||||
(
|
||||
SELECT BCT.CN_DC
|
||||
FROM GC_BENEFIT_CONTENT BCT
|
||||
WHERE BCT.BNF_INNB = B.BNF_INNB
|
||||
LIMIT 1
|
||||
) as CONTENT_DESCRIPTION, -- 내용 설명
|
||||
(
|
||||
SELECT GROUP_CONCAT(BR.BNF_RWD_CATE_DV_CD)
|
||||
FROM GC_BENEFIT_REWARD BR
|
||||
WHERE BR.BNF_INNB = B.BNF_INNB
|
||||
) as REWARD_CATEGORIES, -- 보상 항목 구분 코드 목록
|
||||
(
|
||||
SELECT BR.ITM_NM
|
||||
FROM GC_BENEFIT_REWARD BR
|
||||
WHERE BR.BNF_INNB = B.BNF_INNB
|
||||
AND BR.BNF_RWD_CATE_DV_CD = '02020' -- 만보기 월누적10회 코드
|
||||
LIMIT 1
|
||||
) as MONTHLY_REWARD_NAME, -- 10회 달성 시 받을 제품 이름
|
||||
(
|
||||
SELECT BR.MLG_RWD_AMT
|
||||
FROM GC_BENEFIT_REWARD BR
|
||||
WHERE BR.BNF_INNB = B.BNF_INNB
|
||||
AND BR.BNF_RWD_CATE_DV_CD = '02020' -- 만보기 월누적10회 코드
|
||||
LIMIT 1
|
||||
) as MONTHLY_REWARD_MILEAGE -- 10회 달성 시 받을 마일리지
|
||||
FROM
|
||||
GC_BENEFIT B
|
||||
WHERE
|
||||
B.BNF_DV_CD = '020' -- 만보기 혜택 코드
|
||||
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()) -- 종료일 체크
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<!-- 이번 달 깜짝선물 획득 횟수 조회 -->
|
||||
<select id="selectMonthlySurpriseGiftCount" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="int">
|
||||
SELECT
|
||||
COUNT(BR.BNF_RCV_INNB) as surpriseGiftCount
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN BP
|
||||
INNER JOIN
|
||||
GC_BENEFIT_RECEIPT BR ON BR.BNF_PRT_INNB = BP.BNF_PRT_INNB
|
||||
INNER JOIN
|
||||
GC_BENEFIT B ON BP.BNF_INNB = B.BNF_INNB
|
||||
WHERE
|
||||
BP.MBR_INNB = #{mbrInnb}
|
||||
AND BP.MBR_DV_CD = #{mbrDvCd}
|
||||
AND B.BNF_DV_CD = '020' -- 만보기 혜택 코드
|
||||
AND DATE_FORMAT(BP.BNF_PRT_DT, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m') -- 이번 달 필터링
|
||||
AND BR.BNF_RWD_CATE_DV_CD IN ('02030','02031','02032','02033','02034','02035','02036') -- 깜짝선물 카테고리 코드들
|
||||
</select>
|
||||
|
||||
<!-- 오늘 깜짝선물 수령 여부 확인 -->
|
||||
<select id="selectTodayGiftReceiptStatus" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
COUNT(BR.BNF_RCV_INNB) as receiptCount,
|
||||
CASE WHEN COUNT(BR.BNF_RCV_INNB) > 0 THEN 'Y' ELSE 'N' END as isReceived
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN BP
|
||||
INNER JOIN
|
||||
GC_BENEFIT_RECEIPT BR ON BR.BNF_PRT_INNB = BP.BNF_PRT_INNB
|
||||
INNER JOIN
|
||||
GC_BENEFIT B ON BP.BNF_INNB = B.BNF_INNB
|
||||
WHERE
|
||||
BP.MBR_INNB = #{mbrInnb}
|
||||
AND BP.MBR_DV_CD = #{mbrDvCd}
|
||||
AND B.BNF_DV_CD = '020' -- 만보기 혜택 코드
|
||||
AND DATE(BP.BNF_PRT_DT) = CURDATE() -- 오늘 날짜 기준
|
||||
AND BR.BNF_RWD_CATE_DV_CD = #{bnfRwdCateDvCd} -- 오늘의 깜짝선물 카테고리
|
||||
</select>
|
||||
|
||||
<!-- 오늘 마일리지 수령 여부 확인 -->
|
||||
<select id="selectTodayMileageReceiptStatus" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
COUNT(BR.BNF_RCV_INNB) as receiptCount,
|
||||
CASE WHEN COUNT(BR.BNF_RCV_INNB) > 0 THEN 'Y' ELSE 'N' END as isReceived
|
||||
FROM
|
||||
GC_BENEFIT_PARTCPTN BP
|
||||
INNER JOIN
|
||||
GC_BENEFIT_RECEIPT BR ON BR.BNF_PRT_INNB = BP.BNF_PRT_INNB
|
||||
INNER JOIN
|
||||
GC_BENEFIT B ON BP.BNF_INNB = B.BNF_INNB
|
||||
WHERE
|
||||
BP.MBR_INNB = #{mbrInnb}
|
||||
AND BP.MBR_DV_CD = #{mbrDvCd}
|
||||
AND B.BNF_DV_CD = '020' -- 만보기 혜택 코드
|
||||
AND DATE(BP.BNF_PRT_DT) = CURDATE() -- 오늘 날짜 기준
|
||||
AND BR.BNF_RWD_CATE_DV_CD = #{bnfRwdCateDvCd} -- 보상 카테고리 (02010: 일일만보, 02020: 월누적10회)
|
||||
</select>
|
||||
|
||||
<!-- 만보기 참여 안내 조회-->
|
||||
<select id="selectStepcntGuide" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
BNF_WORDS_CN
|
||||
FROM
|
||||
GC_BENEFIT
|
||||
WHERE
|
||||
BNF_INNB = #{bnfInnb}
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
</select>
|
||||
|
||||
<!-- BNF_INNB 조회 -->
|
||||
<select id="selectBnfInnb" parameterType="com.wb.domainserver.domain.gcone.bnft.stepcnt.vo.BOStepcntVO" resultType="com.wb.domainserver.util.dataaccess.DataMap">
|
||||
SELECT
|
||||
BNF_INNB
|
||||
FROM
|
||||
GC_BENEFIT
|
||||
WHERE
|
||||
BNF_DV_CD = '020'
|
||||
AND SOPMAL_CD = #{sopmalCd}
|
||||
AND USE_AT = 'Y'
|
||||
</select>
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user